准备
准备两台机器,IP地址信息如下:
host1: 192.168.56.103host2:192.168.56.104
为了测试需要,分别在两台机器上安装apache并启动httpd服务,使下面两个url均可访问:
http://192.168.56.103
http://192.168.56.104
安装keepalived
在两台机器上分别安装keepalived
sudo yum install -y keepalived
配置keepalived
host1上keepalived 配置
$ cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth2
virtual_router_id51priority101advert_int1authentication {
auth_type PASS
auth_pass123456}
virtual_ipaddress {192.168.56.105}
}
host2上keepalived 配置
$ cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth2
virtual_router_id51priority100advert_int1authentication {
auth_type PASS
auth_pass123456}
virtual_ipaddress {192.168.56.105}
}
启动keepalived 服务
$ sudoservice keepalived start
$sudo chkconfig keepalived on
测试
服务启动后,先访问下面的虚拟地址访问http服务器
http://192.168.56.105
查看IP地址信息
host1上IP地址信息
$ ip addr show eth23: eth2: mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 08:00:27:32:83:82brd ff:ff:ff:ff:ff:ff
inet192.168.56.103/24 brd 192.168.56.255scope global eth2
inet192.168.56.105/32scope global eth2
inet6 fe80::a00:27ff:fe32:8382/64scope link
valid_lft forever preferred_lft forever
其中可以看到inet 192.168.56.105/32 scope global eth2,说明现在host1是作为虚拟IP的master来运行的。
host2上IP地址信息
$ ip addr show eth23: eth2: mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 08:00:27:ec:90:7b brd ff:ff:ff:ff:ff:ff
inet192.168.56.104/24 brd 192.168.56.255scope global eth2
inet6 fe80::a00:27ff:feec:907b/64scope link
valid_lft forever preferred_lft forever
此时host2上ip地址信息中不包含虚拟IP"192.168.56.105"信息。
验证IP地址Failover
现在手动停止host1上的keepalived服务
$ sudo service keepalived stop
host1上IP地址信息
$ ip addr show eth23: eth2: mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 08:00:27:32:83:82brd ff:ff:ff:ff:ff:ff
inet192.168.56.103/24 brd 192.168.56.255scope global eth2
inet6 fe80::a00:27ff:fe32:8382/64scope link
valid_lft forever preferred_lft forever
此时host1上ip地址信息中不再包含虚拟IP"192.168.56.105"信息。
host2上IP地址信息
$ ip addr show eth23: eth2: mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 08:00:27:ec:90:7b brd ff:ff:ff:ff:ff:ff
inet192.168.56.104/24 brd 192.168.56.255scope global eth2
inet192.168.56.105/32scope global eth2
inet6 fe80::a00:27ff:feec:907b/64scope link
valid_lft forever preferred_lft forever
现在可以看到host2上ip地址信息中已经包含虚拟IP"192.168.56.105"信息了。
此时如果再把host1上的keepalived服务启动,会发现虚拟IP"192.168.56.105"又重新绑定到host1上了。