Как работает резервная копия/моментальный снимок Amazon RDS?

Я являюсь клиентом Amazon RDS и ежедневно испытываю латентные спайки RAD для амазонок, соответствующие примерно окну резервного копирования. Я также увижу всплески в конце моментального снимка (пример: запуск моментального снимка занимает около 1 часа, а в течение последних 5 минут - латентные всплески). Я запускаю развертывание multi-AZ m1.large.

Есть ли кто-нибудь из Stack, который может объяснить, как работает резервная копия Amazon RDS? Я читал документы Amazon RDS, и, насколько я могу судить, Amazon RDS ведет себя не по спецификации. В частности, эти операции резервного копирования/моментального снимка должны ударять по моей реплике и, следовательно, не наносить никакого простоя/производительности, или, как я думал.

Я могу перенаправить свою проблему на шесть вопросов:

  • Что технически происходит во время моментального снимка и резервной копии, и как они отличаются? (Если вы ответите на этот вопрос, скажите мне, можете ли вы эмпирически подтвердить свой ответ или просто указать мне документацию).
  • Является ли всплеск задержки записи ожидаемым во время резервного копирования при развертывании с несколькими AZ?
  • Ожидается ли пик задержки записи в конце моментального снимка при развертывании с несколькими AZ?
  • Будет ли мой пик задержки записи еще выше, если я не был мульти-AZ?
  • Архитектурно, смогу ли я избежать этих пиков задержки записи, если я перевернул свою собственную базу данных, работающую на двух экземплярах m1.large EC2?
  • Существуют ли какие-либо конфигурации, которые я могу использовать, чтобы избежать этих пиков задержки записи, все еще сохраняя мою БД с помощью RDS, или я действительно нахожусь на милости Amazon?

Бонусный вопрос: где и как вы размещаете свою базу данных mysql?

Я могу сказать, что я был в целом доволен RDS, за исключением этих ежедневных проблем с задержкой записи. Мне нравится встроенный мониторинг базы данных, и было довольно просто настроить и начать работу.

Спасибо!

amazon RDS write latency

Ответ 1

Мы также запускаем несколько экземпляров RDS в дополнение к MySQL на некоторых машинах, которыми мы управляем сами. Я не могу комментировать конкретно, поскольку я не инженер Amazon, но несколько вещей, которые я узнал, могут объяснить, что вы видите:

  • Несмотря на то, что Amazon не передает данные бэкэнд на 100%, мы сильно подозреваем, что они используют свою систему EBS для резервного копирования баз данных RDS.

  • Эта статья помогает объяснить ограничения EBS и моментальные снимки http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ Опять же, хотя это не явное, для Amazon было бы разумно использовать эту инфраструктуру для предоставления услуг RDS.

  • Как правило, резервное копирование MySQL, в отличие от моментального снимка, включает в себя использование такого инструмента, как mysqldump, для создания файла операторов SQL, который затем воспроизводит базу данных. Для этого не нужно замораживать базу данных. С помощью бэкэнда EBS наилучшей практикой является замораживание базы данных (приостановка всех транзакций) во время снимка, чтобы избежать повреждения данных.

  • Шипы, которые вы видите в конце окна резервного копирования. Если репликация приостановлена ​​Amazon во время моментального снимка вашей реплики, тогда реплика должна была бы "догнать" транзакции при завершении моментального снимка. Это вызовет спад задержки.

  • Репликация в развертывании с несколькими АЗ по своей сути медленнее, чем однократное развертывание АЗ. Цена, которую вы платите за лучшую избыточность.