ホスティングプロバイダーとしてHetznerを使用して、2ノードのフェールオーバークラスターを実装しようとすると、次の問題が発生します。
私のcorosync.confは次のとおりです。
# Please read the corosync.conf.5 manual page
compatibility: whitetank
totem {
version: 2
secauth: off
interface {
member {
memberaddr: 144.76.91.XXX
}
member {
memberaddr: 5.9.121.XXX
}
ringnumber: 0
bindnetaddr: 5.9.121.0
mcastport: 5405
ttl: 1
}
transport: udpu
}
logging {
fileline: off
to_logfile: yes
to_syslog: yes
debug: on
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
`問題は、5.9.121.XXXが正しくバインドされることです(crm_monの下にクラスターの一部として表示されます)
udp 0 0 5.9.121.XXX:5405 0.0.0.0:* 8281/corosync
しかし、144.76.91.XXXは失敗し、代わりにlocalhostにバインドします。
udp 0 0 127.0.0.1:5405 0.0.0.0:* 7889/corosync
Tcpdumpログの分析は、144.76.91.XXXが5.9.121.XXXにICMPタイプ3(宛先到達不能)、コード3(ポート到達不能)で応答することを示しています。
corosync-f出力は繰り返し出力されます。
Jun 24 12:53:28 corosync [TOTEM]オペレーティングシステムまたはネットワークの障害のため、トーテムはクラスターを形成できません。このメッセージの最も一般的な原因は、ローカルファイアウォールが正しく構成されていないことです。
2つのホスト間でUDPトラフィックが有効になっており、ファイアウォールは現在配置されておらず、Debianを使用しています(したがってSELinuxは使用していません)。
この問題の間の回避策について何かアイデアはありますか?異なるサブネット上に2台のマシンでクラスターを作成することも可能ですか、それとも同じサブネット内のサーバーを注文する必要がありますか?返信をよろしくお願いします。
メーリングリスト(私の問題を解決した)から、Dan Friscuの好意で:
「両方の場所で同じbindnetaddrを使用することは想定されていません。これは、UDPU(ユースケース)のノードレベルでのみ関係します。144。*アドレスがあるノードでは、それをbindnetaddrとして使用します。」
これが誰かに役立つことを願っています。