Weekend Prosjekt: Bli kjent Btrfs

The Butter /Better /B-tree filsystem, Btrfs, er visstnok skjebnebestemt til å bli standard Linux filsystem. Hva gjør den spesiell, og hva som er galt med gode gamle prøvd-og-sann Ext2 /3/4

For mange Filsystemer

Linux støtter en gigantisk rekke filsystemer:? Flyttbare medier, nettverk, cluster, sky, journalføring, virtuell maskin, komprimert, innebygd, hardware inter-connect, pseudo-filsystem som lever kun i minnet, Mac- og Windows-filsystemer, og mange flere.

Du er utvilsomt kjent med det generiske Formålet Ext2 /3/4, JFS, XFS, og Reiser filsystemer som vi bruker på våre stasjonære PCer og servere. Med alle disse filsystemer fylle opp landskapet, hva er poenget med enda en? (Det er enda YAFFS: Yet Another Flash File System.)

Poenget er å møte nye behov og arbeidsbelastning, og bygge funksjonalitet inn i filsystemet heller enn å stole på en flokk med eksterne verktøy. Btrfs er heller som en blanding av funksjoner fra ReiserFS og ZFS, Sun avanserte kopi-on-write /volum manager /RAID /snapshot /etc. filsystem.

Mange Linux-brukere lengter etter en innfødt port av ZFS, men dens GPL-inkompatibel lisens (solen CDDL) sørger for at Suns implementering (nå Oracle) ikke kan inkluderes i Linux-kjernen.

Likevel kan du ikke holde en god hacker ned, og så er det to porter for Linux. En er ZFS på FUSE, som går ZFS i bruker plass. Det er inkludert i mange distroer, så det er en enkel installasjon. Den andre er ZFS på Linux. Dette er en opphopning av ZFS som en kjernemodul for brukere å installere, og slik at du får støtte kernel uten GPL brudd fordi det ikke er fordelt med kjernen.

Det er flott å ha disse alternativene til å prøve ut ZFS, og jeg applaudere vedlikehold av disse ZFS prosjekter. Likevel ser det ut som Btrfs kommer til å ta plassen som ZFS kunne ha eid ble det ikke for sin uforenlig lisens. Oracle er den primære sponsor av Btrfs, og planlegger å gjøre det standard filsystem i Oracle Unbreakable Linux gang i 2012. Btrfs er ikke bare en Oracle-prosjektet, men har mye av samfunnet støtte fra Linux-kjernen team og mange Linux-distribusjoner. Oddsen er det er inkludert i din favoritt distro. (Kjør cat /proc /filsystemer for å se hva filsystemer Linux støtter.)

Btrfs Funksjoner

Så hva betyr dette fantastiske super-duper filsystem gjøre? Hva med en hendig bullet-spiss listen for å svare på dette spørsmålet?

  • RAID 0, 1, 10

    COW

    inkrementell backup

    Online defrag

    gzip og LZO komprimering

    Space-effektiv pakking av små filer

    Dynamic inode tildeling

    Checksums på data og metadata

    krympe og vokse lagringsvolumer

    Extents

    Øyeblikks

    16 EIB maksimal filstørrelse

    Planlagte funksjoner inkluderer RAID 5 og 6, deduplisering, og en klar-for-primetime filsystem kontrolløren, btrfsck. Du kan prøve ut btrfsck nå fordi den er inkludert i btrfsprogs. (Som selvfølgelig Debian /Ubuntu /Mint osv endringer btrfs-verktøy, og Fedora kaller det btrfs-progs.) Men det er ikke klar for produksjonssystemer ennå.

    Å sette siste hånd på btrfsck er siste store steget før Oracle gjør det standard filsystem i deres neste Unbreakable Linux release. Fedora 16 Linux skulle misligholde til Btrfs, men nå er de sikter til Fedora 17 mai 2012.

    Jeg er en stor fan av RAID 10, som er RAID 1 + 0, speiling og striping. Det er dyrt med disker fordi bare 50% av den totale diskkapasitet går til lagring. Men det er enkel, robust og rask. Halv diskene kan svikte uten å miste data. Jeg fikk brent ut på RAID 5 og 6 år siden; kanskje jeg hadde dårlig RAID mojo, men jeg har opplevd mye feil, og de er treg. Det virket systemer under min omsorg var flinkere til å spre paritetsfeil enn fungerer riktig. Så for meg, kan RAID 5 og 6 sitte på baksiden brenner på ubestemt tid så lenge jeg har RAID 10.

    16 EIB er exbibytes, en måling nær oftere brukt exabyte. En exbibyte er 1024 pebibytes. Til sammenligning Ext4 maxes ut på volumer med en maksimal størrelse på én exbibyte og filstørrelser opp 16 tebibytes. Men du sier det, er det mye.

    Btrfs inneholder ingen databasespesifikke optimaliseringer, og er ikke en gruppering filsystem. Den er designet for å håndtere svært store lagringsvolumer, beskytte data, forenkle stort lagringsadministrasjon, og lese og skrive fort

    COW, Volumes, Snapshots

    En COW &ndash.; kopiere på skrive – filsystem er ekstra forsiktig med å skrive dine data. Når du gjør en endring i en fil, blir de gamle dataene ikke overskrevet. I stedet tildeler filsystemet nye blokker for de nye dataene, og kun de endrede data er gitt en ny tildeling. Ulempen er dette skaper fragmentering. Så Btrfs støtter online defragmentering med

     btrfs filsystem defragmentere 

    kommandoen.

    COW filsystemer egner seg til enkle, effektive snapshots, og Btrfs støtter både stillbilder og tilbakerulling. Den enkle trygg måte å prøve Btrfs er å opprette en ny partisjon for testing. GParted støtter Btrfs, som du kan se i figur 1.


    Deretter montere denne partisjonen. I dette eksempelet er monteringspunkt er /btrfs-volum:

    # mount -t btrfs /dev /sda8 /btrfs-volum

    Nå kan vi lage en subvolume i denne partisjonen. Subvolumes er kult. De er som uavhengige filsystemer inne moder filsystem, med sine egne mountpoints og alternativer. Lag en denne måten:

    # btrfs subvolume skape btrfs-volum /test

    Og det er alt som skal til. Du vil se dette som en vanlig mappe på filbehandler (figur 2). Du trenger ikke å bekymre deg for tildeling av plass som du gjør med vanlige partisjoner, fordi subvolumes automatisk snag hva plassen de trenger fra den overordnede volum som du legger data til dem. Så du kan gå videre og kopiere noen filer inn i test subvolume. Du trenger root rettigheter, eller du kan klusse med filrettigheter på vanlig måte, og endre dem til en svakstilte bruker:

    La oss nå lage et øyeblikksbilde.

     # btrfs subvolume snapshot btrfs -VOLUME /test btrfs-volum /test-snapshot-1Create et øyeblikksbilde av 'btrfs-volum /test "i" btrfs volum /test-snapshot-1' 

    Snapshots er svært effektiv fordi flere stillbilder har samme originalfilene og kopierer bare endringene. Du kan liste opp alle stillbildene i samme volum; du trenger for å nevne en av dem og deretter alle av dem vises:

     # btrfs subvolume liste btrfs-volum /testID 256 øverste nivå 5 banen testID 257 øverste nivå 5 banetest-snapshot-en 

    Dette viser også at Btrfs ser snapshots og subvolumes som de samme tingene. Dine snapshots kan kopieres andre steder som backup, eller monteres uavhengig til ulike mountpoints. Lyst til å rulle tilbake til en tidligere snapshot? Først satt snapshot som standard. Du trenger snapshot ID, og ​​deretter banen:

    # btrfs subvolume set-standard 257 btrfs-volum /

    Så avmontere subvolume, og deretter Monter:

     # umount btrfs volum # mount -t btrfs /dev /sda8 btrfs-volum 

    Er det ikke kult? Etter å ha laget subvolumes du ikke trenger å montere den overordnede volum.

    Prognose

    Btrfs er fortsatt røff i kantene, og dokumentasjon og administrasjonsverktøyene er ufullstendig. Hvis du har brukt ZFS deretter Btrfs føles som en clunky kopi, fordi administrere ZFS er raskere og enklere. ZFS har flere års forsprang på Btrfs, though. Jeg forventer Btrfs vil bedre seg raskt som det blir mer utbredt.

    Les mer om Btrfs med The Linux Foundation gratis Linux trening tutorial Introduksjon til Btrfs. En full kursplanen for Linux SysAmdin trening er også tilgjengelig. Anmeldelser