Назад | Перейти на главную страницу

Резервное копирование / клонирование раздела btrfs

Можно ли дословно сделать резервную копию раздела btrfs (включая все общие структуры, которые экономят место, помечая деревья моментальных снимков как COW) на другой? Например, я хотел бы сделать резервную копию своего корневого раздела, который имеет несколько подтомов btrfs (снимки самого /).

Я могу думать только о том, чтобы использовать инструмент для копирования блоков, например dd но это неэффективно, поскольку мой раздел заполнен только на 20%, и я намерен регулярно создавать его резервные копии. Я уже сделал резервную копию всего инкрементно, используя rsync, так что это не способ решения другой проблемы. Мне просто нужно немного клонировать мой раздел btrfs без использования такого инструмента, как dd.

Я знаю, например, что ext3 предоставляет утилиту дампа и восстановления. Это то, что я ищу.

ОБНОВИТЬ

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

партклон это инструмент, который вы ищете.

  • он поддерживает множество файловых систем Linux, включая BTRFS
  • он даже поддерживает некоторые другие файловые системы (например, FAT или exFAT)
  • в отличие dd он просматривает карту размещения файловых систем (например, таблицы FAT и exFAT, карты экстентов BTRFS и т. д.) и клонирует только используемые блоки.

В зависимости от вашей схемы использования:

  • использовать -b (длинный: --dev-to-dev), если и исходное, и резервное целевое черное устройство видны на одной машине (в основном, если оба диска подключены к одному компьютеру).
  • или используйте -c и -r (длинный: --clone и --restore), чтобы сначала клонировать в собственный формат образа partclone на исходной машине, а затем восстановить из образа на резервной машине.
  • в соответствии с Partclone справочная страница, можно передавать образы по конвейеру, поэтому должно быть возможно копировать разделы по сети без сохранения фактических файлов, если у вас мало места, но у вас чрезвычайно надежная сеть.

Совершенно другой способ справиться с проблемой - использовать btrfs send и btrfs receive механизм.

  • Это НЕ будет создавать копии блочных устройств до сектора
  • но, если правильно указать ссылки на обоих концах, это также может сохранять ссылки между ссылками (частями) файлов.

Так что собственный механизм btrfs не является сектор идеальная копия (в отличие от партклона), но это степень идеальная копия (намного лучше, чем rsynv -aSHAX который обрабатывает только файлы с жесткой связью).

Еще не пробовал, но btrfs-image похоже, решает эту проблему:

https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-image

Обновить: Не используйте это как резервную копию. Спасибо за комментарий.

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

Подключите выход dd через что-то вроде bzip2 или ваша другая любимая программа сжатия, которая будет читать со стандартного ввода. Я сделал это на диске емкостью 500 ГБ, который имел относительно небольшую установку и в итоге получил файл размером 8 ГБ.

просто fyi ext2 / 3/4 dump не делает то, что вы хотите сделать ... только fs, способные делать это, о которых я знаю, это ntfs (с использованием ntfs-3g) и zfs

хотя вы могли бы сделать это с помощью lvm и экспериментальной тонкой подготовки ...

Изменить: вернулся к этому несколько лет спустя, осознав, что вы можете сделать это с любой файловой системой, используя squashfs ...

Думаю, такого инструмента (пока еще банкомата) нет.