Btrfs

Når et filsystem er på grænsen til at være sexet...

Filsystemer har en utaknemmelig lod i livet... De skal virke 24/7, kunne rumme uanede mængder af katte-billeder uden at tabe en eneste bit, og det vel og mærke hurtigt og effektivt. Og den eneste opmærksomhed de kan forvente er skældud når der er ting som ikke går som forventet...

For de flestes vedkommende er det en usynlig del af den daglige brug af computere, men skal man sikre sig man ved hvad der sker med de data der gemmes så er det i det mindste en god ide at undersøge hvilke muligheder der er.

Der har gennem årene været mange forskellige bud på både generelle og opgave-specifikke filsystemer. En ting har de haft tilfælles, og det er at de har været underlagt stramme resurse-krav. Og derfor har de ofte pålagt brugeren "mystiske" begrænsninger (f.eks. DOS' 8.3 filnavne) og ofte har de endt med at være utilstrækkelige fordi udviklingen har rendt dem over ende.

For at undgå at det sidstnævnte skulle ske igen, designede Sun Microsystems sit nye filsystem - ZFS - til at kunne rumme 2128 bytes. Det tal er lige så astronomisk i dag som det var da det blev introduceret i 2005 - der er ikke nogen fare for at den grænse bliver mødt i den nærmeste fremtid (om nogensinde). Men måske mere interessant så samlede ZFS en række kendte principper i en samlet enhed og præsenterede et samlet værktøj, der var mere end blot summen af de forskellige dele.

 

Et moderne filsystem der gøre livet lettere...

Helt den samme tankegang var der bag udviklingen af Btrfs (B-tree file system), samt en ide om at ZFS var "over engineered" og derfor ikke så effektivt som det burde være. Så derfor kan et Btrfs "kun" rumme 264 bytes - i mere familiære termer: ca. 16.000.000.000 gigabytes eller godt og vel 100.000.000 gange den lagerplads der i en moderne bærbar (anno 2014).

Det skulle være rigeligt til et generisk filsystem, så derfor er det mest interessante de andre features som Btrfs bringer med sig:

CoW - copy on write, der betyder at garanti for at enten er en fil gemt, eller også er den ikke - så ikke længere problemer med en delvis gemt fil og deraf følgende fejl-situationer.

Checksums gør det muligt at opdage fejl på lagermediet, og i visse setups (RAID) er det endda muligt at genskabe de tabte data.

Snapshots, som følge af CoW kan der laves et snapshot af filsystemet på et øjeblik og uden nogen brug af plads (indtil der gemmes nye filer).

Compression - med indbygget komprimering fylder data mindre på harddisken, og er der tale om en mekanisk harddisk går det også hurtigere eftersom der er mindre der skal gemmes.

RAID, med flere harddiske kan der optimeres for forbedret sikkerhed, forbedret hastighed, eller endda begge dele ved at kombinere dem.

Send/receive er en metode til at lave inkrementel opdatering fra et filsystem til et andet, til f.eks. at vedligeholde et spejlbilledet af et filsystem.

Scrub/defragmentation kan foregå mens filsystemet er online, dvs. brugere kan fortsat tilgå data på filsystemet mens der "ryddes op".

Subvolumes der gør det muligt at opdele filsystemet i forskellige dele, og bruge dem som filsystemer i sig selv.

Der er mange andre smarte detaljer, men de ovenstående er dem man som administrator først og fremmest kommer i kontakt med.

Det er værd at pointere at der til stadighed udvikles på Btrfs, og man tjekke hvilke dele der er meldt klar til produktionsbrug. Når det er sagt så har vi selv brugt Btrfs i knapt et år uden problemer og er i gang med at implementere det på flere servere.

Btrfs wiki