DRBD/Pacemaker/Corosync 2ノードクラスタを使用したSTONITH

DRBD/Pacemaker/Corosync 2ノードクラスタを使用したSTONITH

そこで、MySQLデータのレプリケーションに2ノードのDRBD/Pacemaker/CorosyncクラスタでSTONITHを使用するという矛盾した見解を多く見かけます。私が見つけた例は ペースメーカーのウェブサイトオフにするようですが、他の多くの場所ではオンのままにしておくべきだと言っています..... 私のセットアップは、2 つのインターフェイスを持つ 2 つのノードで、1 つは物理的に他のマシンに接続され、もう 1 つはスイッチに接続されます。その場合、冗長通信がある場合、STONITH は必要ですか? サーバーが両方のネットワーク接続を失った場合、MySQL データを受信できなくなります。サーバーが復旧したときに、スティッキー性を無限に設定して、マスターになろうとしないようにする予定です (そうすべきではありません)。この場合、STONITH は必要ですか、または推奨されますか?

答え1

最善の方法は、さまざまな障害モードで実際に何が起こるかをテストして、両方の MySQL サーバーがマスターになろうとする原因となる単一の障害がないことを確認することです。

1 つのサーバーでインターネット接続を無効にしてテストします。両方のサーバーで何が起こるかを確認し、接続を復旧したときに何が起こるかを確認します。

冗長接続についても同様に実行します。次に、すべてのネットワーク接続を一度に無効にして同じ操作を実行します。

2 ノード クラスターで STONITH を実行しない理由の 1 つは、両方のノードが他のノードを強制終了しようとして、実際に成功してしまうことが非常に多いことです。セットアップをテストして、両方のノードがシャットダウンしたり、両方のノードがマスターとして実行し続け、データベースが同期されなくなったりしないことを確認する必要があります。

実稼働前にテストしている間に私がお勧めするもう 1 つのことは、意図的にそれを壊すことです。mysql と drbd が同期しなくなるような操作を行って、修正方法を学びます。修正に必要な操作を書き留めます。実際に必要になる前に、その方法を知っておく方がはるかに良いからです。

関連情報