92  /  97

MySQL и облако

Просмотров: 19017
Дата последнего изменения: 17.01.2024
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5

  MySQL и облако

Облачные базы данных — это базы данных, которые запускаются на платформах облачных вычислений, таких как 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, можно посмотреть в следующей статье.


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

Модель развертывания

Существует два основных метода запуска базы данных в "облаке":

  • Непосредственно через образ виртуальной машины. Облачные платформы позволяют приобретать виртуальные машины, где возможно запускать базы данных. Пользователи могут загружать свои образы с уже установленной базой или же воспользоваться готовыми, где установлен уже оптимизированный экземпляр.
  • База данных, как сервис - некоторые облачные платформы предлагают уже готовый сервис баз данных, при помощи которого можно обойтись без виртуальной машины. Пользователю не нужно устанавливать и поддерживать базу данных самостоятельно. Заместо этого, поставщик сервиса берет на себя ответственность в установке и обслуживании базы данных.

    Например, Amazon Web Services предоставляет три базы данных, входящие в их облачный сервис: Amazon Relational Database Service (SQL-ориентированная база данных с MySQL интерфейсом), DynamoDB.

Так же можно приобрести хостинг базы данных, в случае если база данных не предоставляется как сервис. Например, облачный провайдер Rackspace предлагает такую услугу для баз данных MySQL.

Архитектура и общие характеристики

  • Многие провайдеры к базам данных предоставляют веб-интерфейс, при помощи которого пользователи могут устанавливать и настраивать экземпляры баз данных.
    Например, веб-консоль Amazon Web Services позволяет запускать экземпляры баз данных, создавать снепшот и следить за статистикой.
  • Так же предлагается компонент управления базами данных, который контролирует основную базу данных, используя специальное API сервиса. API открыто для пользователя и позволяет ему выполнять обслуживание и масштабирование своих экземпляров баз данных.
  • Сервис делает прозрачным для пользователя весь стек программного обеспечения, который используется для поддержания работоспособности базы. Обычно он включает в себя операционную систему, саму систему управления базами данных и стороннее программное обеспечение, используемое в работы. Поставщик услуг берет на себя ответственность за установку, исправление и управление данным программным обеспечением.
  • Сервис берет на себя масштабируемость и доступность базы данных. Причем особенности масштабируемости различаются у разных поставщиков — кто-то это делает автоматически, а другие позволяют пользователю производить расширение при помощи API. Также провайдеры обычно гарантируют высокую доступность сервиса (около 99,9 % или 99,99 %).

Источник: Wikipedia


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

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