91  /  96

MySQL и облако

Просмотров: 1673 (Статистика ведётся с 06.02.2017)

Облачные базы данных — это базы данных, которые запускаются на платформах облачных вычислений, таких как Amazon EC2, GoGrid и Rackspace. Существуют две распространенные модели развертывания: пользователи могут приобрести непосредственно услугу доступа к базам данным, обслуживаемым поставщиком облачного сервиса, или же запустить базы данных в облаке независимо, используя образ виртуальной машины. Среди облачных баз данных присутствуют как SQL-ориентированные, так использующие модель данных NoSQL.


Немного теории про облачные базы данных

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

Например, при использовании образов виртуальных машин в "облаках", в качестве основного сервера баз данных вместо обычного MySQL можно использовать его форк Percona Server:

  • Percona Server оптимизирован для работы с медленными дисками. И это очень актуально для "облака" - диски там почти всегда традиционно медленнее (к сожалению), чем обычные диски в "железном" сервере. Проблему неплохо решает организация софтверного рейда, но и оптимизация со стороны серверного ПО - только в плюс.
  • Рестарт базы (при большом объеме данных) - дорогая долгая операция. В Percona Server есть ряд особенностей, которые позволяют делать рестарт гораздо быстрее - Fast Shut-Down, Buffer Pool Pre-Load. Последняя позволяет сохранять состояние буфер-пула при рестарте и за счет этого получать "прогретую" базу сразу после старта (а не тратить на это долгие часы).
  • Множество счетчиков и расширенных отчетов (по пользователям, по таблицам, расширенный вывод SHOW ENGINE INNODB STATUS и т.п.), что очень помогает находить, например, самых "грузящих" систему клиентов.
  • XtraDB Storage Engine - обратно совместим со стандартным InnoDB, при этом гораздо лучше оптимизирован для высоконагруженных проектов.

Примечание: Полный список можно посмотреть на сайте в разделе Percona Server Feature Comparison.

В качестве же системы хранения данных в MySQL также можно использовать "улучшенную версию" InnoDB - XtraDB:

  • На долгих запросах в MyISAM блокируется вся таблица. В InnoDB - только те строки, с которыми работаем. Соответственно, в InnoDB долгие запросы в меньшей степени влияют на другие запросы и не отражаются на работе пользователей.
  • На больших объемах данных и при высокой нагрузке таблицы MyISAM "ломаются". Это - известный факт.

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

В качестве мониторинга и аналитики, в дополнение к тому, что предлагает сам облачный провайдер, можно использовать все те же привычные сервисы, которые используются в случае "не облака": nagios, munin и прочие.


При использовании "облаков" все-таки существуют некоторые нюансы. Например, стоит упомянуть проблему скорости.

Самое простое в этом случае - организовать RAID. Например, Amazon позволяет организовать "софтварный" рейд довольно просто, который работает долго и практически не ломается.

Также стоит отметить, что если "облако" позволяет, то можно использовать специальные быстрые диски. У Amazon, например, есть диски с Provisioned IOPS.

Примечание: Подробнее про использование облачных "дисков" и бэкап на них, включая Инкрементальный бэкап MySQL, можно посмотреть в следующей статье.


Ссылки по теме:


0
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии