姜堰哪里有网站建设的,四川省凉亭建设工程有限公司网站,天气预报权威发布,网站制作建设需求一、LVS负载均衡群集知识
1.1 群集的的定义及意义
Cluster#xff0c;集群#xff08;也称群集#xff09;由多台主机构成#xff0c;但对外只表现为一一个整体#xff0c;只提供一-个访问入口(域名或IP地址)#xff0c; 相当于一台大型计算机。
群集的作用#xff1…一、LVS负载均衡群集知识
1.1 群集的的定义及意义
Cluster集群也称群集由多台主机构成但对外只表现为一一个整体只提供一-个访问入口(域名或IP地址) 相当于一台大型计算机。
群集的作用
对于企业服务的的性能提升一般会有两种方式
纵向扩展 对服务器的CPU 内存 硬盘 等硬件进行升级或者扩容来实现的 性能上限会有瓶颈成本昂贵收效比不高等问题
横向扩展 通过增加服务器主机数量来应该高并发的场景
群集的目的 : 提高性能计算密集应用。如天气预报核试验模拟 降低成本相对百万美元的超级计算机价格便宜 提高可扩展性只要增加集群节点即可 增强可靠性多个节点完成相同功能避免单点失败
企业级群集的类型 :
负载均衡LB提高应用系统的响应效率处理更多的访问请求减少延迟提高并发和负载能力。 同时也是如今企业运用最多的群集类型。高可用HA 提高应用系统的可靠性减少服务中断时间确保服务的连续性高性能运算HPC将多台主机的硬件计算资源整合到一起实现分布式运用比如 云计算
二、LVS负载均衡的三种模式
群集的负载调度技术有三种工作模式地址转换NAT模式 直接路由DR模式IP隧道IP-TUN。对于商用来说最常用是NAT模式和DR模式。
NAT地址转换
缺点调度器作为所有节点服务器的网关既作客户端的访问入口也作节点服务器响应的访问出口也就意味着调度器将成为整个集群系统的瓶颈。
优点由于再转发过程中做了地址转发对于节点服务器的安全性比其它模式较好。
调度器至少要有2个网卡一个承载VIP用于接收客户端的请求另一个用于使用私有IP在同一个局域网中与节点服务器相互通信。
工作原理
(1)用户通过Internet DNS服务器在我们的负载均衡设备上解析为外网地址。 相对于真实的服务器LVS外网IP也被称为VIP虚拟IP地址。 通过访问VIP用户可以连接到后端的真实服务器所有这些对用户都是透明的。 用户认为他正在访问真正的服务器但不知道访问的VIP只是一个dispatcher.It目前尚不清楚后端真正的服务器在哪里以及其中有多少是真实的。
2用户向LVS负载均衡调度器也是网关服务器的外部网卡发送请求。 此时LVS根据预先配置的算法选择后端的真实服务器内网实际处理数据的web服务器并将数据请求包转发给真实服务器。转发前LVS改变数据报文的目的地址和目的端口并将目的地址和目的端口改变为所选择的真实服务器的IP地址和对应端口。
(3)真实服务器向LVS调度器返回响应数据包。 调度员收到响应数据包后将源地址和源端口更改为VIP和调度员对应的端口。 当更改完成时调度器将响应数据包发送回终端用户。 此外由于LVS调度程序有一个连接哈希表连接请求和传输信息都记录在该表中。 当同一连接的下一个数据包发送到调度器时可以直接从哈希表中查找到上一个连接记录并将记录的信息发送到调度器。 DR直接路由
特点调度器只根据调度算法接收客户端的请求并将其转发给节点服务器。节点服务器处理完请求后直接向客户端响应已经响应的数据包不经过dispatcher.In DR模式下调度器和后端服务器必须在同一个局域网中并且VIP地址必须在调度器和所有后端服务器之间共享。 性能高于NAT模式 调度器和节点服务器使用私有IP与同一局域网中的节点服务器进行通信。
工作原理
1用户向Director服务器负载均衡器发送请求请求的数据包源IP为CIP目标IP为VIP到达内核空间。
(2)由于Director服务器和real服务器在同一网络中通过二层的数据链路层进行传输。 内核空间确定所述数据包的目标IP为本地IP。 此时IPVS比较数据包请求的业务是否为集群业务。 在那种情况下重新打包数据包并将源MAC地址更改为DIP的MAC地址将目标MAC地址更改为RIP的MAC地址。 如果源和目的IP地址没有改变则将数据包发送到真实服务器。
(3)当真实服务器检测到请求报文的MAC地址为自己的MAC地址时接收报文重新打包报文(源IP地址为VIP目标IP为CIP)通过lo接口将响应报文发送到物理网卡 真实服务器直接向客户端发送响应消息。
TUNIP隧道
TUN(IP隧道) 架构类似于DR但节点服务器分散在Internet上的不同地方都具有独立的公共IP并通过专用IP隧道与调度器通信。
采用开放的网络结构负载调度器只作为客户端访问入口每个节点通过负载调度器传输压力小于NAT。
服务器节点分散在Internet上的不同位置具有独立的公共IP地址并通过专用IP隧道和负载调度器相互通信。
缺点成本很高。
该模型常用于特殊场景如在全国范围内分布节点服务器以防止物理攻击地震、战争等。).为灾难做好准备。
(1)当用户请求到达Director服务器时请求的数据包首先被移动到内核空间优先路由链。 此时源IP为CIP目标IP为VIP。
(2)PREROUTING确认数据包的目标IP为本机并将数据包转发到输入链。
(3)IPVS比较数据包请求的服务是否足以为集群服务。 在这种情况下ip数据包在请求数据包的头部被封装一次并且封装的数据包的源IP是DIP和目标IP是RIP.それをPOSTROUTINGに送信しますCHAIN.At 本次源IP为DIP目标IP为RIP
(4)POSTROUTING chain根据最新封装的IP报文向RS发送数据报文(由于在外部封装中多了一层IP头此时可以理解为是通过隧道发送的)。
(5)RS收到数据包后RS检测到是自己的IP地址。 执行完解封装操作后去掉最外层的IP后可以看到里面还有一层IP头目标是自己的LO接口VIP此时RS会处理这个请求。 程完成后通过lo接口发送到eth0网卡并通过出线。源IP地址为VIP目标IP为CIP。
(6)响应消息到达客户端。
2.2 LVS的负载调度算法 固定调度算法rr, wrr dhsh rr轮询算法Round Robin
请求分配给不同的RS节点在turn.distributed.It 它适用于所有RS节点的处理性能接近的情况。
将接收到的访问请求的安装顺序依次分配给集群中的每个节点真实服务器并平等对待每个服务器而不考虑实际连接数和服务器上的系统负载。
wrr加权轮询调度Weighted Round Robin 依据不同RS的权重值分配任务。权重值较高的RS将优先获得任务并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。 保证性能强的服务器承担更多的访问流量。
dh目的地址哈希调度destination hashing 以目的地址为关键字查找一个静态hash表来获得所需RS。
sh源地址哈希调度source hashing 源地址为关键字查找--个静态hash表来获得需要的RS。 动态调度算法 wlclclblc
lc最小连接数调度 Least Connections ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。 根据真实服务器已建立的连接数进行分配将收到的访问请求优先分配给连接数最少的节点。 wlc加权最小连接数调度Weighted Least Connections 假设各台RS的权值依次为Wi当前tcp连接数依次为Ti依次取Ti/Wi为最小的RS作为下一个分配的RS。 在服务器节点的性能差异较大时可以为真实服务器自动调整权重。 性能较高的节点将承担更大比例的活动连接负载。
lblc基于地址的最小连接数调度(locality-based least-connection)
将来自同一个目的地址的请求分配给同一-台RS此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS并以它作为下一次分配的首先考虑。
三、LVS部署前
3.1 ipvsadm 工具选项说明
pvsadm的选项作用-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 3.2 ip_vs通用模块
ls /usr/lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/ipvsmodprobe ip_vs //手动加载 ip_vs 模块cat /proc/net/ip_vs //查看当前系统中ip_vs模块的版本信息 for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o ^[^.]*);do echo $i; /sbin/modinfo -F filename $i /dev/null 21 /sbin/modprobe $i;done四、 LVS负载均衡-NAT模式的部署
4.1 NAT模式实验部署操作前的准备设计以及需求
实验需求
通过NAT模式使外网客户机能够访问到相关的web服务并且LVS调度器使内网中的web服务器达到负载均衡的效果。此外NFS共享存储为web服务提供更大的存储空间
实验设备准备
需要五台虚拟机一台web1服务器一台web2服务器一台负载均衡调度器一台NFS共享存储机一台外网客户机做测试作用 各设备的IP设置如下
负载调度器内网关 ens33192.168.136.100外网关 ens3612.0.0.100 Web节点服务器1192.168.136.120 Web节点服务器2192.168.136.130 NFS服务器192.168.136.110 客户端12.0.0.66 4.2 NAT模式实验部署操作步骤
第一步部署共享服务主机IP192.168.136.110 95 systemctl stop firewalld.service96 systemctl disable firewalld.service97 setenforce 098 yum install nfs-utils rpcbind -y99 systemctl start rpcbind.service100 systemctl start nfs.service101 systemctl enable nfs.service102 systemctl enable rpcbind.service103 mkdir -p /var/www/html/{cxk,xhz}104 cd /var/www/html/105 ls106 echo this is cxk_web01! cxk/test.html107 echo this is xhz_web02! xhz/test.html108 cat cxk/test.html 109 cat xhz/test.html 110 vim /etc/exports111 systemctl enable --now rpcbind nfs112 showmount -e113 systemctl stop firewalld114 setenforce 0115 showmount -e116 systemctl enable --now rpcbind nfs117 showmount -e118 vim /etc/exports119 systemctl status rpcbind.service 120 systemctl status nfs121 showmount -e122 exportfs -a123 showmount -e第二步配置节点服务器192.168.136.120 192.168.136.130
两台web节点服务器相同的操作
77 systemctl restart network.service78 systemctl disable --now firewalld79 setenforce 080 showmount -e 192.168.136.11081 cd /etc/yum.repos.d/82 ls83 mkdir bak84 mv *.repo bak85 rz -E86 ls87 yum -y install nginx88 vim /etc/fstab 89 mount -a90 df -h91 ls92 ls /usr/share/nginx/html/93 cat te94 ls /usr/share/nginx/html/95 cat /usr/share/nginx/html/test.html 96 vim /etc/nginx/nginx.conf 97 systemctl restart nginx98 vim /etc/sysconfig/network-scripts/ifcfg-ens3399 systemctl restart network nginxweb1节点服务器的后续操作 web2节点服务器的后续操作 第三步配置负载调度器内网关 ens33192.168.136.100外网关 ens3612.0.0.100
101 cd /etc/sysconfig/network-scripts/102 ls103 ip a104 cp ifcfg-ens33 ifcfg-ens34105 ls106 vim ifcfg-ens34107 vim ifcfg-ens33108 ls109 systemctl restart network110 ip a111 vim /etc/sysctl.d/112 vim /etc/sysctl.d113 vim /etc/sysctl.conf 114 sysctl -p115 modprobe ip_vs116 cat /proc/net/ip_vs117 yum -y install ipvsadm.x86_64 118 cd /etc/yum.repos.d/119 ls120 vim /etc/sysconfig/network-scripts/ifcfg-ens33121 cd /etc/sysconfig/122 vim /etc/sysconfig/network-scripts/ifcfg-ens33123 systemctl restart network124 yum -y install ipvsadm.x86_64 125 vim /etc/sysconfig/network-scripts/ifcfg-ens33126 systemctl restart network127 ip a128 systemctl start ipvsadm.service 129 systemctl status ipvsadm.service 130 ipvsadm-save /etc/sysconfig/ipvsadm131 systemctl start ipvsadm.service 132 ipvsadm-save /etc/sysconfig/ipvsadm133 systemctl start ipvsadm.service 134 ipvsadm -C135 ipvsadm -ln136 ipvsadm -A -t 12.0.0.100 -s rr137 ipvsadm -A -t 12.0.0.100:80 -s rr138 ipvsadm -ln139 ipvsadm -a -t 12.0.0.100:80 -r 192.168.136.120:80 -m140 ipvsadm -a -t 12.0.0.100:80 -r 192.168.136.130:80 -m141 ipvsadm -ln142 ipvsadm143 ipvsadm -ln144 ls /usr/lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/ipvs145 cat /proc/net/ip_vs保存LVS的配置策略以及删除策略的方法
ipvsadm-save /opt/ipvsadm #保存策略
ipvsadm-save /etc/sysconfig/ipvsadm
----------------------------------------------------------------------------------------------------------
ipvsadm -d -t 12.0.0.100:80 -r 192.168.136.120:80 #删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.100:80 #删除整个虚拟服务器
systemctl stop ipvsadm #停止服务清空策略
systemctl start ipvsadm #启动服务根据/etc/sysconfig/ipvsadm重建配置
ipvsadm-restore /opt/ipvsadm #恢复LVS 策略134 ipvsadm -C135 ipvsadm -ln136 ipvsadm -A -t 12.0.0.100 -s rr137 ipvsadm -A -t 12.0.0.100:80 -s rr138 ipvsadm -ln139 ipvsadm -a -t 12.0.0.100:80 -r 192.168.136.120:80 -m140 ipvsadm -a -t 12.0.0.100:80 -r 192.168.136.130:80 -m141 ipvsadm -ln142 ipvsadm143 ipvsadm -ln 第四步进行客户机测试