1、集群分类
高性能计算集群HPC 复杂科学问题
负载均衡LB 用于访问量多
高可用HA 避免单点故障
LVS集群组成
前端 --负载均衡 调度器(Director Server)
中间 --服务器群 实际运行应用真实服务器(Real Server)
底端 --数据共享存储层 提高存储的区域
VIP公布给用户访问
DIP 调度器连接后端节点服务器的IP
RIP 真实IP 集群节点使用的IP
工作原理:转发+NAT
代理原理,如下图
LVS不是代理 是负载转发服务器 LVS必须配网关 同网段直通
工作模式
NAT模式--适用于中小规模集群 缺点:访问量大会出现网卡
DR 模式 --直连路由 返回数据不经过调度器 适用于大规模集群
TUN模式-- 隧道模式 调度器和服务器不在一起 (VPN)
LVS支持十中调度算法 常用四种
1、轮询 (Round Robin)
2、加权轮询 (Weighted Round Robin)
3、最少连接 (Least Connections)
4、加权最少连接 (Weighted Least Connections)
其他六种
1、源地址散列 --Source Hashing
2、目标地址散列 -- Destination Hashing
3、基于局部性的最少连接
4、带复制的基于局部性的最少连接
5、最短期望的延迟
6、最少队列调度
部署LVS-NAT集群
1、关闭web1,2 4网段
nmtui --关闭4网段
安装http,将防火墙和SELinux设置信任所有
[root@web1 ~]# yum -y install httpd #安装软件
[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html #创建网页文件
[root@web1 ~]# firewall-cmd --set-default-zone=trusted #设置防火墙
[root@web1 ~]# setenforce 0 设置SELinux
web2 操作同上
然后到proxy上访问测试
[root@proxy ~]# curl http://192.168.2.100
192.168.2.100
[root@proxy ~]# curl http://192.168.2.200
192.168.2.200
2、配置网关
[root@web1 ~]# nmcli connection modify eth1 ipv4.method manual ipv4.gateway 192.168.2.5 #配置网关2.5
[root@web1 ~]# nmcli connection up eth1 #激活
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@web1 ~]# ip route show #查看
default via 192.168.2.5 dev eth1 proto static metric 100
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.100 metric 100
web2 操作同上
3、在proxy开启路由
[root@proxy ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@proxy ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@proxy ~]# echo "net.ipv4.ip_forward =1" >>/etc/sysctl.conf
4.创建调度器
[root@proxy ~]# yum -y install ipvsadm
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
[root@proxy ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 wrr
-s后面指定调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等等
添加真实主机
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
[root@proxy ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 wrr
-> 192.168.2.100:80 Masq 1 0 0
-> 192.168.2.200:80 Masq 1 0 0
到客户机访问测试
[root@client ~]# curl 192.168.4.5
192.168.2.200
[root@client ~]# curl 192.168.4.5
192.168.2.100
IPvsadm 命令选项
(临时)
[root@proxy ~]# ipvsadm -D -t 192.168.4.5:80
[root@proxy ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
永久保存规则
ipvsadm-save -n > /etc/sysconfig/ipvsadm
ipvsadm服务开机自启
systemctl enable ipvsadm
清空所有规则 ipvsadm -C