我想知道 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
}
}