LVS负载均衡群集篇

群集应用概述

群集的含义

1.Cluster,集群、群集 2.由多台主机构成,但对外只表现为一个整体

在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心

解决方法

1.使用价格昂贵的小型机、大型机 2.使用普通服务器构建服务群集

企业群集分类

根据群集所针对的目标差异,可分为三种类型:

1.负载均衡群集(轮询,最小连接的加权重) 2.高可用群集(访问的速度,可靠性) 3.高性能运算群集(并发处理任务)

负载均衡群集(Load Balance Cluster)

1.以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB) 的整体性能 2.LB的负载分配依赖于主节点的分流算法

高可用群集(High Availability Cluster)

1.以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果 2.HA的工作方式包括双工和主从两种模式

高性能运算群集(High Performance Computer Cluster)

1.以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力 2.高性能运算群集的高性能依赖于"分布式运算”、“并行计算” ,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力

负载均衡群集工作模式分析

负载均衡群集是目前企业用得最多的群集类型

群集的负载调度技术有三种工作模式:

1.地址转换 2.IP隧道 3.直接路由(DR)

NAT模式

地址转换(Network Address Translation):

1.简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口 2.服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

TUN模式

IP隧道(IP Tunnel):

1.简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器 2.服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信

DR模式

直接路由(Direct Routing)

1.简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络 2.负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

负载均衡群集架构

负载均衡的结构:

1.第一层,负载调度器(Load Balancer或Director) 2.第二层,服务器池(Server Pool) 3.第三层,共享存储(Share Storage)

LVS的负载调度算法

1.轮询(Round Robin):

1.将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) 2.均等地对待每一台服务器, 而不管服务器实际的连接数和系统负载

2.加权轮询(Weighted Round Robin):

1.根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重 2.保证处理能力强的服务器承担更多的访问流量

3.最少连接(Least Connections)

根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点

4.加权最少连接(Weighted Least Connections)

1.在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重 2.权重较高的节点将承担更大比例的活动连接负载

使用ipvsadm工具

LVS群集创建与管理步骤

在这里插入图片描述

NFS共享存储服务

Network File System,网络文件系统

1.依赖于RPC (远端过程调用) 2.需安装nfs-utils、rpcbind软件包 3.系统服务: nfs、 rpcbind 4.共享配置文件: /etc/exports

在客户机中访问NFS共享资源

1.安装rpcbind软件包,并启动rpcbind服务 2.手动挂载NFS共享目录 3.fstab自动挂载设置

实验环境部署

CentOS 7-1:调度器及网关(两块网卡) 外网(ens36):12.0.0.1 内网(ens33):192.168.200.1 CentOS 7-2:网站服务器(Apache) 192.168.200.110 CentOS 7-3:网站服务器(Apache) 192.168.200.120 CentOS 7-4:共享存储服务器 192.168.200.130 Windows 7 : 客户端 12.0.0.12

第一步:联网状态下,在每台服务器上安装服务软件包

1.在调度器服务器上安装ipvsadm管理工具

#要先添加一个网络适配器,成为两个网卡 #安装ipvsadm管理工具 [root@localhost ~]# yum install ipvsadm -y

2.在两台web节点服务器上的操作

#安装httpd服务 [root@localhost ~]# yum install httpd -y

3.在共享存储服务器上的操作

#使用rpm查询是否有nfs-utils和rpcbind软件包 [root@localhost ~]# rpm -q nfs-utils nfs-utils-1.3.0-0.48.el7.x86_64 [root@localhost ~]# rpm -q rpcbind rpcbind-0.2.0-42.el7.x86_64

第二步:配置共享存储服务器

#修改ens33网卡配置 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" #将dhcp改为static DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.200.130 #在末行下追加:IP地址,子网掩码和网关 NETMASK=255.255.255.0 GATEWAY=192.168.200.1 #重启网络服务 [root@localhost ~]# systemctl network restart #关闭防火墙和安全功能 [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 #开启nfs共享服务 [root@localhost ~]# systemctl start nfs.service [root@localhost ~]# systemctl start rpcbind.service #编辑共享目录配置文件 [root@localhost ~]# vim /etc/exports #写入共享目录条目,并授予读写权限 /usr/share *(ro,sync) /opt/accp 192.168.200.0/24(rw,sync) /opt/kgc 192.168.200.0/24(rw,sync) [root@localhost ~]# cd /opt/ [root@localhost opt]# mkdir kgc accp [root@localhost opt]# chmod 777 kgc/ accp/ #提升目录权限 [root@localhost opt]# exportfs -rv #进行发布共享目录 exporting 192.168.200.0/24:/opt/kgc exporting 192.168.200.0/24:/opt/accp exporting *:/usr/share

第三步:配置Web1节点服务器

#修改ens33网卡配置 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" #将dhcp改为static DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.200.110 #追加IP地址,子网掩码以及网关 NETMASK=255.255.255.0 GATEWAY=192.168.200.1 #重启服务 [root@localhost ~]# systemctl network restart #关闭防火墙和安全功能 [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# systemctl start httpd.service [root@localhost ~]# netstat -ntap | grep 80 tcp6 0 0 :::80 :::* LISTEN 7315/httpd [root@localhost ~]# ping 192.168.200.130 PING 192.168.200.130 (192.168.200.130) 56(84) bytes of data. 64 bytes from 192.168.200.130: icmp_seq=1 ttl=64 time=0.754 ms 64 bytes from 192.168.200.130: icmp_seq=2 ttl=64 time=0.372 ms 64 bytes from 192.168.200.130: icmp_seq=3 ttl=64 time=0.372 ms 64 bytes from 192.168.200.130: icmp_seq=3 ttl=64 time=0.372 ms [root@localhost ~]# showmount -e 192.168.200.130 Export list for 192.168.200.130: /usr/share * /opt/kgc 192.168.200.0/24 /opt/accp 192.168.200.0/24 #挂载网站 [root@localhost ~]# mount.nfs 192.168.200.130:/opt/kgc /var/www/html/ [root@localhost ~]# cd /var/www/html/ [root@localhost html]# echo "this is kgc web" > index.html [root@localhost html]# ls index.html

第四步:确认存储服务器上查看有无站点文件

[root@localhost ~]# cd /opt/ [root@localhost opt]# ls kgc accp rh [root@localhost opt]# cd kgc/ [root@localhost accp]# cat index.html this is kgc web

第五步:验证Web1节点服务器提供的网页

在这里插入图片描述

第六步:配置Web2节点服务器上

#修改ens33网卡配置 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" #将dhcp改为static DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.200.120 #追加IP地址,子网掩码以及网关 NETMASK=255.255.255.0 GATEWAY=192.168.200.1 [root@localhost ~]# systemctl network restart [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# systemctl start httpd.service [root@localhost ~]# netstat -ntap | grep 80 tcp6 0 0 :::80 :::* LISTEN 7315/httpd [root@localhost ~]# ping 192.168.200.130 PING 192.168.200.130 (192.168.200.130) 56(84) bytes of data. 64 bytes from 192.168.200.130: icmp_seq=1 ttl=64 time=0.853 ms 64 bytes from 192.168.200.130: icmp_seq=2 ttl=64 time=0.853 ms 64 bytes from 192.168.200.130: icmp_seq=3 ttl=64 time=0.624 ms 64 bytes from 192.168.200.130: icmp_seq=3 ttl=64 time=0.624 ms [root@localhost ~]# showmount -e 192.168.200.130 Export list for 192.168.200.130: /usr/share * /opt/kgc 192.168.200.0/24 /opt/accp 192.168.200.0/24 [root@localhost ~]# mount.nfs 192.168.200.130:/opt/accp /var/www/html/ [root@localhost ~]# cd /var/www/html/ [root@localhost html]# echo "this is accp web" > index.html [root@localhost html]# cat index.html this is accp web

第七步: 确认存储服务器上查看有无站点文件

[root@localhost ~]# ls /opt/ kgc accp rh [root@localhost opt]# cd accp/ [root@localhost accp]# cat index.html this is accp web

第八步:验证Web2节点服务器提供的网页

在这里插入图片描述

第九步:配置调度服务器

#修改ens33网卡配置 [root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" #将dhcp改为static DEVICE="ens33" ONBOOT="yes" #追加IP地址,子网掩码以及网关 IPADDR=192.168.200.1 NETMASK=255.255.255.0 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# ls ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36 #修改ens36网卡 [root@localhost network-scripts]# vim ifcfg-ens36 BOOTPROTO="static" #将dhcp改为static NAME="ens36" #改名称为ens36 UUID号删除 DEVICE="ens36" #改名称改为ens36 ONBOOT="yes" IPADDR=12.0.0.1 #追加IP地址,子网掩码以及网关 NETMASK=255.255.255.0 [root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" #将dhcp改为static DEVICE="ens33" ONBOOT="yes" #追加IP地址,子网掩码以及网关 IPADDR=192.168.200.1 NETMASK=255.255.255.0 [root@localhost network-scripts]# systemctl network restart [root@localhost network-scripts]# vim /etc/sysctl.conf #在尾行行追加一下条目 net.ipv4.ip_forward=1 #加载路由转发 [root@localhost network-scripts]# sysctl -p net.ipv4.ip_forward = 1 [root@localhost network-scripts]# iptables -t nat -F [root@localhost network-scripts]# iptables -F #配置SNAT转发规则 [root@localhost network-scripts]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1

第十步:加载LVS内核模块

[root@localhost network-scripts]# modprobe ip_vs [root@localhost network-scripts]# 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 network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm [root@localhost network-scripts]# systemctl start ipvsadm.service #配置负载分配策略 [root@localhost network-scripts]# cd /opt/ [root@localhost opt]# vim nat.sh #!/bin/bash #清除内核虚拟服务器表中的所有记录 ipvsadm -C #添加新的虚拟服务器 ipvsadm -A -t 12.0.0.1:80 -s rr ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.110:80 -m ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.120:80 -m #生效负载分配策略 [root@localhost opt]# source nat.sh 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 -> 129.168.200.110:http Masq 1 0 0 -> 129.168.200.120:http Masq 1 0 0 

最后一步:使用Windows 7 客户终端访问网页

1.首次访问到由Web1访问器提供的网页

在这里插入图片描述
2.刷新网页后,出现由Web2服务器提供的网页

在这里插入图片描述

由此验证负载均衡群集是轮询机制!

原文链接:https://blog.51cto.com/u_14449521/2454320

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/6023

(0)
上一篇 2022年10月8日 18:10
下一篇 2022年10月8日 20:10

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml