master代理を作っておけばいいんぢゃないの?

mysqlで 1:Nの master - slave レプリケーションを作った場合に、誰をmasterに昇格させてよいか、わからなくなる問題について。
ふと思いついたんだけど、 master代理のslaveサーバを作っておけばいいんぢゃないかと思った。

問題は、どれが一番進んだ slaveなのかよくわからないということ。
だったら、意図的に進ませた slave (master代理)を作ればいいぢゃんと思った。

master は master代理にレプリケーションする。
master代理は、slaveにレプリケーションする。
つまり、一番進んだ slave は、 master代理になる。

よって、 master が死んだら、 master代理が master となる。


もし、master代理が死んだ場合は、 master が slave にレプリケーションするようにする。

フェイルバックな切り戻し。

基本的にメンテナンス時間を作っての切り戻し。

・master が死んだ場合
→master代理はmasterになったので、新サーバはmaster代理(master代理の新任)として作る。

1.master代理の新任をセットアップ。
↓
2.システムを停止して sorry を出す。
↓
3.master代理(現master)のデータを複製
↓
4.VIP Slaveの委譲
↓
5.master代理(現master)はmaster代理の新任とレプリ。
↓
6.salve は master代理の新任とレプリ
↓
7.元通り!!
・master代理 が死んだ場合
→新サーバはmaster代理(master代理の新任)として作る。

1.master代理の新任をセットアップ。
↓
2.システムを停止して sorry を出す。
↓
3.masterのデータを複製
↓
4.VIP Slaveの委譲
↓
5.masterはmaster代理の新任とレプリ。
↓
6.salve は master代理の新任とレプリ
↓
7.元通り!!

問題点

master代理が入る分だけ、レプリケーションの遅延が2倍になる。
フェイルバックにはシステムの停止が必須。




めんどいね、、、マスターのバイナリログを drbd に乗せたほうが楽でいいんぢゃないか。
iSCSIでもいいけど。