Tagg-arkiv för » linux «

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

Jag hade ett strömavbrott påverkar min server stora md RAID matris. Hellre än att låta servern som helhet vara nere i väntan på att slutföra en fsck, Jag hade den starta utan stort utbud så jag kunde köra fsck manuellt.

Men, när man kör den manuellt insåg jag att jag inte hade någon möjlighet att veta hur långt det var och hur lång tid det skulle ta att slutföra. Detta är särskilt problematiskt med ett så stort spektrum. Med lite sökning fann jag spetsen på lägga till-C-parametern när du ringer fsck. Jag kunde inte hitta detta i dokumentationen dock: fsck –hjälp visade ingen sådan möjlighet.

Alternativet visar sig vara ext4 specifika, och visar därmed en fullt funktionell förloppsindikator med en procentsats indikator. För att hitta den information, istället för “fsck –hjälpa” eller “man fsck”, du måste mata “fsck.ext4 –hjälpa” eller “man fsck.ext4”. 🙂

Dela med sig
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
Fredag, 11 sep, 2009 | Författare:

Fred i landet av USB

Under en *ingenting operativsystem, har flera partitioner på en USB-enhet är inte rocket science, det bara fungerar. I mitt fall, min USB-enhet har två partitioner eftersom den första partitionen är en startbar Arch Linux inrätta.

Jag har Windows på ett skrivbord hemma – mestadels för spel – och många av mina kollegor använder det för. Eftersom Windows inte gör mycket bra med icke-Windows-partitioner jag tänkte att jag skulle kunna skapa en FAT32 partitionen på USB-minnet efter den startbara Arch Linux-partition. FAT32 är nästan överallt och kan användas på alla vanliga operativsystem för persondatorer i världen.

Bleh

Tyvärr fungerar det inte rakt utanför bat. Tydligen, Microsoft i sin oändliga vishet beslutat att minnen är tänkt att ha en (och endast en) skiljevägg. I verkligheten Windows hittar den första partitionen och sedan ignorerar alla andra som råkar sättas upp:

Please Format

Err, ingen, Jag vill inte att du ska formatera min Arch Linux installation partition

Tricket att få det att fungera är att lura Windows att tro att enheten är inte ett vanligt USB-minne men kanske solid-state hårddisk som råkar vara ansluten via USB. Ja jag vet, Detta är allvarligt dum att Windows beter sig på detta sätt. En solid-state hårddisk är bara en jättestor stor (och snabb) minne trots allt!

Jag hittade några källor på hur man gör detta men jag hade fortfarande att räkna ut vissa saker på egen hand. Specifikt, guiderna jag hittade hoppade antingen några steg eller inte ge tillräckligt med information om var du kan hämta drivrutinspaketet.

Detta förfarande innebär att manuellt ändra drivrutiner och installera “ej undertecknade” drivrutiner “inte avsedd för din hårdvara”. Jag vet att någon kommer att bryta sina system och skylla på mig så säger jag nu att jag tar inget ansvar för eventuella skador som du kan göra för att ditt Windows-system på grund av detta. Läs det igen. 😛

Instruktioner

remove the highlighted text

klicka för större version

Ladda ner och packa upp drivrutinen, ursprungligen skapades av Hitachi, här. Öppna cfadisk.inf filen i Anteckningar (eller din favorit klartext editor), och reda på avsnittet [cfadisk_device]. Ta bort avsnittet markeras till höger:

Minimera (Stäng inte) editorn och gå till dina skrivbordsikoner – högerklicka på Den här datorn och välj Properties. Välj fliken Maskinvara och välj sedan [DEvice föreståndaren]:

System Properties

Hitta anordningen under “Diskenheter”, högerklicka på Memory Stick och välj Properties:

Device Manager

Klicka på fliken Information och i listrutan på den sidan, välj “Hårdvara Ids”. Klicka på den första raden i listan över Hardware-ID och tryck Ctrl C för att kopiera namnet:

USB Hardware Ids

Stäng inte den här dialogrutan, gå tillbaka till anteckningsblock (vilket minimerades) och klistra in hårdvaran ID in där det tidigare innehållet togs bort.

Changes pasted into notepad

Spara filen i Anteckningar och gå tillbaka till enhetens dialogfastighetsfönster. Klicka på “Driver” flik och klicka på [Ipdate Driver…] knapp. I de fönster som dyker upp, välj “Ingen, inte här tnamn”; [Next] -> “Installera från en lista eller en erpecifika läge (Avancerad)”; [Next] -> “Don't sökning. Jag väljer själv vilken drivrutin som ska installeras.”; [Next] -> [Have Disk…].

Unsigned Drivers - Click Continue Anyway

Bläddra till den mapp där du har sparat den modifierade cfadisk.inf filen. Klicka [OK]. Du hittar

det finns en Hitachi Microdrive drivrutin listad. Välj denna och klicka [Next]. När varnings

syn, klick [Yär]. En annan varning kommer att dyka upp om en liknande fråga (dessa är de “unsigned” och “inte avsedd för din hårdvara” varningar som jag nämnde tidigare). Klicka [Continue ändå]:

Vid denna punkt rekommenderar jag att stänga alla dialogrutor som rör installationen. Slutligen, ta bort och sätt in minnet i USB-porten och du ska finna att de extra partitioner på pinnen är tillgängliga. I det värsta scenariot, du kanske behöver fortfarande partitionera hårddisken Men det svåra är över. 🙂

Dela med sig
Onsdag, April 22nd, 2009 | Författare:

Arch Linux’s installation process is documented on the Arch wiki. I recommend that persons new to Arch try the excellent Beginner’s Guide instead of the Official Arch Linux Install Guide. Though both wiki entries cover similar ground, the Beginner’s Guide gives a lot more relevant information for those new to the system. The Beginner’s Guide is aimed at desktop installation and, as I’m installing a server, I won’t be going through the installation of the graphical environment at all. Assuming that you’re following my installation, assume that I’ve followed the Beginner’s Guide right up to and including the installation of sudo. I installed the ssh daemon afterwards rather than during the initial setup however.

A few small recommendations and notes regarding installation:

  • If you can, consider using a USB memory stick for the installer and keep it handy for future installations.
  • I keep a copy of my local “slutförvar” of installed applications on my installer memory stick. Once installation is finished I save a bit of download and update time by copying this to the new server’s /var/cache/pacman/pkg/ folder. The repository on my desktop is typically 1.7GB
  • For the rc.conf, South African-appropriate regional settings are:
    LOCALE=en_ZA.utf8
    TIMEZONE=Africa/Johannesburg
  • I’ve set up the network very simply, according to the guide, and will be expanding on the network setup in a later post.
  • As it is for a server, my non-privileged user on the server is only part of 3 groups: wheel (for sudo), storage, and users. A desktop user will likely be in many more groups.

I prefer using an application called yoghurt instead of Arch’s default package manager. Yaourt has the exact same usage syntax as pacman except that it supports a few extra options. It is actually a wrapper application in that it, in turn, uses pacman. Importantly, yaourt supports installation of applications from Arch’s AUR. Den AUR is a repository of installation scripts built by Arch users for Arch users to easily install applications that are not officially supported by the main Arch repositories. Yaourt can download and install applications from AUR or the main repositories with the same command, treating the AUR asjust another repository”. Pacman unfortunately does not support this.

Again, the installation is covered in the wiki. I recommend the easy route mentioned in the wiki if you’re new at Arch. Its too much too soon to do it the hard way (also mentioned in the wiki entry).

When done, update your system by issuing the single command:

yaourt -Syu

OR

pacman -Syu

and follow the given recommendations.

Dela med sig
Lördag, March 28th, 2009 | Författare:

Its amazing how much you can do by combining the small yet powerful commands Unix has available.

This little-used command, time, finally became useful today as a way to report the length of time that certain automated operations are running. In my example, I’m timing how long it takes to build the Linux kernel:

$ time rebuild-kernel26
...
couple-thousand-lines-of-scrolling-text
...
==> Finished making: kernel26 2.6.28.8-1 x86_64 (Sat Mar 28 17:19:52 SAST 2009)
real    62m21.994s
user    43m31.846s
sys     6m1.096s

Yup, that took a little over an hour to build. The values are:

  • realthe actual time elapsed while the command was running – 62 minutes
  • userthe amount of userland time the command used – 43 minutes
  • systhe amount of system time the command used – 6 minutes

(I was busy doing other things while this was happening which is why it took 62 minutes for the desktop to do (43+6=) 49 minutes-worth of work)

If you’re using the GNU version (most likely), it also gives you the option of displaying the results in a custom fashion. Mostly, this command could be useful in scripts where you need to report how long a task tookor maybe? just a geeky way to time something random. 😛

Dela med sig
Kategori: linux  | Taggar: , , , , , , ,  | Lämna en kommentar