クラウドベースのクラスターを作成しているので、今のところユニキャストを使用して他のペースメーカー/コロシンクノードに接続しています。プライベートIPを使用してクラスターを作成することができました。クロスリージョンクラスターを作成するために、パブリックIPを使用したいと思いました。 memberaddrにパブリックIPを、bindnetaddrにノードのパブリックIPを指定して、汎用構成を使用してみました。このようなもの
interface {
member {
memberaddr: <public ip 1>
}
member {
memberaddr: <public ip 2>
}
member {
memberaddr: <public ip 3>
}
ringnumber: 0
bindnetaddr: <current nodes public Ip>
mcastport: 5405
ttl: 1
}
transport: udpu
これは機能していません。私は何か間違ったことをしていますか?私が見つけることができたすべての参照はcorosync2.xのためのものです
ありがとうございました
私はこれをほとんど忘れていました。誰かがcorosync1.4をパブリックIPを使用してクラウドで動作させようとしている場合。 Corosyncは、指定したバインドされたアドレスに従ってインターフェイスにバインドし、インターフェイスアドレスとなるバインド先アドレスを生成します。
私が理解していることから、このIPは、パケットを受信したアドレスではなく、このアドレスに応答するすべてのノードにブロードキャストされています。
そのため、一部のクラウドのようにパブリックIPがボックスにない場合は、パブリックIPのようにCorosyncをそのまま使用できない可能性があります。
Corosync構成がプライベートネットワークで機能する場合は、パブリックネットワークでも機能するはずです。 UDPポート5404と5405がノード間で通信できるようにするファイアウォールルールが設定されていることを確認します。
また、bindnetaddr
は必ずしもIPアドレスである必要はありません。ネットワークアドレスを探しています。ネットマスクに正しいネットワークアドレスを使用していることを確認してください。
Corosync.confのマニュアルページから:
bindnetaddr
This specifies the network address the corosync executive should
bind to.
bindnetaddr should be an IP address configured on the system, or
a network address.
For example, if the local interface is 192.168.5.92 with netmask
255.255.255.0, you should set bindnetaddr to 192.168.5.92 or
192.168.5.0. If the local interface is 192.168.5.92 with net‐
mask 255.255.255.192, set bindnetaddr to 192.168.5.92 or
192.168.5.64, and so forth.
This may also be an IPV6 address, in which case IPV6 networking
will be used. In this case, the exact address must be specified
and there is no automatic selection of the network interface
within a specific subnet as with IPv4.
If IPv6 networking is used, the nodeid field in nodelist must be
specified.