ZFS

ZFS Snapshots-vejledning

ZFS Snapshots-vejledning

Snapshots er vigtige, uanset om du kører en simpel virtuel maskine på din hjemmecomputer, eller hvis det er en virksomhedsdatabase, der konstant opdateres og ændres. Det er vigtigt at have snapshots, det vil sige en kopi af hele filsystemet, som det var i en given periode.

Folk mister ofte oversigten over, hvor ting gik galt, en fil blev slettet, og ingen bemærkede, at den var væk. Der er gået flere sikkerhedskopier, og nu er du klar over, at der mangler en vigtig fil i alle tilgængelige sikkerhedskopier i de sidste 5 uger. I denne vejledning skal vi se, hvordan man bruger ZFS-snapshots og berører forskellige snapshotting-politikker, der fungerer optimalt med hensyn til både ressourceudnyttelse og genopretning.

Copy-On-Write-mekanisme

ZFS har både det høje niveauoversigt over filer og mapper og forstår, hvordan data skrives på disken. Når du fysisk skriver data på en disk, gøres det i diskrete blokke. Typisk kan blokstørrelsen gå op til 1 MB, men standard er normalt 128 KB. Dette betyder nu, at enhver ændring (læs, skriv eller sletning) vil ske i de diskrete blokke.

Copy-on-write-mekanismen sikrer, at når en blok ændres i stedet for at ændre blokken direkte, laver den en kopi af blokken med de nødvendige ændringer foretaget på den nye blok.

Dette er især nyttigt i tilfælde, hvor der f.eks. Er strømsvigt, og dit system går ned, mens nye data blev skrevet på disken. Hvis det sker i et traditionelt filsystem, bliver dine filer ødelagt eller efterlades med huller i dem. Men hvis du bruger ZFS, kan du miste den igangværende transaktion, som det skete, men dine filers sidste gyldige tilstand vil stadig være uberørt.

Snapshots er også afhængige af denne funktionalitet og faktisk ganske tungt. Når du tager et øjebliksbillede af et givet datasæt ('datasæt' er ZFS-udtrykket for et filsystem), registrerer ZFS bare tidsstemplet, da snapshotet blev lavet. Det er det! Ingen data kopieres, og der forbruges ikke noget ekstra lager.

Først når filsystemet ændres, og dataene i det adskiller sig fra snapshotet, begynder snapshotet at forbruge ekstra lagerplads. Hvad der sker under emhætten er dette - I stedet for at genbruge de gamle blokke over tid holder ZFS dem rundt. Dette forbedrer også lagerudnyttelsen. Hvis du snapshot et 20 GB datasæt og kun ændrer et par tekstfiler her og der, tager snapshotet muligvis kun nogle få MB plads.


Oprettelse af snapshots

For at demonstrere brugen af ​​snapshots, lad os starte med et datasæt, der har mange tekstfiler, bare for at holde sagen enkel. Den virtuelle maskine, jeg vil bruge til demoen, kører FreeBSD 11.1-RELEASE-p3, som er den seneste stabile udgivelse, der er tilgængelig på tidspunktet for denne skrivning. Rødfilsystemet er monteret på zroot pool som standard og mange af de velkendte mapper som / usr / src, / home osv er alle deres egne datasæt monteret på zroot. Hvis du ikke ved, hvad en pool (eller en zpool) betyder i ZFS-folkesproget, ville det være værd at læse om det, før du fortsætter.

Et af de mange filsystemer eller datasæt, der kommer som standard på FreeBSD er: zroot / usr / src

For at se egenskaberne skal du køre følgende kommando.

[e-mailbeskyttet]: ~ $ zfs liste zroot / usr / src

Som du kan se bruger den 633 MB lagerplads. Det indeholder hele kildetræet til operativsystemet.

Lad os tage et øjebliksbillede af zroot / usr / src

[e-mail-beskyttet]: ~ $ zfs snapshot zroot / usr / [e-mail-beskyttet]

Symbolet @ fungerer som en afgrænser mellem datasættet og snapshotnavnet, hvilket i vores tilfælde er øjebliksbillede1.

Lad os nu se på tilstanden af ​​øjebliksbillede, når det oprettes.

Ved at køre kommandoen:

zfs liste -rt alle zroot / usr / src

Du kan se, at øjebliksbillede ikke bruger ekstra plads, når det fødes. Der er heller ikke ledig plads, fordi det er et strengt læsbart datasæt, hvor øjebliksbillede ikke kan vokse, ændre eller krympe. Endelig er det ikke monteret overalt, hvilket gør det fuldstændigt isoleret fra det givne filsystemhierarki.

Lad os nu fjerne sbin bibliotek i / usr / src /

[e-mailbeskyttet]: $ rm / usr / src / sbin

Når man ser på øjebliksbillede, vil du nu se, at det er vokset,

Dette forventes, fordi kopiering-til-skriv-mekanismen er på arbejde her og sletning (eller ændring) af filerne har ført til, at flere af dataene kun er knyttet til øjebliksbillede og ikke datasættet, der faktisk er i brug.

Bemærk kolonnen REFER i ovenstående output. Det giver dig mængden af ​​tilgængelige data på datasættet, mens kolonnen USED bare viser dig, hvor meget plads der er optaget på den fysiske disk.

ZFS 'Copy-On-Write-mekanisme giver ofte disse kontraintuitive resultater, hvor sletning af en fil vil få det til at se ud som om der nu bruges mere plads end før. Efter at have læst hidtil ved du dog, hvad der faktisk sker!

Lad os gendanne før vi er færdige sbin fra øjebliksbillede1. For at gøre det skal du bare køre:

[email protected]: / usr / src $ zfs rollback zroot / usr / [email protected]

Politik om snapshotting

Det næste spørgsmål at stille er - Hvor ofte vil du tage snapshots? Selvom det kan variere fra en virksomhed til en anden, lad os tage eksemplet med en meget dynamisk database, der ændres så ofte.

Til at begynde med ville du begynde at tage snapshots hver sjette time eller deromkring, men fordi databasen ændres så meget, vil det snart blive umuligt at gemme alle de mange snapshots, der blev oprettet. Så det næste trin ville være at rense snapshots, der er ældre end for eksempel 48 timer.

Nu ville problemet være at gendanne noget, der er gået tabt for 49 timer siden. For at omgå dette problem kan du gemme et eller to snapshots fra den 48 timers historie og holde dem i en uge. Rens dem, når de bliver ældre end det.

Og hvis du kan fortsætte på denne måde, kan du klemme snapshots op til systemets oprindelse, bare i faldende rækkefølge. Endelig vil jeg gerne påpege, at disse snapshots KUN LÆSES, hvilket betyder, at hvis du bliver inficeret af en ransomware og får alle dine data krypteret (ændret). Disse snapshots vil sandsynligvis stadig være intakte.

OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...
SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...