LVS-DR+Keepalive高可用群集
2018-06-26 23:44
351 查看
LVS负载均衡群集其中之一:LVS-DR加上keepalive可实现稳定以及可靠的负载均衡;
节点服务器提供网络服务,利用内部网络存储服务器提供的存储空间,将需要提供的网络服务搭建其中。
##实验环境:
主调度服务器
节点服务器需要将网络服务提供出去,为了使得所有节点服务器仅能被调度服务器所调度,需要和调度服务器区建立相同虚拟IP.
节点服务器web1
提供httpd服务
建立虚拟IP
用于仅接受调度服务器所需请求。
调整proc响应参数
节点服务器web2
配置方式同web1,唯一区别是为了实验方便得出结论,采用不同首页。
模拟当主调度服务器损坏无法工作是,从服务器直接顶替工作,使得服务能够继续访问。
当客户端多次请求
当主调度服务器无法工作时
这里为了简化操作,直接将主调度服务器关机,达到模拟主调度服务器无法工作情况。然后继续使用客户端访问。
实验结构
实验思路:
调度服务器区域实现接收访问,调用节点服务器池可用服务器。实现keepalive,实现双机热备功能,由于调度服务器由于负载量过大出现拓机情况时,备份调度服务器可直接顶替工作,保证了服务访问不被中断。节点服务器提供网络服务,利用内部网络存储服务器提供的存储空间,将需要提供的网络服务搭建其中。
##实验环境:
服务器 | 系统环境 | IP地址 | 所需服务 |
---|---|---|---|
主调度 | centos7 | 192.168.200.201 | keepalived+ipvsadm |
从调度 | centos7 | 192.168.200.202 | keepalived+ipvsadm |
节点web1 | centos7 | 外:192.168.200.221 内192.168.100.101 | httpd+NFS |
节点web2 | centos7 | 外:192.168.200.222 内192.168.100.102 | httpd+NFS |
NFS存储 | centos7 | 192.168.100.111 | NFS |
实验部署
1、LVS调度服务器
主从调度服务器在LVS调度服务配置基本相同,主要区别在于实现keepalive时配置有所区别,对于区别处,文中有注明。主调度服务器
调整proc响应参数
#yum install keepalived ipvsadm -y //安装所需软件 #vim /etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0 //proc响应关闭重定向功能 #sysctl -p //对上述修改立即生效
配置虚拟IP
#cd /etc/sysconfig/network-scripts/ #cp ifcfg-ens33 ifcfg-ens33:0 //设置虚拟网卡 #vim ifcfg-ens33:0 //删除全部原有内容,写入以下内容 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.200.10 NETMASK=255.255.255.0 #ifup ens33:0 //启动虚拟网卡
配置调度服务脚本
#cd /etc/init.d/ #vim dr.sh #!/bin/bash GW=192.168.200.1 VIP=192.168.200.10 RIP1=192.168.200.221 RIP2=192.168.200.222 case "$1" in start) /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm systemctl start ipvsadm /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up /sbin/route add -host $VIP dev ens33:0 /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g echo "ipvsadm starting --------------------[ok]" ;; stop) /sbin/ipvsadm -C systemctl stop ipvsadm ifconfig ens33:0 down route del $VIP echo "ipvsamd stoped----------------------[ok]" ;; status) if [ ! -e /var/lock/subsys/ipvsadm ];then echo "ipvsadm stoped---------------" exit 1 else echo "ipvsamd Runing ---------[ok]" fi ;; *) echo "Usage: $0 {start|stop|status}" exit 1 esac exit 0 #chomd +x dr.sh //增加执行权限 #service dr.sh start //启动调度服务 #systemctl stop firewalld.service //关闭防火墙 #setenforce 0
从调度服务器
从调度服务器配置与主调度服务器配置完全相同,只是若遇到启动ifup ens33:0 报错失败的情况,只需将网卡重新启动,然后再次ifup即可。2、主从调度服务器keepalive配置
主调度服务器
#cd /etc/keepalived/ #vim keepalived.conf //编辑keepalive主配置文件 global_defs { ... smtp_server 127.0.0.1 //指向本地 router_id LVS_01 //指定名称,备份服务器不同名称 ... } vrrp_instance VI_1 { state MASTER //备份服务器是BACKUP interface ens33 //接口按照系统修改 virtual_router_id 10 //组号相同 ... auth_pass abc123 //验证密码 priority 100 //优先级备份小于主 ... virtual_ipaddress { 192.168.100.10 //虚拟IP地址 } ... virtual_server 192.168.200.10 80 { delay_loop 6 lb_algo rr lb_kind DR //采用DR直连路由模式 persistence_timeout 50 protocol TCP ... real_server 192.168.200.221 80 { //真实节点服务器IP地址 weight 1 TCP_CHECK { //TCP健康检查方式 connect_port 80 //删除URL地址部分,添加端口 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.200.222 80 { weight 1 TCP_CHECK { connect_port 80 //添加端口 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } ... #systemctl start keepalived //启动keepalive服务 #ip addr show dev ens33:0 //查看虚拟网卡
从调度服务器
从调度服务器的keepalive配置方式同主调度服务器,需要区分的地方已经注明。3、节点服务器
对于节点服务器需要利用NFS存储服务器提供的空间来提供服务,在实际工作环境中,实际是将存储服务器中提供的LVM动态逻辑卷或者raid磁盘挂载使用,对于挂载过程不在重复,可参见LVS-NAT负载均衡群集详细过程。节点服务器需要将网络服务提供出去,为了使得所有节点服务器仅能被调度服务器所调度,需要和调度服务器区建立相同虚拟IP.
节点服务器web1
提供httpd服务
#systemctl stop firewalld.service #setenforce 0 #yum install httpd -y //安装httpd服务 #echo "this is first web" > /var/www/html/index.html //创建首页,为了区别,web2首页需不同
建立虚拟IP
用于仅接受调度服务器所需请求。
#cd /etc/sysconfig/network-scripts #cp ifcfg-lo ifcfg-lo:0 #vim ifcfg-lo:0 DEVICE=lo:0 //删除原有内容,写入以下内容 IPADDR=192.168.200.10 //虚拟IP NETMASK=255.255.255.255 ONBOOT=yes
调整proc响应参数
#cd /etc/init.d/ #vim web.sh //编写服务脚本,方便管理 #!/bin/bash VIP=192.168.200.10 case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK " ;; stop) ifconfig lo:0 down route del $VIP /dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stopd" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0 #chmod +x /etc/init.d/web.sh #ifup lo:0 //启动虚拟网卡 #service web.sh start //启动服务
节点服务器web2
配置方式同web1,唯一区别是为了实验方便得出结论,采用不同首页。
4、测试
模拟客户端访问,当多次请求时,客户端得到的是不同节点服务器给予的响应回馈。模拟当主调度服务器损坏无法工作是,从服务器直接顶替工作,使得服务能够继续访问。
当客户端多次请求
当主调度服务器无法工作时
这里为了简化操作,直接将主调度服务器关机,达到模拟主调度服务器无法工作情况。然后继续使用客户端访问。
相关文章推荐
- LVS+Heartbeat+ldirectord构建高可用负载均衡群集(DR模式)
- LVS-DR+keepalived高可用群集
- 基于LVS-DR群集模式+keepalived实现高可用
- LVS-DR与Keepalived高可用群集
- LVS+keepalived构建高可用负载均衡群集(DR)
- 高可用群集lvs DR模式搭建
- LVS-DR+Keepalived高可用群集部署
- keepalive+LVS-DR模式做高可用,实现负载均衡(主备模式)
- LVS+Keepalive的高可用群集
- Lvs Keepalive DR模式高可用配置
- LVS_DR+Keepalived高可用Web群集
- 部署LVS-DR + keepalived 高可用群集
- 构建LVS-DR+keepalived 高可用群集
- LVS-DR+HA——keepalived负载均衡+HA高可用群集
- LVS(DR)+keepalived实现高可用负载均衡
- LVS+keepalived 高可用群集
- LB群集--lvs-dr模型
- 用keepalived+lvs_dr搭建高可用的负载均衡集群
- 基于corosync/openais和ldirectord实现LVS(DR)的高可用
- mysql高可用之LVS + KEEPALIVE + MYSQL