Funkce snímku souborového systému Btrfs používá princip kopírování na zápis (CoW). Takže to nezabere mnoho místa na disku a můžete okamžitě pořizovat snímky dílčího svazku.
Souborový systém Btrfs podporuje 2 typy snímků.
- Zapisovatelné snímky: Pokud pořídíte zapisovatelný snímek, můžete později upravit soubory / adresáře tohoto snímku. Toto je výchozí typ snímku souborového systému Btrfs.
- Snímky jen pro čtení: Pokud pořídíte snímek jen pro čtení, nemůžete později upravit soubory / adresáře tohoto snímku.
Tento článek vám ukáže, jak pořídit zapisovatelné a jen pro čtení snímky vašich dílčích svazků souborového systému Btrfs. Ukážu vám také, jak aktualizovat zapisovatelný snímek a obnovit soubory ze snímku. Ukážu vám, jak také odstranit snímek. Pojďme tedy začít.
Předpoklady
Vyzkoušet příklady tohoto článku,
- V počítači musíte mít nainstalovaný souborový systém Btrfs.
- Musíte mít pevný disk nebo SSD s alespoň 1 volným oddílem (jakékoli velikosti).
Mám 20 GB pevný disk sdb na mém stroji Ubuntu. Vytvořil jsem 2 oddíly sdb1 a sdb2 na tomto pevném disku. Budu používat oddíl sdb1 v tomto článku.
$ sudo lsblk -e7
Váš pevný disk nebo SSD může mít jiný název než můj, stejně tak i oddíly. Od nynějška je tedy vyměňte za své.
Pokud potřebujete pomoc s instalací souborového systému Btrfs na Ubuntu, podívejte se na můj článek Nainstalujte a používejte Btrfs na Ubuntu 20.04 LTS.
Pokud potřebujete pomoc s instalací souborového systému Btrfs na Fedoře, podívejte se na můj článek Nainstalujte a používejte Btrfs na Fedoře 33.
Vytvoření souborového systému Btrfs
Chcete-li experimentovat s dílčími svazky Btrfs, musíte vytvořit souborový systém Btrfs.
Chcete-li vytvořit souborový systém Btrfs se štítkem data na sdb1 oddíl, spusťte následující příkaz:
$ sudo mkfs.btrfs -L data / dev / sdb1
Měl by být vytvořen souborový systém Btrfs.
Vytvořte adresář /data s následujícím příkazem:
$ sudo mkdir -v / data
Chcete-li připojit souborový systém Btrfs vytvořený na serveru sdb1 oddíl v /data adresáře, spusťte následující příkaz:
$ sudo mount / dev / sdb1 / data
Souborový systém Btrfs by měl být připojen, jak vidíte na následujícím obrázku.
$ df -h / data
Příprava souborového systému Btrfs na snímky
V Btrfs můžete pořizovat pouze snímky dílčích svazků Btrfs. Hlavní kořen souborového systému Btrfs je také dílčím svazkem. Můžete si tedy vzít zálohu celého souborového systému Btrfs i konkrétních dílčích svazků.
V této části se vytvoří dílčí svazek Btrfs / data / projects / web1 a vytvořte potřebné soubory pro další části tohoto článku níže. Také vytvořím adresář, kde si můžete nechat své snímky. V dalších částech vám ukážu, jak pořizovat snímky (zapisovatelné i jen pro čtení), aktualizovat zapisovatelný snímek a obnovit soubory ze snímku. Pojďme tedy začít.
Nejprve vytvořte nový adresář / data / projekty jak následuje:
$ sudo mkdir -v / data / projects
Vytvořte nový dílčí svazek web1 v / data / projekty adresář takto:
$ sudo btrfs subvolume create / data / projects / web1
Vytvořte nový soubor index.html v / data / projects / web1 dílčí svazek takto:
$ sudo nano / data / projects / web1 / index.html
Zadejte následující řádky kódů do index.html soubor.
Hello World 4
Až budete hotovi, stiskněte
Vytvořte nový soubor styl.css v / data / projects / web1 dílčí svazek takto:
$ sudo nano / data / projects / web1 / style.css
Zadejte následující řádky kódů do styl.css soubor.
h1barva: zelená;
Až budete hotovi, stiskněte
Nyní / data / projects / web1 dílčí svazek má index.html a styl.css soubor.
$ ls -lh / data / projects / web1
Chci zachovat všechny snímky tohoto souborového systému Btrfs v souboru /data/.snímky adresář.
Vytvořte /data/.snímky adresář s následujícím příkazem:
$ sudo mkdir -v / data /.snímky
Pořizování snímků dílčího svazku
Chcete-li pořídit snímek / data / projects / web1 subvolume do /data/.snímky / web1-2020-12-25 adresář (bude vytvořen automaticky), spusťte následující příkaz:
$ sudo btrfs subvolume snapshot / data / projects / web1 / data /.snímky / web1-2020-12-25
Snímek z / data / projects / web1 adresář by měl být vytvořen na /data/.snímky / web1-2020-12-25 adresář.
Jak vidíte na následujícím obrázku, nový dílčí svazek .snímky / web1-2020-12-25 je vytvořen. Snímek je ve skutečnosti dílčí svazek.
$ sudo btrfs seznam / data dílčích svazků
Můžete vidět více informací o snímku, který jste vytvořili v /data/.snímky / web1-2020-12-25 adresář takto:
$ sudo btrfs subvolume show / data /.snímky / web1-2020-12-25
Jak vidíte, všechny soubory, které jsou v / data / projects / web1 subvolume jsou v /data/.snímky / web1-2020-12-25 momentka.
$ strom -a / data
Obnova souborů ze snímků
V této části vám ukážu, jak obnovit soubory ze snímků Btrfs.
Nejprve vám ukážu, jak ze snímku obnovit jeden soubor.
Otevři / data / projects / web1 / index.html soubor s nano textovým editorem následujícím způsobem:
$ sudo nano / data / projects / web1 / index.html
Proveďte požadované změny.
Až budete hotovi, stiskněte
Jak vidíte, hlavní index.html soubor se liší od souboru index.html soubor ve snímku.
$ cat / data / projects / web1 / index.html$ kočka / data /.snímky / web1-2020-12-25 / index.html
Udělali jsme změny v hlavní části index.html soubory jsou nežádoucí a my chceme obnovit index.html soubor ze snímku.
Můžete obnovit index.html soubor ze snímku následujícím způsobem:
$ sudo cp -v / data /.snímky / web1-2020-12-25 / index.html / data / projects / web1 / index.html
Jak vidíte, index.html soubor je obnoven ze snímku.
$ cat / data / projects / web1 / index.html$ kočka / data /.snímky / web1-2020-12-25 / index.html
Nyní se podívejme, jak obnovit všechny soubory / adresáře ze snímku.
Odeberte všechny soubory z / data / projects / web1 snímek takto:
$ sudo rm -rv / data / projects / web1 / *
Chcete-li ze snímku obnovit všechny soubory / adresáře, spusťte následující příkaz:
$ sudo rsync -avz / data /.snímky / web1-2020-12-25 / / data / projects / web1 /
Jak vidíte, soubory / adresáře se obnovují ze snímku.
$ ls -lh / data / projects / web1
Nakonec se podívejme, jak obnovit soubory / adresáře ze snímku v zrcadlovém režimu. V zrcadlovém režimu budou soubory / adresáře dílčího svazku stejné jako na snímku. Pokud jsou v dílčím svazku nějaké soubory / adresáře, které nejsou ve snímku k dispozici, budou odstraněny.
Vytvořme nový soubor v dílčím svazku, abychom odlišili strom souborů od snímku.
Vytvořit PŘEČTĚTE SI.txt soubor v / data / projects / web1 dílčí svazek takto:
$ echo "ahoj svět 5" | sudo tee / data / projects / web1 / README.txt
Jak vidíte, strom souborů / data / projects / web1 subvolume se liší od /data/.snímky / web1-2020-12-25 momentka.
$ strom -a / data
Obnovení souborů / adresářů z /data/.snímky / web1-2020-12-25 snímek do / data / projects / web1 subvolume v zrcadlovém režimu, spusťte následující příkaz:
$ sudo rsync -avz --delete / data /.snímky / web1-2020-12-25 / / data / projects / web1 /
Všechny soubory / adresáře / data / projects / web1 subvolume by měl být obnoven (v zrcadlovém režimu) z /data/.snímky / web1-2020-12-25 momentka.
Strom souborů / data / projects / web1 subvolume a /data/.snímky / web1-2020-12-25 snímek by měl být stejný.
Jak vidíte, index.html soubor a styl.obsah souboru css je stejný v souboru / data / projects / web1 subvolume a /data/.snímky / web1-2020-12-25 momentka.
Obsah index.html a styl.css soubor v / data / projects / web1 dílčí svazek.
$ cat / data / projects / web1 / index.html$ cat / data / projects / web1 / style.css
Obsah index.html a styl.css soubor v /data/.snímky / web1-2020-12-25 momentka.
$ cat / data / projects / web1 / index.html$ cat / data / projects / web1 / style.css
Aktualizace snímku
Ve výchozím nastavení pořizuje souborový systém Btrfs zapisovatelné snímky. Snímek Btrfs je jako podobjem. Takže můžete upravit / aktualizovat soubory / adresáře zapisovatelného snímku.
Pojďme aktualizovat index.html soubor v / data / projects / web1 dílčí svazek.
Nejprve otevřete index.html soubor z / data / projects / web1 dílčí svazek s nano textový editor takto:
$ sudo nano / data / projects / web1 / index.html
Proveďte požadované změny. Až budete hotovi, stiskněte
Jak vidíte, index.html soubor / data / projects / web1 subvolume se liší od /data/.snímky / web1-2020-12-25 momentka.
$ cat / data / projects / web1 / index.html$ kočka / data /.snímky / web1-2020-12-25 / index.html
Chcete si ponechat index.html soubor / data / projects / web1 dílčí svazek.
Chcete-li aktualizovat index.html soubor v /data/.snímky / web1-2020-12-25 snímek, spusťte následující příkaz:
$ sudo cp -v / data / projects / web1 / index.html / data /.snímky / web1-2020-12-25 / index.html
Jak vidíte, index.html soubor /data/.snímky / web1-2020-12-25 snímek je aktualizován.
Aktualizace snímku je stejně snadná jako kopírování nových souborů do snímku.
Pořizování snímků dílčího svazku pouze pro čtení
Někdy nechcete, aby se snímky, které jste pořídili, jakýmkoli způsobem aktualizovali. V takovém případě můžete vytvořit snímky jen pro čtení.
Například k vytvoření snímku jen pro čtení /data/.snímky / web1-2020-12-26 z / data / projects / web1 subvolume, spusťte následující příkaz:
$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snímky / web1-2020-12-26
Jak vidíte, nový dílčí svazek .snímky / web1-2020-12-26 je vytvořen.
$ sudo btrfs seznam / data dílčích svazků
Jak vidíte, snímek /data/.snímky / web1-2020-12-26 je jen pro čtení.
$ sudo btrfs subvolume show / data /.snímky / web1-2020-12-26
Pojďme aktualizovat index.html soubor z / data / projects / web1 dílčí svazek.
Chcete-li to provést, otevřete index.html soubor z / data / projects / web1 dílčí svazek s nano textový editor takto:
$ sudo nano / data / projects / web1 / index.html
Proveďte požadované změny. Až budete hotovi, stiskněte
Jak vidíte, index.html v / data / projects / web1 subvolume se liší od /data/.snímky / web1-2020-12-26 momentka.
$ cat / data / projects / web1 / index.html$ kočka / data /.snímky / web1-2020-12-26 / index.html
Zkusme aktualizovat index.html soubor 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
Jak vidíte, nemůžete aktualizovat index.html soubor /data/.snímky / web1-2020-12-26 snímek, protože snímek je jen pro čtení.
Odebrání snímku
Už jsem ti řekl, že snímek Btrfs je jako subvolum. Můžete tedy odebrat snímek Btrfs stejně jako odeberete dílčí svazek Btrfs. Stejný příkaz.
Takto je strom souborů souborového systému Btrfs namontován na /data adresář vypadá v tuto chvíli.
$ strom -a / data
Pojďme odstranit .snímky / web1-2020-12-25 momentka.
$ sudo btrfs seznam / data dílčích svazků
Chcete-li odstranit /data/.snímky / web1-2020-12-25 snímek, spusťte následující příkaz:
$ sudo btrfs subvolume delete / data /.snímky / web1-2020-12-25
Jak vidíte, snímek .snímky / web1-2020-12-25 už není.
$ sudo btrfs seznam / data dílčích svazků
Jak vidíte, soubory / adresáře /data/.snímky / web1-2020-12-25 snímek je také odstraněn.
$ strom -a / data
Závěr
Tento článek vám ukázal, jak pořídit zapisovatelné a jen pro čtení snímky vašich dílčích svazků souborového systému Btrfs. Také jsem vám ukázal, jak aktualizovat zapisovatelný snímek a obnovit soubory ze snímku. Ukázal jsem vám, jak také odstranit snímek Btrfs. Tento článek by vám měl pomoci začít s funkcí snímku Btrfs.