Лучшая стратегия резервного копирования корневой файловой системы btrfs?

Вопрос или проблема

У меня есть раздел корня Btrfs с подтомом @ и подтомом @home, и я делаю автоматические снимки во время обновлений и плановые снимки с помощью timeshift, которые сохраняются на одном и том же диске. Это здорово, но я хочу добавить дополнительную надежность на случай отказа диска.

В моей последней настройке на Debian я использовал файловую систему ext4 и сохранял свои резервные копии rsync timeshift на внешнем диске.

Как я могу сделать что-то подобное, т.е. резервное копирование на внешний диск, при этом продолжая делать снимки на основном устройстве?

В дополнение к системному устройству, которое является SSD на 1 ТБ, отформатированному как Btrfs, у меня есть HDD на 2 ТБ, который в настоящее время отформатирован с двумя разделами NTFS, поскольку я также загружаю Windows. Теперь я готов полностью перейти на файловую систему Linux на этом диске, но не знаю, как обрабатывать резервное копирование диска с корнем. Я думал сделать образ диска на HDD с помощью dd, но если я это сделаю, то (a) потеряю дополнительный ТБ хранилища, если я правильно понимаю, как работает dd, и (b) не знаю, как восстановить из образа. В идеале я хотел бы иметь раздел Btrfs на втором диске только для резервных копий устройства с корнем и второй раздел (например, ext4 или NTFS) только для хранения дополнительных данных.

Суть моего вопроса: Как я могу упростить резервное копирование моего уже “снимающего” раздела корня (и также знать, как восстановить из него)?

Это решение, которое я придумал для такого рода требований: https://github.com/ceremcem/smith-sync

Я подготовил свои собственные скрипты для резервного копирования на целевой диск: https://github.com/ceremcem/smith-sync-new-target

Вот общая система резервного копирования, которую я использую: https://github.com/ceremcem/erik-sync

Этот процесс довольно сложный и требует глубоких знаний. Короче говоря, этот скрипт выполняет следующие действия:

  • Отложить любые автоматические действия приостановки, чтобы не прерывать процесс резервного копирования.
  • Отправить все снимки на целевой диск.
  • Создать новую rootfs на целевом диске, используя последние снимки.
  • Соответственно изменить необходимые файлы, такие как $target/rootfs/etc/fstab, …/etc/crypttab и т.д.
  • Смонтировать загрузочный раздел, скопировать на него самые последние загрузочные файлы.
  • Обновить загрузчик GRUB в окружении chroot.

Теперь наш целевой диск (резервный диск) является точной копией нашей текущей системы, без использования команды dd. Вы можете создать любые дополнительные разделы на целевом диске в зависимости от ваших нужд, это не нарушит процесс резервного копирования.

Перемещено из редактирования-вопроса:

Решение, которое я придумал, использует btrbk, который является единственным perl-скриптом, который управляет снимками и автоматически отправляет их на другой диск. Я задокументировал настройку на своем аккаунте github здесь.

btrbk работает с помощью единого конфигурационного файла для указания местоположений снимков и резервных копий, а также политик хранения. Я планирую процесс резервного копирования с помощью crontab. Настроить это для начинающих немного сложно, но гораздо более полезно в процессе обучения, чем просто использовать snapper или timeshift.

Ответ или решение

Лучшая стратегия резервного копирования файловой системы Btrfs

Ваша текущая настройка с использованием Btrfs на корневом разделе вместе с субтомами @ и @home хорошо справляется с автоматическими снимками и резервными копиями, однако добавление внешнего резервного копирования обеспечит дополнительную степень надежности. Рассмотрим несколько стратегий, которые помогут вам организовать процесс резервного копирования, чтобы обеспечить надежность и восстанавливаемость данных.

1. Структурирование диска

На втором диске объемом 2 ТБ вы можете разделить пространство для резервного копирования и хранения данных. Рекомендуется отформатировать его в файловую систему Btrfs, так как это обеспечит гибкость в управлении моментальными снимками и высокой эффективностью использования. Вы можете сделать следующие разделы:

  • /dev/sdb1 – Для резервного копирования корневой файловой системы (формат: Btrfs)
  • /dev/sdb2 – Для хранения overflow-данных (например, ext4 или NTFS, в зависимости от ваших нужд в совместимости с Windows)

2. Использование Btrbk

Рекомендую использовать btrbk — это скрипт, позволяющий управлять моментальными снимками и отправлять их на другой диск. Он будет полезен в вашем случае, так как позволит настроить автоматическое резервное копирование ваших снимков в выбранную вами директорию.

Настройка btrbk
  1. Установка:
    Установите btrbk из репозитория вашей дистрибуции:

    sudo apt install btrbk
  2. Создание конфигурационного файла:
    Создайте файл конфигурации, например, /etc/btrbk/btrbk.conf:

    snapshots = /mnt/btrfs/@snapshots
    backup = /mnt/btrfs_backup
    send = /path/to/your/external/backup
    retention = 6 snapshots
  3. Настройка резервного копирования:
    Вы можете настроить btrbk так, чтобы он использовал одну команду для создания снимков и резервного копирования их на ваш второй диск:

    # Создание и отправка снимка
    btrbk send
  4. Запуск по расписанию:
    Чтобы автоматизировать процесс резервного копирования, добавьте задачу в cron:

    crontab -e

    Вставьте следующую строку для ежедневного резервного копирования:

    0 2 * * * /usr/bin/btrbk send

3. Восстановление данных

В случае, если потребуется восстановление данных, btrbk предоставляет простой способ отправки уже существующих снимков обратно на систему. Вы можете использовать команду:

sudo btrbk receive

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

4. Поддержка системы

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...