千家信息网

LVS负载均衡群集的案例分析及流程

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,下文给大家带来关于LVS负载均衡群集的案例分析及流程,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验来做一个解答。群集应
千家信息网最后更新 2025年02月05日LVS负载均衡群集的案例分析及流程

下文给大家带来关于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.权重较高的节点将承担更大比例的活动连接负载

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.1CentOS 7-2:网站服务器(Apache)                192.168.200.110CentOS 7-3:网站服务器(Apache)                192.168.200.120CentOS 7-4:共享存储服务器                  192.168.200.130Windows 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服务器提供的网页

看了以上关于LVS负载均衡群集的案例分析及流程,如果大家还有什么地方需要了解的可以在行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,技术工程师在行业内拥有十几年的经验了。


服务 服务器 节点 调度 配置 地址 模式 均衡 网络 网关 客户 网卡 分配 存储 系统 网页 能力 子网 运算 客户机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 邮箱服务器在哪里 大学生网络安全宣传月主题 玉溪软件开发专业 服务器上传软件 网络安全体系认证的意义 查excel重复数据库 美团优选出现服务器错误 中小企业网络安全需求 东丰县天气预报软件开发 给网络安全提几点建议 湖北信息化软件开发以客为尊 数据库中创建查询的意义 服务器硬盘红色警告 同上一堂网络安全课感受 pb数据库管理 软件测试与软件开发待遇差 云服务器服务商 网络技术强国的宣传片视频 网络技术基础水晶头的制作 绿色上网提高网络安全小报 目录服务器中ou代表什么 国外网络安全事件影响国内 济南心动网络技术有限公司 软件开发和测试前景怎么样 幻塔服务器角色能删吗 苏州对日软件开发招聘 互联网并不是一种具体的网络技术 云南军工时钟监控网关服务器 随书光盘数据库的检索技巧 北京东方思锐软件开发有限公司
0