MHA for MySQL: Master High Availability Manager and tools for MySQL
Недавно вышел релиз 0.52 замечательного средства поддержки MySQL кластера “Master High Availability Manager” от моего японского товарища Yoshinori Matsunobu. Он известен в первую очередь, как разработчик HandlerSocket (NoSQL средства доступа к БД MySQL).
Он работает в компании DeNA, которая управляет географически-распределённый MySQL кластером. Чем больше машин в кластере, тем больше вероятность сбоев. Именно поэтому Yoshinori занялся разработкой такого рода. MHA был протестирован в рамках компании и теперь его можно спокойно скачать с Google Code.
Обзор релиза
Итак, что же нового в версии 0.52.
- Именование версий теперь будет таким: mha4mysql-manager-X.Y Автор кстати непрозрачно намекает, что в будущем собирается патентовать одноимённую (MHA) торговую марку.
- Теперь поддерживается Multi-Master схема! В прошлой (0.50) версии она не работала, по этому поводу даже создали feature request на gitbub. Разработка велась сначала в отдельной ветке, а 12 сентября была перенесена в основную. Пример конфига для установки вы найдёте здесь.
- Багфиксы:
- Manager-Issue#6 masterha_check_repl may die with UUV when a master dies
- Manager-Issue#8 MHA Manager does not start if Log::Dispatch version is 2.22 or lower
- Manager-Issue#10 @@global.relay_log_purge should be preserved on change master
- Manager-Issue#11 Manager aborts by UUV if errstr is empty (rare cases)
Multi-master scheme
Как я понял, схема работает следующим образом. Пусть есть 4 сервера A <–> B, A –> C, B –>D и в данный момент сервер A – активный мастер, т.е. на него идут все запросы на запись. Мастер-сервер B находится в оперативном резерве. Сервер С – slave для A, D – slave для B. Как только сервер A падает, то активным мастером становится B, а C переключается на него. Схема очень похожа на MongoDB Replica Sets, однако там голосование нод и выборы нового мастера идёт децентрализовано, а здесь централизовано с помощью MHA Manager’а.
Но в принципе и на том спасибо, ранее такой схемы не было, а сейчас она бы очень пригодилось многим админам и веб-разработчикам, т.к. избавляет от ручного труда по перенастройке (да я в курсе про MMA-tools). Например в 1С-Битрикс: веб-кластер насколько я знаю в данный момент делают аналогичную системе. Теперь можно взять за основу труды Yoshinori и допилить их под свои нужды.
Ссылки
http://yoshinorimatsunobu.blogspot.com/2011/09/mha-for-mysql-052-released.html
http://code.google.com/p/mysql-master-ha/
http://code.google.com/p/mysql-master-ha/wiki/TableOfContents?tm=6
http://code.google.com/p/mysql-master-ha/downloads/list