高并发负载均衡-LVS
LVS介绍
SAP HANA
网络介绍
七层
MTU 1500 B
功能分层
整个互联网建立在下一跳的模式下
- IP时逻辑上的两个端点
- MAC是物理上连接的两个节点
端点间TCP传输过程中
- 确认机制
- 状态机制
- 不可分割
解析数据包需要成本
-
交换机:二层,只关心MAC地址
- 学习机制
-
路由器:三层,只关心IP和路由表
-
LVS服务器:四层,只关心PORT,状态
-
nginx:七层,只关心socket对应关系
LVS-模式
LVS DR
-
VIP
- 虚拟服务器地址
-
DIP
- 转发的网络地址
-
RIP
- 和RIP通信:ARP协议,获取Real Server的RIP:MAC地址
- 转发Client的数据包到RIP上(隐藏VIP)
-
CIP
- 客户端IP地址
四层
S_NAT
D_NAT
四层:DR
四层:TUN
lvs-DR-install
LVS-DR实验手册拓扑图
隐藏VIP方法:对外隐藏,对内可见
LVS
-
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统
-
ipvs:嵌入到Linux的内核
-
ipvsadm:管理应用程序
-
类型:
- NAT:地址转换
- DR:直接路由
- TUN:隧道
LVS调度方法
-
四种静态
- rr轮循
- wrr加权
- dh
- sh
-
动态调度方法
- lc:最少连接
- wlc:加权最少连接
- sed:最短期望延迟
- nq:never queue
- LBLC:基于本地的最少连接
- DH
- LBLCR:基于本地的带复制功能的最少连接
-
默认方法:wlc
LVS命令:监控多个端口号
-
ipvs内核模块
-
yum install ipvsadm -y
-
管理集群服务
-
添加:-A -t|u|f service-address [-s scheduler]
- -t:TCP协议的集群
- -u:UDP协议的集群
- -f:FWM:防火墙标记
-
修改:-E
-
删除:-D -t|u|f service-address
-
-
ipvsadm -A -t 192.168.9.100:80 -s rr
- -A添加监控,rr为轮循调度算法
-
ipvsadm -A -t 172.16.11.1:8080 -s rr
管理集群服务中的RS
-
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
-
-t|u|f service-address:事先定义好的集群服务
-
-r server-address:某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射:
- [-g|i|m]:LVS类型
- -g:DR(默)
- -i:TUN
- -m:NAT
- [-w weight]:定义服务器权重
-
-
修改:-e
-
删除:-d -t|u|f service-address -r server-addre
-
#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -g
-
#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -g
-
查看
- -L:打印配置表格
- -n:数字格式显示主机地址和端口
- –stats:统计数据
- –rate:速率
- –timeout:显示tcp、tcpfin和udp的会话超时时长
- -c:显示当前的ipvs连接状况
-
删除所有集群服务
- -C:清空ipvs规则
-
保存规则
- -S
- #ipvsadm -S > /path/to/somefile
-
载入此前的规则
- -R
- #ipvsadm -R < /path/to/somefile
实验
-
准备3台虚拟机
-
先配置3台虚拟的网络:
-
eth0,配置在一个网段
- DIP,RIP在一个网段
-
-
子主题 2
-
配置lvs的VIP
-
ifconfig eth0:0(子接口)192.168.9.100/24
-
echo “1” > /proc/sys/net/ipv4/ip_forward
- 0默认,不是自己会丢弃,1变身路由器
-
-
-
调整RS的响应,通告级别(每一台RS都配)
- echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
- echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
- echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
- echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
-
配置RS的VIP(每一台RS都配)
- ifconfig lo:8 192.168.9.100 netmask 255.255.255.255
-
启动RS上的httpd
-
yum install httpd -y
-
/var/www/html
-
vi index.html
- form ooxxip
-
-
service httpd start
-
客户端验证:RIP:80能显示
- VIP:80不能显示
-
-
-
LVS------ipvsadm
- yum install ipvsadm -y
- ipvsadm -A -t 192.168.9.100:80 -s rr
- ipvsadm -a -t 192.168.9.100:80 -r 192.168.9.12 -g
- ipvsadm -a -t 192.168.9.100:80 -r 192.168.9.13 -g
- ipvsadm -ln
- 浏览器刷新:访问vip
- ipvsadm -lnc
- netstat -pant
高并发负载均衡-HA
解决集群单点故障(高可用)
高并发负载均衡-keepalived
keepalived
-
keepalived是集群管理中保证集群高可用的服务软件
-
高可用High Available
-
需要心跳机制探测后端RS是否提供服务
- 探测down,需要从lvs中删除该RS
- 探测发送从down到up,需要从lvs中再次添加RS
-
LVS DR,需要主备(HA)
-
Keepalived原理
- VRRR协议(虚拟路由冗余协议)
- IP漂移
-
keepalived安装
-
可以不用安装ipvsadm -lnc
-
keepalived(ipvsadm,自身高可用)
-
yum install keepalived
-
service keepalived start启动
-
/etc/keepalived/keepalived.conf
- man 5 keepalived.conf
-
tail /var/log/message查看日志
-