我有两台机器(A 和 B,A 是主)为虚拟 IP 运行 VRPP(来自 keepalived)。
如果 A 失败并恢复(无论出于何种原因),我如何防止 A 再次成为 Master?
我这样做是为了让我们有一个单一的故障转移到第二个盒子,恢复正常需要手动干预。
我的 keepalived 配置无法正常工作。
我有两台虚拟测试机(virtualbox)来尝试使用 keepalived/vrrp 进行一些操作。机器人可以完美地互相 ping 通(内部 virtualbox 网络)。
虚拟机 1(主):
eth0: Management
eth1: 192.168.2.1/24
eth2: 192.168.2.2/24
keepalived.conf:
vrrp_instance test {
state MASTER
interface eth1
track_interface {
eth2
}
virtual_router_id 1
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.3.1/24 dev eth1
192.168.3.2/24 dev eth2
}
}
tcpdump on eth1:
12:44:54.720119 IP 192.168.2.1 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 1, prio 101, authtype simple, intvl 1s, length 24
12:44:55.049465 IP 192.168.2.3 > vrrp.mcast.net: VRRPv2, Advertisement, …
Run Code Online (Sandbox Code Playgroud) 我的 keepalived 配置遇到了一些问题,并在这篇文章中找到了答案:Keepalived for more 20 virtual paths
但我不确定 virtual_ipaddress 和 virtual_ipaddress_excluded 之间的区别?谁能向我解释一下吗?医生说:
virtual_ipaddress_excluded { # 从 VRRP 数据包中排除的 VRRP IP
我想在某个接口上使用 keepalived,该接口将在某个时候获得 IP 但最初没有 IP,我可以在配置中以某种方式设置它吗?如果我现在尝试启动它,keepalived 会出错,因为 keepalived 不知道在发送 VRRP 数据包时要使用哪个源 IP 地址。会议:
!keepalived的配置文件
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass pwd
}
virtual_ipaddress {
192.168.0.13
}
notify /etc/state_change.py
}
Run Code Online (Sandbox Code Playgroud)
日志:
keepalived -f /etc/keepalived.conf --log-console --dont-fork
Thu Jun 28 11:25:53 2018: Starting Keepalived v1.4.4 (05/08,2018)
Thu Jun 28 11:25:53 2018: Running on Linux 4.7.8 #9 SMP Wed Jun 27 17:25:18 IST
2018 (built for Linux 4.7.8)
Thu Jun 28 11:25:53 …
Run Code Online (Sandbox Code Playgroud) 将 NTP 服务器放在虚拟 IP 后面是一种不好的做法吗?(VRRP)
简单地让客户直接与 2 个实例交谈会更喜欢多少?
由于 NTP 客户端保留服务器的 refid,我想它会区分 IP 后面的服务器何时交换,但我不确定它会如何影响它的行为。
我们已经设置了 3 个运行keepalived 的服务器。我们开始注意到一些我们无法解释的随机连任发生,所以我来到这里寻求建议。
这是我们的配置:
掌握:
global_defs {
notification_email {
webops@example.com
}
notification_email_from keepalived@hostname
smtp_server example.com:587
smtp_connect_timeout 30
router_id some_rate
}
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 2
weight 2
}
vrrp_instance VIP_61 {
interface bond0
virtual_router_id 61
state MASTER
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass PASSWORD
}
virtual_ipaddress {
X.X.X.X
X.X.X.X
X.X.X.X
}
track_script {
chk_nginx
}
}
Run Code Online (Sandbox Code Playgroud)
备份1:
global_defs {
notification_email {
webops@example.com
}
notification_email_from keepalived@hostname
smtp_server example.com:587
smtp_connect_timeout 30
router_id …
Run Code Online (Sandbox Code Playgroud)