Hvor å opprette og administrere Btrfs Snapshots og tilbakerulling på Linux (del 2)

I "Slik behandler Btrfs Storage Pools, Subvolumes Og Snapshots på Linux (del 1)" vi lærte å lage en fin liten Btrfs testlab, og hvordan du oppretter en Btrfs lagringsvolum. Nå skal vi lære å lage levende øyeblikksbilder når vi vil, og hvordan du kan rulle filsystemet tilbake til et punkt til en vilkårlig tidspunkt. Dette erstatter ikke backup. Men det er et flott verktøy for raskt å gå tilbake i tid til en kjent god tilstand. Hvis du gjør et rot, for eksempel et mislykket oppgradering, er dette en fin måte å holde systemet opp mens du finne ut hva du skal gjøre.

sval Subvolumes

En av Btrfs ' kuleste og mest nyttige funksjonene er subvolumes
. En Btrfs subvolume oppfører seg litt som en blokk enhet, selv om det ikke er en blokk enhet, men heller skille et POSIX fil navnerom. Dette er en genial konstruksjon som lar oss enkelt opprette og administrere et Btrfs lagring pool alle fulle av subvolumes at vi kan montere og avmontere uavhengig som blokk enheter, men uten plager med disk partisjonering. Subvolumes ikke har en fast størrelse, men er avsatt plass dynamisk fra lagringsområde som data blir tilsatt og fjernet. Vi kan lage subvolumes like enkelt som å lage nye kataloger, og kan ha hekket subvolumes akkurat som å ha underkataloger innsiden av kataloger. Det er alltid en topp-nivå standard subvolume som er montert som standard, og alle dens subvolumes. Vi kan endre standard, og kan montere en subvolume uten montering på øverste nivå subvolume som inneholder det.

Et øyeblikksbilde er en spesiell type subvolume. Det er en kopi av en subvolume, uten foreldre eller barn subvolumes. Øyeblikksbildet gjør ikke kopier av filer, men deler data og metadata for den opprinnelige subvolume, så det er plassbesparende og ekstremt rask å lage. Den oppfører seg uavhengig av den opprinnelige subvolume, så når du legger til filer i det de ikke vil dukke opp i den opprinnelige. Du kan lage øyeblikksbilder av øyeblikksbilder, og hver og en er en diskret enhet.

Opprette og fjerne Subvolumes

Opprette nye subvolumes er like enkelt som å lage nye kataloger, ved hjelp av btrfs kommandoen. Følgende eksempler skaper tre nye subvolumes på et montert toppnivå subvolume:

 # btrfs subvolume opprette /btrfs /IG1- # btrfs subvolume opprette /btrfs /SUB2 # btrfs subvolume opprette /btrfs /SUB2 /sub3 

Hver ny subvolume automatisk montert da det er skapt, og det ser ut som en vanlig katalog (figur 1)


Selvfølgelig er det en spesiell btrfs kommandoen for å se dine subvolumes:.

 # btrfs subvolume liste /btrfsID 260 gen 22 øverste nivå 5 banen sub1ID 261 gen 22 øverste nivå 5 banen sub2ID 262 gen 22 øverste nivå 5 banen SUB2 /sub3 

For å montere en subvolume helt av seg selv, uten toppen -nivå subvolume, først avmontere toppnivå subvolume, og deretter montere subvolume bruker sin ID:

 # umount /btrfs /# mount -o subvolid = 261 /dev /sdd1 /btrfs /

I brukte /dev /sdd1 fordi det er en del av det samme Btrfs lagring bassenget som /dev /sdd3-- huske hvordan vi kan bruke en hvilken som helst blokk enhet i bassenget for å montere den? Nå la oss gjøre subvolid 261 standard subvolume:

 # btrfs subvolume set-standard 261 /btrfs 

Så demontere den, og Monter det akkurat som toppnivå subvolume eksempel:

 # umount /btrfs /# mount /dev /sdd3 /btrfs /

Og se, du vil bare se én subvolume. Å sette alt tilbake slik det var, re-sette standard med 0-ID, som alltid er på øverste nivå subvolume:

 # btrfs subvolume sette standard 0 /btrfs /

Avmonter, remount , og alt er tilbake til standard. Ønsker å slette en subvolume? Sørg for at det er montert, og deretter lett peasey:

 # btrfs subvolume slette /btrfs /SUB2 /sub3 

Du kan ikke slette en subvolume som inneholder en annen subvolume, så du må starte på slutten av linjen og jobbe bakover.

Hvordan du konfigurerer en subvolume montere i /etc /fstab? Husk at alt du kan gjøre med mount kommandoen du kan gjøre i /etc /fstab. Gå tilbake til blkid eksempel (i del 1) for å få riktig etikett eller UUID, og ​​deretter hente din subvolume ID fra btrfs subvolume liste kommandoen. Sette det hele sammen og din /etc /fstab entry ser slik ut:

 LABEL = testbtrfs /btrfs mislighold, subvolid = 269 0 0 

Run mount /btrfs å teste den. Jepp, det er så enkelt.

Playing With Snapshots

Nå er vi klare til å gjøre øyeblikksbilder, som er så morsomt og enkelt vil du danse med lykke. Først kopiere noen filer til en av dine subvolumes, og deretter lage et øyeblikksbilde av det:

 # btrfs subvolume snapshot /btrfs /IG1- /btrfs /IG1- /snapshot 

Selvfølgelig kan du erstatte det navnet du ønsker for snapshot
, som et tidsstempel eller nyttig beskrivelse. Din nye snapshot vil automatisk vises i filsystemet, akkurat som en ny subvolume, og den vil inneholde alle filene i den opprinnelige subvolume. Husk at den oppfører seg uavhengig av den opprinnelige subvolume, slik at du kan gjøre hva du vil uten å påvirke den opprinnelige.

Tenk deg at du gjør en stor rot og du ønsker å rulle tilbake til en fungerende stat. Det er en god ting du har gjort et snapshot før rotet skjedde. Først avmontere lemlestede subvolume, deretter montere snapshot på sin plass. Hvis du bestemmer deg for at du ikke trenger den lemlestede subvolume lenger, kan du slette det og gi nytt navn til øyeblikksbildet med samme navn som den lemlestede subvolume, så du trenger ikke å endre konfigurasjonsfiler som /etc /stab. Bruk vår gamle venn mv kommandoen for døpe:

 # mv /btrfs /snapshotname /btrfs /subvolumename 

Vil du ha en fin grafisk verktøy for å gjøre dette? SUSEs Snapper er en fantastisk grafisk Btrfs manager. Det finnes pakker for andre RPM distroer og noen Debian og Xubuntu pakker. En dag vil det være en standard app i de fleste distro repositories.


Et voilà! Mine venner, dette har vært strålende moro og takk for lesing. Sjå referanser for å lære mer.

Referanser

Matthias Eckermann sin LinuxCon 2 013 Btrfs slidesBtrfs WikiBtrfs FAQman btrfsman mvman mountman fstabman blkid Anmeldelser