Функцията за моментна снимка на файловата система Btrfs използва принципа Copy-on-Write (CoW). Така че, това не отнема много дисково пространство и можете да правите моментални снимки на подтома.
Файловата система Btrfs поддържа 2 вида моментни снимки.
- Могат да се записват моментни снимки Ако направите снимка с възможност за запис, можете да промените файловете / директориите на тази снимка по-късно. Това е стандартният тип моментна снимка на файловата система Btrfs.
- Моментни снимки само за четене: Ако направите моментна снимка само за четене, не можете да промените файловете / директориите на тази снимка по-късно.
Тази статия ще ви покаже как да правите снимки с възможност за запис и само за четене на подтомовете на файловата система Btrfs. Също така ще ви покажа как да актуализирате записваем моментна снимка и да възстановите файлове от моментна снимка. Ще ви покажа и как да премахнете моментна снимка. И така, нека започнем.
Предпоставки
За да изпробвате примерите от тази статия,
- Трябва да имате инсталирана файловата система Btrfs на вашия компютър.
- Трябва да имате твърд диск или SSD с поне 1 безплатен дял (от всякакъв размер).
Имам 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
След като приключите, натиснете
Създайте нов файл стил.css в / data / projects / web1 подтом, както следва:
$ sudo nano / data / projects / web1 / style.css
Въведете следните редове кодове в стил.css файл.
h1цвят: зелен;
След като приключите, натиснете
Сега, / 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
Направете каквито искате промени.
След като приключите, натиснете
Както можете да видите, основната индекс.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
Направете каквито искате промени. След като приключите, натиснете
Както можете да видите, индексът.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
Направете каквито искате промени. След като приключите, натиснете
Както можете да видите, индекс.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.