Есть ли способ гарантировать согласованность между томами при резервном копировании из моментальных снимков LVM? Рассмотрим этот сценарий:
/usr
том, и после завершения будет записывать успех в /var
объем./usr
и /var
томов вместе с остальными томами системы, и переходит к создавать резервные копии из этих снимков./usr
том завершается, сценарий резервного копирования делает снимок /usr
./var
./var
.Итак, результатом всего этого дурачества является то, что в результате /usr
резервная копия содержит файл, в котором отсутствует несколько бит, а /var
резервная копия содержит метаданные, указывающие, что этот файл готов и одобрен для использования.
Не вдаваясь в подробности того, какие системы обновления операционных систем не будут беспокоить такие мелочи, есть ли способ избежать таких проблем? По крайней мере, похоже, что это может привести к неожиданному сбою какого-либо приложения после восстановления такой резервной копии.
Проблема даже немного более общего характера. Даже если для одного тома создается моментальный снимок, нет гарантии, что данные на этом томе имеют смысл на уровне файла. Снимки LVM обеспечивают согласованность только на уровне блоков.
Единственный способ быть на 100% уверенным в том, что ваши файлы находятся в согласованном состоянии, - это заставить ваши приложения сбрасывать все на диск и приостанавливать запись, пока вы создаете моментальный снимок. если ты действительно заботитесь об этом, и ваши приложения поддерживают это, вы должны добавить это в свою процедуру резервного копирования.
Для вашего конкретного случая использования, почему бы просто не убедиться, что резервная копия не запускается, пока вы выполняете обновление? Либо отключите его на этот период времени, либо отложите до завершения обновления. Как минимум, согласованность обновляемых файлов будет сохранена.