准备apache
准备两台机器,IP地址信息以下:服务器
host1: 192.168.56.103 host2: 192.168.56.104
为了测试须要,分别在两台机器上安装apache并启动httpd服务,使下面两个url都可访问:测试
安装keepalivedurl
在两台机器上分别安装keepalivedspa
sudo yum install -y keepalived
配置keepalivedcode
host1上keepalived 配置router
$ cat /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state MASTER interface eth2 virtual_router_id 51 priority 101 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.56.105 } }
host2上keepalived 配置blog
$ cat /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state MASTER interface eth2 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.56.105 } }
启动keepalived 服务ip
$ sudo service keepalived start $ sudo chkconfig keepalived on
测试get
服务启动后,先访问下面的虚拟地址访问http服务器
http://192.168.56.105
查看IP地址信息
host1上IP地址信息
$ ip addr show eth2 3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:32:83:82 brd ff:ff:ff:ff:ff:ff inet 192.168.56.103/24 brd 192.168.56.255 scope global eth2 inet 192.168.56.105/32 scope global eth2 inet6 fe80::a00:27ff:fe32:8382/64 scope link valid_lft forever preferred_lft forever
其中能够看到inet 192.168.56.105/32 scope global eth2,说明如今host1是做为虚拟IP的master来运行的。
host2上IP地址信息
$ ip addr show eth2 3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:ec:90:7b brd ff:ff:ff:ff:ff:ff inet 192.168.56.104/24 brd 192.168.56.255 scope global eth2 inet6 fe80::a00:27ff:feec:907b/64 scope 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 eth2 3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:32:83:82 brd ff:ff:ff:ff:ff:ff inet 192.168.56.103/24 brd 192.168.56.255 scope global eth2 inet6 fe80::a00:27ff:fe32:8382/64 scope link valid_lft forever preferred_lft forever
此时host1上ip地址信息中再也不包含虚拟IP"192.168.56.105"信息。
host2上IP地址信息
$ ip addr show eth2 3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:ec:90:7b brd ff:ff:ff:ff:ff:ff inet 192.168.56.104/24 brd 192.168.56.255 scope global eth2 inet 192.168.56.105/32 scope global eth2 inet6 fe80::a00:27ff:feec:907b/64 scope link valid_lft forever preferred_lft forever
如今能够看到host2上ip地址信息中已经包含虚拟IP"192.168.56.105"信息了。
此时若是再把host1上的keepalived服务启动,会发现虚拟IP"192.168.56.105"又从新绑定到host1上了。