構成別のアーキテクトを紹介します。
MySQLも他の商用RDBのように複数の高可用性手段がありますので、ニーズにより選択が可能です。
| 高可用性 | パフォーマンス | 拡張性 | 運用の容易さ | 導入コスト | |
|---|---|---|---|---|---|
| レプリケーション構成 (Master-Slave) |
△ | ○ | ◎ | ◎ | 低い |
| Active/Standby(HA)構成 (DRDB+Heartbeat) |
○ | △ | ○ | ○ | やや低い |
| Active/Standby +レプリケーション 構成 (DRDB+Heartbeat+Master-Slave) |
○ | ○ | ◎ | ○ | やや低い |
| Active/Active構成 (MySQLCluster) |
◎ | ◎ | ○ | △ | 高い |
| Active/Active構成 (uni/cluster for MySQL) |
◎ | ○ | ◎ | × | 高い |
DR:BD+Heartbeat+Master-Slave 構成が、弊社お勧めの構成となります。
MySQLは、強力なレプリケーション機能を持っています。
検索系サーバのスケールアウトや、更新系サーバの検索負荷を減らす目的としてかなり有用となります。安価な機器で比較容易に構築が可能です。DR用のスタンバイデータベース用途として活用することもできます。
非同期な連携となるため、Write-Writeクラスター環境には向いていません。(ただし、アプリケーションの書込制御次第で双方向レプリケーションという構成も可能です)
Slaveにも更新負荷はかかりますが、バイナリログ出力を停止すればI/O負荷が下ります。

レプリケーション構成は検索系サーバを簡単にスケールアウトできます。
OSSプロダクトである、「DR:BD」と「Heartbeat」を組合わせることで、共有ディスク無しの、安価なHAクラスターの構築が可能になります。HeartbeatとDRBDは相性がよく、セットソリューションとして扱われることが多いです。HeartbeatクラスタにMySQLリソースを登録することで、MySQLのHAシステムが構築できます。(弊社検証環境にて動作を確認しております)

Heartbeatが疎通確認とリソースの死活監視、Failoverを実現します。
DR:BDはPrimary Nodeのみ書き込(Mount)み可能。クラスター構成時も Split Brainを防ぐDR:BD + Heartbeat 構成は、24×365システムが安価で構築できます。
※DR:DBは同期書込の性質上、データの更新時に多少のオーバーヘッドがあります。(弊社環境での確認時は5~10%程度の速度ダウン)
「DR:BD」と「Heartbeat」のHAクラスタをレプリケーションMasterとすることで、更新系サーバの可用性を確保しつつ、検索系サーバの可用性とスケーラビリティを確保する高可用性MySQLシステムの構築が可能となります。

24×365対応でReadノードのスケールも可能な本構成が弊社お勧めの構成となります。
SmartStyle社の提供する商用プロダクトuni/cluster for MySQL(※)は、MySQLのActive-Activeクラスターの実現を可能にします。
※開発元はContinuent社

uni/clusterはMySQL DBを2台~最大16台までActive環境で構築することができます。
(モジュールが必要)
スケールアウトとしてMySQL DBサーバを構築する要領となります。(Active)

【障害時の切替】
MySQL DB(A)が障害でアクセスができなくなります
⇒uni/clusterがMySQL DB(A)の障害を検知します
⇒uni/clusterがMySQL DB(A)からMySQL DB(B)へ切り替えます
⇒MySQL DB(A)のアクセスはMySQL DB(B)へ自動的にデータを引き継ぎ、継続させます
Writeノードをクラスター化することが可能で、MySQL Clusterより安価に構築できます。