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, 22 april, 2009 | Författare:

Arch Linux installationsprocessen dokumenteras på Arch wiki. Jag rekommenderar att personer nya Arch prova den utmärkta Nybörjarguide istället för Officiell Arch Linux Installationsguide. Även om både wiki poster täcker liknande mark, den nybörjarguide ger en mycket mer relevant information för de nya till systemet. Den Nybörjarguide är inriktad på skrivbordet installation och, som jag installerar en server, Jag kommer inte att gå igenom installationen av den grafiska miljön alls. Förutsatt att du följer min installation, antar att jag har följt nybörjarguide ända fram till och med installationen av sudo. Jag har installerat SSH-demonen efteråt snarare än under den första installationen men.

Några små rekommendationer och anmärkningar om installation:

  • Om du kan, överväga att använda ett USB-minne för installatören och ha den till hands för framtida installationer.
  • Jag behålla en kopia av min lokala “slutförvar” installerade program på min installations minne. När installationen är klar jag spara lite nedladdning och uppdatera tid genom att kopiera detta till den nya servern / var / cache / pacman / pkg / mapp. Förvaret på mitt skrivbord är typiskt 1.7 GB stor
  • För rc.conf, Sydafrikanska-lämpliga regionala inställningar:
    LOCALE =”en_ZA.utf8″
    TIDZON =”Afrika / Johannesburg”
  • Jag har ställt in nätverket mycket enkelt, enligt styr, och kommer att expandera på nätverksinställningarna i ett senare inlägg.
  • Eftersom det är en server, min icke-privilegierade användare på servern är bara en del av 3 grupper: hjul (för sudo), lagring, och användare. En stationär användare kommer sannolikt att vara i många fler grupper.

Jag föredrar att använda ett program som heter yoghurt istället för Arch standard pakethanterare. Yaourt har exakt samma användnings syntax som pacman förutom att det stöder några extra alternativ. Det är faktiskt en wrapper program genom att det, i tur och ordning, använder pacman. Viktigt, yaourt stöder installation av program från Arch s GULD. Den GULD är ett förråd av installationsskript byggda av Arch användare för Arch användare att enkelt installera program som inte är officiellt stöds av de viktigaste Arch förråden. Yaourt kan ladda ner och installera program från AUR eller huvud förråd med samma kommando, behandla AUR som “bara en annan arkiv”. Pacman tyvärr inte stöder detta.

Igen, installationen är täckt i wiki. Jag rekommenderar den enkla vägen som nämns i wikin om du är ny på Arch. Dess alltför mycket för tidigt att göra det den hårda vägen (också nämns i wikin posten).

när du är klar, uppdatera systemet genom att ge enda kommando:

yaourt -Syu

ELLER

pacman -Syu

och följ de givna rekommendationerna.

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

Dess otroligt hur mycket man kan göra genom att kombinera de små men kraftfulla kommandon Unix har tillgängliga.

Denna lilla använda kommandot, tid, blev slutligen användbar idag som ett sätt att rapportera tid att vissa automatiserade operationer kör. I mitt exempel, Jag timing hur lång tid det tar att bygga Linux kärna:

$ tid återuppbygga-kernel26
...
par tusen rader-of-rullning-text
...
==> klar med: kernel26 2.6.28.8-1 x86_64 (Sat March 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