LVS负载均衡群集
结构图如下:
技能展示
了解群集的结构与工作模式
学会配置NFS共享服务
学会构建LVS负载均衡群集
简介
在各种互联网应用中,随着站点对硬件性能,响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器将难以承担所有的访问,除了使用价格昂贵的大型机、专用负载分流设备以外,·企业还有另外一种选择来解决难题,那就是构建群集服务器-通过整合多合相对廉价的普通服务器,以同一个地址对外提供相同的服务。
本章将要学习在企业中常用的一种群集技术–LVS (Linux Virtual Server, Linux虚拟服务器)
重点
群集模式、 NFS共享存储服务
直接路由(DR)模式的负载均衡群集
理论讲解
LVS群集应用基础
群集的称呼来自于英文单词"Cluster",表示一群,一串的意思,用在服务器领域则表示大量服·务器的集合体,以区分于单个服务器,本节将对群集的结构、工作模式, LVS虚拟应用,以及NS共享存储做一个基础讲解。
1.群集的类型
无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或P地址),相当于一台大型计算机。根据群集所针对的目标差异,可分为以下三种类型负载均衡群集(Load Balance Cluster) :以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能。例如, “DNS轮询"应用层交换” .反向代理等都可用作负载均衡群集.LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。
高可用群集(High Availability Cluster) 提高应用系统的可靠性,尽可能地减少中断时间,为目标,确保服务的连续性,达到高可用(HA)的容错效果。例如,“故障切换” "双机热备 “多机热备”等都属于高可用群集技术, HA的工作方式包括双工和主从两种模式。双工即所有节点同时在线:主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。
高性能运算群集(High Performance Computer Cluster):以提高应用系统的CPU运算速度.扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力.例如, 云计算” “网格计算”也可视为高性能运算的一种,高性能运算群集的高性能依赖于 分布式运算” “并行计算”,通过专用硬件和软件将多个服务器的CPU,内存等资源整合在一起,实现只有大型,超级计算机才具备的计算能力。
合在一起,实现只有大型、超级计算机才具备的计算能力。
不同类型的群集在必要时可以合并,如高可用的负载均衡群集。本章和第7章将依次讲解LVS ,负载均衡群集、高可用软件Keepalived,以及两者的结合使用。
2.负载均衡的分层结构
在典型的负载均衡群集中,包括三个层次的组件,如图6.1所示,前端至少有一个负载调度器(Load. Balancer,或称为Director)负责响应并分发来自客户机的访问请求;后端由大量真实服务器(Real Server)构成服务器池(Server Pool),提供实际的应用服务,整个群集的伸缩性通过增加、删除服务器节点来完成,而这些过程对客户机是透明的;为了保持服务的一致性,所有节点使用共享存储设备。
第一层,负载调度器:这是访问整个群集系统的唯一入口,对外使用所有服务器共有的VP(VirtualIP,虚拟IP)地址,也称为群集P地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后平滑替换至备用调度器,确保高可用性。
第二层,服务器池:群集所提供的应用服务(如HTTP, FTP)由服务器池承担,其中每个节点具有独立的RIP (Real IP,真实P)地址,只处理调度器分发过来的客户机请求,当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
第三层,共享存储:为服务器池中的所有节点提供稳定,一致的文件存取服务,确保整个群集的统一性,在Linx/NX环境中,共享存储可以使用NAS设备,或者提供NFS (NetwarkFile Systern,网络文件系统)共享服务的专用服务器。
3.负载均衡的工作模式关于群集的负载调度技术,可以基于P,端口、内容等进行分发,其中基于IP的负载调度是效率最高的,基于IP的负载均衡模式中,常见的有地址转换,IP隧道和直接路由三种工作模式。
地址转换(Network Address Translation):简称NAT模式,类似于防火墙的私有网络结构负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有P地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
IP隧道(P Tunnell);简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的·访问入口,各节点通过各自的hternet连接直接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用P隧道与负载调度器相互通信。
直接路由(Direct Routing) :简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的P隧道。
以上三种工作模式中, NAT方式只需要一个公网P地址,从而成为最易用的一种负载均衡模式·安全性也比较好,许多硬件负载均衡设备就采用这种方式;相比较而言, DR模式和TUN模式的负载能力更加强大,适用范围更广,但节点的安全性要稍差一些。
1.LVS的作用和特点
1)LVS的作用
负载均衡群集
2)LVS的特点
支持高并发访问
避免单节点故障
动态伸缩
可靠性强
2.群集的类型
1)负载均衡群集
一般使用WEB服务器
负载均衡群集池的服务器全部对外提供服务
加快用户访问速度支持高并发流量
2)高可用转移群集
简称故障转移群集
一组计算机选举活跃服务器和备份服务器
活跃服务器对外提供服务备份服务器监听活跃服务器状态
活跃服务器故障备份服务器接替工作
3)高性能群集
简称超级计算机
科学研究使用或者做数据运算
边缘计算,云计算
3.负载均衡的结构
1)缓存层
缓存用户历史访问数据
加快访问速度提高访问命中率
2)代理层
简称负载调度器
给客户端提供不间断服务
就访问请求转发到服务器池
3)服务器池
保存对外提供服务的服务器
池中包括好多台服务器
4)存储
简称共享存储
集中化存储服务器池中的数据
方便数据配置高可用
4.负载均衡的模式
1)NAT模式
采用封闭式设计结构
客户端请求和响应流量都必须经过调度器
可开性差
2)TUN模式
采用开放式设计结构
调度器和服务器池全部开放在互联网
方便用户做基于地理位置调度
配置成本高
安全性差容易遭受攻击
3)DR模式
采用半开放设计结构
客户端请求经过调度器,服务器响应不经过调度器
调度器流量负载分担小一些
可靠性强
成本低
安全性强
5.LVS负载均衡调度算法
1)RR
轮询
流量平均分配
2)WRR
加权轮询
负载均衡向负载量小的服务器多分配访问流量
3)LC
最少连接
负载均衡向访问量少的服务器多分配访问流量
4)WLC
加权最少连接
负载均衡器向少的流量多分配访问流量,服务器池负载平等切换服务器
二.配置LVS负载均衡
1.安装LVS负载均衡
1)安装LVS服务器
[root@centos04 ~]# yum -y install ipvsadm
2)设置开机自启
[root@centos04 ~]# systemctl enable ipvsadm
3)查看LVS规则
[root@centos04 ~]# ipvsadm -L
4)清空默认规则
[root@centos04 ~]# ipvsadm -C
5)保存
[root@centos04 ~]# ipvsadm-save
2.lvsadm命令常见的选项
1)-A
添加虚拟化服务器
指定调度器的IP地址和端口号
2)-a
添加服务器池,指定服务器的IP地址和端口号
3)-d
删除服务器池中的服务器IP地址和端口号
4)-t
指定调度器的IP地址和端口号
5)-s
负载均衡算法
rr
wrr
lc
wlc
6)-m
NAT模式
7)-i
TUN模式
8)-g
DR模式
9)-w
权重
3.配置LVS的NAT模式
1)创建服务在均衡器指定IP地址和端口号,指定负载均衡均调度算法
[root@centos04 ~]# ipvsadm -A -t 192.168.200.10:8080 -s rr
2)添加服务器
[root@centos04 ~]# ipvsadm -a -t 192.168.200.10:80 -r 192.168.100.20:80 -m -w 1
[root@centos04 ~]# ipvsadm -a -t 192.168.200.10:80 -r 192.168.100.10:80 -m -w 1
3)查看配置
[root@centos04 ~]# ipvsadm -L
4)保存配置
[root@centos04 ~]# ipvsadm-save
4.配置LVS的DR模式
1)修改LVS服务器内核参数关闭响应
[root@centos04 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens32.send_redirects = 0
2)配置WEB服务器的内核参数配置ARP响应
[root@Centos ~]# vim /etc/sysctl.conf
3)配置LVS调度器的IP地址和端口号指定算法
[root@centos04 ~]# ipvsadm -A -t 192.168.100.254:80 -s rr
4)服务器池添加服务器
[root@centos04 ~]# ipvsadm -a -t 192.168.100.254:80 -r 192.168.100.10:80 -g -w 1
[root@centos04 ~]# ipvsadm -a -t 192.168.100.254:80 -r 192.168.100.20:80 -g -w 1
5)保存查看规则
[root@centos04 ~]# ipvsadm-save
[root@centos04 ~]# ipvsadm -L
5.配置存储服务器
1)安装存储服务器
[root@centos03 ~]# yum -y install nfs-utils rpcbind
2)创建存储根目录和网站主页
[root@centos03 ~]# mkdir /www
[root@centos03 ~]# echo “www.nfs.com” > /www/index.htm
3)修改NFS存储主配置文件:NFS是最低级的存储
[root@centos03 ~]# vim /etc/exports
/www 192.168.100.10(ro) 192.168.100.20(ro)
4)启动服务器设置开机自动启动
[root@centos03 ~]# systemctl start nfs
[root@centos03 ~]# systemctl start rpcbinf
[root@centos03 ~]# systemctl enable rpcbind
[root@centos03 ~]# systemctl enable nfs
5)查看共享存储
[root@centos03 ~]# showmount -e 192.168.100.30
Export list for 192.168.100.30:
/www 192.168.100.20,192.168.100.10
6)配置网站服务器开机自动挂载存储
192.168.100.30:/www /var/www/html/ nfs defaults,_netdev 0 0
7)查看日志
[root@centos02 ~]# tail -f /var/log/httpd/access_log
测试
感谢观看,拜拜ヾ(•ω•`)o😊😄😁