Скопируйте раздел BTRFS на внешний раздел BTRFS на жестком диске, включая моментальные снимки

У меня вопрос о резервном копировании разделов BTRFS.

Предположим, у меня есть раздел BTRFS на / dev / sda1 и внешний жесткий диск с BTRFS на / dev / sdb1.

Я уже выяснил, что могу сделать начальную резервную копию, выпуская:

btrfs replace start /dev/sda1 /dev/sdb1 

Впоследствии я изменяю 2 вещи:

  • Я создаю новый стандартный файл на SDA1
  • Я создаю новый снимок BTRFS на SDA1

Теперь я хочу, чтобы мой внешний жесткий диск SDB1 («backup») выровнялся с SDA1. Таким образом, оба файла являются специфичными для BTRFS (моментальные снимки).

Как мне это сделать?

Поэтому я ищу эквивалент rsync, который также синхронизирует функции BTFS (моментальные снимки):

 rsync -avr --delete <mount point sda1> <mount point sdb1> 

благодаря

  • btrfs: как вычислить экономию пространства при сжатии btrfs?
  • Баланс BTRFS завершен, но все же отображает данные, хранящиеся в режиме «одного»
  • Возможно ли и как объединить идентичные файлы между различными моментальными снимками в файловой системе btrfs?
  • Варианты установки BTRFS на внешний USB-накопитель
  • идеальная схема хранения btrfs для включения внешнего USB-накопителя в качестве резервного носителя
  • Обеспечивает ли BTRFS согласованность данных при отключении электроэнергии?
  • BTRFS RAID5 / 6 Альтернатива?
  • Как отлаживать / проверять, какие устройства кэширует записи?
  • One Solution collect form web for “Скопируйте раздел BTRFS на внешний раздел BTRFS на жестком диске, включая моментальные снимки”

    Команда replace не создает резервную копию sda1, она заменяет sda1 на sdb1 в файловой системе, но поскольку это одна файловая система устройства, и btrfs не пытается стереть данные из sda1 при ее замене, они в конечном итоге становятся indentical копиями файловой системы. Однако вы НЕ хотите этого делать, поскольку оба будут иметь одинаковый UUID, и в настоящее время небезопасно монтировать две файловые системы btrfs с одинаковым UUID, поскольку это может вызвать MASSIVE DATA CORRUPTION (см. Страницу Gotchas btrfswiki) . Если вы хотите использовать функцию инкрементного резервного копирования btrfs, вы должны отформатировать резервный диск / dev / sdb1 в новую файловую систему btrfs. Затем вы должны сделать мгновенный снимок только для чтения, независимо от того, какие подэлементы (ы) вы хотите сделать резервными копиями в своей файловой системе, используя

     btrfs su sn -r @subvolume-name @subvolume-name-RO 

    на каждом подвыполнении. Затем вы должны установить пустую файловую систему btrfs и запустить

     btrfs send /path/to/@subvolume-name-RO | btrfs rec /path/to/backup-directory/ 

    Это будет первая передача, и btrfs должны будут перенести все данные на этот раз. В следующий раз, когда вы захотите отправить резервную копию на этот диск, вы можете использовать инкрементные отправки, чтобы отправлять только те данные, которые были изменены с момента отправки предыдущей резервной копии. Он также будет использовать Copy On Write, так что вы также сэкономите много места. Просто убедитесь, что вы сохранили последний снимок на обеих файловых системах. Когда это будет сделано, вы можете переименовать отправленный снимок в любое удобное для вас время.

    Теперь, если вы хотите отправить другой снимок, просто переименуйте orignal и возьмите новый снимок с чем-то вроде

     mv @subvolume-name-RO @subvolume-name-RO-old btrfs su sn -r @subvolume-name @subvolume-name-RO 

    Затем вы можете использовать send для отправки последнего моментального снимка, используя

     btrfs send -p @subvolume-name-RO-old @subvolume-name-RO | btrfs rec /path/to/backup-directory/ 

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

    Interesting Posts

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

    Зашифрованная загрузка

    Git Server: игнорировать пробельные изменения в новых коммитах

    сценарий оболочки для подключения внешнего устройства к точке подключения

    Перечислите все DNS-серверы, в том числе VPN

    Получить индекс массива

    Как запустить скрипт после входа в систему с помощью gdm?

    Найдите, какой процесс реализует файловую систему FUSE

    Удалите повторяющиеся строки с помощью twist

    Как изменить переменную, которая является частью значения другой переменной

    Я хочу отслеживать файлы, которые обрабатываются в последний час

    Ожидаемое поведение `find -depth`, если разрешение на выполнение запрещено для подкаталога?

    Как смонтировать автоматически sshfs, когда аутентификация RSA не является опцией?

    Что остановит выполнение задачи в фоновом режиме?

    Как объединить арифметику bash с выходом команды?

    Linux и Unix - лучшая ОС в мире.