Slik håndterer Btrfs Storage Pools, Subvolumes Og Snapshots på Linux (del 1)

Før vi dykke inn ved hjelp Btrfs, hvordan er det uttales? Mange måter, som Bee Tre Eff Ess og Bee Tee Arr Eff Ess. Det er altfor mange stavelser, så jeg favoriserer Butter Eff Ess. Det høres fint, og alle liker smør. I denne todelte serien vil vi bygge en tre-node Btrfs lagring basseng og lære alt om administrerende snapshots, rollbacks og subvolumes. Del 1 dekker installasjon Btrfs, lage en enkel test lab, noe som skaper et lagringsvolum, og hva kommandoer for å bruke for å se hva som er i den. I del 2 skal vi opprette og administrere subvolumes, øyeblikksbilder og tilbakerulling.

Hva er Big Deal om Btrfs?

Btrfs er neste generasjons Linux filsystem alt stappe full av avanserte funksjoner utformet for maksimal beskyttelse av data og massive skalerbarhet som copy-on-write, lagringsbassenger, sjekksummer, støtte for 16, telle dem, 16-Exabyte filsystemer, journalføring, online vokse og krympe, og arealeffektive live-snapshots. Hvis du er vant til å bruke LVM og RAID å administrere datalagring kan Btrfs erstatte disse.

Et øyeblikksbilde er en kopi av en Btrfs subvolume
på et bestemt tidspunkt. Det er mange ganger raskere enn å lage en tradisjonell backup, og pådrar seg ingen nedetid. Du kan lage øyeblikksbilder av et filsystem når du vil, og deretter raskt rulle tilbake til noen av dem.

Forutsetninger

For å bruke Btrfs du trenger en nyere versjon av Debian, Arch Linux, Ubuntu, Opensuse, SUSE Enterprise Linux, Red Hat Enterprise Linux, eller Fedora Linux, og en ekstra tom harddisk å leke med, eller ~ 50 GB ledig plass på harddisken. Btrfs støttes allerede i kjerner av disse distroer (kjører cat /proc /filsystemer å sjekke), slik at du bare trenger å installere bruker plass verktøy btrfs-progs, som er btrfs-verktøy på Debian /Ubuntu /Mint /etc.

Du vil se en masse advarsler i dokumentasjonen Btrfs, og selv i produksjonen av noen kommandoer, at den ikke er klar for produksjonssystemer og til å ikke stole på det for noe viktig. Men gode mennesker på SUSE Enterprise Linux hevde det motsatte, og har støttet det for produksjonssystemer siden SLES 11 SP2. Jeg bruker det på min opensuse og Ubuntu systemer uten drama. Men, som de sier, kan din kjørelengde variere, og du bør gjøre din egen testing. I mellomtiden, det er gratis å teste og lære, så la oss komme sprengning.

Opprette en Btrfs Storage Pool

Først opprette tre partisjoner av lik størrelse å lage en enkel testing miljø. GParted er et flott grafisk app for å gjøre dette, og det skillevegger og skaper filsystemet samtidig (figur 1). Den Btrfs dokumentasjon anbefaler en mininum partisjonsstørrelse på en gigabyte. I eksemplene for denne opplæringen er de 12 gigabyte hver. Jeg bruker en tom 150GB SATA-harddisk for denne artikkelen (/dev /sdd) fordi det gjør meg litt tryggere å bruke en separat harddisk for filsystem testing. Du kan bruke en hvilken som helst harddisk på din PC som har nok ledig plass til å leke med, og 50 GB gir deg rikelig med plass til å gjøre gale Btrfs eksperimenter. Må være forsiktig med å ikke ødelegge ting du vil beholde, som din rot-filsystemet og data.


Nå som vi har tre Btrfs partisjoner å leke med, vil vi kombinere dem i en Btrfs lagring bassenget med mkfs.btrfscommand:

 # mkfs.btrfs -f -L testbtrfs /dev /sdd1 /dev /sdd2 /dev /sdd3WARNING! - Btrfs v0.20-RC1 ER EXPERIMENTALWARNING! - Se http://btrfs.wiki.kernel.org før usingadding enhet /dev /sdd2 id 2adding enhet /dev /sdd3 id 3FS opprettet label testbtrfs på /dev /sdd1 nodesize 4096 leafsize 4096 sectorsize 4096 størrelse 35.16GBBtrfs v0.20- RC1 

-f tvinger en overskriving av eksisterende filsystemer. -L Skaper et filsystem etikett, som er det navnet du ønsker å gi den. Med ingen andre alternativer denne kommandoen oppretter en tre-node RAID array, bruker RAID0 for data og RAID1 for metadata. RAID i Btrfs har noen forskjeller fra den gammeldagse RAID vi er vant til. I Btrfs RAID0 striper dine data på tvers av alle tilgjengelige enheter uten redundans. RAID1 speiler dine data i par, round-robin på tvers av alle tilgjengelige enheter, så det er alltid to kopier av metadata uavhengig av hvor mange enheter er i lagring bassenget.

se dine partisjoner og UUID
< p> Du kan bruke det velkjente gamle blkid kommandoen for å se dine nye Btrfs filsystemer (de UUID er forkortet i dette eksempelet):

 # blkid /dev /sdd * /dev /sdd: UUID = "e9b11649" UUID_SUB = "af7ce22c" type = "btrfs" /dev /sdd1: label = "testbtrfs" UUID = "b6a05243" UUID_SUB = "4770cbfb" type = "btrfs" /dev /sdd2: LABEL = "testbtrfs" UUID = "b6a05243" UUID_SUB = "b4524e3d" type = "btrfs" /dev /sdd3: label = "testbtrfs" UUID = "b6a05243" UUID_SUB = "7e279107" type = "btrfs" 
Montere Btrfs Storage Volume

Legg merke til at de UUID på de tre partisjoner i vår lagringsvolum er de samme, men de UUID_SUBs er unike. Hvis du kjører blkid kommandoen før du oppretter lagring bassenget, vil de UUID også være unike. Jeg liker å lage en spesiell testing directory-- i dette eksempelet, /btrfs - så jeg gjør ikke ved et uhell tannkjøtt opp noe viktig. Monterings en enkelt enhet monteringer det hele fungerer, som dette:

 # mkdir /btrfs # mount /dev /sdd3 /btrfs 

Du kan opprette en /etc /fstab oppføring på samme måte som for enhver filsystem . Bruk din etikett eller UUID (ikke UUID_SUB) som en av disse eksemplene:?

 MERKING = testbtrfs /btrfs btrfs defaults 0 0UUID = b6a05243 /btrfs btrfs defaults 0 0 
Hva er mine RAID-nivåer

Du kan sjekke RAID-nivåer med btrfs kommando:

 # btrfs filsystem df /btrfsData, RAID0: total = 3.00GB, brukt = 0.00Data: total = 8.00MB, brukt = 0.00System , RAID1: total = 8.00MB, brukt = 4.00KBSystem: total = 4.00MB, brukte = 0.00Metadata, RAID1: total = 1.00GB, brukt = 24.00KBMetadata: total = 8.00MB, brukt = 0.00 
Måle Tilgjengelig Space

Du kan ikke bruke vår gode ole du og df kommandoer for å måle brukt og ledig plass på montert Btrfs filsystem, fordi de ikke forstår Btrfs metadata, RAID, og ​​hvordan den klarer lagring. Måling ledig plass på et Btrfs volum er vanskelig på grunn av disse faktorene. Jeg kopierte 7 GB med filer inn i min lille test volum, og dette er hva det ser ut med thebtrfs kommando:

 # btrfs filsystem df btrfs /Data, RAID0: total = 9.00GB, brukt = 6.90GBData: total = 8.00MB, brukt = 0.00System, RAID1: total = 8.00MB, brukt = 4.00KBSystem: total = 4.00MB, brukte = 0.00Metadata, RAID1: total = 1.00GB, brukt = 46.01MBMetadata: total = 8.00MB, brukt = 0.00 

Du kan også prøve den på noen rå enhet i lagringsområde:

 # btrfs filsystem vis /dev /sdd1failed å åpne /dev /sr0: Ingen mellom foundLabel: 'testbtrfs' UUID: b6a05243 Totalt enheter 3 FS byte brukes 6.95GB Devid tre størrelser 11.72GB brukt 4.01GB sti /dev /sdd3 Devid to størrelser 11.72GB brukt 3.01GB sti /dev /sdd2 Devid en størrelse 11.72GB brukt 4.02GB sti /dev /sdd1 

Allrighty deretter , har vi en fin Btrfs lagring basseng å spille med, og vet hvordan de skal rote rundt i den. Kom tilbake for del 2 for å lære å lage, fjerne og administrere snapshots og subvolumes.