DRDB を使って MySQL の可用性を高めるのがいいらしい
DRBD (Distributed Replicated Block Device) って初めて知ったんだけど、なんかブロックデバイスをネットワーク越しにコピーするものみたい。ネットワーク経由のRAID1 (mirroring) ということか。
で、MySQLではこれを使って可用性を高めるソリューションがおすすめらしい。
Clusterと比べると、可用性は多少落ちるが、設定は簡単になるとか。
MySQL 高可用性ソリューションの概要
- 可用性が低い順に、レプリケーション→DRBD + Heartbeat→MySQL Cluster
- MySQL ClusterはShared Nothingでネットワーク上のRAID1と考えればよい
- マスターのレプリケーションはDRBDで。SANやNASより良いのは、読み取りではローカルアクセスなところ
- 理想の構成図は、Shardを複数作る下に、DRBDが二つぶら下がり、さらにslaveが複数台ぶらさがっている形
- DRBDのフェールオーバーに掛かる時間は30秒未満、とのこと (下も注目)
DR:BDおよびHeartbeatによる高可用性MySQL
- MySQL Clusterは良さそうだが、当時はサポートが頼りない、と言うことでMySQL社に止められた
- DR:BDでマスターをPrimaryとSecondaryバックアップ構成にし、Heartbeatで監視
- DR:BDはパフォーマンスの劣化がほぼなく、マスターの一台を止めて作業やハード交換もできる
データ量は、検証結果では、40GBくらい、秒間2000トランザクションなどは問題なさそうだった
パートナー向けの打合、セッション、これでもかというくらい「DRBD」をプッシュしてきます。
http://k.hirohama.biz/wiki/index.php/MySQL_Cluster
ヘー。試してみたいけど、難しいな。