本文章主要内容是:LVS的负载均衡(LB)集群
前言:
工作模式:NAT(网络地址转换),DR(直连路由模式),TUN(隧道)
LVS调度算法:轮询(RR),加权轮询(WRR),最少连接(LC)
加权最少连接(WLC),基于局部性的最少连接(LBLC),
带复制的基于局部性最少链接(LBLCR),目标地址散列(Dh)
源地址散列(sh),最短的期望的延迟(SED),最少队列调度(NQ)
一、LVS/NAT模式
NAT:地址转换(类似于DNAT)
集群点跟director必须工作在同一个IP的网络中
RIP通常是私有地址,仅用于各集群节点间的的通信
director位于client和real server之间,并负责处理进出的所有通道。
realserver必须将网关执行DIP
director支持端口映射
realserver可以使用任何类型的操作系统(os)
较大规模应用场景中,director易成为系统瓶颈
1、准备四台服务器,我这里用rhel7.2,IP地址规划如下:
客户端:192.168.2.44,分发器为:2.45和4.45
网站服务器为:4.46和4.47
2、配置分发器:192.168.4.45,vim /etc/sysctl.conf //路由转发
net.ipv4.ip_forward = 1
执行sysctl -p马上生效
3、配置网关地址:在两台服务器上修改网关地址
GATEWAY=192.168.4.45
4、客户端配置网关(192.168.2.44):2.45
5、在两台网站服务器上安装web服务,设置开机启动
在分发器上配置:192.168.4.45
6、安装软件:yum -y install ipvsadm
7、配置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
8、在客户端测试:2.44:elinks --dump http://192.168.2.45
9、watch -n 1 ipvsadm -Ln --stats,在分发器上查看状态
10、从虚拟服务里删除real server: ipvsadm -d -t 192.168.2.45:80 -r 192.168.4.46:80
11、修改调度算法:ipvsadm -E -t 192.168.2.45:80 -s wrr
12、修改权重: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
一、网站服务器配置:4.46和4.47
1、修改网络接口运行参数: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
2、绑定VIP地址:4.253 vim /etc/rc.local
ifconfig lo:1 192.168.4.253/32
二、配置分发器4.48
1、绑定VIP地址:4.253 vim /etc/rc.local
ifconfig eth0:1 192.168.4.253/32
2、添加虚拟服务,和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
3、测试:watch -n 1 ipvsadm -Ln --stats,在分发器上查看状态
可以看到只有进来的数据,没有出去的数据
PS:
1、想永久生效,可以写到配置文件中
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 读一下,使其生效
2、分发器的配置设置:
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里面的内容生效,并开机自启动