我无法在 xen domU 上正确运行 keepalived。
我正在关注此链接进行配置,它在某些本地 VM(与 KVM 一起运行)上运行良好。如果我设置了完全相同的配置,但在 xen domU 上,它不起作用:两台服务器看不到对方并决定成为主服务器(10.10.0.200 是虚拟 IP)
$ sudo ip addr sh eth0 # host1
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:73:b0:78 brd ff:ff:ff:ff:ff:ff
inet 10.10.0.100/24 brd 10.10.0.255 scope global eth0
inet 10.10.0.200/32 scope global eth0
inet6 fe80::216:3eff:fe73:b078/64 scope link
valid_lft forever preferred_lft forever
$ sudo ip addr sh eth0 # host2
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:ee:5e:fd …Run Code Online (Sandbox Code Playgroud) 我有两个系统,两个都是虚拟机。配置为使用桥接网络。我正在尝试使用 keepalived 来管理 VIP 的所有权 - 10.190.1.230。我尝试了从源代码构建的两个版本的 keepalived-1.2.2 和 keepalived-1.2.1。
ServerA - RHEL5.2 x64 - 10.190.1.228 - PRIORITY 50
ServerB - RHEL6 x64 - 10.190.1.229 - PRIORITY 101
VIP - 10.190.1.230
Run Code Online (Sandbox Code Playgroud)
我的问题似乎是在 ServerB 上 keepalived 没有发送多播广告。它正在看到多播广告。来自服务器A:
[root@ServerB~]# tcpdump -vv -c 3 -i eth0 vrrp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
10:18:10.760577 IP (tos 0x0, ttl 255, id 856, offset 0, flags [none], proto VRRP (112), length 40)
10.190.1.228 > 224.0.0.18: VRRPv2, Advertisement, vrid 151, …Run Code Online (Sandbox Code Playgroud) Keepalived可以通过组合两个节点上的nopreempt选项和BACKUP状态来做到这一点:
怎么样UCARP?
Name : ucarp
Arch : x86_64
Version : 1.5.2
Release : 1.el5.rf
Size : 81 k
Repo : installed
Summary : Common Address Redundancy Protocol (CARP) for Unix
URL : http://www.ucarp.org/
License : BSD
Description: UCARP allows a couple of hosts to share common virtual IP addresses in order
: to provide automatic failover. It is a portable userland implementation of the
: secure and …Run Code Online (Sandbox Code Playgroud) 我有两个运行 keepalived 的节点和两个 VIP,例如
Node 1 Node 2
VIP1 VIP2
Run Code Online (Sandbox Code Playgroud)
因此,在每一个节点,我有两个定义vrrp_instance,所以我假定这两个vrrp_instance在我的keepalived.conf假设是唯一的,但也可以是另一个节点上相同的值,对不对?
脚步
192.168.10.100)在第 6 步之后 Ping 不起作用。没有服务器获得虚拟 ip。(我检查过ip addr show eth1)
直到我重新启动keepalived服务,Master才能取回虚拟IP。
如何让master在不重启服务的情况下获得虚拟ip?
保活配置:
主机 1(主)
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.10.100
}
}
Run Code Online (Sandbox Code Playgroud)
主机 2(从机)
vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret …Run Code Online (Sandbox Code Playgroud) 我设法使用 keepalived 使 HAproxy 在故障转移配置中工作,如Architecture.txt文档中的建议。
我使用了 CentOS 5.5、来自 epel 存储库的 HAproxy rpm (haproxy-1.3.25-1.el5) 和来自 CentOS 测试存储库的 keepalived rpm (keepalived-1.1.15-0.el5.centos)。
这是我的 keepalived 配置
vrrp_script chk_haproxy { # Requires keepalived-1.1.13
script "killall -0 haproxy" # cheaper than pidof
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101 # 101 on master, 100 on backup
virtual_ipaddress {
10.0.0.30
10.0.0.31
}
track_script …Run Code Online (Sandbox Code Playgroud) 新的 Amazon Opsworks 服务使用 haproxy 而不是 Amazon 自己非常有限的弹性负载平衡器,所以我开始研究 haproxy 作为对我们的 Web 应用程序服务器进行负载平衡、提供会话故障转移等的更好选择。 我让 haproxy 顺利工作使用一台 haproxy 服务器和几台 Web 应用服务器,但我想避免 SPOF。
我想我想通了,我现在正在测试 - 您使用主服务器的内部 IP 在两台服务器上进行 keepalived。
domain-name-system haproxy amazon-ec2 amazon-elastic-ip keepalived
我的 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
我需要在多个“真实服务器”之间对 UDP 流量进行负载平衡,并以真正的循环方式进行。我已经开始使用 keepalived,但意外地发现,LVS 将 UDP 流量视为“连接”(无论 UDP 是什么......)。实际上,这意味着来自特定客户端的所有流量始终都流向同一个“真实服务器”(这是一个大问题,因为某些客户端可能会产生如此大的流量,以至于单个后端将不堪重负) .
显然,这是预期的行为,但是最近的 LVS 版本有一个“--ops”标志,这使 LVS 绕过其上述行为,以便独立处理每个 UDP 数据报(这就是我想要的!)。但是(总是有一个但是……)这个功能没有从 keepalived.conf 中暴露出来。
有什么解决方案可以让我
显然应该是基于 Linux 的。任何形式的 DNS 轮询在这里都不起作用,因为客户端不知道 DNS。
PS我将尝试脉冲/食人鱼,但从阅读我收集的文档来看,它也没有公开“--ops”标志。我还将尝试mon(通过直接调用 ipvsadm使mon检查后端并添加/删除真实服务器)。
keepalived ×10
haproxy ×3
centos ×2
linux ×2
vrrp ×2
amazon-ec2 ×1
carp ×1
connection ×1
lvs ×1
networking ×1
ucarp ×1
udp ×1
virtual-ip ×1
virtualbox ×1
xen ×1