目录
1、什么是集群(含义)
2、集群使用在哪一个场景
3、集群的分类
4、负载均衡器的集群架构
5、负载均衡器的群集的工作模式
1、地址转换(NAT模式)
2、IP隧道(TUN模式)
3、直接路由(DR模式)
6、关于LVS的虚拟服务器
7、LVS的负载均衡器的调度算法
8、LVS组成和作用
1.组成
2.作用
9、案例 LVS-NAT的部署实战
总结:就是将多台主机作为一个整体对外提供相同的服务
由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机。
总结:高并发使用
互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足均衡及高可用的要求。
总结:
1、负载均衡器:减少响应延迟,提供并发处理能力
2、高可用:系统的稳定性,减少服务器中断的时间,减少损失
3、高性能:高性能运算能力 分布式 并发
根据集群所针对的目标差异,可分为三种类型:
1、负载均衡集群
2、高可用集群 (单点故障)
HA表示高可用->冗余、备份、解决单点故障 (vrrp永远会在优先级高的设备 上,vrrp会占 用一个Ip地址,且只会存在于一个设备上。默认是抢占模式)
3、高性能运算群集
所谓的高性能,其实就是分布式,
总结:
数据流向:用户通过vip进行访问,
负载调度器:通过调度算法,以及RIP(就是真实IP地址)发送
节点服务池:所有服务器用的资源通过
共享存储:通过共享存储提供的网站,存储资源
第一层:负载调度器
第二层:服务器池
第三层:共享存储
负载均衡群集是目前企业用得最多的群集类型
群集的负载调度技术有三种工作模式:
调度作为网关,是访问请求的入口,也许是响应访问的出口,在高并发场景当中负载压力很高,NAT转换可以提高安全性。
仅是请求访问的入口,响应数据不经过调度器。
但是需要大量的公网IP,还需要专用的IP隧道
所以导致成本太高,数据转发受IP隧道的额外影响
仅是访问请求入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中,数据进行转发不受额外影响。
确认是否支持LVS:modprobe ip_vs
1、轮询:将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载。
2、加权轮询:根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多,保证性能强的服务器承担更多的访问流量。
3、最少连接:根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。
4、加权最少连接:在服务器节点的性能差异较大时,可以为真实服务器自动调整权重,性能较高的节点将承担更大比例的活动连接负载。
1.LVS基于内核态的netfilter框架来实现的IPVS功能,工作在内核态。用户配置VIP等相关信息并且传递到IPVS,就需要用到IPVSadm工具。
2.ipvsadm:IPVSadm是lvs用户态的配套工具,可以实现VIP和RS增删改查。
IPVSadm 就是类似于iptables工具的地位
ipvsadm用法:
ipvsadm
-A 添加虚拟服务器
-D 删除整个虚拟服务器
-s 指定负载调度算法
-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
1.主要用于多服务器的负载均衡
2.工作在网络层,可实现高性能,高可用的服务集群技术
3.廉价,可以把许多低性能的服务器组合在一起,形成一个超级服务器。
4.易用,配置简单,有多重负载均衡的方式
5.稳定可靠,即使在集群的服务器中,某台服务器无法正常工作,也不影响整体效果
6.可扩展性好
此实验需要在负载调度器上添加一个虚拟网卡:
LVS负载调度器:ens33:192.168.11.12 ens37:10.0.0.1(vmnet3) 注意!!!添加虚拟网卡的时候,注意看实际添加的网卡是多少,有可能是36,要把配置文件中的内容和文件名都要改成添加的虚拟网卡的名字。
Web1 节点服务器1:192.168.11.22
Web2 节点服务器2:192.168.11.23
NFS服务器:192.168.11.13
客户端(win10):10.0.0.12 (Vmnet3)
win10虚拟机(客户端)网关设置为10.0.0.1
web服务器 网关设置为 192.168.11.12
1、部署共享存储(NFS服务器:192.168.11.13)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#安装服务并重启服务,enable设置开机自启动
yum install -y nfs-utils rpcbind
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service
#创建共享目录
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet
vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.11.0/24(rw,sync)
/opt/benet 192.168.11.0/24(rw,sync)
#发布共享,showmount -e为查看挂载情况
exportfs -rv
showmount -e
2、配置节点服务器(后端服务器)
192.168.11.22、192.168.11.23
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#修改网卡网关为LVS服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.11.12
#DNS=8.8.8.8
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
showmount -e 192.168.11.13
#web1:192.168.11.22
mount.nfs 192.168.11.13:/opt/kgc /var/www/html/
echo 'this is kgc' > /var/www/html/index.html
#永久挂载
vim /etc/fstab
192.168.11.13:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a
#web2:192.168.11.23
mount.nfs 192.168.11.13:/opt/benet /var/www/html/
echo 'this is benet' > /var/www/html/index.html
vim /etc/fstab
192.168.11.13:/opt/benet /var/www/html nfs defaults,_netdev 0 0
mount -a
3、配置负载调度器LVS(ens33:192.168.11.12 ens37:10.0.0.1)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
在虚拟机设置中,新添加一个网络适配器为VMnet3模式!!!
# (1)配置SNAT转发规则
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#或者:echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p
iptables -t nat -F
iptables -F
[root@lvs ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o ens37 -j SNAT --to-source 10.0.0.1
nat表:修改数据包中的源、目标IP地址或端口
POSTROUTING: 在进行路由判断之"后"所要进行的规则(SNAT/MASQUERADE)
PREROUTING: 在进行路由判断之"前"所要进行的规则(DNAT/REDIRECT)
-A: 在规则链的末尾加入新规则
-s: 匹配来源地址IP/MASK.
-o 网卡名称匹配从这块网卡流出的数据
-i 网卡名称匹配从这块网卡流入的数据
-j 控制类型
# (2)加载内核模块
modprobe ip_vs #手动加载ip_vs模块
cat /proc/net/ip_vs #查看ip_vs版本信息
# (3)安装ipvsadm管理工具
yum install -y ipvsadm
#注意:启动服务前必须保存负载分配策略,否则将会报错
ipvsadm-save > /etc/sysconfig/ipvsadm
或者
ipvsadm --save > /etc/sysconfig/ipvsadm
或者
touch /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
# (4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -C #清除原有策略
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.11.22:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.11.23:80 -m -w 1
-A 添加虚拟服务器
-s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
-a 表示添加真实服务器 (后端节点服务器)
-t 指定 VIP地址及 TCP端口
-m 表示使用 NAT群集模式.
-w 设置权重 (权重为 0 时表示暂停节点)
ipvsadm #启动策略
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略
ipvsadm -d -t 10.0.0.1:80 -r 192.168.11,22:80 -m -w 1 #删除群集中某一节点服务器
ipvsadm -D -t 10.0.0.1:80 #删除整个虚拟服务器
systemctl stop ipvsadm #停止服务(清除策略)
systemctl start ipvsadm #启动服务(重建规则)
ipvsadm-restore > /etc/sysconfig/ipvsadm #恢复LVS策略
测试:在win10上使用浏览器访问10.0.0.1,刷新浏览器测试负载均衡
PS:刷新间隔时间需要稍长一点
配置新的windows网卡: