Я использую кластер MongoDB на 3 экземплярах на AWS
К каждому экземпляру прикреплено 2 EBS
- / [8GB]
- /data [50GB]
Для резервного копирования кластера MongoDB рекомендует создать моментальный снимок /data
Водитель
Я создал автоматизированный инструмент, который использует AWS-SDK
которые создают снимок для каждого тома, смонтированного в /data
в определенное время.
Мне было интересно, может ли создание снимка с помощью AWS-SDK или с помощью Консоли AWS (вручную) привести к тому, что экземпляр будет работать медленно или станет недоступным во время процесса?
Я знаю, что создание снимка корневого тома может вызвать перезагрузку системы, но как насчет создания снимка тома, подключенного к работающему экземпляру, в другом каталоге, например data
?
Экземпляр не должен видеть процесс создания снимка. Настоящая проблема может возникнуть, когда вы попытаетесь восстановить данные из «нечистого» снимка. Если процесс выполняет запись в том (или, скорее, в дескриптор открытого файла для файла на томе), запросы записи в кэш ядра экземпляра могут не записываться на диск или могут быть записаны только частично. Эти файлы будут выглядеть поврежденными на томе, созданном из моментального снимка.
По этой причине AWS рекомендует размонтировать все тома перед созданием моментального снимка. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html
(Очевидно, вы не можете размонтировать / на работающем экземпляре. Вы можете остановить экземпляр, чтобы сделать снимок, но я бы попытался найти другой способ сделать резервную копию этого. Предположительно, вам нужны только файлы конфигурации mongodb на этом диске, которые обычно в / etc, / var и / opt.)