8.模拟故障
(1).停止一下node1
[root@node1 src]# service httpd stop
停止 httpd: [确定]
(2).查看一下的lvs
[root@master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.18.200:80 rr
-> 192.168.18.202:80 Route 1 0 0
(3).测试一下
(4).查看一下邮件
(5).重新启动一下node1
[root@node1 src]# service httpd start
正在启动 httpd: [确定]
(6).再查看一下lvs状态
[root@master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.18.200:80 rr
-> 192.168.18.201:80 Route 1 0 0
-> 192.168.18.202:80 Route 1 0 0
(7).再查看一下邮件
(8).关闭master上keepalived
[root@master ~]# service keepalived stop
停止 keepalived: [确定]
[root@master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
(9).查看一下slave状态
[root@slave ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:f9:e6:26 brd ff:ff:ff:ff:ff:ff
inet 192.168.18.207/24 brd 192.168.18.255 scope global eth0
inet 192.168.18.200/32 scope global eth0
inet6 fe80::20c:29ff:fef9:e626/64 scope link
valid_lft forever preferred_lft forever
[root@slave ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.18.200:80 rr
-> 192.168.18.201:80 Route 1 0 0
-> 192.168.18.202:80 Route 1 0 0
(10).再次测试一下
注,大家可以看到,经过上面的演示我们现在LVS的高可用即前端负载均衡的高可用,同时实现对后端realserver监控,也实现后端realserver宕机时会给管理员发送邮件。但还有几个问题我们还没有解决,问题如下:
所有realserver都down机,怎么处理?是不是用户就没法打开,还是提供一下维护页面。
怎么完成维护模式keepalived切换?
如何在keepalived故障时,发送警告邮件给指定的管理员?
9.所有realserver都down机,怎么处理?
问题:在集群中如果所有real server全部宕机了,客户端访问时就会出现错误页面,这样是很不友好的,我们得提供一个维护页面来提醒用户,服务器正在维护,什么时间可以访问等,下面我们就来解决一下这个问题。解决方案有两种,一种是提供一台备用的real server当所有的服务器宕机时,提供维护页面,但这样做有点浪费服务器。另一种就是在负载均衡器上提供维护页面,这样是比较靠谱的,也比较常用。下面我们就来具体操作一下。
(1).master与slave安装上httpd
[root@master ~]# yum install -y httpd
[root@slave ~]# yum install -y httpd
(2).配置维护页面
[root@master ~]# vim /var/www/html/index.html
Website is currently under maintenance, please come back later!
[root@slave ~]# vim /var/www/html/index.html
Website is currently under maintenance, please come back later!
(3).启动httpd服务并测试
[root@master ~]# service httpd start
正在启动 httpd: [确定]
[root@slave ~]# service httpd start
正在启动 httpd: [确定]