Виртуальная машина и резервное копирование

Виртуальная машина и резервное копирование

У меня есть виртуальная машина (centos), на которой запущена какая-то файловая служба для небольших файлов. Какой рекомендуемый способ резервного копирования? Стоит ли мне делать резервную копию диска/файла виртуальной машины (извне виртуальной машины) или запустить агент резервного копирования внутри виртуальной машины, чтобы я делал резервную копию контента, а не всего виртуального диска?

решение1

TLDR: Установите агент резервного копирования на виртуальной машине.

Резервное копирование образа диска извне виртуальной машины, конечно, выглядит заманчиво, не так ли? Особенно если у вас несколько виртуальных машин, то вы можете просто сказать хостовой машине сделать резервную копию всех образов дисков, и все готово, без необходимости индивидуально настраивать каждую виртуальную машину для резервного копирования.

Проблема с этим подходом, однако, заключается в том, что хост-машина не знает, что делает операционная система виртуальной машины внутри. Она не знает, есть ли какие-либо ожидающие или текущие записи на диск. Она не знает о каких-либо кэшах записи или выходных буферах внутри процесса виртуальной машины. И, следовательно, она не может гарантировать, что образ диска, который она резервирует, будетпоследовательныйобраз во время резервного копирования. Резервный файл образа почти наверняка все еще будет пригоден для использования, но есть большая вероятность, что вам сначала придется запустить восстановление файловой системы, чтобы все очистить.

Другим серьезным недостатком создания резервных копий полных образов дисков извне является то, что такие резервные копии в первую очередь полезны для полного восстановления системы. Если вам просто нужно вернуть версию одного потерянного файла за прошлый четверг, они не так уж хороши для этого — вам нужно восстановить весь образ из резервной копии за четверг, а затем использовать другие инструменты для извлечения этого одного файла из второй копии образа, что займет гораздо больше времени и места, чем если бы вы сделали резервную копию изнутри виртуальной машины и смогли восстановить только один интересующий вас файл.

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

Если вы создаете образ всей виртуальной машины для целей аварийного восстановления или используете его в качестве мастера для клонирования при создании других виртуальных машин, то выключение виртуальной машины и копирование полного образа диска — это хороший способ сделать это. Но это не лучший подход для выполнения рутинного резервного копирования работающей системы.

решение2

TL;DR сделать снимок извне виртуальной машины

Все ПО хостов ВМ, которые я когда-либо видел (включая облачные сервисы и хосты контейнеров), имеют функцию моментального снимка. Это предпочтительный способ резервного копирования работающей системы, посколькумоментальные снимкигарантированно являются согласованными и атомарными копиями всего диска в один момент времени. Программное обеспечение хоста виртуальной машины обычно имеет инструменты гостевой ОС, которые останавливают файловую систему перед моментальным снимком, хотя всегда лучше делать моментальный снимок в то время, когда не так много записей, например ночью. Большинство систем будут ненадолго останавливаться, пока сохраняется состояние моментального снимка.

Снимки также обычно инкрементальные. Также есть расширенные функции снимков, такие как дедупликация.

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

Если вам необходимо восстановить отдельные файлы, вы можете просто восстановить диск, подключить и смонтировать его к другой системе.

Если вы запускаете резервное копирование файлов в файловой системе, возникает несколько проблем:

Файлы могут быть несогласованными, поскольку записи могут происходить во время резервного копирования, поскольку оно не атомарное. Например, Tar предупреждает вас, что файл был записан во время его резервного копирования. В качестве другого примера, я бы никогда не доверял копии базы данных, файлы которой были скопированы. Система базы данных может быть устойчивой к восстановлению после несоответствий, но хотите ли вы рисковать? Лучше сделать отдельную резервную копию базы данных вне офиса с помощью соответствующего системного инструмента.

Другая проблема заключается в том, что будет сложно создать загрузочную систему только из файлов. Для создания загрузочной системы требуются другие вещи, такие как загрузочный сектор и таблица разделов. Это означает, что есть дополнительный шаг восстановления установкиточно такой жеоперационная система до восстановления файла. Даже тогда я бы очень сомневался, стоит ли ей доверять, даже если бы она загрузилась.

Связанный контент