Как на самом деле работает резервное копирование / снимок Amazon RDS? - PullRequest
90 голосов
/ 09 марта 2011

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

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

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

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

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

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

Спасибо!

amazon RDS write latency

Ответы [ 2 ]

74 голосов
/ 08 апреля 2011

Мы также запускаем несколько экземпляров 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 приостановит репликацию во время моментального снимка вашей реплики, реплика должна будет «наверстать» транзакции после завершения моментального снимка. Это может вызвать всплеск задержки.

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

4 голосов
/ 15 марта 2018

Amazon раскрыл базовую архитектуру, которую они используют в развертываниях Multi AZ. Это может помочь людям принимать решения

https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/

...