Я хотел бы программно сделать снимок живой файловой системы в Linux, предпочтительно с помощью LVM. Я хотел бы не размонтировать его, потому что у меня есть много открытых файлов (мой наиболее распространенный сценарий - то, что у меня есть занятый рабочий стол с большим количеством программ).
Я понимаю, что из-за буферов ядра и общего действия файловой системы, данные по диску могли бы быть в некотором более или менее неопределенном состоянии.
Там какой-либо путь состоит в том, чтобы "атомарно" размонтировать FS, заставить LVM создать снимки и смонтировать его назад? Будет хорошо, если ОС заблокирует все действие в течение нескольких секунд, чтобы сделать эту задачу. Или возможно некоторый атомарный "sync+snapshot"? Вызов ядра?
Я не знаю, возможно ли это даже...
Для большинства файловых систем Linux ничего делать не нужно. Он должен работать без каких-либо усилий с вашей стороны. Сама команда моментального снимка отслеживает смонтированные файловые системы, используя моментальный снимок тома и вызывает специальный перехватчик, который устанавливает их в согласованное, монтируемое состояние и делает моментальный снимок атомарно.
Старые версии LVM поставлялись с набором исправлений блокировки VFS, которые могли бы исправлять различные файловые системы, чтобы их можно было использовать для создания снимков. Но с новыми ядрами, которые уже должны быть встроены в большинство файловых систем Linux.
Это введение в моментальные снимки утверждает то же самое.
И еще небольшое исследование показывает, что для ядер в серии 2.6 используется серия ext. файловых систем должны все это поддерживать. ReiserFS, наверное, тоже. И если я знаю людей btrfs,
Я знаю, что ext3 и ext4 в RedHat Enterprise, Fedora и CentOS автоматически проверяют точку при создании снимка LVM. Это означает, что никогда не возникает проблем с монтированием моментального снимка, потому что он всегда чистый.
Я полагаю, XFS имеет такую же поддержку. Я не уверен насчет других файловых систем.
Это зависит от файловой системы ты используешь. С XFS вы можете использовать xfs_freeze -f
для синхронизации и замораживания FS,
Я не уверен, что это поможет вам, но вы можете перемонтировать файловую систему как доступную только для чтения. mount -o remount, ro / lvm
(или что-то подобное) подойдет. После того, как вы сделали снимок, вы можете повторно смонтировать чтение-запись, используя mount -o remount, rw /lvm[1153063 impression.