本文章主要内容是:LVS的负载均衡(LB)集群前端
前言:web
工做模式:NAT(网络地址转换),DR(直连路由模式),TUN(隧道)算法
LVS调度算法:轮询(RR),加权轮询(WRR),最少链接(LC)vim
加权最少链接(WLC),基于局部性的最少链接(LBLC),bash
带复制的基于局部性最少连接(LBLCR),目标地址散列(Dh)服务器
源地址散列(sh),最短的指望的延迟(SED),最少队列调度(NQ)网络
1、LVS/NAT模式负载均衡
NAT:地址转换(相似于DNAT)ide
集群点跟director必须工做在同一个IP的网络中测试
RIP一般是私有地址,仅用于各集群节点间的的通讯
director位于client和real server之间,并负责处理进出的全部通道。
realserver必须将网关执行DIP
director支持端口映射
realserver可使用任何类型的操做系统(os)
较大规模应用场景中,director易成为系统瓶颈
一、准备四台服务器,我这里用rhel7.2,IP地址规划以下:
客户端:192.168.2.44,分发器为:2.45和4.45
网站服务器为:4.46和4.47
二、配置分发器:192.168.4.45,vim /etc/sysctl.conf //路由转发
net.ipv4.ip_forward = 1
执行sysctl -p立刻生效
三、配置网关地址:在两台服务器上修改网关地址
GATEWAY=192.168.4.45
四、客户端配置网关(192.168.2.44):2.45
五、在两台网站服务器上安装web服务,设置开机启动
在分发器上配置:192.168.4.45
六、安装软件:yum -y install ipvsadm
七、配置LVS
ipvsadm -Ln //查看 n表明数字表明服务
ipvsadm -A -t 192.168.2.45:80 -s rr //添加虚拟服务,
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.46:80 -m //添加真实IP,-m nat模式
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.47:80 -m
八、在客户端测试:2.44:elinks --dump http://192.168.2.45
九、watch -n 1 ipvsadm -Ln --stats,在分发器上查看状态
十、从虚拟服务里删除real server: ipvsadm -d -t 192.168.2.45:80 -r 192.168.4.46:80
十一、修改调度算法:ipvsadm -E -t 192.168.2.45:80 -s wrr
十二、修改权重:ipvsadm -e -t 192.168.2.45:80 -r 192.168.4.46:80 -w 3 -m
PS:因为在RHEL7里面save命令用不了,因此用下面大方法代替:
ipvsadm -C
ipvsadm -A -t 192.168.2.45:80 -s rr
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.46:80 -m
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.47:80 -m
把上面的语句写进 /etc/rc.local,而后执行下面的语句
echo /etc/rc.local >>~/.bash_profile && source /etc/profile
//让/etc/rc.local里面的内容生效,并开机自启动
LVS-DR介绍:直接路由(及用于做为源地址)
各集群节点跟director必须在同一个物理网络中;
RIP可使用公网地址,实现便携的远程管理和监控;
director仅负责处理入站请求,形影报文则有realserver直接发往客户端
realserver不能将网关指向DIP,而是直接指向前端网关;
director不支持端口映射
大多数操做系统可以用在realserver
director可以处理更多的realserver
1、网站服务器配置:4.46和4.47
一、修改网络接口运行参数:cd /proc/sys/net/ipv4/conf/
echo 1 > lo/arp_ignore //忽略广播包
echo 2 > lo/arp_announce //兄弟接口接收和发送arp包
echo 1 > all/arp_ignore
echo 2 > all/arp_announce
二、绑定VIP地址:4.253 vim /etc/rc.local
ifconfig lo:1 192.168.4.253/32
2、配置分发器4.48
一、绑定VIP地址:4.253 vim /etc/rc.local
ifconfig eth0:1 192.168.4.253/32
二、添加虚拟服务,和realserver
ipvsadm -A -t 192.168.4.253:80 -s rr
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.46:80 -g
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.47:80 -g
三、测试:watch -n 1 ipvsadm -Ln --stats,在分发器上查看状态
能够看到只有进来的数据,没有出去的数据
PS:
一、想永久生效,能够写到配置文件中
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p 读一下,使其生效
二、分发器的配置设置:
ipvsadm -C
ipvsadm -A -t 192.168.4.253:80 -s rr
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.46:80 -g
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.47:80 -g
把上面的语句写进 /etc/rc.local,而后执行下面的语句
echo /etc/rc.local >>~/.bash_profile && source /etc/profile
//让/etc/rc.local里面的内容生效,并开机自启动