大規模監視におけるZabbix proxyの冗長化について

お世話になります。

大規模監視環境におけるZabbixProxyの冗長化について質問させてください。
現在、複数のZabbixProxyを用いてSNMPポーリングとICMP監視データを採取する構成を考えています。
対象監視サーバが数十万台あり、百万単位のアイテムを5分間隔でポーリングします。
その際、サーバを遠隔地に配置し、一方がダウンしてももう一方でカバーできるようZabbixProxyの冗長化を図りたいのですが、どうすればよいでしょうか。

冗長構成として、AエリアとBエリアに同様のProxyを配置し、通常時はAエリアを稼働、
Bエリアではサーバをアクティブ状態で、監視サービスだけを停止した状態でスタンバイし、
Aエリアのサーバがダウンした際にはシステムを長時間停止せずに自動でBエリアに稼働が移行する、という機能を実現したいです。
監視対象が膨大なので、常に2エリアを動かすことはできません。
どのような構成でどのような設定をすればよろしいでしょうか。

皆様の知恵をお貸しください。よろしくお願いします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。

広瀬です

①シェルか何か手製のScriptでエラー検知して、サーバダウンしたらStbを起動させる

 ⇒何を持ってハードダウンとするかが問題で、PINGが通らない=ダウンとは
   言い切れないのが1点<後述のパターンにも言えるが・・・

 ⇒また、IPアドレスは仮想IPを立てる必要があり、IPの制御を何処で担保するか

②Pacemaker + Corosync + DRBDを利用する

 ⇒仮想IP、リソース制御、DBデータの同期が可能。一番確実なのはこの辺だと思います。
   但し、DRBDに関してはそのままでは遠隔地のデータ同期が非常に重いのでDRBD Proxy
   を使う必要があります(DRBDそのものはOSSですが、DRBD Proxyは有償です)

 ⇒PacemakerにしてもDRBDにしても技術的な敷居が非常に高いのが欠点
  他、商用製品のLifeKeeperなどでも同等な事は可能です。果てしなく高そうですけど・・・

冗長化の要件がどの程度か次第ですが、上述のソフトウェア(商用、OSSともに)はダウンタイム
が何処かしらで発生します。
同一セグメント内という前提条件ですが、ライトなDBならDOWNからUPまで3秒で切り替わりますし、
InnoDBのバッファプールに50Gくらい割り当てているMySQLで実施した事がありますが、落とすの
に最低でも数十秒は要します

 ※DBの設計次第とも言えるのであくまで参考値

厳密性持たせるならFTサーバ使うしか手法は無いですが、ハードだけで数百万クラスなので
割に合わないと思います。保守も高そうで・・・・