web-dev-qa-db-ja.com

マルチマスターレプリケーション(MMR)とLinux-HAの混合

高可用性とレプリケーションの目的でMMR( http://mysql-mmm.org/ )を使用することに興味があります。問題は、Apacheなどの他のサービスにLinux-HAを使用することにも興味があるということです。仮想IPインターフェースの交換など、特定の事柄に関しては、この2つは重複しています。

誰かが同様の設定をしていて、上記の問題に対するいくつかのベストプラクティス/解決策を持っていますか?

4
imaginative

他のサービスは同じマシンにありますか?

そうでない場合は、重複はありません(仮想IPを備えた1セットのマシンではLinux-HA、別のセットのマシンではMMR)

他のサービスがある場合は、おそらく仮想化または他のマシンに移動することを検討してください。これにより、ネットワークインターフェイスの管理が簡素化されます(2つの仮想IP管理方法間で衝突することはありません)。 。

仮想化されたマスターが別々のホスト上にあることを確認してください。そうでない場合、ホストマシンに障害が発生すると、とにかくすべてのMySQLインスタンスが失われます。

1
David Gardner

2つのそれぞれに別々のVIPインターフェースを定義できることはもっともらしいようです。

私は同様の構成に関する参照を見つけることができなかったので、あなたはただ自分の道を進んで多くのテストをしなければならないと思います。

ただし、一般的には、マルチマスターレプリケーションテクノロジには非常に懐疑的です。フェイルオーバー構成の単一のマスターで期限を迎えることができるかどうかについては、一生懸命考えます。

0
Roy

それは私たちにとってはうまくいきます。

ただし、サービスごとに個別のVIPを使用することは、クリティカルですが、理論的には必要ありませんが、個別のVIPでのみ機能し、なしで少し奇妙。

0
LapTop006

Linux-HAとMMRは、個別に機能させるのが複雑になる可能性があります。あなたの主な関心事が相互作用である場合、それを制限する最も簡単な方法は、異種のハードウェア/ネットワークです。それが不可能な場合、ボックスごとの複雑さが増します。したがって、ベストプラクティスは、仮想アドレスとIPアドレスを可能な限り分割して、Linux-HAとMMRの両方の構成をインターフェイスのサブセットに集中させ、それらが相互に干渉することを心配しないようにすることです。また、マスターマスターレプリケーションが必要かどうかについても一生懸命考えます。それは非常に複雑になる可能性があり、複雑さは失敗する傾向があります。

マスタースレーブ、またはプライマリ障害が発生した場合のサービスの低下により、より適切にサービスが提供される場合があります。それでもマスター/マスターが必要な場合は、postgresを確認することをお勧めします(mmrオプションは多数ありますが)。私もそれについて言及するのは嫌ですが、そうでなければ却下されますが、私の経験では、MMRが重要であり、アーキテクチャ上または他の方法で解決できない場合は、OracleやDB2などの商用データベースを検討することをお勧めします。共有ストレージを介してログベースのMMRを実装し、非常に信頼性があります。

0
MattyB

私はLinuxHAツールを可能な限り使用し、MySQLコンポーネントを可能な限り使用していません。私はそれを投げることができる限り、MySQLのものを信用していません。

0
womble

あなたが興味を持っているものに似ているかもしれない本番クラスターがあります:

  • 両方のサーバー間でデータベースの同期を維持するためのMySQLMMM。
  • OCFS2 上に DRBD 0.8 マルチマスターモードで、両方のサーバー間でWebファイルと構成ファイルの同期を維持します。
  • Keepalived Webクラスターの前にある冗長ファイアウォール上。これは、稼働中のサーバーを追跡し、サーバー間でクライアント接続を均等に分散します。

実装と実行の継続はかなり簡単で、優れたパフォーマンスを提供します。 Keepalivedは、壊れた構成に関する非常にユーザーに役立つエラーをsyslogに入れないため、少し厄介なことがありますが、一度機能させると、堅実になります。 DRBDは、マシン間でファイルシステム全体の同期を維持するための最高の非SANソリューションであり、OCFS2は(テストでは)最高のパフォーマンスを発揮するオープンソースのクラスター化ファイルシステムであり、セットアップも非常に簡単です。

これに関する唯一の本当の注意点は、ユーザーの接続が1つのサーバーに向けられていて、その後、他のサーバーに切り替えられた場合、Apache/PHPセッションおよび状態データ(それがすべてデータベースに保存されていない限り)これは大したことではありません。keepalivedには、同じクライアントIPが常に同じバックエンドサーバーに接続することを保証するモードがあるためです(それらが稼働していると仮定します)。

0
Graeme