Funkcia snímania súborového systému Btrfs využíva princíp Copy-on-Write (CoW). Takže to nezaberie veľa miesta na disku a môžete okamžite robiť snímky čiastkového zväzku.
Súborový systém Btrfs podporuje 2 typy snímok.
- Zapisovateľné snímky: Ak vytvoríte zapisovateľnú snímku, môžete neskôr upraviť súbory / adresáre tejto snímky. Toto je predvolený typ snímky súborového systému Btrfs.
- Snímky iba na čítanie: Ak vytvoríte snímku iba na čítanie, nebudete môcť neskôr upraviť súbory alebo adresáre tejto snímky.
Tento článok vám ukáže, ako vytvoriť zapisovateľné a iba na čítanie snímky vašich čiastkových zväzkov súborového systému Btrfs. Ukážem vám tiež, ako aktualizovať zapisovateľnú snímku a obnoviť súbory zo snímky. Ukážem vám, ako odstrániť aj snímku. Takže poďme na to.
Predpoklady
Vyskúšať príklady tohto článku,
- V počítači musíte mať nainštalovaný súborový systém Btrfs.
- Musíte mať pevný disk alebo SSD s minimálne 1 voľnou oblasťou (akejkoľvek veľkosti).
Mám 20 GB pevný disk sdb na mojom stroji Ubuntu. Vytvoril som 2 oddiely sdb1 a sdb2 na tomto pevnom disku. Použijem oddiel sdb1 v tomto článku.
$ sudo lsblk -e7
Váš pevný disk alebo SSD môže mať iný názov ako ja, rovnako tak aj jeho oddiely. Odteraz ich teda vymeňte za tie svoje.
Ak potrebujete pomoc s inštaláciou súborového systému Btrfs na Ubuntu, prečítajte si môj článok Inštalácia a používanie Btrfs na Ubuntu 20.04 LTS.
Ak potrebujete pomoc s inštaláciou súborového systému Btrfs na Fedore, prečítajte si môj článok Nainštalujte a používajte Btrfs na Fedore 33.
Vytvorenie súborového systému Btrfs
Ak chcete experimentovať s čiastkovými zväzkami Btrfs, musíte vytvoriť súborový systém Btrfs.
Vytvorenie súborového systému Btrfs s menovkou údaje na sdb1 oddiel, spustite nasledujúci príkaz:
$ sudo mkfs.btrfs -L dáta / dev / sdb1
Mal by sa vytvoriť súborový systém Btrfs.
Vytvorte adresár / údaje nasledujúcim príkazom:
$ sudo mkdir -v / data
Ak chcete pripojiť súborový systém Btrfs vytvorený na serveri sdb1 priečka v / údaje adresára, spustite nasledujúci príkaz:
$ sudo mount / dev / sdb1 / data
Súborový systém Btrfs by mal byť pripojený, ako vidíte na obrázku nižšie.
$ df -h / dáta
Príprava súborového systému Btrfs na snímky
V Btrfs môžete robiť snímky iba čiastkových zväzkov Btrfs. Pod koreňom je aj hlavný koreň súborového systému Btrfs. Môžete si teda vziať zálohu celého súborového systému Btrfs, ako aj konkrétnych čiastkových zväzkov.
V tejto časti sa vytvorí podväzok Btrfs / data / projects / web1 a vytvorte potrebné súbory pre ďalšie časti tohto článku nižšie. Vytvorím tiež adresár, kde si môžete ponechať svoje snímky. V ďalších častiach vám ukážem, ako robiť snímky (zapisovateľné aj iba na čítanie), aktualizovať zapisovateľnú snímku a obnovovať súbory zo snímky. Takže poďme na to.
Najskôr vytvorte nový adresár / dáta / projekty nasledovne:
$ sudo mkdir -v / data / projects
Vytvorte nový podväzok web1 v / dáta / projekty adresár takto:
$ sudo btrfs subvolume create / data / projects / web1
Vytvorte nový súbor index.html v / data / projects / web1 nasledujúci zväzok:
$ sudo nano / data / projects / web1 / index.html
Zadajte nasledujúce riadky kódov do index.html spis.
Hello World 4
Po dokončení stlačte
Vytvorte nový súbor štýl.css v / data / projects / web1 nasledujúci zväzok:
$ sudo nano / data / projects / web1 / style.css
Zadajte nasledujúce riadky kódov do štýl.css spis.
h1farba: zelená;
Po dokončení stlačte
Teraz / data / projects / web1 subvolume má index.html a štýl.css spis.
$ ls -lh / data / projects / web1
Chcem uchovať všetky snímky tohto súborového systému Btrfs v systéme Windows / data /.momentky adresár.
Vytvorte / data /.momentky adresár s nasledujúcim príkazom:
$ sudo mkdir -v / data /.momentky
Robenie snímok čiastkového zväzku
Ak chcete urobiť snímku / data / projects / web1 čiastkový objem do / data /.snímky / web1-2020-12-25 adresár (vytvorí sa automaticky), spustite nasledujúci príkaz:
$ sudo btrfs subvolume snapshot / data / projects / web1 / data /.snímky / web1-2020-12-25
Momentka z / data / projects / web1 adresár by mal byť vytvorený na serveri / data /.snímky / web1-2020-12-25 adresár.
Ako vidíte na snímke nižšie, nový podväzok .snímky / web1-2020-12-25 je vytvorený. Snímka je vlastne podväzok.
$ sudo btrfs zoznam / dáta čiastkového zväzku
Viac informácií o snímke, ktorú ste vytvorili, nájdete v priečinku / data /.snímky / web1-2020-12-25 adresár takto:
$ sudo btrfs subvolume show / data /.snímky / web1-2020-12-25
Ako vidíte, všetky súbory, ktoré sa nachádzajú v priečinku / data / projects / web1 subvolume sú v / data /.snímky / web1-2020-12-25 momentka.
$ strom -a / dáta
Obnova súborov zo snímok
V tejto časti vám ukážem, ako obnoviť súbory zo snímok Btrfs.
Najprv vám ukážem, ako zo snímky obnoviť jeden súbor.
Otvor / data / projects / web1 / index.html súbor s nano textovým editorom nasledovne:
$ sudo nano / data / projects / web1 / index.html
Vykonajte požadované zmeny.
Po dokončení stlačte
Ako vidíte, hlavný index.html súbor sa líši od súboru index.html súbor na snímke.
$ cat / data / projects / web1 / index.html$ mačka / dáta /.snímky / web1-2020-12-25 / index.html
Urobili sme zmeny v hlavnej časti index.html súbory sú nežiaduce a chceme obnoviť index.html súbor zo snímky.
Môžete obnoviť index.html súbor zo snímky nasledovne:
$ sudo cp -v / data /.snímky / web1-2020-12-25 / index.html / data / projects / web1 / index.html
Ako vidíte, index.html súbor sa obnoví zo snímky.
$ cat / data / projects / web1 / index.html$ mačka / dáta /.snímky / web1-2020-12-25 / index.html
Teraz sa pozrime, ako zo snímky obnoviť všetky súbory / adresáre.
Odstrániť všetky súbory z / data / projects / web1 snímka takto:
$ sudo rm -rv / data / projects / web1 / *
Ak chcete zo snímky obnoviť všetky súbory / adresáre, spustite nasledujúci príkaz:
$ sudo rsync -avz / data /.snímky / web1-2020-12-25 / / data / projects / web1 /
Ako vidíte, súbory / adresáre sa obnovia zo snímky.
$ ls -lh / data / projects / web1
Na záver sa pozrime, ako obnoviť súbory / adresáre zo snímky v zrkadlovom režime. V zrkadlovom režime budú súbory / adresáre subväzby rovnaké ako na snímke. Ak sú v podväzku nejaké súbory / adresáre, ktoré nie sú k dispozícii na snímke, budú odstránené.
Vytvorme nový súbor v podväzku, aby sme odlíšili strom súborov od snímky.
Vytvor PREČÍTAJ MA.TXT súbor v / data / projects / web1 nasledujúci zväzok:
$ echo "ahoj svet 5" | sudo tee / data / projects / web1 / README.TXT
Ako vidíte, strom súborov / data / projects / web1 subvolume sa líši od / data /.snímky / web1-2020-12-25 momentka.
$ strom -a / dáta
Ak chcete obnoviť súbory / adresáre z / data /.snímky / web1-2020-12-25 momentka do / data / projects / web1 subvolume v zrkadlovom režime, spustite nasledujúci príkaz:
$ sudo rsync -avz --delete / data /.snímky / web1-2020-12-25 / / data / projects / web1 /
Všetky súbory / adresáre / data / projects / web1 subvolume by mal byť obnovený (v zrkadlovom režime) z / data /.snímky / web1-2020-12-25 momentka.
Strom súborov súboru / data / projects / web1 podväzok a / data /.snímky / web1-2020-12-25 snímka by mala byť rovnaká.
Ako vidíte, index.html súbor a štýl.obsah súboru css je rovnaký v priečinku / data / projects / web1 podväzok a / data /.snímky / web1-2020-12-25 momentka.
Obsah index.html a štýl.css súbor v / data / projects / web1 subobjem.
$ cat / data / projects / web1 / index.html$ cat / data / projects / web1 / style.css
Obsah index.html a štýl.css súbor v / data /.snímky / web1-2020-12-25 momentka.
$ cat / data / projects / web1 / index.html$ cat / data / projects / web1 / style.css
Aktualizácia snímky
Súborový systém Btrfs štandardne sníma zapisovateľné snímky. Snímka Btrfs je ako podväzok. Takže môžete upraviť / aktualizovať súbory / adresáre zapisovateľnej snímky.
Aktualizujme index.html súbor v / data / projects / web1 subobjem.
Najskôr otvorte index.html súbor z / data / projects / web1 podväzok s nano textový editor nasledovne:
$ sudo nano / data / projects / web1 / index.html
Vykonajte požadované zmeny. Po dokončení stlačte
Ako vidíte, index.html súbor / data / projects / web1 subvolume sa líši od / data /.snímky / web1-2020-12-25 momentka.
$ cat / data / projects / web1 / index.html$ mačka / dáta /.snímky / web1-2020-12-25 / index.html
Chceš si nechať index.html súbor / data / projects / web1 subobjem.
Ak chcete aktualizovať index.html súbor v / data /.snímky / web1-2020-12-25 snímka, spustite nasledujúci príkaz:
$ sudo cp -v / data / projects / web1 / index.html / data /.snímky / web1-2020-12-25 / index.html
Ako vidíte, index.html súbor / data /.snímky / web1-2020-12-25 snímka je aktualizovaná.
Aktualizácia snímky je rovnako jednoduchá ako kopírovanie nových súborov do snímky.
Robenie snímok čiastkového zväzku iba na čítanie
Občas nechcete, aby sa snímky, ktoré ste nasnímali, nejako aktualizovali. V takom prípade môžete vytvoriť snímky iba na čítanie.
Napríklad na vytvorenie snímky iba na čítanie / data /.snímky / web1-2020-12-26 z / data / projects / web1 subvolume, spustite nasledujúci príkaz:
$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snímky / web1-2020-12-26
Ako vidíte, nový podväzok .snímky / web1-2020-12-26 je vytvorený.
$ sudo btrfs zoznam / dáta čiastkového zväzku
Ako vidíte, momentka / data /.snímky / web1-2020-12-26 je iba na čítanie.
$ sudo btrfs subvolume show / data /.snímky / web1-2020-12-26
Aktualizujme index.html súbor z / data / projects / web1 subobjem.
Ak to chcete urobiť, otvorte index.html súbor z / data / projects / web1 podväzok s nano textový editor nasledovne:
$ sudo nano / data / projects / web1 / index.html
Vykonajte požadované zmeny. Po dokončení stlačte
Ako vidíte, index.html v / data / projects / web1 subvolume sa líši od / data /.snímky / web1-2020-12-26 momentka.
$ cat / data / projects / web1 / index.html$ mačka / dáta /.snímky / web1-2020-12-26 / index.html
Pokúsime sa aktualizovať index.html súbor v / data /.snímky / web1-2020-12-26 momentka.
$ sudo cp -v / data / projects / web1 / index.html / data /.snímky / web1-2020-12-26 / index.html
Ako vidíte, nemôžete aktualizovať index.html súbor / data /.snímky / web1-2020-12-26 snímka, pretože snímka je iba na čítanie.
Odstraňuje sa snímka
Už som ti povedal, že snímka Btrfs je ako podväzok. Môžete teda odstrániť snímku Btrfs rovnako, ako odstránite čiastkový zväzok Btrfs. Rovnaký príkaz.
Takto je nainštalovaný strom súborov súborového systému Btrfs na serveri / údaje adresár vyzerá momentálne.
$ strom -a / dáta
Poďme odstrániť .snímky / web1-2020-12-25 momentka.
$ sudo btrfs zoznam / dáta čiastkového zväzku
Ak chcete odstrániť / data /.snímky / web1-2020-12-25 snímka, spustite nasledujúci príkaz:
$ sudo btrfs subvolume delete / data /.snímky / web1-2020-12-25
Ako vidíte, momentka .snímky / web1-2020-12-25 už nie je.
$ sudo btrfs zoznam / dáta čiastkového zväzku
Ako vidíte, súbory / adresáre / data /.snímky / web1-2020-12-25 snímka sa tiež odstráni.
$ strom -a / dáta
Záver
Tento článok vám ukázal, ako vytvoriť zapisovateľné a iba na čítanie snímky vašich podväzkov súborového systému Btrfs. Tiež som vám ukázal, ako aktualizovať zapisovateľnú snímku a obnoviť súbory zo snímky. Ukázal som vám, ako odstrániť aj snímku Btrfs. Tento článok by vám mal pomôcť začať s funkciou snímky Btrfs.