LVS调度算法参考
RR:轮询 WRR :加权轮询 DH :目标地址哈希 SH:源地址hash LC:最少连接 WLC:加权最少连接,默认 SED:最少期望延迟 NQ:从不排队调度方法 LBLC:基于本地的最少连接 LBLCR:带复制的基于本地的最少连接
ipvsadm命令参考
ipvsadm -A|E -t|u virutal-service-address:port [-s scheduler] #-A:添加虚拟服务器记录 #-E:修改虚拟服务器记录 #-t:tcp服务 #-u:udp服务 #-s:调度算法,默认wlc ipvsadm -D -t|u|f virtual-service-address #-D:删除虚拟服务器记录 ipvsadm -C #-C:清空lvs规则 ipvsadm -R #-R:重载lvs配置 ipvsadm -S [-n] > ipvs.save #-S:保存lvs配置 #-n:不解析地址 ipvsadm -a|e -t|u service-address:port -r real-server-address:port [-g|i|m] [-w weight] #-a:添加真实服务器记录 #-e:修改真实服务器记录 #-r:对应的真实服务器地址 #-g:指定lvs工作模式为DR,默认 #-i:指定lvs工作模式为tunnel #-m:指定lvs工作模式为NAT #-w:手工指定权重 ipvsadm -d -t|u|f service-address -r server-address #-d:删除真实服务器记录 ipvsadm -Ln [options] #-L:显示lvs运行状态 #-n:不解析地址 #-c:显示ipvs连接 #--stats:统计数据 #--rate:速率 #--exact:精确值 ipvsadm -Z [-t|u|f service-address] #-Z:清空lvs计数器 ipvsadm -h #-h:显示帮助信息
NAT模型
NAT模型可以做端口映射
1.首先在两台真实服务器上安装http服务 2.开启lvs服务器的转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward 3.配置lvs服务 ipvsadm -A -t VIP:PORT -s rr #定义一个lvs服务,指定vip和端口,指定调度方式为轮训 ipvsadm -a -t VIP:PORT -r RIP1 -m #添加第一台真实服务器,并指定为NAT模型 ipvsadm -a -t VIP:PORT -r RIP2 -m #添加第二台真实服务器,并指定为NAT模型 ipvsadm -L -n #查看ipvs定义的规则
DR模型
三台服务器的所有ip地址都指向路由器的网关接口
arp_announce:arp通告
0:全部通告(默认)
1:尽量避免通告非本网段地址
2:不通告非本网段地址
arp_ignore:arp应答
0:有的话就应答(默认)
1:不在请求的接口就不应答
1.两台http服务器添加vip到lo口,并关闭lo口和其他接口的arp通告和应答 #关闭arp通知应答 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce #添加vip ip addr add vip/32 dev lo #添加路由 route add -h vip/32 dev lo #开启http服务 systemctl start http 2.在lvs服务器上添加vip到eth0:0口,并开启转发功能 #添加vip ip addr add vip/32 dev eth0:0 #开启转发 echo 1 > /proc/sys/net/ipv4/ip_forward #添加路由 route add -h vip/32 dev eth0:0 #添加ipvs记录 ipvsadm -A -t VIP:80 -s rr ipvsadm -a -t VIP:80 -r RIP1 -g ipvsadm -a -t VIP:80 -r RIP2 -g