LVS即Linux Virtual Server,L4 负载均衡实现,高性能,稳定可靠,已成为Linux内核一部分,国人章文嵩的著名开源项目
架构
工作流
User > LoadBalancer(包括一组Director调度器) > ServerArray(包括一组Realserver业务机) > SharedStorage
模块组成
- IPVS内核调度模块:部署在Director,对外暴露一个VIP,接受访问流量转发到RealServer
- Ipvsadm用户空间管理模块:部署在Director,配置lvs调度方式并指定后端服务
IPVS模块工作模式
- VS/NAT
- VS/TUN
- VS/DR:性能最好,但要求Director和Realserver在同一网段
负载均衡算法
静态类
- RR:Round Robin循环调度
- WRR:Weighted Round Robin加权循环调度
- SH:SourceIP Hash源地址哈希调度
- DH:Destination Hash目标地址哈希调度
动态类
- LC:Least Connections最小链接数调度
- WLC:Weighted Least Connection加权最小链接数调度
- SED:Shortest Expection Delay最小期望延迟
- NQ:Never Queue空闲服务器调度
- LBLC:locality based least connection
- LBLCR:locality based least connection with replication
VS/DR模式配置实例
IP约定
- CIP:用户IP
- VIP:Director面向外部用户的IP
- DIP:Director面向后端业务机的IP
- RIP:业务机IP
### 网络约定 #### 192.168.0.99(VIP)、192.168.0.100(DIP)# 192.168.0.101(RealServer1)sudo yum install -y ipvsadm## Director配置IP ##ifconfig eth0:0 192.168.0.99/32 broadcast 192.168.0.99 up #网卡绑定VIProute add -host 192.168.0.99 dev eth0:0 #网卡增加路由echo 1>/proc/sys/net/ipv4/ip_forward #启动IP包转发## Director配置IPVS调度规则 ##ipvsadm -C #ipvsadm重置ipvsadm -A -t 192.168.0.99:80 -s rr #添加VIPipvsadm -a -t 192.168.0.99:80 -r 192.168.0.101:80 -g #添加RealServer记录(-g为VS/DR模式)ipvsadm -L -n #启动LVS服务并罗列规则## RealServer配置 ##ifconfig lo:0 192.168.0.99/32 broadcast 192.168.0.99 up #回环设备绑定VIProute add -host 192.168.0.99 dev lo:0 #回环设备增加路由echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore #禁用ARPecho 1 >/proc/sys/net/ipv4/conf/all/arp_ignore #禁用ARPecho 2 >/proc/sys/net/ipv4/conf/lo/arp_announce #禁用ARPecho 2 >/proc/sys/net/ipv4/conf/all/arp_announce #禁用ARP## 访问服务 ##curl 192.168.0.99:80
Keepalived
sudo yum install -y keepalived