Я ищу способ реализовать что-то близкое к следующей схеме резервного копирования:
Можно ли это реализовать с помощью LVM (или каким-то другим способом)? Ему нужно отслеживать, какие блоки стали грязными с момента последнего резервного копирования, что я не уверен, что LVM может это сделать ... Я бы предпочел всегда избегать постоянных затрат производительности на выполнение снимка LVM.
Новичок на сцене - Чердак https://attic-backup.org/
В течение нескольких лет мы использовали rdiff-backup в качестве основного метода резервного копирования. Он отлично подходил для своей работы, но в течение года создавал десятки и сотни тысяч небольших файлов различий. Большинству файловых систем и дисков будет сложно справиться с количеством файлов, превышающим миллион. Резервное копирование нашего хранилища IMAP на базе Maildir объемом 90 ГБ займет несколько часов. Мне приходилось постоянно уменьшать количество недель / различий, которые мы сохраняли бы в истории.
Для сравнения, когда мы перешли на чердак, ночное резервное копирование выполнялось всего за 15-20 минут. Это означает, что гораздо более целесообразно хранить годовые инкрементные резервные копии, чтобы вы могли вернуться к любому дню в течение прошлого года.
Основные черты, которые привлекли меня на чердак:
После использования в течение 6-9 месяцев я почти уверен, что он так же стабилен, как и rdiff-backup. Я до сих пор делаю копии каталогов Attic с несколькими поколениями, используя съемные носители, но на каждом съемном носителе есть полная копия репозитория Attic.
Альтернативой снимку LVM является использование драйвер блока датто (он же. Dattobd).
Драйвер Datto Block Driver (dattobd) решает указанные выше проблемы и обеспечивает функциональность, аналогичную VSS в Windows, для широкого спектра ядер Linux. Dattobd - это модуль ядра Linux с открытым исходным кодом для создания моментальных снимков в реальном времени. Dattobd может быть загружен на работающую машину Linux (без перезагрузки) и создает файл COW на исходном томе, представляющий любое блочное устройство в момент создания снимка. После первого снимка драйвер отслеживает инкрементные изменения в блочном устройстве и, следовательно, может использоваться для эффективного обновления существующих резервных копий, копируя только измененные блоки. Dattobd - это настоящая система моментальных снимков в реальном времени, которая оставит ваш корневой том работающим и доступным без необходимости перезагрузки.
Я попробовал, и он работает как положено на ext4 fs. Также есть рабочий пример (со скриптами), приведенный в вики.
Наконец, обратите внимание, что UrBackup имеет встроенную поддержку резервного копирования моментальных снимков в Linux с использованием LVM или dattobd.
Rsync / Rsnapshot являются гораздо лучшими инструментами для такого рода работы, особенно с учетом того, что они предоставляют вам "живой" каталог моментальных снимков, в котором несоответствия будут ограничены не более чем одним файлом, но они не могут уничтожить всю резервную копию. Более того, используя жесткие ссылки, вы можете получить инкрементное резервное копирование без связанных с этим неудобств.
Я с большим удовлетворением использовал это решение в производственной системе с миллионами файлов и десятками снимков.