我已经成功配置了一套设置,其中有一台主计算机和一台备份计算机,因此当主计算机发生故障时,备份计算机将恢复运行。当主计算机再次启动时,它将接管主计算机的位置,而备份计算机将再次接管备份计算机的位置。
我的问题是,如何配置 keepalived,以便如果一台机器发生故障,另一台机器成为主机器,它会一直担任主机器,直到它自己发生故障?这意味着我不想有静态的主机器和备份机器,我需要它们可以互换。当其中一台发生故障时,另一台机器成为主机器,当第一台机器恢复时,它成为第二台机器的备份机器。
我之所以问这个问题是因为我正在尝试设置 mysql 复制。因此,每当我有一台主服务器时,我都希望备份计算机成为该计算机的从属并复制数据,并且如果主服务器死机,我希望有一个过渡来保持主服务器的位置,以便它可以获取新数据。当第一台机器恢复时,我希望它复制新数据并继续监听。
任何建议都将受到感谢。
这是我当前的 keepalived 配置
掌握:
global_defs {
script_user root root
}
vrrp_script chk_mysql {
script "/home/replication_scripts/checker.sh"
interval 2 # every 2 seconds
rise 2
fall 2
weight 10
}
vrrp_instance ctrl1 {
state MASTER
advert_int 1
interface br-data0
virtual_router_id 100
priority 100
unicast_src_ip 10.3.80.102
authentication {
auth_type PASS
auth_pass 1234
}
track_script {
chk_mysql
}
virtual_ipaddress {
10.3.80.101/16 dev br-data0
}
notify_backup /home/replication_scripts/to_backup.sh
notify_master /home/replication_scripts/to_master.sh
}
备份:
global_defs {
script_user root root
}
vrrp_script chk_mysql {
script "/home/replication_scripts/checker.sh"
interval 2 # every 2 seconds
fall 2
rise 2
weight 10
}
vrrp_instance ctrl2 {
state BACKUP
interface br-data0
virtual_router_id 100
priority 100
unicast_src_ip 10.3.80.103
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
track_script {
chk_mysql
}
virtual_ipaddress {
10.3.80.101/16 dev br-data0
}
notify_master /home/replication_scripts/to_master.sh
notify_backup /home/replication_scripts/to_backup.sh
}