Новость из категории: Программы для ПК » Linux

Обзор MySQL Fabric 1.6.2

Обзор MySQL Fabric 1.6.2

MySQL Fabric - инновационный продукт, который позволит упростить работу с группами баз данных MySQL, повысить готовность бизнес-приложений и автоматически масштабировать систему.

Деятельность предприятий и организаций все больше требует непрерывности выполнения бизнес-задач: их остановка бывает чревата тяжелыми финансовыми и имиджевыми последствиями, а то и катастрофой. Высокая доступность (ВД, англ. High Availability) — это способность системы обеспечить бесперебойное обслуживание. В ВД особенно нуждаются те, чьи вычислительные системы (ВС) должны работать круглосуточно, без перерывов свыше нескольких минут. Доступность сервиса обычно измеряют количеством девяток. Если сервер работает 90% времени, его доступность — одна девятка. Золотой стандарт “High” — «пять девяток»: 99,999%. Высокодоступная ВС имеет право на перебои примерно пять минут в год! И это с учетом плановых простоев. Другое важное требование к ВС — масштабируемость (scaling). Любая современная крупная система — будь то сайт или облачное приложение — ежедневно обрабатывает до десятков миллионов запросов, обычно имеет сложную структуру и хранит немало данных. В таких ВС доминируют запросы на получение информации, а узкое их место — операция чтения; именно ее надо масштабировать, т.е. наращивать ресурсы и увеличивать производительность системы — естественно, при минимуме затрат.

Один из инструментов, удовлетворяющих эти нужды современных бизнес-приложений — продукт MySQL Fabric от корпорации Oracle. Эта расширяемая платформа с открытым кодом создана для работы с фермами серверов MySQL, упрощает операции с базами данных (БД) и обеспечивает ВД, автоматически выявляя сбои и перераспределяя нагрузку, и масштабируемость, посредством автоматизированного шардинга (сегментации) данных. Эти возможности реализуются и по отдельности, и совместно. MySQL Fabric управляет репликацией и при отказе главного сервера замещает его одним из подчиненных. Для масштабирования MySQL Fabric автоматизирует шардинг данных на основе маршрутизации запросов к серверу (или серверам, если MySQL Fabric используется совместно, с ВД) и ключа шардинга, задаваемого приложением: ключ позволяет узнать, на каком сервере лежат те или иные данные.

Обзор MySQL Fabric 1.6.2
Взаимодействие MySQL Fabric с приложениями

Работа MySQL Fabric

MySQL Fabric реализован в виде административного процесса mysqifabric и коннекторов, позволяющих перенаправлять запросы к конкретному MySQL-серверу на основе полученной маршрутной информации. Процесс mysqifabric обрабатывает все управляющие запросы, получаемые из командной строки интерфейса MySQL Fabric и от других процессов через интерфейс XML/RPC, а также отвечает за мониторинг главного сервера и обнаружение отказов. Всё состояние фермы серверов MySQL записывается в хранилище MySQL Fabric, которое реализовано на СУБД MySQL. Приложение обращается к БД через MySQL-коннекторы, которые хранят кэш маршрутной информации, получаемой от процесса mysqifabric, и затем использует эту информацию для отправки транзакций или запросов на нужный MySQL-сервер, минуя прокси, что позволяет избежать задержек. Сейчас Fabric поддерживает коннекторы для РНР (pre-GА + Doctrine), Python, Java + Hibernate, .Net и C (pre-GA).

Концепция ВД

В основе MySQL Fabric — понятие высоко-доступной группы (High Availability или HA-группа): это пул из двух и более MySQL-серверов. В любой момент времени один из этих серверов является главным (MySQL Replication Master), а все остальные — подчиненными (MySQL Replication Slaves). Каждой HA-группе присваивается уникальный идентификатор; именование производится по схеме регулярного выражения (shard_1, shard_2 и т.п.). Задача HA-группы — гарантировать бесперебойный доступ к данным, хранящимся в этой группе,

MySQL Fabric отслеживает состояние MySQL-серверов и гарантирует доставку запросов и транзакций на жизнеспособный сервер. Заметив отказ главного сервера, MySQL Fabric выбирает один из подчиненных серверов и назначает его главным, а остальным подчиненным серверам в HA-группе автоматически рассылаются обновления от нового главного сервера. Это позволяет выполнять операции чтения/записи в обычном режиме и без потерь. Еще одна ключевая возможность MySQL Fabric — маршрутизация запросов к базе данных, автоматическое перенаправление транзакций на текущую главную БД и балансировка нагрузок по выполнению запросов для подчиненных БД. При отказе главного сервера и изменении топологии сети приложению не надо вносить изменений для отправки транзакций на новый главный сервер. Логика обработки инкапсулирована внутри MySQL Fabric и прозрачна для приложения.

Другая возможность продукта — реализация географического резервирования, путем формирования HA-групп в различных дата-центрах. MySQL Fabric хранит свое состояние в БД MySQL, и его можно скопировать на удаленный сервер.

Путь к масштабированию

MySQL Fabric легко позволяет автоматически выполнять линейное масштабирование операций и чтения, и записи, благодаря автоматическому разнесению данных на шарды (shard (англ. «обломок») — сегмент данных в таблице). Еще одна концепция MySQL Fabric — глобальная группа [global group]: она хранит обновления, которые следует распространить на все шарды из схемы шардинга, Репликацию данных выполняет утилита MySQL Replication. Каждый шард может храниться либо на одном MySQL-сервере, либо в HA-группе. Администратор может выбирать, какой таблице нужен шардинг, какие столбцы таблицы взять в качестве ключей шардинга, а также задавать функции (HASH или RANGE) для маппинга данных, MySQL Fabric поддерживает операции разделения и перемещения шардов. Если сервер, где хранится шард, надо вывести из группы, или ему не хватает ресурсов для хранения данного шарда, MySQL Fabric может переместить шард на новый сервер или их группу. Если на сервере или группе объем данных в шарде или скорость транзакций растет слишком быстро, MySQL Fabric делит этот шард на два или более и шлет на хранение на другой сервер или группу. Операции с шардами для приложения прозрачны. MySQL Fabric выполняет автобалансировку запросов между доступными подчиненными серверами в пределах шарда. Пользователь может назначить серверам свои веса. ВД можно обеспечить и без шардинга, создав одиночную НA-группу с главным сервером и одним подчиненным. Шардинг легко добавить по требованию.

Обзор MySQL Fabric 1.6.2
Архитектура MySQL Fabric - простая и эффективная

Архитектура MySQL Fabric

MySQL Fabric обращается к серверам напрямую, без агентов, Метаданные хранятся в БД MySQL; для администрирования и резервирования служат стандартные инструменты MySQL, Поддерживаются ACID-транзакции, что гарантирует непротиворечивость хранимых данных, Расширяемый фреймворк позволяет легко дорабатывать сервисы и дополнять их новыми, И, наконец, MySQL Fabric разработан той же командой, что и MySQL Server и MySQL Replication, поэтому сопровождается экспертной и квалифицированной поддержкой Oracle Premier Support.

Исходный код MySQL Fabric (на Python) открыт под GPLv2. Открыты и API-интерфейсы к метаданным. Данные о топологии, маршрутной информации и статусе MySQL Fabric можно получить или модифицировать из командной строки через протокол API XML/RPC, либо напрямую из хранилища по SQL-запросам. Поддерживается сервер MySQL версии 5.6.17 и выше. Зависимости — Python 2 (2.6 и выше) и Connector/Python 1,2.1 и выше, MySQL Fabric 16.2 стал самостоятельным продуктом, но пока только для тестирования. Самая свежая промышленная версия — 1.6.1, она входит в пакет MySQL Utilities и скачивается с https://dev.mysql.com/downloads/utilities/

Не без ограничений

Процесс mysqlfabric — одиночный узел без резервирования. Он не защищен от сбоев и должен перезапускаться в случае отказа. Но это не означает падения всей системы: во время перезапуска маршрутизация операций идет в штатном режиме, используется локальный кэш. Шардинг не вполне прозрачен для приложения — приложению для доступа к БД нужен ключ. В запросах не поддерживаются связи между шардами, автоинкрементные столбцы нельзя назначить ключами шардинга. Маршрутизация основана на коннекторах, но их список ограничен. MySQL Fabric не поддерживает GUI и управляется через CLI, MySQL-протокол или API на XML/RPC.

«Многие крупнейшие в мире сайты и облачные приложения используют репликацию и шардинг MySQL для обеспечения высокой готовности и масштабируемости. Выпуская эту интегрированную систему с открытым исходным кодом, Oracle упрощает безопасное горизонтальное масштабирование MySQL-приложений, развернутых в корпоративной или облачной среде», - Томас Улин (Tomas Ulin), вице-президент Oracle по MySQL.

Вердикт

На удивление, Oracle сдерживает свое обещание развивать свободное промышленное ПО,


Итоговая оценка: 9 баллов из 10!

Рейтинг статьи

Оценка
5/5
голосов: 1
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх