keepalived故障转移虚拟IP参数

我有两个服务器(A主和B备份)与一个虚拟IP。

如果服务器A出现故障,我需要将虚拟IP分配给服务器B. 为此,我正在尝试configurationkeepalived

服务器在eth0:1服务器上configuration虚拟IP虚拟IP当前在eth0:1中设置为其他IP地址

我不知道如何configurationkeealived。 我必须分配相同的虚拟IP到这两个服务器,并启动keepalived或只在服务器A设置虚拟IP

首先,像eth0:1这样的别名接口在15年前曾经很重要,当时一个networking接口只能托pipe一个IP地址。 十多年来,您可以将多个IP地址添加到同一个networking接口,而无需使用接口别名:

/sbin/ip address add 192.0.2.123/32 dev eth0 /sbin/ip address add 192.0.2.124/32 dev eth0 /sbin/ip address add 192.0.2.125/32 dev eth0 /sbin/ip address list /sbin/ip address del 192.0.2.124/32 dev eth0 /sbin/ip address list dev eth0 

所以,如果你考虑过每个接口只有一个IP地址的想法:忘了它,没有太多需要这样做,keepalived也不会遵循这个想法。

从本质上讲,您将手动为每台服务器分配单独的IP,并configurationKeepalived以负责向其中一个服务器接口添加或删除额外的虚拟IP列表。

 vrrp_instance VRRP_1 { state BACKUP interface eth0 virtual_router_id 101 priority 100 advert_int 1 authentication { auth_type PASS auth_pass sometext } virtual_ipaddress { 192.0.2.123 } } 

这将使两个主机上的Keepalived定期通告(使用他们手动configuration的IP),准备好托pipe一个特定的虚拟IP列表(最多20个); 该公告还包含优先级(8位)和身份validation令牌(最多8个字符)。

如果其中一个主机没有看到相同的virtual_router_id使用相同的身份validation和相同的列表最大。 20个IP,在几秒钟内没有比它自己更高的优先级,它会将这些额外的IP添加到主机的接口,否则它会从主机的接口中删除它们。

如果您的主机使用相同的优先级:通告IP地址也用于决定由谁来pipe理该虚拟IP地址。

如果您使用的虚拟路由标识符与networking上的其他虚拟路由标识符相同,但您使用的是不同的IP列表或不同的身份validation令牌,则keepalived也会警告(并忽略其他任何通知)。

keepalived的“MASTER”和“BACKUP”状态仅用于启动时的初始化假设:以“MASTER”状态开始的系统不会等待其他任何通知到达,并立即开始添加额外的IP地址,而BACKUP节点在决定是否添加额外的IP地址之前,将等待几个潜在的公告通过。

请确保您的BACKUP节点不会以高于MASTER的优先级来通告IP地址; 否则,在启动keepalived之后,您的MASTER节点将立即接pipeIP地址,几秒钟后,您的BACKUP节点将接pipe该IP地址。

我个人偏好不关心“MASTER”,将所有节点configuration为“备份”,让VRRP决定在没有触发器接pipe的情况下需要做什么。