Btrfs

Как да използвам Btrfs Snapshots

Как да използвам Btrfs Snapshots
Файловата система Btrfs има вградена поддръжка на моментна снимка на ниво файлова система. Можете да създадете подтом във вашата файлова система Btrfs и да правите моментни снимки на файловете / директориите в този подтом. Правенето на моментна снимка на подтома ще запази състоянието на файловете / директориите в този подтом. Можете да възстановите всички файлове / директории на подтома от моментната снимка, в случай че имате нужда от нея.

Функцията за моментна снимка на файловата система Btrfs използва принципа Copy-on-Write (CoW). Така че, това не отнема много дисково пространство и можете да правите моментални снимки на подтома.

Файловата система Btrfs поддържа 2 вида моментни снимки.

  1. Могат да се записват моментни снимки Ако направите снимка с възможност за запис, можете да промените файловете / директориите на тази снимка по-късно. Това е стандартният тип моментна снимка на файловата система Btrfs.
  2. Моментни снимки само за четене: Ако направите моментна снимка само за четене, не можете да промените файловете / директориите на тази снимка по-късно.

Тази статия ще ви покаже как да правите снимки с възможност за запис и само за четене на подтомовете на файловата система Btrfs. Също така ще ви покажа как да актуализирате записваем моментна снимка и да възстановите файлове от моментна снимка. Ще ви покажа и как да премахнете моментна снимка. И така, нека започнем.

Предпоставки

За да изпробвате примерите от тази статия,

Имам 20 GB твърд диск sdb на моята машина на Ubuntu. Създал съм 2 дяла sdb1 и sdb2 на този твърд диск. Ще използвам дяла sdb1 в тази статия.

$ sudo lsblk -e7

Вашият твърд диск или SSD може да има различно име от моето, така че и дяловете. Така че, не забравяйте да ги замените от сега нататък.

Ако имате нужда от помощ при инсталирането на файловата система Btrfs на Ubuntu, проверете статията ми Инсталирайте и използвайте Btrfs на Ubuntu 20.04 LTS.

Ако имате нужда от помощ при инсталирането на файловата система Btrfs на Fedora, проверете статията ми Инсталирайте и използвайте Btrfs на Fedora 33.

Създаване на файлова система Btrfs

За да експериментирате с подтомове Btrfs, трябва да създадете файлова система Btrfs.

За да създадете файлова система Btrfs с етикета данни на sdb1 дял, изпълнете следната команда:

$ sudo mkfs.btrfs -L data / dev / sdb1

Трябва да се създаде файлова система Btrfs.

Създайте директория /данни със следната команда:

$ sudo mkdir -v / data

За да монтирате файловата система Btrfs, създадена в sdb1 дял в /данни директория, изпълнете следната команда:

$ sudo mount / dev / sdb1 / data

Файловата система Btrfs трябва да бъде монтирана, както можете да видите на екранната снимка по-долу.

$ df -h / данни

Подготовка на файловата система Btrfs за моментни снимки

В Btrfs можете да правите моментни снимки само на Btrfs подтоми. Основният корен на файлова система Btrfs също е подтом. Така че, можете да вземете резервно копие на цялата файлова система Btrfs, както и на конкретни подтоми.

Този раздел ще създаде подтом Btrfs / data / projects / web1 и създайте необходимите файлове за следващите раздели на тази статия по-долу. Също така ще създам директория, където можете да съхранявате вашите снимки. В следващите раздели ще ви покажа как да правите моментни снимки (с възможност за записване и само за четене), да актуализирате записваема снимка и да възстановявате файлове от снимката. И така, нека започнем.

Първо, създайте нова директория / данни / проекти както следва:

$ sudo mkdir -v / data / projects

Създайте нов подтом web1 в / данни / проекти директория, както следва:

$ sudo btrfs подтом create / data / projects / web1

Създайте нов файл индекс.html в / data / projects / web1 подтом, както следва:

$ sudo nano / data / projects / web1 / index.html

Въведете следните редове кодове в индекс.html файл.




Демо уебсайт



Здравей Свят 4



След като приключите, натиснете + х следван от Y и за да запазите индекс.html файл.

Създайте нов файл стил.css в / data / projects / web1 подтом, както следва:

$ sudo nano / data / projects / web1 / style.css

Въведете следните редове кодове в стил.css файл.

h1
цвят: зелен;

След като приключите, натиснете + х следван от Y и за да запазите стил.css файл.

Сега, / data / projects / web1 в подтома има индекс.html и стил.css файл.

$ ls -lh / data / projects / web1

Искам да запазя всички моментни снимки на тази файлова система Btrfs в /данни/.моментни снимки директория.

Създайте /данни/.моментни снимки директория със следната команда:

$ sudo mkdir -v / данни /.моментни снимки

Правене на моментни снимки на подтом

За да направите моментна снимка на / data / projects / web1 подтом в /данни/.моментни снимки / web1-2020-12-25 директория (ще се създаде автоматично), изпълнете следната команда:

$ sudo btrfs моментна снимка на подтома / data / projects / web1 / data /.моментни снимки / web1-2020-12-25

Снимка на / data / projects / web1 директория трябва да бъде създадена на /данни/.моментни снимки / web1-2020-12-25 директория.

Както можете да видите на екранната снимка по-долу, нов подтом .моментни снимки / web1-2020-12-25 е създаден. Една моментна снимка всъщност е подтом.

$ sudo btrfs списък с подтомици / данни

Можете да видите повече информация за моментната снимка, която сте създали в /данни/.моментни снимки / web1-2020-12-25 директория, както следва:

$ sudo btrfs подтом show / data /.моментни снимки / web1-2020-12-25

Както можете да видите, всички файлове, които са в / data / projects / web1 подтома са в /данни/.моментни снимки / web1-2020-12-25 моментална снимка.

$ дърво -a / данни

Възстановяване на файлове от моментни снимки

В този раздел ще ви покажа как да възстановите файлове от моментните снимки на Btrfs.

Първо ще ви покажа как да възстановите един файл от моментната снимка.

Отвори / data / projects / web1 / index.html файл с нано текстов редактор, както следва:

$ sudo nano / data / projects / web1 / index.html

Направете каквито искате промени.

След като приключите, натиснете + х следван от Y и за да запазите файла.

Както можете да видите, основната индекс.html файлът е различен от индекс.html файл в моментната снимка.

$ cat / data / projects / web1 / index.html
$ котка / данни /.моментни снимки / web1-2020-12-25 / index.html

Направихме промените в основното индекс.html са нежелани и ние искаме да възстановим индекс.html файл от моментната снимка.

Можете да възстановите индекс.html файл от моментната снимка, както следва:

$ sudo cp -v / data /.моментни снимки / web1-2020-12-25 / index.html / data / projects / web1 / index.html

Както можете да видите, индекс.html файлът се възстановява от моментната снимка.

$ cat / data / projects / web1 / index.html
$ котка / данни /.моментни снимки / web1-2020-12-25 / index.html

Сега нека видим как да възстановим всички файлове / директории от моментната снимка.

Премахнете всички файлове от / data / projects / web1 моментна снимка, както следва:

$ sudo rm -rv / data / projects / web1 / *

За да възстановите всички файлове / директории от моментната снимка, изпълнете следната команда:

$ sudo rsync -avz / данни /.моментни снимки / web1-2020-12-25 / / data / projects / web1 /

Както можете да видите, файловете / директориите се възстановяват от моментната снимка.

$ ls -lh / data / projects / web1

И накрая, нека видим как да възстановим файлове / директории от моментната снимка в огледален режим. В огледален режим файловете / директориите на подтома ще бъдат същите като на моментната снимка. Ако в подтома има файлове / директории, които не са налични в моментната снимка, те ще бъдат премахнати.

Нека създадем нов файл в подтома, за да разграничим файловото дърво от моментната снимка.

Създавам ПРОЧЕТИ МЕ.текст файл в / data / projects / web1 подтом, както следва:

$ echo "hello world 5" | sudo tee / data / projects / web1 / README.текст

Както можете да видите, файловото дърво на / data / projects / web1 подтомът е различен от /данни/.моментни снимки / web1-2020-12-25 моментална снимка.

$ дърво -a / данни

За да възстановите файловете / директориите от /данни/.моментни снимки / web1-2020-12-25 моментна снимка на / data / projects / web1 подтом в огледален режим, изпълнете следната команда:

$ sudo rsync -avz --delete / data /.моментни снимки / web1-2020-12-25 / / data / projects / web1 /

Всички файлове / директории на / data / projects / web1 подтома трябва да бъде възстановен (в огледален режим) от /данни/.моментни снимки / web1-2020-12-25 моментална снимка.

Файловото дърво на / data / projects / web1 подтом и /данни/.моментни снимки / web1-2020-12-25 моментната снимка трябва да бъде една и съща.

Както можете да видите, индексът.html файл и стил.css съдържанието на файла е същото в / data / projects / web1 подтома и /данни/.моментни снимки / web1-2020-12-25 моментална снимка.

Съдържание на индекс.html и стил.css файл в / data / projects / web1 подтом.

$ cat / data / projects / web1 / index.html
$ cat / data / projects / web1 / style.css

Съдържание на индекс.html и стил.css файл в /данни/.моментни снимки / web1-2020-12-25 моментална снимка.

$ cat / data / projects / web1 / index.html
$ cat / data / projects / web1 / style.css

Актуализиране на моментна снимка

По подразбиране файловата система Btrfs прави снимки с възможност за запис. Снимката на Btrfs е точно като подтом. Така че, можете да модифицирате / актуализирате файловете / директориите на записваема снимка.

Нека актуализираме индекс.html файл в / data / projects / web1 подтом.

Първо отворете индекс.html файл от / data / projects / web1 подтом с нано текстов редактор, както следва:

$ sudo nano / data / projects / web1 / index.html

Направете каквито искате промени. След като приключите, натиснете + х следван от Y и за да запазите индекс.html файл.

Както можете да видите, индексът.html файл на / data / projects / web1 подтомът е различен от /данни/.моментни снимки / web1-2020-12-25 моментална снимка.

$ cat / data / projects / web1 / index.html
$ котка / данни /.моментни снимки / web1-2020-12-25 / index.html

Искате да запазите индекс.html файл на / data / projects / web1 подтом.

За да актуализирате индекс.html файл в /данни/.моментни снимки / web1-2020-12-25 моментна снимка, изпълнете следната команда:

$ sudo cp -v / data / projects / web1 / index.html / данни /.моментни снимки / web1-2020-12-25 / index.html

Както можете да видите, индекс.html файл на /данни/.моментни снимки / web1-2020-12-25 моментната снимка се актуализира.

Актуализирането на моментна снимка е толкова лесно, колкото копирането на нови файлове в моментната снимка.

Правене на моментни снимки на подтома само за четене

Понякога не искате снимките, които сте направили, да се актуализират по никакъв начин. В този случай можете да създадете моментни снимки само за четене.

Например, за да създадете моментна снимка само за четене /данни/.моментни снимки / web1-2020-12-26 от / data / projects / web1 подтом, изпълнете следната команда:

$ sudo btrfs снимка на подтома -r / data / projects / web1 / data /.моментни снимки / web1-2020-12-26

Както можете да видите, нов подтом .моментни снимки / web1-2020-12-26 е създаден.

$ sudo btrfs списък с подтомици / данни

Както можете да видите, моментната снимка /данни/.моментни снимки / web1-2020-12-26 е само за четене.

$ sudo btrfs подтом show / data /.моментни снимки / web1-2020-12-26

Нека актуализираме индекс.html файл от / data / projects / web1 подтом.

За да направите това, отворете индекс.html файл от / data / projects / web1 подтом с нано текстов редактор, както следва:

$ sudo nano / data / projects / web1 / index.html

Направете каквито искате промени. След като приключите, натиснете + х следван от Y и за да запазите промените.

Както можете да видите, индекс.html в / data / projects / web1 подтомът е различен от /данни/.моментни снимки / web1-2020-12-26 моментална снимка.

$ cat / data / projects / web1 / index.html
$ котка / данни /.моментни снимки / web1-2020-12-26 / index.html

Нека се опитаме да актуализираме индекс.html файл в /данни/.моментни снимки / web1-2020-12-26 моментална снимка.

$ sudo cp -v / data / projects / web1 / index.html / данни /.моментни снимки / web1-2020-12-26 / index.html

Както можете да видите, не можете да актуализирате индекс.html файл на /данни/.моментни снимки / web1-2020-12-26 снимка, защото снимката е само за четене.

Премахване на моментна снимка

По-рано ви казах, че моментната снимка на Btrfs е като подтом. Така че, можете да премахнете моментна снимка на Btrfs, точно както премахвате подтома на Btrfs. Същата команда.

Ето как файловото дърво на файловата система Btrfs е монтирано на /данни директория изглежда в момента.

$ дърво -a / данни

Нека премахнем .моментни снимки / web1-2020-12-25 моментална снимка.

$ sudo btrfs списък с подтомици / данни

За да премахнете /данни/.моментни снимки / web1-2020-12-25 моментна снимка, изпълнете следната команда:

$ sudo btrfs подтом изтриване / данни /.моментни снимки / web1-2020-12-25

Както можете да видите, моментната снимка .моментни снимки / web1-2020-12-25 вече не е.

$ sudo btrfs списък с подтомици / данни

Както можете да видите, файловете / директориите на /данни/.моментни снимки / web1-2020-12-25 снимката също се премахва.

$ дърво -a / данни

Заключение

Тази статия ви показа как да правите снимки с възможност за запис и само за четене на подтомовете на файловата система Btrfs. Също така ви показах как да актуализирате записваем моментна снимка и да възстановите файлове от моментна снимка. Показах ви как да премахнете и моментна снимка на Btrfs. Тази статия трябва да ви помогне да започнете с функцията за моментна снимка на Btrfs.

Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...