lvs----keepalived
LVS--DR 负载均衡,轮询算法
操作系统:Red Hat 6.5 关闭所有防火墙与selinux
client:172.25.18.250 VS:172.25.18.1 RS1:172.25.18.2 RS2:172.25.18.3
首先下载ipvsadm,然后添加一个虚拟IP:172.25.18.100/24
[[email protected] ~]# yum install -y ipvsadm
添加虚拟IP
然后定义一个集群,轮询算法(rr:roundrobin)
集群定义好之后,添加节点 -g为DR模式
完成后保存配置
[[email protected] ~]# /etc/init.d/ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
此时配置RS:开启httpd服务,确保能和VS以及client通信,确保httpd端口为80,并且下载arptables
[[email protected] ~]# yum install -y arptables_jf
给RS也添加虚拟IP
然后配置arptables并且保存
将源是172.25.18.100的包丢掉,然后将源是172.25.18.100的包转发给172.25.18.2
此时在物理机访问vip,则会得到两台RS的内容,并且进行轮询分摊流量。
LVS--NAT负载均衡 轮询算法
vs:IP:192.168.1.100/24 (与客户端不同)
然后操作VS(调度器),首先添加一个vip,然后把vip定义为一个集群,写入规则,保存ipvsadm刚才写入的规则,因为nat模式为不同网段的访问,所以必须要打开路由功能,即ip——forward
两台RS需要配置网关,ip网段也与VS相同
此时用客户端访问vip则可以访问到RS1和RS2上的内容,并且进行轮询。
LVS--tun(隧道模式) vs添加vip
定义集群配置规则
配置RS,添加vip,加载ipip模块后会自动生成tunl0隧道
配置vip生成ifcfg-tunl0配置文件,并且重启网络:
Ifcfg-tunl0编辑内容如下:
然后编辑文件:[[email protected] ~]# vim /etc/sysctl.conf
在文件的最后面添加以下内容,保存退出:
[[email protected] network-scripts]# sysctl -p #执行此条命令使其永久生效
配置全部完成后用客户端访问vip,即可得到RS1和RS2的httpd网页内容,并且进行轮询。
LVS最后一种模式为fullnat,需要编译内核,在此不做实验。
健康检查:当2或者3,down掉以后,保证另外一台机器可以继续使用,如果全部down掉,则返回到server1的内容……
安装ldirectord(检查RS)
[[email protected] ~]# yum install -y ldirectord-3.9.5-3.1.x86_64.rpm
将配置文件拷贝到以下目录进行编辑
修改文件内容25行内容为vip,26,27行内容为RS主机的IP和端口 注释掉38,39行(网页内容和网址)
此时去掉刚才的缓存,启动ldirectord服务,会自动读取配置
此时关掉server2,ldirectord服务会自动删除server2的配置,只读取server3将server1的httpd端口改为默认80,然后down掉server2和server3(down掉的服务为httpd服务),会自动读取server1的服务(服务:写入的网页内容,存在/var/www/html中,名称只能叫:index.html)
挂掉RS后,效果如下:
keepalived健康检查(检查VS)VS1:server1:172.25.18.1 VS4:172.25.18.4
VS操作
源码安装,解压
[[email protected] keepalived-1.4.3]# yum install -y gcc openssl-devel ###下载编译所需要的依赖包
编译三部曲
[[email protected] keepalived-1.4.3]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[[email protected] keepalived-1.4.3]# make && make install
创建软连接
编辑主机的配置文件如下
备机只需将配置文件的18行改为BACKUP,21行优先级调低一点即可。
两台vs启动keepalived,因为server1为主机,并且优先级高,所以VIP会在server1上
当server1宕掉之后,vip会飘到server4上,当server1启动后,vip又会飘回来,这样不影响客户端的访问。。。。