web-dev-qa-db-ja.com

正しいインターフェイスではなく、127.0.0.1へのcorosyncバインディング

ホスティングプロバイダーとして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台のマシンでクラスターを作成することも可能ですか、それとも同じサブネット内のサーバーを注文する必要がありますか?返信をよろしくお願いします。

3
thanasisk

メーリングリスト(私の問題を解決した)から、Dan Friscuの好意で:

「両方の場所で同じbindnetaddrを使用することは想定されていません。これは、UDPU(ユースケース)のノードレベルでのみ関係します。144。*アドレスがあるノードでは、それをbindnetaddrとして使用します。」

これが誰かに役立つことを願っています。

2
thanasisk