目录
一、特点
由多台主机构成,都干同样的一件事,对外展现为一个整体
二、群集的类型
1)负载均衡群集 LB
提高系统响应效率,处理更多的访问请求,减少响应延迟,实现高并发、高负载的能力
典型代表:软件类( nginx lvs haproxy slb )
2)高可用群集 HA
提高系统可靠性,减少中断时间,确保服务的连续性(通常使用 N 个 9 来代表高可用的指标,一般4-5个 9 就可以)
典型代表:Keepalived heartbeat
3)高性能运算群集 HPC
通过云计算或分布式计算将硬件资源整合成资源池以获取高性能的CPU、内存等资源,来提高整体运算能力
三、LVS的三种工作模式
1)NAT 地址
调度器会作为所有节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,所以调度器会承载双向流量的负载压力,可能会为整个群集的性能瓶颈。由于节点服务器都会处于内网环境,使用私网IP,所以具有一点的安全行。
2) TUN IP隧道 IP Tunnel
调度器仅作为客户端的访问入口,节点服务器的响应应消息是直接返回客户端的,不需要经过调度器。但是由于节点服务器需要部署在不同的公网环境,所以要有独立的公网IP,而且调度器与节点服务器是通过专用的TP隧道实现相互通信,因此IP隧道模式的成本较高、安全性较低,且数据感道传输的过程中需要额外的封装和解封装,性能也会受到一定的影响。
3)DR 直接路由 Direct Routing
调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调度器。 (与NAT模式的区别) 节点服务器与调度器是部署在同一个物理网络里,因此不需要建立专用的IP隧道。 (与IP隧道模式的区别) DR模式是企业首选的LVS模式。
四、LVS 调度算法
rr(轮询) wrr(加权轮询) sh(源地址哈希) dh (目的地址哈希) lc(最小连接)
wlc(加权最小连接) :优先分配请求给 <连接数>/<权重值>的值最小的节点服务器
lblc (基于地址的最小连接):优先根据目的地址哈希将请分配给一个节点服务器,若此节点服务器满负荷了则优先将请求分配当前连接数最小的节点服务器
五、LVS-NAT模式部署:
1) 部署NFS共享存储
2)部署web节点服务器,注意: 节点服务器的默认网关要指向调度器的内网IP,测试的时候可关闭连接保持
3)部署调度器,配置双网卡,开启IP路由转发功能,如果内网中的节点服务器需要访问外网则要配置SNAT规则,安装ipvsadm工具,添加虚拟服务器和真实服务器的相关配置,使用-m选项选择NAT模式
4)客户端设置默认网关,指向调度器的外网IP,并使用客户端工具测试
六、ipvsadm 工具选项说明
-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点
-t:指定 VIP地址及 TCP端口
-r:指定 RIP地址及 TCP端口
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:设置权重(权重为 0 时表示暂停节点)
-p 60:表示保持长连接60秒(默认关闭连接保持)
-l:列表查看 LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln
七、NAT模式 LVS负载均衡群集部署
(1)部署共享存储
(NFS服务器:192.168.134.40)
1. #关闭防火墙
systemctl stop firewalld && setenforce 02. #安装nfs服务
yum install nfs-utils rpcbind -y3. #新建目录,并创建站点文件
cd /opt/
mkdir yxp dhc
echo "this is yxp" > yxp/index.html
echo "this is dhc" > dhc/index.html4. #开启服务
systemctl start rpcbind
systemctl start nfs5. #授权
chmod 777 yxp/ dhc/6. #设置共享策略
vim /etc/exports
/opt/yxp 192.168.134.0/24(rw,sync)
/opt/dhc 192.168.134.0/24(rw,sync)
7. #发布服务
systemctl restart nfs
exportfs -rv
(2)节点Web服务器
第一台(192.168.134.20)
1. #关闭防火墙
systemctl stop firewalld && setenforce 0
2. #安装httpd
yum install -y httpd
3. #查看nfs服务
showmount -e 192.168.134.40
4. #挂载站点
#法一:临时挂载
mount 192.168.134.40:/opt/yxp /var/www/html/
df -h
cat /var/www/html/index.html
#法二:永久挂载
vim /etc/fstab
192.168.134.40:/opt/yxp/ /var/www/html/ nfs defaults,_netdev 0 0
mount -a
5. #开启httpd服务
systemctl start httpd
6. #指定内网网关
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.134.10
#DNS1=8.8.8.8
7. #重启网络服务
systemctl restart network
第二台(192.168.134.30)
1. #关闭防火墙
systemctl stop firewalld && setenforce 03. #安装httpd
yum install -y httpd4. #查看nfs服务
showmount -e 192.168.134.405. #挂载站点
#法一:临时挂载
mount 192.168.134.40:/opt/dhc /var/www/html/
df -h
cat /var/www/html/index.html#方法二:永久挂载
vim /etc/fstab
192.168.134.40:/opt/dhc/ /var/www/html/ nfs defaults,_netdev 0 0mount -a #刷新
6. #开启httpd服务
systemctl start httpd7. #指定内网网关
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.134.10
#DNS1=8.8.8.88. #重启网络服务
systemctl restart network
(3)负载调度器
(需要两块网卡,如果不够,需自行添加)
内网:192.168.134.10(ens33) 外网卡:12.0.0.1(ens36)
1. #关闭防火墙
systemctl stop firewalld && setenforce 0
2. #安装ipvsadm
yum install -y ipvsadm*
3. #添加一块网卡,我这里是ens36,配置网卡,重启网络
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens33
去掉网关
vim ifcfg-ens36
去掉网关、UUID、修改IP
systemctl restart network
4. #打开路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
5. #防火墙做策略
#查看策略
iptables -nL -t nat
#清空策略
iptables -F
#添加策略
iptables -t nat -A POSTROUTING -s 192.168.134.0/24 -o ens36 -j SNAT --to 12.0.0.1
#查看策略
iptables -nL -t nat
6. #加载LVS内核模块
modprobe ip_vs
cat /proc/net/ip_vs
7. #开启ipvsadm服务
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
8. #清空策略
ipvsadm -C
9. #制定策略
#指定IP地址 外网的入口 -s rr 轮询
ipvsadm -A -t 12.0.0.1:80 -s rr
#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.134.20:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.134.30:80 -m
#开启服务
ipvsadm
10. #查看策略
ipvsadm -ln
(4)Windows客户机验证
1、修改网卡信息
2、连通性测试