MariaDB, MySQLの冗長化、負荷分散の構成を考える
WordPressのデータベースを複数サーバーで冗長化して、負荷分散しながら管理しやすく、将来的にも拡張しやすい構成を考えたときの覚書。 調査した関連技術 MariaDB Server スタンドアローン版。 他のサーバーとはレプリケーション機能で冗長化する。 10.0からは並列レプリケーションが実装されて同期スピードが速くなったらしい。 更新はマスターに。参照はスレーブからというのが一般的。 MariaDB Galera Cluster 複数のサーバーでお互いを監視して同期してくれる。 マスター、スレイブの概念がない。 全てのノードに対して更新/参照が可能で、一つのノードへの更新が全てに伝搬される。 ノードの追加・削除は自動でやってくれる。 負荷分散(ロードバランス)の仕組みは別途用意しないといけない。 MySQL Cluster 管理ノード、データノード、SQLノードでクラスタを実現する。 データノードがデータの一部を持ち合うこと(シャーディング)で負荷分散になる。その分ネットワークがボトルネックになりやすい。 「 MySQL Cluster 構築・運用バイブル 」が分かりやすい Spider Storage Engine 複数サーバー間でデータを分散させるシャーディングを実現可能なストレージエンジン。 分散されたデータの管理はSpiderが行うため、使う側は通常のテーブルと同じように扱える。 MariaDB 10.0.4からバンドルされている。 MySQL Proxy MySQL専用のロードバランサー。 MariaDBとの組み合わせで動作するのかな? 参考: 漢(オトコ)のコンピュータ道: MySQL Clusterへの接続方法 PHP mysqlnd_ms mysqlnd(MySQL Native Driver)のプラグイン。 設定に従いロードバランスしてくれる。情報少ない。 参考: PHP: mysqlndプラグイン と MySQL Proxyの比較 - Manual 参考: PHP: mysqlnd_ms - Manual Linux Vertual Server (LVS) Linuxの負荷分散ソリューションの仕組み。 LinuxカーネルにはIPVSというロードバランスソフトウェアが組み込まれているので、管