常见的四种算法:
rr 轮询算法,它将请求依次分配给不同的节点,各个节点均摊分配。这种算法简单,但只适合各个节点处理性能差不多的情况。
wrr 加权轮训调度,它将依据不同节点的权值分配任务。权值较高的节点将优先获得任务,并且分配到的连接数将比权值低的节点更多。相同权值的节点得到相同数目的连接数。
lc 最小连接数调度,IPVS表存储了所有活动的连接。Lvs服务器会比较将连接请求发送到当前连接最少的节点。
wlc 加权最小连接数调度,在节点性能差异较大的时候,可以为节点自动调整权重,权重较高的节点承担更大比例的连接。
NAT
yum install -y ipvsadm # 安装lvs管理工具
ipvsadm -A -t 100.1.1.1:80 -s rr # 添加vip(-A:添加虚拟服务器
-t :指定vip及tcp端口
-s:指定算法
rr:轮询)
ipvsadm -a -t 100.1.1.1:80 -r 192.168.1.2:80 -m -w 1
ipvsadm -a -t 100.1.1.1:80 -r 192.168.1.3:80 -m -w 1
(-a :添加节点
-t :指定vip和端口
-r :指定节点ip及端口
-m:表示使用nat模式
-w:设置权重 )
web1服务器:
echo "web1">/var/www/html/index.html #写一个测试页面
service httpd start
web2服务器:
echo "web2">/var/www/html/index.html #写一个测试页面
service httpd start
DR
DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,
DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调
度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。DR模式是互联网使用比较多的一种模式。
yum install ipvsadm 安装ipvsadm
在 /usr/local/sbin/lvs_dr.sh里编辑
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
dip=192.168.199.122
vip=192.168.199.38
rs1=192.168.199.143
rs2=192.168.199.241
ifconfig ens33:0 down
ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 3
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
两台dr服务机分别操作
在/usr/local/sbin/lvs_dr_rs.sh里编辑
#! /bin/bash
vip=192.168.199.38
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip 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
echo "web1">/var/www/html/index.html #写一个测试页面
echo "web2">/var/www/html/index.html #写一个测试页面
(注意必须要关闭防火墙)
systemctl stop firewalld
setenforce 0