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

9

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

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

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

ОБНОВИТЬ

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

Mansour
источник

Ответы:

6

Partclone - это инструмент, который вы ищете.

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

В зависимости от вашего шаблона использования:

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

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

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

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

Dryak
источник
1

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

Плачь Хавок
источник
1
Вы должны были бы сначала заполнить свободное место нулями (например cat /dev/zero > zeroes), чтобы избавиться от несвязанных данных, которые все еще находятся на диске. Но это может не сработать, когда в будущем BTRFS получит дедупликацию на уровне блоков.
Вим Коенен
Пожалуйста, смотрите обновление на мой вопрос.
Мансур
1

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

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

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

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

Джонас Стейн
источник
2
Предупреждение, btrfs-image копирует только META-данные, а не данные в самих файлах. (Он используется для отправки копии разработчикам, чтобы они могли видеть, что пошло не так. Не копировать данные).
DrYak
-2

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

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

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

Лиса
источник
Partclone смог сделать именно это для многих разделов, которые не являются ни ntfs-3g, ни zfs.
DrYak
@DrYak монтируемые разреженные образы NTFS определенно поддерживаются ntfsclone ... linux.die.net/man/8/ntfsclone
Fox
-3

Я думаю, по-видимому, нет такого инструмента (пока, банкомат).

poige
источник