苏州建设局网站,企业获客方式,做菠菜网站好赚吗,wordpress浮动视频目录
引言
一、集群的基本理论
#xff08;一#xff09;什么是集群
#xff08;二#xff09;集群的分类
#xff08;三#xff09;LB Cluster 负载均衡集群
1.按实现方式划分
2.按协议层划分
#xff08;四#xff09;HA 高可用集群实现
二、LVS简介
…目录
引言
一、集群的基本理论
一什么是集群
二集群的分类
三LB Cluster 负载均衡集群
1.按实现方式划分
2.按协议层划分
四HA 高可用集群实现
二、LVS简介
一什么是LVS
二LVS工作原理
三LVS集群类型中的术语
三、LVS工作模式及相关命令
一工作模式
1.NAT 模式
2.DR直接路由模式
3.TUN隧道模式
二调试算法
三ipvsadm 工具
四、NAT模式 LVS负载均衡部署 一配置NFS服务器
1.建立共享文件
2.共享目录
二配置网关服务器
1.下载ipvsadm服务
2.添加网卡
3.开启路由转发
4.设置ipvsadm策略
三配置服务器
四配置公网客户端
五、DR模式部署
一原理讲解
二配置DR服务器
1.配置虚拟VIP
2.调整/proc响应参数
3.配置ipvsadm规则
三配置web服务
1.启用web服务
2.添加虚拟IP
3.调整内核参数
4.web服务器2配置与web服务器1相同 引言
在当今互联网服务环境中高并发、高可用是衡量系统性能和稳定性的关键指标。为了应对海量请求和实现系统的稳定性负载均衡技术成为不可或缺的一环。其中Linux Virtual ServerLVS作为基于Linux内核的开源负载均衡解决方案凭借其高效能与灵活配置的特点在众多场景下得到广泛应用。接下来我们将深入探讨如何构建一个LVS集群
一、集群的基本理论
一什么是集群
人群或事物聚集在日常用语中群集指的是一大群人或事物密集地聚在一起。例如“人们群集在广场上”这里的“群集”是指大量人群聚集的现象。
计算机技术中的集群在计算机科学和信息技术领域群集Cluster通常指的是多个独立的计算机系统通过网络连接起来协同工作共同提供服务或者执行计算任务的一种技术架构。
这种群集可以实现负载均衡、高可用性、高性能计算等功能。
二集群的分类
负载均衡集群LB Cluster负载均衡是一种分布式计算技术旨在通过一个或多个负载均衡器将网络流量和计算任务分配到后端的一组服务器上。这样每个服务器只需处理一部分请求避免了单个服务器过载并且能够实现服务的水平扩展。在LVS集群中Director节点就承担了负载均衡的角色。
高可用性集群HA Cluster高可用性是指系统设计的一种目标即确保在正常运行期间尽可能减少服务中断时间并在发生故障时快速恢复服务的能力。通过冗余硬件、软件和网络配置以及故障转移策略如主备切换可以消除SPOFSingle Point Of Failure单点故障提高系统的整体可用性。在LVS集群中使用Heartbeat或keepalived等工具可以实现Director节点之间的高可用切换。
高性能计算集群HPC Cluster高性能计算指的是利用并行计算技术和超级计算机系统解决科学、工程、商业等领域中的大规模复杂问题。HPC系统通常包括大量处理器核心、高速互连网络、高效存储系统以及针对特定应用优化的软件栈。虽然LVS主要用于负载均衡和服务分发但它也可以作为构建HPC环境的一部分例如在某些情况下用于管理和调度分散在网络中的计算资源。然而LVS本身并不直接提供高性能计算功能而是为高性能计算环境提供了更好的基础设施支持。
三LB Cluster 负载均衡集群
1.按实现方式划分
硬件F5 Big-IPF5服务器负载均衡模块
软件
lvsLinux Virtual Server
nginx支持七层调度
haproxy支持七层调度
atsApache Traffic Server
2.按协议层划分
传输层通用DNAT 和 DPORT
LVS
nginxstream
haproxymode tcp
应用层专用针对特定协议常称为 proxy server
httpnginx, httpd, haproxy(mode http), ...
fastcginginx, httpd, ...
mysqlmysql-proxy, mycat...
四HA 高可用集群实现
keepalivedvrrp协议
Ais应用接口规范
heartbeat
cmanrgmanager(RHCS)
coresync_pacemaker
二、LVS简介
一什么是LVS
LVS群集Linux Virtual Server Cluster是一种基于Linux操作系统内核的高性能、高可用网络服务负载均衡解决方案。它利用Linux内核的IP虚拟服务器IPVS模块将一组物理服务器构成一个逻辑上的、单一且透明的高性能虚拟服务器集群。
二LVS工作原理
Linux Virtual ServerLVS工作原理基于网络层四层传输层的负载均衡技术它通过内核级别的IP虚拟服务器IPVS模块实现透明的流量分发
架构组成
Director负载均衡器/调度器作为集群的前端入口节点接收所有来自客户端的请求并根据预设的策略将请求转发至后端服务器。
Real Server真实服务器一组实际提供服务的服务器负责处理从Director转发过来的请求并将响应数据返回给客户端。
三LVS集群类型中的术语
VS
虚拟(代理)服务器。在LVSLinux Virtual Server负载均衡技术中虚拟(代理)服务器是指
通过集群系统对外提供服务的逻辑实体其IP地址通常被称为VIPVirtual IPRS
真实服务器是指参与LVS集群提供服务的一组物理或虚拟服务器。它们负责处理由Director转发
过来的客户端请求并将响应数据返回给客户端CIP
客户端IP地址指请求LVS服务的客户端设备的网络IP地址。在某些情况下可能需要在调度策略
或会话保持中考虑客户端IP以实现特定的功能需求。VIP
虚拟IP地址它是LVS集群对外提供的统一服务地址。客户端通过访问VIP来请求服务而实际的请
求会被透明地分发到后端的Real Server上DIP
Director IP地址即负载均衡器的IP地址。在LVS架构中Director节点也被称为负载均衡器
它接收并根据预设策略分发客户端请求至后端的Real Server。RIP
真实服务器IP地址是指集群内各个Real Server各自的实际网络IP地址这些服务器将直接处
理从Director节点转发过来的客户端请求。
访问流程大体为
CIP访问VIP----VIP进行调用转换发送给DIP-----DIP将请求交给真实服务器DIP-----DIP返还数据包交给DIP----DIP将数据包交给客户端
根据不同的工作模式访问的具体流程也不一样
三、LVS工作模式及相关命令
一工作模式
1.NAT 模式
在NAT(Network Address Translation) 模式下客户端请求首先到达Director负载均衡器即LVSDirector将请求的目标IP地址修改为选定的Real Server的IP地址并转发给Real Server。当Real Server处理完请求并返回响应时响应包会发回给DirectorDirector再将其源IP地址更改为VIP虚拟IP地址然后将响应发送给客户端。这种方式下Director节点承担了所有网络地址转换的工作但其自身的网络性能可能会成为瓶颈。 NAT模式访问过程基本为
①客户端请求
客户端发起请求至服务集群的VIPVirtual IP
②Director处理
请求首先到达负载均衡器DirectorDirector节点内核中的IPVS模块根据预设的调度算法选择一个后端Real Server。
③修改包信息转发
Director将客户端请求的目标IP地址从VIP更改为所选Real Server的实际IP地址并且源IP地址也由客户端IP变为Director自己的IP地址DNAT。
④Real Server响应
请求被转发给选定的Real Server进行处理Real Server处理完成后直接将响应发回给Director。
⑤再次修改包信息返回客户端
当Director接收到Real Server的响应时它会重新更改响应报文的源IP地址为VIP目标IP地址恢复为客户端IP地址SNAT然后将响应发送给客户端。 2.DR直接路由模式
在DR (Direct Routing) 模式中Director并不修改数据包的内容而是更改数据包的MAC地址信息使得请求能够直接被送到指定的Real Server。这样Real Server可以直接响应客户端而无需经过Director再次转发。这种模式下Director和Real Server必须在同一物理网络中并且Director需要通过ARP代理来管理VIP在局域网中的MAC地址映射关系。 ①客户端请求
客户端发起请求至服务集群的VIPVirtual IP
②Director节点处理
请求首先到达前端的Director节点Director节点上的内核模块IPVS根据预设的调度算法选择一个合适的后端真实服务器Real Server。
③MAC地址修改转发
在DR模式下Director不改变数据包的目标IP地址仍为VIP而是修改其MAC地址将数据包的MAC地址更改为所选Real Server的MAC地址。这样当数据包在网络中传播时会直接被送到指定的Real Server而不是再次经过Director。
④Real Server响应
Real Server收到请求后进行正常的业务处理并将响应直接返回给客户端响应报文中的源IP仍然是VIP目标IP是客户端的IP地址。
⑤网络层透明传输
因为在整个过程中客户端始终认为它是在与VIP通信所以对于客户端而言整个过程是完全透明的从而实现了负载均衡的效果。
在DR模式下Director和Real Server需要位于同一物理网络中通常还需要启用ARP代理或者IP伪装功能来确保网络设备正确地将VIP的MAC地址映射到Director节点上以便能将请求定向到正确的Real Server。
其特点为
Director和各RS都配置有VIP
确保前端路由器将目标IP为VIP的请求报文发往Director
RS和Director要在同一个物理网络
请求报文要经由Director但响应报文不经由Director而由RS直接发往Client
不支持端口映射端口不能修改
客户端获取Director(LVS)的MAC地址
由于Director与真实服务器都设置了相同的VIP地址为防止IP冲突需要关闭服务端的ARP响应
路由器发起ARP广播只有Director回复从而获取Director的MAC地址
优点
负载均衡器只负责将请求包分发给后端节点服务器而RS将应答包直接发给用户。所以减少了负载均衡器的大量数据流动负载均衡器不再是系统的瓶颈也能处理很巨大的请求量。
缺点
需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上必须在同一个局域网环境。
3.TUN隧道模式
原理首先负载均衡器接收到客户的请求数据包时根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后查看默认路由把响应后的数据包直接发送给客户端不需要经过负载均衡器。
优点负载均衡器只负责将请求包分发给后端节点服务器而RS将应答包直接发给用户。所以减少了负载均衡器的大量数据流动负载均衡器不再是系统的瓶颈也能处理很巨大的请求量。
缺点隧道模式的RS节点需要合法IP这种方式需要所有的服务器支持“IP Tunneling。
NFSTUNDR优点端口转换WAN性能最好缺点性能瓶颈服务器支持隧道模式不支持跨网段真实服务器要求anyTunnelingNon-arp device支持网络private私网LAN/WAN私网/公网LAN私网真实服务器数量low (10~20)High (100)High (100)真实服务器网关lvs内网地址Own router网工定义Own router网工定义
二调试算法
ipvs scheduler根据其调度时是否考虑各RS当前的负载状态
分为两种静态方法和动态方法
仅根据算法本身进行调度
静态
RRroundrobin轮询,较常用
WRRWeighted RR加权轮询,较常用
SHSource Hashing实现session sticky源IP地址hash将来自于同一个IP地址的请求始终发往第一次挑中的RS从而实现会话绑定
DHDestination Hashing目标地址哈希第一次轮询调度至RS后续将发往同一个目标地址的请求始终转发至第一次挑中的RS典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存
动态
主要根据每RS当前的负载状态及调度算法进行调度Overheadvalue 较小的RS将被调度
LCleast connections 适用于长连接应用
算法为Overheadactiveconns*256inactiveconns
WLCWeighted LC默认调度方法,较常用
算法为Overhead(activeconns*256inactiveconns)/weight
SEDShortest Expection Delay初始连接高权重优先,只检查活动连接,而不考虑非活动连接
算法为Overhead(activeconns1)*256/weight
NQNever Queue第一轮均匀分配后续SED
LBLCLocality-Based LC动态的DH算法使用场景根据负载状态实现正向代理,实现Web Cache等
LBLCRLBLC with Replication带复制功能的LBLC解决LBLC负载不均衡问题从负载重的复制到负载轻的RS,,实现Web Cache等
三ipvsadm 工具
ipvsadm工具 是Linux中用于管理IPVSIP Virtual Server负载均衡服务的核心工具。IPVS是Linux内核中的一种虚拟服务器实现它允许将一组物理服务器集群作为单一的、逻辑上的高性能和高可用虚拟服务器对外提供服务。
ipvsadm工具的主要功能包括
1.添加和删除服务
-A 参数用于在内核中添加新的虚拟服务器。 -D 参数用于删除已存在的虚拟服务器配置。
2.设置调度算法
使用 -s 参数可以指定虚拟服务器使用的负载均衡调度算法如轮询rr、加权轮询wrr、最少连接lc、加权最少连接wlc等。
-w: 设置权重(权重为0时表示暂停节点)
3.添加和删除后端真实服务器
-a 参数用于向现有虚拟服务器添加真实服务器。 -d 参数用于从虚拟服务器中删除指定的真实服务器。
4.查看当前配置
-L 或 --list 参数用于显示当前所有的IPVS规则和服务定义。
5.持久化保存和恢复规则
-S 用于保存当前所有IPVS规则到标准输出或文件。 -R 则可以从之前保存的规则文件中恢复IPVS规则。
6.LVS伪装类型
-m 表示使用NAT群集模式 -g 表示使用DR模式 -i 表示使用TUN模式
7.指定端口
-t: 指定VIP地址及TCP端口 -r: 指定RIP地址及TCP端口
通过ipvsadm工具管理员可以方便地创建、修改和监控基于LVS的负载均衡系统并根据业务需求调整流量分发策略从而确保整个集群系统的稳定性和高效运行。
四、NAT模式 LVS负载均衡部署 外网客户端 12.0.0.1 web服务器1 192.168.83.20 web服务器2 192.168.83.30 网关服务器 192.168.83.40 12.0.0.10 NFS服务器 192.168.83.50
一配置NFS服务器
1.建立共享文件
首先在NFS服务器上建议共享文件与目录
如果没有安装nfs、rpcbind。执行下面这条命令进行安装
yum install nfs-utils rpcbind -y
安装完毕之后构建挂载目录与访问数据 2.共享目录
编辑/etc/exports文件语法格式为共享目录路径 可以访问的IP地址(权限)
例如指定一个地址对共享目录有读写权限文件内容可编辑为/nfs 192.168.83.30(rw) 编写完文件后开启服务
systemctl start nfs systemctl start rpcbind
如果服务已经开启执行exportfs -r 刷新文件 二配置网关服务器
1.下载ipvsadm服务
首先安装ipvsadm服务yum install ipvsadm.x86_64 -y
安装完之后直接启动服务会报错因为找不到/etc/sysconfig/ipvsadm文件。 这是一个配置信息文件需要手动生成使用ipvsadm-save命令 2.添加网卡
网关服务器准备两块网卡分别设置一个公网IP地址与私网IP地址并将网关设置为自己 重启网卡后使用route -n命令查看网关是否生效 3.开启路由转发
在/etc/sysctl.conf文件中添加net.ipv4.ip_forward 1 4.设置ipvsadm策略
首先清空ipvsadm策略ipvsadm -C使用ipvsadm -ln查看策略 添加策略 ipvsadm -A -t 12.0.0.10:80 -s rr这条命令用于添加一个新的虚拟服务器VIP即在LVS中创建一个服务入口点。
-A 参数表示添加新的虚拟服务器
-t 12.0.0.10:80 表示VIP地址和端口是12.0.0.10上的TCP 80端口。
-s rr 表示使用轮询Round Robin调度算法进行负载均衡即请求会按顺序依次分发到后端服务器。ipvsadm -a -t 12.0.0.10:80 -r 192.168.83.20:80 -m这条命令用于将一个真实服务器添加到已有的虚拟服务器上。
-a 参数表示向已有虚拟服务器添加真实服务器记录
-t 12.0.0.10:80 是指向已经创建好的VIP地址和端口
-r 192.168.83.20:80 表示要添加的真实服务器地址和端口也是TCP 80端口。
-m 参数表示采用NAT模式进行转发这意味着来自客户端的请求将会被改写目标地址为真实的服务器地址ipvsadm -a -t 12.0.0.10:80 -r 192.168.83.30:80 -m同上一个三配置服务器
1.服务器1
首先使用showmount -e命令查看NFS服务器共享情况 使用mount命令将共享目录挂载到web服务的站点目录下 将本机的网关设置为网关服务器的私网地址并重启网卡生效 2.服务器2
查看NFS服务器共享目录 开启web服务并进行挂载 将本机的网关设置为网关服务器的私网地址并重启网卡生效 四配置公网客户端
配置好模拟公网的IP地址及网关
在实际环境中基本上是无法设置公网的网关的只能通过路由一次次转发到达 访问网关服务器 #LVS的负载调度算法有四种最常用的轮询算法rr、加权轮询wrr、最少轮询lc、
#加权最少轮询wlc#创建虚拟服务器(注意NAT模式要两块网卡调度器的地址是外网口地址)
#群集的VIP地址为12.0.0.10针对TCP 80端口提供负载分流服务使用的轮询调度算法。
#对于负载均衡调度器来说VIP必须是本机实际已启用的IP地址
ipvsadm -A -t 12.0.0.10:80 -s rr#选项
-A表示添加虚拟服务器-t用来指定VIP地址及TCP端口-s用来指定负载调度算法——rr、wrr、lc、wlc#添加服务器节点
ipvsadm -a -t 12.0.0.10:80 -r 192.168.83.20:80 -m
ipvsadm -a -t 12.0.0.10:80 -r 192.168.83.20:80 -m选项
-a表示添加真实服务器
-t用来指定VIP地址及TCP端口
-r用来指定RIP地址及TCP端口
-m表示使用NAT群集模式-g是DR模式-i是TUN模式
{ -m参数后面还可以跟-w的参数这里没有做的-w用来设置权重权重为0时表示暂停节点}#删除服务器节点
ipvsadm -d -r 192.168.83.20:80 -t 12.0.0.10:80需要从服务器池中删除某一个节点时使用选项-d。
执行删除操作必须指定目标对象包括节点地址、虚拟IP地址。
如上所示的操作将会删除LVS群集12.0.0.10:80中的节点192.168.83.20:80若需要删除整个虚拟服务器时使用选项-D并指定虚拟IP地址即可无需要指定节点。
例如“ipvsadm -D -t 12.0.0.10:80则删除此虚拟服务器。ipvsadm -l #查看节点状态加个-n将以数字形式显示地址、端口信息
ipvsadm-save /etc/sysconfig/ipvsadm #保存策略#使用导出/导入工具ipvsadm-save/ipvsadm-restore可以保存、恢复LVS策略
#方法类似于iptables的规则的导出、导入
五、DR模式部署
环境部署
C/SIP地址安装软件DR服务器192.168.83.40VIP192.168.83.200ipvsadmweb服务器1192.168.83.60VIP192.168.83.200httpdweb服务器2192.168.83.100VIP192.168.83.200httpd客户端192.168.83.30
一原理讲解 1.客户端发起请求直接访问虚拟IP(VIP)
2.路由器发起ARP广播获取调度服务器的MAC地址
3.LVS的调度器接受请求之后根据算法选择一台后端的真实服务器请求转发到后端真实服务器把请求报文的目的MAC地址修改成后端真实服务器的MAC地址然后转发
4.后端真实F服务器接受请求处理完成之后。由后端服务器直接把响应结果转发给客户端响应报文中的目的MAC地址修改成客户端的MAC地址直接把响应报文转发到客户端
VIP的作用设置相同的VIP地址
1、标识后端的真实服务器
2、保证调度器和后端服务器之间的通信保证请求可以正确的转发到后端服务器
3、实现高可用和故障转移
解决IP地址冲突问题
在真实服务器上修改内核参数使真实服务器只对自己服务器上的真实IP地址响应ARP解析。
二配置DR服务器
下载ipvsdam工具yum install ipvsadm.x86_64 -y
1.配置虚拟VIP
想要永久保存VIP可以添加网卡或写一个ens33:0的配置文件保存 添加虚拟网卡注意子网掩码为32表示该地址为一个固定地址
2.调整/proc响应参数 net.ipv4.ip_forward 0
这个参数用于控制IP转发功能。当其值为0时表示关闭IP层的路由转发功能。这意味着系统不
会接受来自其他子网的流量并将其转发到另一个子网通常在主机仅作为终端节点而不是路由器
或网关时设置。net.ipv4.conf.all.send_redirects 0
这个参数控制是否发送ICMP重定向消息。当其值为0时禁止所有接口包括以后可能新增的
发送ICMP重定向消息。ICMP重定向消息通常用于通知主机其发送数据包的目标路由可以直接到达
无需通过当前网关。禁用此功能可以防止潜在的安全攻击并且在某些网络架构中避免不必要的
重定向net.ipv4.conf.default.send_redirects 0
类似于上一个参数但作用于未来新建的接口。它将默认设置新创建的网络接口不发送ICMP重定向消息net.ipv4.conf.ens33.send_redirects 0
此参数针对具体的网络接口“ens33”确保该接口也不发送ICMP重定向消息
3.配置ipvsadm规则
ipvsadm-save /etc/sysconfig/ipvsadm #生成配置信息文件 systemctl start ipvsadm.service #启动服务 ipvsadm -A -t 192.168.83.200:80 -s rr
这条命令创建了一个新的虚拟服务器VIP,IP地址为192.168.83.200监听端口为80并设置调度算
法为 rr轮询,这意味着所有到这个VIP和端口的请求将按照轮询的方式被分发到后端的real Serveripvsadm -a -t 192.168.83.200:80 -r 192.168.83.60:80 -g
这条命令向刚才创建的虚拟服务器添加了一个真实服务器real Server其IP地址为192.168.83.60监听的端口也是 80。参数 -g 表示使用 DR 模式即直接路由模式意味着请求
通过Director节点时不改变目标IP地址仅修改MAC地址指向实际处理请求的真实服务器ipvsadm -a -t 192.168.83.200:80 -r 192.168.83.100:80 -g
类似地这条命令添加了另一个真实服务器IP地址为 192.168.83.100同样以 DR 模式运行在端
口 80 上。这样在此配置下来自客户端对 VIP (192.168.83.200:80) 的请求将会被轮流分配给两
个真实服务器进行处理。
三配置web服务
配置web服务器1
1.启用web服务
首先安装web服务yum install httpd -y
启动服务并建立数据文件 2.添加虚拟IP
添加虚拟网卡为回环口与LVS调度服务器建立连接 3.调整内核参数 net.ipv4.conf.all.arp_ignore 和 net.ipv4.conf.default.arp_ignore
设置为1表示节点将更严格地处理ARP请求。在某些情况下系统不会响应非本地IP地址的ARP请求
这有助于防止IP地址冲突并且可以用于LVS DR模式下的Director节点以避免对外直接响应ARP请求net.ipv4.conf.all.arp_announce 和 net.ipv4.conf.default.arp_announce
设置为2表示节点在发送ARP应答时总是使用其主接口上的最具体的地址即优先级最高的源IP地址
这同样对LVS DR模式很有用确保Director节点在回应ARP请求时只使用VIP而不是实际的物理接
口地址。
4.web服务器2配置与web服务器1相同 使用客户端访问虚拟IPVIP 路由阶段有专门的网路工程师进行配置从而实现从外网进行访问
隧道模式原理与DR模式大体相同需要建立专门的VPN隧道