Btrfs

Как сделать резервную копию снимков Btrfs на внешние диски

Как сделать резервную копию снимков Btrfs на внешние диски

По умолчанию вы можете хранить снимки ваших подтомов Btrfs в той же файловой системе Btrfs, но невозможно сохранить снимки одной файловой системы Btrfs непосредственно в другой файловой системе Btrfs. Однако файловая система Btrfs предоставляет вам необходимые инструменты для резервного копирования снимков одной файловой системы Btrfs в другую файловую систему Btrfs. В этой статье показано, как создать резервную копию снимков Btrfs во внешнюю файловую систему Btrfs на внешнем диске.

Предпосылки

Чтобы опробовать примеры, включенные в эту статью, вы должны выполнить следующие предварительные требования:

У меня жесткий диск 20 ГБ, SDB, на моей машине Ubuntu. Я создал два раздела, sdb1 а также sdb2, на этом жестком диске.

$ sudo lsblk -e7

Примечание: Ваш жесткий диск или SSD будет иметь другое имя, чем мое, как и разделы. Так что не забудьте с этого момента заменить эти имена на свои.


Я буду создавать файловые системы Btrfs на sdb1 и sdb2 перегородки. Снимки, созданные в файловой системе Btrfs (sdb1) будут скопированы в файловую систему Btrfs, созданную на sdb2 перегородка. Файловая система Btrfs, созданная на sdb2 раздел будет действовать как внешний диск. Вы также можете использовать USB-накопитель или внешний жесткий диск; просто обязательно отформатируйте его с файловой системой Btrfs.

Чтобы получить помощь с установкой файловой системы Btrfs в Ubuntu, ознакомьтесь с моей статьей «Установка и использование Btrfs в Ubuntu 20».04 LTS.

Чтобы получить помощь по установке файловой системы Btrfs в Fedora, ознакомьтесь с моей статьей «Установка и использование Btrfs в Fedora 33».

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

Я отформатирую как sdb1 а также sdb2 разделы как Btrfs. Я буду использовать sdb1 раздел для хранения данных и снимков Btrfs. Я буду использовать sdb2 раздел для резервного копирования снимков файловой системы Btrfs, созданных на sdb1 перегородка.

Чтобы создать файловую систему Btrfs на sdb1 раздел и присвойте ему данные метки файловой системы, выполните следующую команду:

$ sudo mkfs.btrfs -L данные / dev / sdb1

Файловая система Btrfs теперь должна быть создана на sdb1 перегородка.

Чтобы создать файловую систему Btrfs на sdb2 раздел и дайте ему снимки метки файловой системы, выполните следующую команду:

$ sudo mkfs.btrfs -L снимки / dev / sdb2

Файловая система Btrfs теперь должна быть создана на sdb2 перегородка.

Создайте каталоги /данные а также / снимки для монтажа sdb1 а также sdb2 перегородки соответственно следующим образом:

$ sudo mkdir -v / данные, снимки

Смонтируйте созданную вами файловую систему Btrfs на sdb1 раздел в каталоге / data следующим образом:

$ sudo mount / dev / sdb1 / данные

Таким же образом смонтируйте файловую систему Btrfs, которую вы создали на sdb2 раздел на / снимки каталог, а именно:

$ sudo mount / dev / sdb2 / снимки

Как вы можете видеть на скриншоте ниже, обе файловые системы Btrfs (sdb1 а также sdb2 перегородки) смонтированы правильно.

$ df -h -t btrfs

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

В этом разделе мы создадим фиктивный проект web1 на / data / projects / web1 Подтом Btrfs. Мы сделаем снимок этого подобъема в этом разделе, а также некоторые другие снимки в следующих разделах этой статьи.

Сначала создайте новый каталог / данные / проекты, следующим образом:

$ sudo mkdir -v / данные / проекты

Затем создайте новый subvolume web1 в Каталог / data / projects, следующим образом:

$ sudo btrfs subvolume создать / данные / проекты / web1

Наконец, создайте новый индекс файла.html в / данные / проекты / web1 subvolume с помощью текстового редактора nano, как показано ниже:

$ sudo nano / данные / проекты / web1 / индекс.html

Введите следующие строки кода в указатель.html файл:




Демо-сайт



Привет мир




Когда вы закончите, нажмите <Ctrl> + Икс с последующим Y а также <Входить> чтобы сохранить индекс.html файл.

Таким же образом создайте новый файл стиль.css в / data / projects / web1 подобъем следующим образом:

$ sudo nano / данные / проекты / web1 / стиль.css


Введите следующие строки кода в поле стиль.css файл:

h1
цвет: зеленый;

Когда вы закончите, нажмите <Ctrl> + Икс с последующим Y а также <Входить> чтобы сохранить стиль.css файл.

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

$ ls -lh / данные / проекты / web1

Мы будем хранить все снимки этой файловой системы Btrfs в папке /данные/.снимки каталог.

Сначала создайте /данные/.снимки каталог с помощью следующей команды:

$ sudo mkdir -v / data /.снимки

Затем создайте снимок, доступный только для чтения /данные/.снимки / web1-2020-12-30 принадлежащий / data / projects / web1 подобъем с помощью следующей команды:

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

Как видите, новый снимок /данные/.снимки / web1-2020-12-30 был создан.

$ sudo btrfs список / данные подтомов

Резервное копирование снимков на внешний диск

Чтобы создать резервную копию снимка /данные/.снимки / web1-2020-12-30 в другую файловую систему Btrfs (в данном случае внешний диск sdb2), установленную на / снимки каталог, выполните следующую команду:

$ sudo btrfs отправить / данные /.снимки / web1-2020-12-30 | sudo btrfs получать / снимки

Снимок /данные/.снимки / web1-2020-12-30 следует создать резервную копию во внешней файловой системе Btrfs (sdb2) установлен на / снимки каталог.

Как видите, новый подобтом web1-2020-12-30 был создан во внешней файловой системе Btrfs.

$ sudo btrfs список подтомов / снимки

В снимок web1-2020-12-30 должны быть одинаковые файлы/ каталоги как /данные/.снимки / web1-2020-12-30 снимок.

$ tree -a / снимки

Вы можете получить дополнительную информацию о резервной копии моментального снимка / snapshosts / web1-2020-12-30 следующим образом:

$ sudo btrfs subvolume show / snapshots / web1-2020-12-30

Инкрементное резервное копирование снимков на внешний диск

Если в моментальных снимках много файлов для резервного копирования на внешний диск, то добавочные резервные копии помогут вам ускорить операцию резервного копирования. В этом случае Btrfs обновит только те файлы, которые изменились с момента последнего снимка, и скопирует новые файлы, которые не были доступны в последнем снимке.

В этом разделе я покажу вам, как выполнять инкрементное резервное копирование снимков Btrfs во внешние файловые системы Btrfs.

Сначала откройте индекс.html файл от / data / projects / web1 подобъем, следующим образом:

$ sudo nano / данные / проекты / web1 / индекс.html

Внесите любые изменения в индекс.html файл. Когда вы закончите, нажмите <Ctrl> + Икс с последующим Y а также <Входить> чтобы сохранить индекс.html файл.

Сделайте новый снимок только для чтения / data / projects / web1 подобъем, следующим образом:

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

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

$ sudo btrfs список / данные подтомов

Теперь мы готовы сделать инкрементную резервную копию.

Чтобы сделать инкрементную резервную копию, вам понадобится общий моментальный снимок исходной и конечной (внешнего диска) файловых систем Btrfs. Общий снимок обычно представляет собой последний снимок подобъема Btrfs. Когда вы делаете новый снимок исходной файловой системы Btrfs, новый снимок сравнивается с последним снимком (доступным как в исходной, так и в целевой файловой системе Btrfs) исходной файловой системы Btrfs. Btrfs рассчитает разницу и отправит только необходимые данные в файловую систему назначения Btrfs (внешний диск).

Например, чтобы сделать инкрементную резервную копию /данные/.snapshots / web1-2020-12-31 снимок, необходимо указать родительский снимок (последний снимок доступен как в исходной, так и в целевой файловых системах Btrfs), /данные/.снимки / web1-2020-12-30, также.

Инкрементная резервная копия /данные/.снимки / web1-2020-12-31 Снимок можно сделать во внешнюю файловую систему Btrfs следующим образом:

$ sudo btrfs отправить -p / данные /.снимки / web1-2020-12-30 / data /.снимки / web1-2020-12-31 | sudo btrfs получать / снимки

Инкрементная резервная копия /данные/.снимки / web1-2020-12-31 снимок должен быть сделан.

Как видите, web1-2020-12-31 снимок был скопирован во внешнюю файловую систему Btrfs, смонтированную на / снимки каталог.

$ sudo btrfs список подтомов / снимки

Как вы можете видеть на скриншоте ниже, изменения, внесенные вами в индекс.html файл доступны в web1-2020-12-31 снимок который был скопирован во внешнюю файловую систему Btrfs.

$ cat / snapshots / web1-2020-12-31 / index.html

Таким же образом вы можете делать столько инкрементных резервных копий ваших снимков, сколько хотите.

Я покажу вам, как сделать инкрементное резервное копирование еще раз. Я не буду тратить время, чтобы объяснять это снова. Вместо этого я просто покажу вам процесс для ясности.

Открой индекс.html файл от / data / projects / web1 подобъем, следующим образом:

$ sudo nano / данные / проекты / web1 / индекс.html

Внесите любые изменения в индекс.html файл. Когда вы закончите, нажмите <Ctrl> + Икс с последующим Y а также <Входить> чтобы сохранить индекс.html файл.

Сделайте новый снимок только для чтения / data / projects / web1 подобъем, следующим образом:

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

Сделайте инкрементную резервную копию /данные/.snapshots / web1-2020-12-31_2 снимок во внешнюю файловую систему Btrfs, как показано ниже:

$ sudo btrfs отправить -p / данные /.снимки / web1-2020-12-31 / data /.снимки / web1-2020-12-31_2 | sudo btrfs получать / снимки

Примечание: Теперь родительский снимок, к которому /данные/.snapshots / web1-2020-12-31_2 снимок будет сравниваться /данные/.снимки / web1-2020-12-31.

Как видите, web1-2020-12-31_2 снимок был скопирован во внешнюю файловую систему Btrfs, смонтированную на / снимки каталог.

$ sudo btrfs список подтомов / снимки

Как вы можете видеть на скриншоте ниже, последние изменения, внесенные в индекс.html файл доступны на web1-2020-12-31_2 снимок резервное копирование во внешнюю файловую систему Btrfs.

$ cat / snapshots / web1-2020-12-31_2 / index.html

Держать вещи в чистоте

Если вы часто выполняете резервное копирование своих снимков Btrfs, у вас будет много снимков, и им может быть сложно управлять. К счастью, вы можете удалить любой снимок из файловой системы Btrfs.

Если вы используете достаточно большой внешний диск для хранения резервных копий снимков Btrfs, вы можете сохранить несколько снимков в файловой системе Btrfs и сделать резервную копию всех снимков на внешнем диске.

Если вы используете внешний диск меньшего размера, вы можете выборочно сохранять на нем резервные копии только самых важных моментальных снимков.

Чтобы выполнить резервное копирование ваших снимков Btrfs, вам необходимо сохранить по крайней мере последний снимок на обоих исходных (/данные/.снимки) и пункт назначения (/ snapshots - внешний диск) Файловые системы Btrfs. Итак, не стесняйтесь удалять любые снимки, кроме последнего снимка, с обеих сторон.

Например, в этом случае последний снимок web1-2020-12-31_2. Итак, для выполнения инкрементного резервного копирования этот моментальный снимок должен храниться в исходной и целевой (внешний диск) файловых системах Btrfs.

Предположим, вы хотите удалить /данные/.снимки / web1-2020-12-30 снимок.

Для этого выполните следующую команду:

$ sudo btrfs subvolume удалить / данные /.снимки / web1-2020-12-30

Снимок Btrfs /данные/.снимки / web1-2020-12-30 теперь следует удалить.

Таким же образом можно удалить /данные/.snapshots / web1-2020-12-31 снимок, следующим образом:

$ sudo btrfs subvolume удалить / данные /.снимки / web1-2020-12-31

Теперь только последний снимок, /данные/.снимки / web1-2020-12-31_2, доступен в файловой системе Btrfs, смонтирован на /данные каталог. Остальные снимки сохраняются на внешнем диске, установленном на / снимки каталог.

$ sudo btrfs список / данные подтомов
$ sudo btrfs список подтомов / снимки

Восстановление снимков с внешнего диска

Если вы сделали резервную копию своих снимков на внешнем диске, вы можете в любой момент восстановить их с внешнего диска.

Например, я удалил web1-2020-12-30 снимок из моей файловой системы Btrfs, смонтированной на /данные каталог. Но этот снимок копируется на внешний диск, установленный на / снимки каталог. Давайте восстановим этот снимок.

$ sudo btrfs список подтомов / снимки

Чтобы восстановить web1-2020-12-30 снимок с внешнего диска выполните следующую команду:

$ sudo btrfs send / snapshots / web1-2020-12-30 | sudo btrfs получить / данные /.снимки

В снимок web1-2020-12-30 должен быть восстановлен в файловой системе Btrfs, смонтированной на /данные каталог.

Как видите, web1-2020-12-30 снимок восстанавливается в файловой системе Btrfs, смонтированной на /данные каталог.

$ sudo btrfs список / данные подтомов

И, как видите, содержимое индекс.html файл из web1-2020-12-30 снимок. Это первая версия индекс.html файл из ранее.

$ cat / data /.снимки / web1-2020-12-30 / index.html

Заключение

В этой статье вы узнали, как сделать резервную копию снимков вашей файловой системы Btrfs на внешний диск. Вы также узнали, как делать инкрементные резервные копии ваших снимков Btrfs на внешний диск. Наконец, вы узнали, как удалить существующие снимки из файловой системы Brtfs и восстановить снимки с внешнего диска.

5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...