常见的四种算法:

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