У меня есть файл изображения размером 100 ГБ, созданный с использованием dd
. Этот файл образа монтируется через устройство цикла как чтение-запись.
Я хочу сохранить резервную копию этого файла изображения в удаленном месте. У меня есть сценарий, который сжимает файл изображения (используя zip
) и копирует zip-файл в удаленное хранилище (по расписанию с помощью cron
).
Теперь у меня вопрос: должен ли я заставить мой скрипт размонтировать файл изображения перед его архивированием? (Если выполняется какая-то операция чтения-записи, я не смогу ее размонтировать, и сценарий завершится ошибкой).
Или можно заархивировать его, когда он еще смонтирован? Что произойдет, если в момент начала архивирования выполняется какая-то операция записи? Будет ли файл изображения по-прежнему согласованным?
Буду признателен за некоторые идеи.
Если вы скопируете образ файловой системы, когда он смонтирован для чтения и записи, вы получите несовместимую копию. Это верно независимо от того, является ли изображение файлом, лежащим в основе устройства цикла или, проще говоря, обычным блочным устройством. Застегивать его, пока он еще смонтирован, нельзя.
Кстати, zip
кажется маловероятным выбором для сжатия одного большого файла. Потоковый характер наиболее часто используемых инструментов gzip
или bzip2
кажется более подходящим.
Вместо доступа к живому изображению вы захотите сделать его снимок. Один из вариантов - использовать LVM LV вместо устройства обратной петли с файловой поддержкой. Затем вы можете сделать снимок LVM перед его сжатием. Возможность создания моментальных снимков LVM автоматически связывается с файловой системой, чтобы обеспечить согласованный моментальный снимок, если файловая система поддерживает это (xfs и, я думаю, ext4 это поддерживают).