Tagg-arkiv för » ubuntu «

Söndag, 4 Augusti, 2013 | Författare:

Historia

Mycket hade förändrats sedan jag senast nämnde mitt personlig server – det har vuxit med stormsteg (Det har nu en 7TB md RAID6) och det hade nyligen byggts om med Ubuntu Server.

Arch var aldrig ett misstag. Arch Linux har redan lärt mig så mycket om Linux (och kommer att fortsätta att göra det på min andra dator). Men Arch kräver definitivt mer tid och uppmärksamhet än jag skulle vilja spendera på en server. Helst skulle jag föredra att kunna glömma servern ett tag tills en påminnelse mail säger “um … Det finns ett par uppdateringar som du bör titta på, buddy.”

Rymden är inte gratis – och inte heller är utrymmet

Möjligheten att migrera till Ubuntu var det faktum att jag hade slut på SATA portar, portarna krävs för att ansluta hårddiskar till resten av datorn – att 7TB RAID array använder en hel del portar! Jag hade till och med gett bort min mycket gamla 200GB hårddisk som det tog upp en av dessa portar. Jag varnade också mottagaren att diskens SMART övervakning anges det var otillförlitliga. Som en tillfällig lösning på bristen på SATA-portar, Jag hade även migrerat serverns OS till en uppsättning av fyra USB-minnen i en md RAID1. Crazy. Jag vet. Jag var inte alltför glada om hastigheten. Jag bestämde mig att gå ut och köpa en ny pålitlig hårddisk och en SATA-expansionskort för att gå med det.

Serverns primära Arch partition använde omkring 7 GB hårddisk. En stor bit av det var en swap fil, cachad data och annat diverse eller onödiga filer. Övergripande den verkliga storleken av OS, inklusive /hem mapp, var endast omkring 2 GB. Detta fick mig att titta in i en supersnabb SSD köra, tänker kanske en mindre kanske inte så dyrt. Det visade sig att den billigaste icke-SSD-enhet jag kunde hitta faktiskt kosta mer än en av dessa relativt små SSD. Yay för mig. 🙂

Choice? Woah?!

Vid val av OS, Jag hade redan bestämt att det inte skulle vara Arch. Av alla de andra populära distributionerna, Jag är mest bekant med Ubuntu och CentOS. Fedora var också en möjlighet – men jag hade inte på allvar ännu ansåg det för en server. Ubuntu segrade runda.

Nästa beslut jag var tvungen att göra inte falla mig in förrän Ubiquity (Ubuntus installationsguide) frågade den av mig: Hur du ställer in partitioner.

Jag var van vid att använda SSD i Linux – Jag är väl medveten om de fallgropar av att inte använda dem på rätt sätt, främst på grund av deras risk för dålig livslängd vid felaktig.

Jag ville inte använda en dedikerad partition för växlingsutrymme. Jag planerar att uppgradera servern moderkort / CPU / minne inte alltför långt i framtiden. Baserat på att jag bestämde jag kommer att sätta swap i en växlingsfil på den befintliga md RAID. Swapen kommer inte att vara särskilt snabb men dess enda syfte kommer att vara för den sällsynta tillfällen när något har gått fel och minnet är inte tillgänglig.

Detta lämnade mig sedan för att ge rotsökvägen den fullständiga 60GB ur en Intel 330 SSD. Jag ansåg att separera / hem men det verkade bara lite meningslöst, med tanke på hur litet användes tidigare. Jag först ställa in partitionen med LVM – något jag har nyligen gjort när jag satt upp en Linux-box (verkligen, det finns ingen ursäkt att inte använda LVM). När det kom till delen där jag skulle konfigurera filsystem, Jag klickade på den nedrullningsbara och instinktivt valt ext4. Då märkte jag btrfs på samma lista. Hänga på!!

Men ett vad?

Btrfs (“smör-eff-ess”, “bättre eff-ess”, “bee-tree-eff-ess”, eller vad du vill på dagen) är en relativt ny filsystem utvecklats för att föra Linux’ filsystem funktioner tillbaka på rätt spår med nuvarande filsystem teknik. Den nuvarande King-of-the-Hill filsystemet, “ext” (den aktuella versionen heter ext4) är ganska bra – men det är begränsat, fastnat i ett gammalt paradigm (tänka på ett helt nytt F22 Raptor vs. en F4 Phantom med en halv-Jested försök till en likvärdighet uppgradering) och det är osannolikt att kunna konkurrera för mycket länge med nyare Enterprise filsystem såsom Oracles ZFS. Btrfs har fortfarande en lång väg att gå och betraktas fortfarande experimentell (beroende på vem man frågar och vilka funktioner du behöver). Många anser att det är stabilt för grundläggande användning – men ingen kommer att göra några garantier. Och, naturligtvis, alla säger att och testa säkerhetskopior!

Mooooooo

Den mest grundläggande skillnaden mellan ext och btrfs är att btrfs är en “CoW” eller “Kopiera på Skriv” filsystem. Detta innebär att data faktiskt aldrig medvetet över av filsystemet s interna. Om du skriver en ändring till en fil, btrfs kommer att skriva dina ändringar till en ny plats på fysiska medier och kommer att uppdatera de interna pekare för att hänvisa till den nya platsen. Btrfs går ett steg längre i att de interna pekare (kallad metadata) är också CoW. Äldre versioner av ext skulle helt enkelt överskrivna data. Ext4 skulle använda en tidskrift för att säkerställa att korruption inte kommer att inträffa ska nätkontakten kan ryckte ut på de mest olämplig tidpunkt. Tidskriften resulterar i ett liknande antal steg som krävs för att uppdatera data. Med en SSD, den underliggande hårdvaran fungerar en liknande CoW process oavsett vilket filsystem du använder. Detta beror på att SSD-enheter inte kan faktiskt skriva över data – de måste kopiera data (med dina ändringar) till en ny plats och sedan radera det gamla blocket helt. En optimering inom detta område är att en SSD inte ens kan radera det gamla blocket utan helt enkelt göra en anteckning att radera blocket vid ett senare tillfälle när saker inte är så upptagen. Slutresultatet är att SSD-enheter passar mycket väl med en ko filsystem och inte prestera lika bra med icke-ko filsystem.

För att göra saken intressant, Ko i filsystemet går lätt hand i hand med en funktion som kallas deduplicering. Detta tillåter två (eller flera) identiska block av data som skall lagras med bara en enda kopia, sparar utrymme. Med ko, Om en fil deduplicated modifieras, den separata dubbla påverkas inte eftersom den modifierade filens data kommer ha skrivit till en annan fysisk kvarter.

Ko tur gör snapshotting relativt lätt att implementera. När en ögonblicksbild görs systemet registrerar endast den nya ögonblicksbilden som en dubblering av alla data och metadata inom volymen. Med ko, när ändringar görs, ögonblicksbilden data förblir intakt, och en enhetlig bild av filsystemet status vid tidpunkten för ögonblicksbilden gjordes kan upprätthållas.

En ny vän

Med ovanstående i åtanke, särskilt som Ubuntu har gjort btrfs finns som install-tid alternativet, Jag tänkte att det skulle vara en bra tid att dyka in btrfs och utforska lite. 🙂

Del 2 kommer snart …

Dela med sig
Torsdag, January 01st, 2009 | Författare:

Tydligen, what operating system you use can say a lot about you. If you’re using some form of *nix, which distro you’re using can say a lot as well. Redundancy aside, I believe that a Linux distribution depends absolutely on its package management and distribution system.

I liked apt-get (1, 2) but there was some technical problem at some point and it caused me to use aptitude istället. Using aptitude is slightly easierit has more features automated into single, logical, commands where apt-get requires separate commands. Aptitude also has a curses-based GUI. If you’re not using the GUI then, other than brevity in terms of number of commands to learn, there is apparently no technical reason to prefer one over the other. Aptitude and apt-get serve K/X/Ubuntu och Debian samt. From this point, I use the names Kubuntu and Ubuntu in a loosely interchangeable fashion.

In my use of CentOS (based on Red Hat), I’ve found I like yum. It seems to work in much the same as aptitudeone command to rule them all. It has some rather annoying default behaviour I’m not going to get into here as its most likely because I’m just not used to it. At least from a technical perspective, it is very good. I believe that Fedora also makes use of yum though my experience with Fedora is very limited.

the theory

Fedora and Ubuntu are in a class of distributions that have a fairly rigorous release cycle. Ubuntu 8.10 (the version is named so for the year and month of its release) kommer inte, except for major bugs and minor changes, have another major update until the next version, Jaunty Jackalope. Ubuntu users have the latest versions of most software on their desktops right now. In the months preceding the next release, however, they’re not going to be so lucky unless they like using “beta” releases. As I’m not very familiar with Fedora, I’m not going to bother going into its release cycle.

These 2 distributions are also within a class of distributions known asbinary” eller “binary-baseddistributions. This means that when you download an update, the files that are downloaded are precompiled and should run on anysupportedhardware. This isn’t specifically optimised for your desktop’s hardware, for example, your processor. Perhaps you have an AMD processor which has extra instruction support which Intel CPUs do not have. The reverse could also be true. For this reason, a binary-release distribution cannot optimise for one particular brand of hardware. Regardless of thisnon-optimisation”, it should run at a decent pace.

the practice!

Om 2 years ago I started using Kubuntu. After a few months of working with it, I started to learn more about its specifics. I’m not much of a fan of using GUI tools to update the system when, ultimately, its all happening on the command-line anyway. The GUI tools just hide the complexity I don’t mind seeing.

I ended up making a bash script, update, which would run all the steps required to get aptitude to just go ahead and upgrade already, kthx?©, perhaps stopping along the way to back up my configuration, remount the NFS network share where we keep an on-site repository, back up the local cache of aptitude’s installed packages, do some folder-link shuffling to use a local copy if the network share couldn’t remount, sync between the local copy and the network share if the previous update had a network share issue, and update lists of packages in the repository. In general, it wouldn’t go ahead if there were any errors though, as you can tell, this script became a messy beast that went above and beyond the original requirements. It worked well for me.

Until the day came to update between Kubuntu 6.10 till 7.04. I did this manually though, not with the script.

I ended up reinstalling from scratch as a result of the mess that ensued. At least, as a backup administrator should do well to demonstrate, it was easy to recover everything I really needed. 🙂

What else is out there?

Even before I had to reinstall Kubuntu, I was introduced to another distribution called Gentoo. There are 2 very distinct differences between Gentoo and Ubuntu’s update system. The first is that Gentoo is a source-based distribution. This means that when you update a package, the package manager downloads the source and compiles everything, hopefully optimising it for your system. This, I think, is very cool. The downside to this is that compiling everything takes a very long time.

Here are my (very unscientific) estimates for the length of time it takes to install a basic GUI OS to a desktop from installation media, excluding extraneous drivers (for example, the latest 3D graphics drivers):

OS: minmax (median)

Windows Vista: 15 – 30 (20) minutes

Ubuntu: 15 – 40 (20) minutes

Gentoo: 3 – 40 (6) hours

Gentoo also requires much tinkering with the config files in order to get things workingthis is another reason for the extremely long delay between inserting the CD and booting your awesome* new desktop. Popular applications have binary packages available for downloadthough this isn’t a default option.

They see me rollin

There is one more very important distinction Gentoo has from most other distributions. It is arolling-releasedistribution. This means that there isn’t any rigorous version orreleasethat the distribution adheres to. If you install Gentoo todayif you finish installing Gentoo today, you’re probably going to have the latest version of all the applications you installed. If some obscure application gets a major update tomorrow, within a few days, if you update your system, you’re going to have that latest version on your desktop.

The difference between this rolling release and theotherdistributions is rather staggering. Till exempel: If KDE 4.2 were to be released tomorrow, you’d probably have to wait less than 2 weeks for it to be available on Gentoo. Ubuntu users might have to wait till 9.04 – that’s a 4-month wait.

Something more suitable?

Själv, I’m not willing to put in the 40 hours of effort to get my system working the way I want it to. My colleague had to reinstall recently for some obscure reason and it turns out he wasn’t willing to put in the 6 hours (he’s more experienced with Gentoo) of effort to get his system back to how it was running either. Instead, Arch Linux caught his eye. Arch Linux is a rolling-release (like Gentoo), binary-based (like Ubuntu) distribution. Its packages (samt, the vast majority of them) don’t need much tinkering with their config files to get things working nicely either. Its the best of both worlds!

You still need to know what you’re doing* but if you’ve come to this juncture, it shouldn’t be such a giant leap of faith. Arch Linux’s package manager, called pacman, has built-in dependency and conflict handling. I use another package manager, yoghurt (French for yoghurt), which has very quickly become popular with Arch users. Yaourt enhances the functionality of pacman by allowing you to download and install applications directly from the AUR, eller Arch Användar Repository. This repository contains scripts that allow you to automatically download and install many applications that would otherwise be completely unsupported by Arch’s own core developers. It downloads and compiles the package into a chroot’d environment. It then packages the chroot’d environment into a pacman-compatible package tarball and uses pacman to deploy it into your system.

Också, the AUR supports a voting system whereby popular packages get placed into the more official [community] slutförvar. Yaourt also supports an automated voting mechanism whereby, after installing a package via AUR, it asks if you want to vote for its inclusion in [community].

I estimate that the time taken for my Arch installation was about 90 minutes. I don’t recommend Archlinux for newbies though I do recommend it for any Linux user who’s gotten bored with other distrosand wants to get into the nitty gritty without having to install Linux From Scratch. Arch Linux has been getting pretty popular these days. Its currently at number 14 på Distrowatch.

* IF you know what you’re doing. AND YOU BETTER BLOODY KNOW WHAT YOU’RE DOING!
Dela med sig