首页 > 编程知识 正文

LVS负载均衡(lvs 四层负载均衡)

时间:2023-05-04 17:21:37 阅读:69941 作者:4925

集群一、集群简介1、集群含义由多个主机组成,但对外表现为一个整体,只提供一个访问门户(域名和IP地址),相当于一台大型计算机。 2、在有问题的网络APP应用中,站点对硬件性能、响应速度、服务稳定性、数据可靠性等的要求越来越高,使得一台服务器无法满足负载均衡和高可用性的要求。 3、解决方法根据使用高价小型机、大型机使用多台比较廉价的一般服务器构建服务集群2、集群的分类1、集群目标的不同,选择3种负载均衡集群高可用性集群高性能计算集群2、 划分为负载均衡集群,以提高APP应用系统的响应度、处理尽可能多的访问请求、降低延迟为目标,获得高并发性、高并发性

LB的负载均衡依赖于主节点的分流算法,通过将来自客户端的访问请求分担给多个服务器节点,减轻系统整体的负载

3、高可用性集群(High Availability Cluster )以提高APP应用系统的可靠性、最大限度减少停机时间为目标,确保服务连续性,实现高可用性)的容错效果

HA的工作方式有双工和主从两种模式。 双工是指所有节点同时联机。 主从节点只有主节点在线,但如果发生故障,从节点可以自动切换到主节点。

例如,“故障切换”、“双机热备”等

4、高性能计算集群(High Performance Computer Cluster )以提高APP应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,相当于大型、超级计算机

性能依赖于“分布式计算”和“并行计算”,通过使用专用硬件和软件整合多个服务器的CPU、内存等资源,实现大型、超级计算机才有的计算能力

三.负载均衡群集体系结构加载调度程序(负载平衡器或主管)。

是对整个集群系统的唯一访问口,也称为所有服务器公共的VIP地址、集群IP地址。 通常,主调度程序和两个调度程序配置用于热备份,如果主调度程序出现故障,则可以顺利地用备份调度程序进行替换,以确保高可用性。

服务器池(服务器池)

群集提供的APP应用服务由服务器池负责,每个节点都有独立的RIP地址(真正的IP ),只处理调度程序分发的客户端请求。 当节点临时禁用时,负载调度程序容错将隔离节点,等待错误消除,然后将其重新合并到服务池中。

共享存储(Share Storage )

为服务器池中的所有节点提供稳定、一致的文件访问服务,并允许整个群集的统一共享存储使用NAS设备,或提供提供NFS共享服务的专用服务器。

四、三种负荷调度工作模式1、NAT模式网络地址转换,简称NAT模式

如同防火墙的专用网结构一样,负载调度器用作所有服务器节点的网关,即访问客户端的入口,以及每个节点用作访问响应客户端的出口

服务器节点使用专用IP地址,与负载调度程序位于同一物理网络中,比其他两种方式更安全

2、TUN模式 IP Tunnel,简称TUN模式

开放的网络配置使负载调度器仅充当客户端的访问门户,每个节点通过各自的互联网连接直接响应客户端,而无需通过负载调度器

服务器节点分布在互联网上的不同位置,具有独立的公共网络IP地址,通过专用IP隧道与负载调度器相互通信

3、灾难恢复模式直接路由,简称灾难恢复模式

采用半开放网络结构,类似于TUN模式的结构,但每个节点并不分布在各地,而是与调度程序位于同一物理网络中

负载调度器和每个节点服务器都通过本地网络连接,因此不需要建立专用的IP隧道

五、四种分流算法1,按顺序将接收到的访问请求分配给集群中的每个节点(实际服务器),无论服务器的实际连接数和系统负载如何,均对每个服务器进行平均处理

2、加权轮询调度程序根据设定的权重值分发请求,权重值高的节点优先获得任务,分配的请求数越多

确保高性能的服务器承担更多的访问流量

3、最低连接根据实际服务器建立的连接数进行分配,优先分配收到的访问请求给连接数最小的节点

4、当最小加权连接服务器节点性能差异较大时,可以自动调整实际服务器的权重

高性能节点的活动连接负载比例较大

实验一、NAT (地址转换)1.实验环境LVS服务器192.168.30.7 192.168.10.7WEB服务器1 192.168.30.8WEB服务器2192.168.30.9 clii

2.2创建主页文件

3 .配置构成负载调度器LVS 3.1的LVS的IP

3.2配置snat传输规则[根@ LVS网络-脚本] # echo '1'/pr

oc/sys/net/ipv4/ip_forward //开启路由转发功能[root@lvs network-scripts]# sysctl -p //使内核文件立即生效[root@lvs network-scripts]# iptables -F //清除防火墙规则[root@lvs network-scripts]# iptables -t nat -F //清除nat表规则[root@lvs network-scripts]# iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o ens37 -j SNAT --to-source 192.168.10.7 //追加一条nat表规则,从192.168.30.0网段的过来的IP,将其转换成192.168.10.7

3.3 加载LVS内核模块 [root@lvs ~]# modprobe ip_vs //手动加载ip_vs模块[root@lvs ~]# 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@lvs ~]# 3.4 安装ipvsadm管理工具



3.5 配置负载分配策略 [root@lvs ~]# cat /opt/dr.sh #!/wsdzs/bashipvsadm -C //清除原有策略ipvsadm -A -t 192.168.10.7:80 -s rr //添加虚拟服务器,指定VIP地址和端口,轮询方式ipvsadm -a -t 192.168.10.7:80 -r 192.168.30.8:80 -m -w 1 //添加后端真实服务器,使用nat群集模式,权重为1ipvsadm -a -t 192.168.10.7:80 -r 192.168.30.9:80 -m -w 1 3.6 启动策略,并查看节点状态 [root@lvs ~]# bash /opt/dr.sh [root@lvs ~]# ipvsadmIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP lvs:http rr -> 192.168.30.8:http Masq 1 0 0 -> 192.168.30.9:http Masq 1 0 0 [root@lvs ~]# ipvsadm -ln

3.7 测试

客户端访问192.168.10.7

二、DR(直连路由) 1.实验环境 LVS服务器 ens33 192.168.30.7 ens33:0 192.168.30.100 WEB服务器1 ens33 192.168.30.8 lo:0 192.168.30.100 WEB服务器2 ens33 192.168.30.9 lo:0 192.168.30.100 client 192.168.30.254 2.配置LVS调度服务器 2.1 配置LVS的IP

2.2 加载ip_vs模块 [root@lvs ~]# modprobe ip_vs //手动加载ip_vs模块[root@lvs ~]# 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@lvs ~]# 2.3 下载安装ipvsadm管理工具 [root@lvs ~]# yum -y install ipvsadm已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com软件包 ipvsadm-1.27-8.el7.x86_64 已安装并且是最新版本无须任何处理[root@lvs ~]# 2.4 配置负载分配策略 [root@lvs ~]# cat /opt/dr.sh #!/wsdzs/bashipvsadm -C //清除原有策略ipvsadm -A -t 192.168.30.100:80 -s rr //添加虚拟服务器,指定VIP地址和端口,轮询方式ipvsadm -a -t 192.168.30.100:80 -r 192.168.30.8:80 -g //添加后端真实服务器,使用dr模式ipvsadm -a -t 192.168.30.100:80 -r 192.168.30.9:80 -g 2.5 启动策略,测试

3.配置后端节点服务器 3.1 配置节点服务器的IP


3.2 设置路由禁锢

后端配置相同,只展示一台

3.3 调整内核arp响应参数 [root@web1 network-scripts]# cat /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 //此接口不响应arp请求net.ipv4.conf.lo.arp_announce = 2 //选择发送接口的ip地址作为arp请求的源地址net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2[root@web1 network-scripts]# 3.4 测试httpd服务

4.测试


三、DR + Keepalived 1.实验环境 LVS服务器1 ens33 192.168.30.6 LVS服务器2 ens33 192.168.30.7 WEB服务器1 ens33 192.168.30.8 lo:0 192.168.30.100 WEB服务器2 ens33 192.168.30.9 lo:0 192.168.30.100 client 192.168.30.254 2.配置LVS服务器 2.1 配置IP


2.2 配置DR模式

可以看第二个实验

2.3 配置keepalived 2.3.1 安装keepalived [root@lvs01 keepalived]# yum -y install ipvsadm keepalived //安装keepalivedLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comPackage ipvsadm-1.27-8.el7.x86_64 already installed and latest versionPackage keepalived-1.3.5-19.el7.x86_64 already installed and latest versionNothing to do[root@lvs01 keepalived]# 2.3.2 keepalived配置文件备份 [root@lvs01 network-scripts]# cd /etc/keepalived/[root@lvs01 keepalived]# cp keepalived.conf keepalived.conf.bak 2.3.3 修改配置文件 [root@lvs01 keepalived]# vim keepalived.conf //备lvs需要修改设备名称,优先级,热备状态global_defs { #定义全局参数 router_id lvs01 #热备组内的设备名称不能一致}vrrp_instance vi_1 { #定义VRRP热备实例参数 state MASTER #指定热备状态,主为master,备为backup interface ens33 #指定承载vip地址的物理接口 virtual_router_id 51 #指定虚拟路由器的ID号,每个热备组保持一致 priority 110 #指定优先级,数值越大越优先 advert_int 1 authentication { auth_type PASS auth_pass 6666 }virtual_ipaddress { #指定集群VIP地址 192.168.30.100}}#指定虚拟服务器地址vip,端口,定义虚拟服务器和web服务器池参数virtual_server 192.168.30.100 80 { lb_algo rr #指定调度算法,轮询(rr) lb_kind DR #指定集群工作模式,直接路由DR persistence_timeout 6 #健康检查的间隔时间 protocol TCP #应用服务采用的是TCP协议#指定第一个web节点的地址,端口real_server 192.168.30.8 80 { weight 1 #节点权重 TCP_CHECK { connect_port 80 #添加检查的目标端口 connect_timeout 3 #添加连接超时 nb_get_retry 3 #添加重试次数 delay_before_retry 3 #添加重试间隔 }}#指定第二个web节点的地址,端口real_server 192.168.30.9 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 }}} 3.测试 3.1 启动keepalived


3.2 访问网页




3.3 关闭LVS01的keepalived


3.4 访问网页




3.5 打开Keepalived


3.6 访问网页


小结

LVS不太适合小型的集群,是在四层的负载均衡策略
三种模式:NAT,TUN,DR
四种分流算法:轮询,加权轮询,最小连接,加权最小连接
可以和keepalived结合实现备份、冗余、健康检查、故障切换

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。