Weekend Prosjekt: Linux filsystem Tune-up

¬ †

Hvis tanken på å komme opp på 3 AM på "Black Friday" og dra deg på tvers av byen for å stå i kø for salg ikke fylle deg med ferie ånd, hvorfor ikke tilbringe helgen å gjøre noe mer meningsfylt, som å rydde opp Linux filsystemer? For å være sikker, er en moderne Linux filserver sannsynligvis ikke behov for å bli revet og gjenoppbygget, men hvis du er som mange av oss, du partisjonert diskene flere utgivelser siden med oppløftet intensjoner om å utnytte grad, forsinket tildeling, B + trær, og alle slags andre avanserte funksjoner, bare for å la dem vansmekte på standardinnstillingene i stedet. Vel, på tide å tune filsystemet er nå: ta en lagringsmedium, en terminal, og eventuelt en kalkun beinet, og la oss få til å fungere

Vi kan bryte ned oppgaven ved å se på hver avansert filsystem i. sving. Du kan kjøre ext4 på alle diskene, men du kan også ha en blanding av andre moderne filsystemer der, også. For å ikke bli forvirret, kjøre montere -l og notere ned enhetsnavnet (f.eks /dev /sda6) og filsystem (hva er oppført rett etter "type" i output) for hvert montert disk, så ta kontakt med instruksjonene .

XFS

XFS filsystem opprinnelig skrevet for Irix på Silicon Graphics er designet for å være høy ytelse, spesielt når du arbeider med "store" filer. Det gjør det til et godt valg for din media server, kanskje, men ikke det beste alternativet for å administrere offentlige kildekoden depotet. XFS er inkludert som standard i de fleste distroer, men sørg for at du også installere de viktigste XFS verktøy, den "xfsprogs" pakken.

En av de enkleste tingene du kan gjøre er defragmentere en XFS filsystem. Fordi XFS er optimalisert for høy disk gjennomstrømning, bremser det ned når filene er delt opp i flere, spredt ut sektorer på disken. XFS er xfs_fsr verktøyet kan defragmentere en montert partisjon uten å forstyrre annet arbeid. Bare kjør sudo xfs_fsr v /din /mount /point for å starte prosessen. Verktøyet vil gjøre flere passerer gjennom skilleveggen, bemerker de mest fragmenterte filer på hver passering, og flytte de 10% av dem på listen hver gang. Som standard det kjører i to timer, men du kan endre dette med -t numberofseconds flagget. Du får de beste resultatene det første gang du kjører den; ved senere kjøringer blir det færre og færre fragmenterte filer for å konsolidere.

Fremover, kan du forbedre ytelsen ved å endre pre-tildeling blings størrelse når du monterer filsystemet. Redigere /etc /fstab og legge til allocsize = X alternativ til listen over alternativer for filsystemet. En stor verdi for X, som 1G vil gi deg de jevn tildelte filene.

En annen nyttig funksjon i XFS som ikke er aktivert som standard er diskkvoter. Du kan tildele kvoter på en per bruker, per-gruppe, eller per-katalogen basis – sistnevnte omtales offisielt som «prosjekt kvoter" – med xfs_quota verktøyet. Ved hjelp av denne funksjonen kan regjere i vanskelige prosesser ved for eksempel å sette en kvote på /var /spool /mycrazyserver. Du vil gjøre dette ved å tildele et prosjektnummer til den valgte katalogen /etc /prosjekter (for eksempel 101: /var /spool /mycrazyserver), deretter montere disken med kvotestøtte slått på: mount -o prjquota /dev /sda9 /. Var

Til slutt aktivere kvoten med xfs_quota -x -c 'prosjekt -s 101' /var /spool /mycrazyserver; xfs_quota -x -c 'grense -p bhard = 20g 101' /var /spool /mycrazyserver. Den "bhard" angir en hard grense på 20 gigabyte for den angitte katalogen. Du kan også angi en myk grense, i så fall gå over grensen logges, men er ikke håndheves. Det kan være et bedre alternativ å starte med for bruker grenser.

Selv XFS er en journalføring filsystem, det betyr ikke fri deg fra ansvaret for å lage sikkerhetskopier og gjenopprette fra dem. Kjøpe du trenger ikke å svare på eksterne verktøy som rsync; i stedet, kan xfsdump sikkerhetskopiere en hel filsystem (komplett med alle sine utvidede attributter). Xfsdump kan skrive til tape for de med tradisjonelle backup-disker, men det fungerer like bra å kopiere til en annen katalog når du lenker det til xfsrestore. Bare kjør xfsdump -J - /katalog /til /backup | xfsrestore -J /destinasjon /katalog.

Hvis du sikkerhetskopierer en multi-user system eller en kjørende server, sørg for at du suspendere tilgang til det først ved å kjøre xfs_freeze -f /katalog /til /backup, og "tine" det ut igjen når du er ferdig med xfs_freeze -u /katalog /til /backup. XFS vil midlertidig stanse skrivetilgang til filsystemet mens den er frosset, men ikke destruktivt så – så snart det tiner ut, vil alle frosne diskoperasjoner fortsette.

ext4

I øyeblikket er ext4 standard filsystem for flere populære desktop og server Linux-distribusjoner. Det har ikke så mye i veien for fancy funksjoner som XFS, men det er fortsatt muligheter til disposisjon for å tune ytelsen. For eksempel er det tre ledige journalføring moduser som du kan velge mellom på monteringstid.

Du kan legge til data = journal, data = bestilt, eller data = writeback til din mount kommandoen til å endre journalføring atferd. Den "journal" alternativet er den mest pålitelige; logges det både data og metadata i tidsskriftet før du forplikter hver skrive. Den "bestilt" modus tidsskrifter metadata som det er å skrive data (som er standard virkemåte). Den "writeback" modus tidsskrifter metadata, noe som gjør den til den raskeste alternativet, men på bekostning av muligheten for at journal og at disken kan få ut av sync hvis det er en feil på akkurat feil tidspunkt.

Ext4 støtter også pre-tildeling via "bestilling" alternativet; bare legge reservasjonen til mount kommandoen, for eksempel mount -t ext4 -o reservasjon /dev /sdb4 /mine /data. Dette gjør at kjernen for å reservere plass til en nyopprettet fil, istedenfor å tvinge et program (for eksempel en P2P nedlasting verktøy eller en database) for å gjøre det; resultatet er at filsystemet kan optimalisere den nylig reservert plass, noe som gjør det til en sammenhengende grad snarere enn fragmentert.

I tilfelle du er nysgjerrig, kan du sjekke en ext4 filsystem er fragmentering stat med e2freefrag /dev /din /filsystem, men dessverre er det ingen online defragmentering verktøy; det var en e2defrag flere år siden, men det ble aldri oppdatert til å håndtere de journalføring funksjonene introdusert av Ext3. Online defragmentering er planlagt å dukke opp i fremtidige oppdateringer til ext4.

JFS

Journaled File System JFS idrett også noen funksjoner som du må studere for å dra full nytte av. Filsystemet er en standard del av kjernen i disse dager, men vil du også ønsker å sikre at du har installert JFS verktøy pakken, oppkalt JFSutils.

En av JFS mest interessante alternativer er å lagre filsystemet journal på en separat enhet. Dette kan forbedre både ytelse og pålitelighet, fordi journalen er naturligvis den mest skrevet til delen av disken, og er nesten aldri fysisk tilknytning til blokkene blir endret av filsystemet drift.

Hvis du er nylig skape din JFS filsystem, kan du angi tidsskriftet beliggenhet med -J
alternativet. For å velge en annen enhet, må du først opprette tidsskriftet med jfs_mkfs -J journal_dev /heres /min /ekstern /journal, og deretter opprette filsystemet å bruke den med jfs_mkfs -J device = /heres /min /ekstern /journal /dev /sdb5.

Men hva om du ikke visste at du hadde et slikt alternativ når du først opprettet filsystemet? Det er der jfs_tune kommer i. Med jfs_tune, kan du flytte den eksisterende journal til en annen enhet. Du må først opprette den eksterne tidsskriftet med de første jfs_mkfs kommandoen fra avsnittet ovenfor. Men så i stedet for å opprette et nytt filsystem, du bare fortelle den eksisterende JFS filsystemet til å bruke det, med jfs_tune -J device = /heres /min /ekstern /journal /dev /sdb4.

ReiserFS
< p> ReiserFS versjon 3 er fortsatt populær i mange Linux-distribusjoner, til tross for usikkerheten over Reiser4 filsystem. Som ext4, kan den bruke writeback modus for å fremskynde journal ytelse. Syntaksen er den samme som ext4-er; bare legge data = writeback til mount kommandoen. Eller alternativt velge data = journal for å bruke den tregeste, men mest sikre, journalføring alternativ

Det er også en nolog alternativ tilgjengelig som deaktiverer tidsskriftet helt, som er den raskest mulige alternativet &mdash.; men selvfølgelig det kommer på bekostning av rask gjenoppretting i tilfelle en krasj.

ReiserFS gjør noen triks for å unngå fragmentering, for eksempel oppbevaring av små filer direkte i filsystemet treet i stedet for i separate blokker. Du kan deaktivere denne funksjonen med notail alternativet, men i de fleste tilfeller, bremser dette ned lese og skrive ytelse.

Anything Else

Hvis du bruker noe annet enn de moderne filsystemer nevnt her, så selv om det er verktøy for å hjelpe deg med å justere mange av de tilgjengelige alternativene, kan tiden være bedre brukt migrere filene dine til et nytt filsystem helt. Selvfølgelig er det unntak, for eksempel spesielle formål krypterte filsystemer som EncFS eller distribuerte filsystem som Coda, men den nåværende arbeid er alt på enda nyere alternativer som Btrfs, som vil foreldet selv de ærverdige XFS og Ext4.

Likevel Hvis du trenger å komme i gang, må du alltid begynne med å lese manualen side for mount med mannen mount. Seksjonen knyttet til filsystemet vil liste opp alle de støttede mount-time alternativer i dagens Linux-kjernen. For det meste, kan du prøve ut de ulike alternativene uten å bekymre gjengi systemet startes – Selv om du fortsatt risikere å rote ting opp. Derfra kan du se etter filsystemet hjemmeside, som vil gå dypere inn i de tilgjengelige verktøy. Etter det, en god innsats er å søke på nettet etter elektroniske ressurser for å tilpasse server ytelse – Red Hat, Novell, og de fleste av de kommersielle distroer alle har slik informasjon tilgjengelig, og gir god dekning for eldre filsystemer.

Selvfølgelig, hvis filsystemet du er interessert i å tilfeldigvis Ext3, da har du det enda enklere: bare oppdatere filsystemet in-sted å Ext4. Det er fremtids kompatibel, noe som betyr at du ikke mister noe informasjon. Du kan også aktivere fleste av ext4 funksjoner, som for eksempel grad – men når du gjør det, kan du aldri gå tilbake til Ext3. Men hvorfor skulle du gjøre det likevel? Anmeldelser