一、环境介绍
1. 条件
通过虚拟机模拟真实生产环境,每台虚拟机均为单网卡模式
iptables and selinux is disabled
系统环境:rhel6.5
内核版本信息:2.6.32-431.el6.x86_64
vm1: 172.25.14.1 前端调度器
vm2: 172.25.14.2 RS
vm3: 172.25.14.3 RS
本环境下实现lvs的负载均衡技术为DR,在该内核版本下若要使用fullnat,需要编译内核。具体编译方法,参考如下文档
内核编译 :http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY
2. 实现目的
lvs通过rr调度算法实现负载均衡,但lvs并未有健康检查机制
lvs+ldirectord 通过ld的健康检查机制,实现负载均衡
lvs+keepalived 解决lvs单点问题,实现VIP自动漂移,实现双及热备,进一步实现负载均衡高可用
二、 LVS负载均衡
ipvs被称为ip虚拟服务器,是运行在LVS下提供负载均衡功能的一种技术
1.配置Varnish主机 vm1:
/etc/init.d/httpd stop
1)配置vm1 yum源
在6.5镜像里找到下列四个模块并添加:
[LoadBalancer] #负载均衡需要的软件包
name=LoadBalancer
baseurl=http://172.25.14.250/rhel6.5/LoadBalancer
gpgcheck=0
[HighAvailability] #高可用集群软件包
name=HighAvailability
baseurl=http://172.25.14.250/rhel6.5/HighAvailability
gpgcheck=0
[ResilientStorage] #存储恢复所需要的软件包
name=ResilientStorage
baseurl=http://172.25.14.250/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem] #大规模文件所需要的软件包
name=ScalableFileSystem
baseurl=http://172.25.14.250/rhel6.5/ScalableFileSystem
gpgcheck=0
安裝 ipvsadm 套件
yum install ipvsadm -y
yum repolist
2)加载ipvsadm策略
vm1:
ipvsadm -A -t 172.25.14.100:80 -s rr ##添加VR
ipvsadm -a -t 172.25.14.100:80 -r 172.25.14.2:80 -g ##添加RS
ipvsadm -a -t 172.25.14.100:80 -r 172.25.14.3:80 -g ##添加RS
/etc/init.d/ipvsadm save ##保存策略
/etc/init.d/ipvsadm start ##开启ipvsadm
ip addr add 172.25.14.100/24 dev eth0 ##添加一个vip
2. 加载arp策略
VIP 地址为调度器和服务器组共享,调度器配置的 VIP 地址是对外可见的,用于接收虚拟服务的请求报文;
所有的服务器把 VIP 地址配置在各自的 NonARP 网络设备上,它对外面是不可见的,只是用于处理目标地址为 VIP 的网络请求;
配置vm2:
ip addr add 172.25.14.100/24 dev eth0 ##添加vip
yum install arptables_jf -y
##arptables_jf 为arptables网络的用户控制过滤的守护进程
arptables -A IN -d 172.25.14.100 -j DROP ##vm2上的100失效
arptables -A OUT -s 172.25.14.100 -j mangle --mangle-ip-s 172.25