レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。

埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。

http://www.irori.org/pub/mysql-mm.mov



画面は5分割しています。

フェイルオーバのメカニズム

今回のケースでは、停止から 5 秒後には、

異常の検知

プライマリのフェイルオーバ

が完了しています。

フェイルオーバのメカニズムは、レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン の 「<セカンダリをプライマリに昇格>」に書いた通りなんですが、監視とこのフェイルオーバ処理の実装は、

keepalived --vrrp

MySQLのL7レベルの監視をするスクリプト (check-service.db)

状態変更時にもろもろの処理をするスクリプト (trigger-vrrp.db) keepalived.confのnotifyや、check-service.db から実行される



で行ってます。