第六十二集 LVS负载均衡 ❤集群


群集的含义

1、概念
由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机

2、问题
主要来源于市场需求(企业需求),以及企业管理维护人员的合理性和效率;为了解决互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用性的要求

3.、解决方法
主要是:增强单体和集群化
使用价格昂贵的小型机、大型机
使用多台相对廉价的普通服务器构建服务集群

集群的分类

根据功能性角度、决绝问题的角度可以分为三种类型

负载均衡群集:LVS实现
高可用群集:MHA manager实现,LVS的HA是由keepalive实现的
高性能运算群集
1、负载均衡群集:聚合和负载均衡
服务器集群:压力的均衡、合理性
集群作为整体,提高整体的抗压、负载能力
依赖的机制:LB的负载分配依赖于主节点的分流算法
2、高可用群集(High Availability Cluster)
提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果
HA的工作方式包括双工和主从两种模式
3、高性能运算群集(High Performance Computer Cluster)
提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC) 能力
高性能依赖于”分布式运算”、”并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力

负载均衡群集架构

1、负载均衡的结构
第一层:负载调度器(Load Balancer或Director)
第二层:服务器池(Server Pool)
第三层:共享存储(Share Storage)

2、负载均衡群集工作模式分析
负载均衡群集是目前企业用得最多的群集类型
群集的负载调度技术有3种工作模式

2.1、地址转换(NAT模式)
类似于防火墙的私有网络结构,请求的出和入均有调度器服务控制(LVS)
所有服务器在同一个物理网络内,安全性要优于其他两种方式
2.2、IP隧道(TUN模式)
real servers在公网环境(公网IP)
Ivs只接收请求,响应请求由对应接收请求的real server以隧道形式直接响应
2.3、 直接路由(DR模式)
接受请求由LVS处理,响应请求也是由real server处理
他们在同一物理网络(内部网) ,响应请求(不同网段的),需要通过公共路由器实现

关于LVS虚拟服务器

1、LVS简述
针对Linux内核开发的负载均衡解决方案
1998年5月,由我国的章文嵩博士创建
LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
2、负载调度算法
2.1、基于请求控制
轮询
简单来说就是按照顺序一个个来;将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载
加权轮询
根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
保证性能强的服务器承担更多的访问流量
2.2、基于连接数
首先看最少连接数,若连接数一样的情况下,看权重的优先级高

最少连接
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
加权最小连接
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承担更大比例的活动连接负载
以接近实时连接的请求数(连接数)做为基础
以权重的方式,决定在real servers中连接数相同的情况下,该如何分配请求(以权重的方式判断)

负载均衡三种工作模式的区别

工作模式 NAT模式 TUN模式 DR模式
节点数量 low10-20 high 100 high 100
真实网关 负载调度器 自由路由器 自由路由器
IP地址 公网+私网 公网 私网
优点 安全性高 安全、速度快 性能最好
缺点 效率低、压力大 需要隧道支持 不能跨越局域网

LVS的管理工具ipvsadm

ipvsadm工具选项
-A:添加虚拟服务器
-D:册除整个虚拟服务器
-s:指定负载调度算法(轮询::rr、加权轮询: wrr、最少连接:lc、加权最少连接: wlc )
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点
-t:指定VIP地址及TCP端口
-r:指定RIP地址及TCP端口
-m:表示使用NAT群集模式.
-g:表示使用DR模式
-i:表示使用TUN模式
-w:设置权重(权重为o 时表示暂停节点)
-p:60表示保持长连接60秒
-i:列表查看LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与"-l”选项组合使用

LVS负载均衡群集部署(NAT模式)
设备:LVS负载调度器:ens33 :192.168.118.100 ens36:192.168.140.100,web节点服务器①192.168.118.50②192.168.118.55,NFS服务器:192.168.118.200,客户端(win10):ip192.168.140.50,网关192.168.140.100
部署共享存储
[root@nfs ~]# systemctl stop firewalld.service
[root@nfs ~]# setenforce 0
[root@nfs ~]# yum install -y nfs-utils rpcbind
[root@nfs ~]# systemctl start nfs.service
[root@nfs ~]# systemctl start rpcbind.service
[root@nfs ~]# mkdir /opt/aaa /opt/bbb
[root@nfs ~]# chmod 777 /opt/aaa /opt/bbb
[root@nfs ~]# vim /etc/exports
/opt/aaa 192.168.118.0/24(rw,sync)
/opt/bbb 192.168.118.0/24(rw,sync)
[root@nfs ~]# exportfs -rv
exporting 192.168.118.0/24:/opt/bbb
exporting 192.168.118.0/24:/opt/aaa
[root@nfs ~]# showmount -e
Export list for nfs:
/opt/bbb 192.168.118.0/24
/opt/aaa 192.168.118.0/24

部署web服务器
web1:
[root@web1 ~]# yum install -y httpd
[root@web1 ~]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      100552/httpd
[root@web1 ~]# mount.nfs 192.168.118.200:/opt/aaa /var/www/html/
mount.nfs: access denied by server while mounting 192.168.118.200:/opt/aaa
[root@web1 ~]# echo "<h1>this is aaa</h1>" >> /var/www/html/index.html
<h1>this is aaa</h1> /var/www/html/index.html
[root@web1 ~]# vim /etc/fstab
192.168.118.200:/opt/aaa /var/www/html nfs defaults,_netdev 0 0
[root@web1 ~]# mount -a
mount.nfs: access denied by server while mounting 192.168.118.200:/opt/aaa
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33  #将网关设置为LVS服务器的ens33网卡ip
GATEWAY=192.168.118.100
[root@web1 ~]# systemctl restart network
[root@web1 ~]# ping 192.168.140.100
PING 192.168.140.100 (192.168.140.100) 56(84) bytes of data.
64 bytes from 192.168.140.100: icmp_seq=1 ttl=64 time=0.277 ms
64 bytes from 192.168.140.100: icmp_seq=2 ttl=64 time=0.234 ms



web2:
[root@web2 ~]# yum install -y httpd
[root@web2 ~]# systemctl start httpd.service
[root@web2 ~]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      99537/httpd 
[root@web2 ~]# mount.nfs 192.168.118.200:/opt/bbb /var/www/html
mount.nfs: access denied by server while mounting 192.168.118.200:/opt/bbb
[root@web2 ~]# echo "<h1>this is bbb</h1>" >> /var/www/html/index.html
<h1>this is bbb</h1> /var/www/html/index.html
[root@web2 ~]# vim /etc/fstab
192.168.118.200:/opt/bbb /var/www/html nfs defaults,_netdev 0 0
[root@web2 ~]# mount -a
mount.nfs: access denied by server while mounting 192.168.118.200:/opt/bbb
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 		#配置网关为LVS的ens33网卡IP
GATEWAY=192.168.118.100
[root@web2 ~]# systemctl restart network
[root@web2 ~]# ping 192.168.140.100		#测试是否与外网网卡通讯
PING 192.168.140.100 (192.168.140.100) 56(84) bytes of data.
64 bytes from 192.168.140.100: icmp_seq=1 ttl=64 time=0.233 ms
64 bytes from 192.168.140.100: icmp_seq=2 ttl=64 time=0.166 ms

配置负载调度器LVS
添加网卡ens36:192.168.140.100(VMnet1仅主机模式)注意不要配置网关和DNS

##配置SNAT转发规则
[root@localhost ~]# vim /etc/sysctl.conf		
net.ipv4.ip_forward=1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@localhost ~]# iptables -t nat -F
[root@localhost ~]# iptables -F
[root@localhost ~]# 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 
[root@localhost ~]# systemctl start firewalld.service 	#开启防火墙以实现nat地址转发
[root@localhost ~]#  iptables -t nat -A POSTROUTING -s 192.168.118.0/24 -o ens36 -j SNAT --to-source 192.168.140.100
[root@localhost ~]# modprobe ip_vs		#手动加载LVS内核信息
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

[root@localhost ~]#  yum install -y ipvsadm		#下载ipvsadm
[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm		#启动前必须先创建策略
[root@localhost ~]# systemctl status ipvsadm
● ipvsadm.service - Initialise the Linux Virtual Server
   Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
   Active: active (exited) since 星期日 2021-07-25 16:09:18 CST; 10s ago
………………

##清除原有策略,添加新策略
[root@localhost ~]# ipvsadm -A -t 192.168.140.100:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.140.100:80 -r 192.168.118.50:80 -m -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.140.100:80 -r 192.168.118.55:80 -m -w 1

启动策略
[root@localhost ~]# ipvsadm 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr
  -> 192.168.118.50:http          Masq    1      0          0         
  -> 192.168.118.55:http          Masq    1      0          0 

[root@localhost ~]# ipvsadm -ln			#查看节点状态
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.140.100:80 rr
  -> 192.168.118.50:80            Masq    1      0          0         
  -> 192.168.118.55:80            Masq    1      0          0   

[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm		#保存策略

[root@localhost ~]# watch -n 1 ipvsadm			#持续刷新复制调度器,然后再win10上观察
Every 1.0s: ipvsadm                                                                             Sun Jul 25 19:33:41 2021

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr
  -> 192.168.118.50:http          Masq    1	 0          0
  -> 192.168.118.55:http          Masq    1	 0          0



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值