В первые дни в качестве администратора KVM, когда мне нужно было сделать резервную копию образа виртуальной машины, я выполнил следующие шаги:
Теперь у меня есть несколько машин в EC2, но я сомневаюсь:
Официальная документация Amazon говорит
"вы должны остановить экземпляр, прежде чем делать снимок"
но иногда вы не можете остановить производственный экземпляр. Я делал снимки, не останавливая экземпляр, и восстановил его (все прошло нормально), но время от времени мне в голову ломаются сомнения.
Итак, мой вопрос: могу ли я приостановить (остановить нельзя) экземпляр EC2, чтобы я мог сделать его последовательный снимок?
Приостановка невозможна. Остановка экземпляра гарантирует, что ваши файловые системы согласованы. С помощью fsfreeze
- это еще один метод обеспечения стабилизации файловых систем.
Сценарий ec2-согласованный снимок в настоящее время де-факто стандартное решение с открытым исходным кодом для этого на экземплярах на базе Linux. Вы также можете обрабатывать резервные копии файловой системы MySQL. Для его запуска требуются разрешения API AWS, и он должен быть запущен на рассматриваемом экземпляре, чтобы обеспечить согласованность файловых систем. Некоторое время я успешно его использую.
Нет, это не может быть приостановлено.
Я также делаю снимки на действующих серверах и еще не сталкивался с проблемой, и я согласен, что было бы неплохо иметь возможность приостанавливать запись в течение этого времени.
Другой вариант - использовать «Создать AMI из этого экземпляра», который, похоже, делает что-то похожее на паузу, поскольку временно останавливает экземпляр, но без освобождения IP-адресов или потери хранилища экземпляра. Это не совсем то же самое, что создание моментального снимка, поэтому может быть бесполезным для ежедневного резервного копирования.
Нет, вы не можете приостановить инстанс EC2, только остановите.
Приостановка виртуальной машины не гарантирует согласованного снимка. Фактически, приостановка виртуальной машины для создания базового моментального снимка хуже, чем получение локального моментального снимка LVM из работающей системы. Запуск снимка LVM по крайней мере очистит его буферы записи и дождется завершения записи перед созданием контрольной точки (например, fsfreeze
предложен Диего Ф. Дураном).
Основная проблема со снимками - это приложения, выполняющие запись в хранилище, которые работают в данный момент. В каком они состоянии? Чтобы быть уверенным в том, что снимок сделан, вы должны иметь возможность приостановить работу пишущих приложений перед тем, как сделать снимок. Хотя Linux через LVM или fsfreeze может управлять ОС, вам никоим образом не гарантируется, что приостановленная операция записи не является частью большого пакета записей, который наполовину будет записан в вашу резервную копию.
Некоторые базы данных могут восстановиться после этого путем воспроизведения журнала транзакций, если и журнал, и данные находятся в одном моментальном снимке, но большинство других приложений не способны на это.
Просто заморозьте файловую систему, содержащуюся в томе, используя fsfreeze перед тем, как сделать снимок, и разморозить его после завершения.