实验拓扑图

集群主节点NodeManager未启动 集群节点故障_html



实验要求:


使用Keepalived实现web服务器的高可用

Web服务器IP地址分别为192.168.4.53和192.168.4.54

Web服务器53 为主服务器,Web服务器54为备服务器

Web服务器的VIP地址为192.168.4.251

客户端通过访问VIP地址访问Web页面



实验步骤:

实验准备

    配置yum源

# service iptables stop            //关闭防火墙
# chkconfig iptables off            //关闭开机自启
# setenforce 0                            //设置SELinux 为宽松模式

    配置WEB服务器  pc53 / pc54

#yum -y install httpd  
    #service httpd start 
    #chkconfig httpd on
    [root@pc53 ~] #echo " 192.168.4.53  " > /var/www/html/test.html
    [root@pc54 ~] #echo " 192.168.4.54 " > /var/www/html/test.html



1 在高可用集群主机上安装 keepalived

# yum list | grep keepalived
keepalived.x86_64                      1.2.13-5.el6_6                    LoadBalancer
# yum -y install keepalived 
# rpm -qc keepalived
/etc/keepalived/keepalived.conf //主配置文件
/etc/sysconfig/keepalived


2 分别修改服务的主配置文件

# cp /etc/keepalived/keepalived.conf /root/ //备份主配置文件

[root@pc53 ~]# vim /etc/keepalived/keepalived.conf 
...
vrrp_instance webha {
    state MASTER // 描述信息  MASTER为主服务器
    interface eth0         // 定义网络接口
    virtual_router_id 51          //主 备VRID号必须一致
    priority 150 //服务器优先级
    advert_int 1
    authentication {
        auth_type PASS         //验证方式
        auth_pass 123456 //验证密码     主  备服务器密码必须一致 
    }
    virtual_ipaddress {
        192.168.4.251 //VIP地址
    }
}
...         //为了方便实验 32行以下 可以全部删除


在一个一主多备的Keepalived集群中,“priority”值最大的将成为集群中的Master节点,而其他都是Backup节点。在Master节点发生故障后,Backup节点之间将进行“民主选举”,通过对节点优先级值“priority”和““weight”的计算,选出新的Master节点接管集群服务。


[root@pc54 ~]# vim /etc/keepalived/keepalived.conf 
 ...
vrrp_instance webha {
    state BACKUP            // 描述信息 BACKUP为备用服务器
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.4.251
    }
}
...
//为了方便实验 32行以下 可以全部删除


3 分别启动keepalived服务

# service keepalived start //启动服务


4 在高可用集群主机上分别查看是否获取VIP地址

# ip addr show //查看主机上的虚拟IP地址
[root@pc53 ~]# ip addr show | grep 192.168.4
    inet 192.168.4.53/24 brd 192.168.4.255 scope global eth0
    inet 192.168.4.251/32 scope global eth0
[root@pc54 ~]# ip addr show | grep 192.168.4
    inet 192.168.4.54/24 brd 192.168.4.255 scope global eth0


//客户端测试
# elinks --dump 192.168.4.251/test.html
   192.168.4.53
# elinks --dump 192.168.4.251/test.html
   192.168.4.53


模拟 主机53 故障  测试高可用

[root@pc53 ~]# service keepalived stop
[root@pc53 ~]# ip addr show | grep 192.168.4
    inet 192.168.4.53/24 brd 192.168.4.255 scope global eth0

[root@pc54 ~]# ip addr show | grep 192.168.4
    inet 192.168.4.54/24 brd 192.168.4.255 scope global eth0
    inet 192.168.4.251/32 scope global eth0

//客户端测试
# elinks --dump 192.168.4.251/test.html
   192.168.4.54
# elinks --dump 192.168.4.251/test.html
   192.168.4.54


模拟修复 主机53 故障

[root@pc53 ~]# service keepalived start
[root@pc53 ~]# ip addr show | grep 192.168.4
    inet 192.168.4.53/24 brd 192.168.4.255 scope global eth0
    inet 192.168.4.251/32 scope global eth0
[root@pc54 ~]# ip addr show | grep 192.168.4
    inet 192.168.4.54/24 brd 192.168.4.255 scope global eth0

//客户端测试
# elinks --dump 192.168.4.251/test.html
   192.168.4.53
# elinks --dump 192.168.4.251/test.html
   192.168.4.53


如果53 网站服务 停止 其VIP地址不会释放

可以通过脚本 监测当80端口 down 的时候 自动关闭 keepalived 服务

使用周期性计划任务 定时执行次脚本




本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2060950,如需转载请自行联系原作者