corosync 中的多播地址使用

corosync 中的多播地址使用

我想知道 corosync 消息传递软件中多播地址的用途:

由于我们必须将每个网络接口与一个 IP 地址和一个特定端口绑定,并且每个环都通过这些 IP 进行通信,所以
我不明白为什么我们还必须使用多播地址。

有人可以启发我吗?

谢谢 !

[编辑]

好的,但是当我注释多播地址时,corosync 无法启动:

[MAIN  ] parse error in config: No multicast address specified

这是我的配置文件,我使用指南 Cluster from Scratch 来配置解决方案,大多数设置都是默认设置。

totem {
    version: 2
    token: 3000
    token_retransmits_before_loss_const: 10
    join: 60
    consensus: 3600
    vsftype: none
    max_messages: 20
    clear_node_high_bit: yes
    secauth: off
    threads: 0
    rrp_mode: passive

    interface {
            ringnumber: 0
            bindnetaddr: 10.55.54.1
            mcastaddr: 226.97.1.2
            mcastport: 5409
    }

    interface {
            ringnumber: 1
            bindnetaddr: 192.168.40.140
            mcastaddr: 226.96.1.1
            mcastport: 5408
    }
}

amf {
        mode: disabled
}

service {
        # Load the Pacemaker Cluster Resource Manager
        ver:       0
        name:      pacemaker
}

aisexec {
        user:   root
        group:  root
}

logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        syslog_facility: daemon
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
                tags: enter|leave|trace1|trace2|trace3|trace4|trace6
        }
}

答案1

你不必使用多播在 corosync 上。

您可以使用单播/etc/corosync/corosync.conf来完成你的工作。这可以通过在双成员集群中使用类似下面的命令来完成:

compatibility: whitetank
totem {
        version: 2
        secauth: off
        interface {
                member {
                        memberaddr: 10.23.55.201
                }
                member {
                        memberaddr: 10.23.55.202
                }
                ringnumber: 0
                bindnetaddr: 10.23.55.0
                mcastport: 5405
        }
        transport: udpu
}
service {
        # Load the Pacemaker Cluster Resource Manager
        ver:            0
        name:           pacemaker
        use_mgmtd:      yes
        use_logd:       yes
}
logging {
        fileline: off
        to_logfile: yes
        to_syslog: yes
        debug: off
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}

相关内容