LVS-NAT负载均衡群集部署的原理、模式分析及工作模式介绍
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,下文给大家带来LVS-NAT负载均衡群集部署的原理、模式分析及工作模式介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经
千家信息网最后更新 2025年12月01日LVS-NAT负载均衡群集部署的原理、模式分析及工作模式介绍
下文给大家带来LVS-NAT负载均衡群集部署的原理、模式分析及工作模式介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验来做一个解答。
LVS简介
LVS(Linux Virtual Server)即Linux虚拟云服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。
了解负载均衡群集的原理
群集的含义
**Cluster,集群,群集** 由多台主机构成,但对外只表现为一个整体在互联网应用中,随着站点对硬件性能,响应速度,服务稳定性,数据可靠性等要求越来越高,单台服务器力不从心** 解决方法** 使用价格昂贵的小型机,大型机 使用普通服务器构建服务群集群集的分类
根据群集所针对的目标差异,可分为三种类型 负载均衡群集高性能运算群集**负载均衡群集(Load,Balance Cluster)**以提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载LB的整体性能LB的负载分配依赖主节点的分流算法 **高可用群集**以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性达到高可用HA的容错效果HA的工作方式包括双工和主从模式**高性能运算群集**以提高应用系统的CPU运算速度,扩展硬件资源和分析能力为目标,获得相当于大型,超级计算机的高性能运算HPC能力高性能运算群集的高性能依赖于分布式运算,并行计算,通过专用硬件和软件将多个服务器的CPU,内存等资源整合在一起,实现只有,大型,超级计算机才具备的计算能力负载均衡群集工作模式分析和工作模式
负载均衡群集是目前企业用的最多的群集类型群集的负载调度技术有三种工作模式 **地址转换** **IP隧道** **直接路由**NAT模式 (Network Address Translation)
**简称NAT模式**,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口服务器节点使用私有IP地址,与负载调度器位于铜一个物理网络,安全性要优于其他两种方式TUN模式(IP Tunnel)
**简称TUM模式**,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的网络连接直接回应客户机,而不再经过负载调度器服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信。所有环境都是公网环境DR模式 (Direct Routing)
直接路由
**简称DR模式**,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道在局域网中LVS的负载调度算法
**轮询 (Round Robin)**将收到的访问请求安装顺序轮流分配给群集中的个节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载**加权轮询 (Weighted Round Robin**)根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重保证处理能力强的服务器承担更多的访问流量**最少连接 (Least Connections)**根据真实服务器已建立的连接输进行分配,将收到的访问请求优先分配给连接数最少的节点**加权最少连接 (Weighted Least Connections)**在服务器节点的性能差异较大情况下,可以为真实服务器自动调整权重权重较高的节点将承担更大比例活动连接负载下面我们来做实验
实验结构:
我们需要五台虚拟机1 作为负载均衡调度器 外网地址:12.0.0.1 内网:192.168.200.14 网站服务器apache 节点:192.168.200.110 5 网站服务器 节点: 192.168.200.1206 nfs共享存储 节点:192.168.200.1307 客户端 12.0.0.12先到6安装ngs和远程调用包
[root@localhost ~]# yum install nfs-utils rpcbind -y4,5安装web服务
[root@localhost ~]# yum install httpd -y1安装LVS负载均衡调度器
[root@localhost ~]# yum install ipvsadm -y配置6nfs服务器
仅主机模式我们服务器都要在一个局域网

配置固定IP
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #配置ens33网卡BOOTPROTO=static #静态DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=66a1e3d6-5c57-42ab-9996-b942b049ef85DEVICE=ens33ONBOOT=yesIPADDR=192.168.200.130 #IP地址NETMASK=255.255.255.0 #子网掩码GATEWAY=192.168.200.1 #网关开启服务
[root@localhost ~]# systemctl stop firewalld.service s[root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start nfs.service[root@localhost ~]# systemctl status nfs.service● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: active (exited) since 二 2019-11-26 1[root@localhost ~]# systemctl start rpcbind.service[root@localhost ~]# systemctl status rpcbind.service● rpcbind.service - RPC bind service Loaded: loaded (/usr/lib/systemd/system/rpcbind.service配置共享目录,给777权限
[root@localhost ~]# vim /etc/exports/usr/share *(ro,sync) #只读,同步 所有服务器都可以去访问/opt/accp 192.168.200.0/24(rw,sync) #共享给200段可以访问,可读,可写,同步/opt/benet 192.168.200.0/24(rw,sync)[root@localhost ~]# cd /opt/[root@localhost opt]# mkdir benet accp[root@localhost opt]# chmod 777 accp/ benet/ #给可读可写可执行[root@localhost opt]# ls -l总用量 0drwxrwxrwx. 2 root root 6 11月 26 17:13 accpdrwxrwxrwx. 2 root root 6 11月 26 17:13 benetdrwxr-xr-x. 2 root root 6 3月 26 2015 rh发布共享
[root@localhost opt]# exportfs -rvexporting 192.168.200.0/24:/opt/benetexporting 192.168.200.0/24:/opt/accpexporting *:/usr/share4,web服务器仅主机模式,配置固定IP
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=c3f0a196-6819-4702-9b54-7cad18402591DEVICE=ens33ONBOOT=yesIPADDR=192.168.200.110NETMASK=255.255.255.0GATEWAY=192.168.200.1开启服务,去测试能不能与6nfs服务器联通
[root@localhost ~]# systemctl restart network[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start httpd.service[root@localhost ~]# netstat -ntap | grep 80tcp6 0 0 :::80 :::* LISTEN 100863/httpd [root@localhost ~]# ping 192.168.200.130PING 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.724 ms64 bytes from 192.168.200.130: icmp_seq=2 ttl=64 time=0.356 ms挂载,写一个文件在web4,测试6nfs服务器有没有存储这个文件
[root@localhost ~]# showmount -e 192.168.200.130 #测试6服务器的共享目录Export list for 192.168.200.130:/usr/share */opt/benet 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 ~]# df -h问件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 20G 3.4G 17G 17% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 0 912M 0% /dev/shmtmpfs 912M 9.6M 903M 2% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 6.0G 179M 5.9G 3% /boot/dev/mapper/centos-home 10G 37M 10G 1% /hometmpfs 183M 40K 183M 1% /run/user/0tmpfs 183M 4.0K 183M 1% /run/user/42192.168.200.130:/opt/accp 20G 3.8G 17G 19% /var/www/html[root@localhost ~]# cd /var/www/html/[root@localhost html]# echo "THII IS ACCP WEB" > index.html#6服务器去测试[root@localhost opt]# cd accp/[root@localhost accp]# lsindex.html5web服务器也是同样的操作,仅主机模式,绑定固定IP

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=a6cf69fe-eb42-4a99-9239-0da4cdeae0c7DEVICE=ens33ONBOOT=yesIPADDR=192.168.200.120NATMASK=255.255.255.0GATEWAT=192.168.200.1[root@localhost ~]# systemctl restart network[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0挂载,写一个文件在web4,测试6nfs服务器有没有存储这个文件
[root@localhost ~]# mount.nfs 192.168.200.130:/opt/benet /var/www/html/[root@localhost ~]# df -h问件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 20G 4.3G 16G 22% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 0 912M 0% /dev/shmtmpfs 912M 9.5M 903M 2% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 6.0G 179M 5.9G 3% /boot/dev/mapper/centos-home 10G 36M 10G 1% /hometmpfs 183M 44K 183M 1% /run/user/0192.168.200.130:/opt/benet 20G 3.8G 17G 19% /var/www/html[root@localhost ~]# cd /var/www/html/[root@localhost html]# echo "this is benet web" > index.html[root@localhost html]# systemctl start httpd.service#6去测试[root@localhost accp]# cd ../[root@localhost opt]# cd benet/[root@localhost benet]# lsindex.html1负载均衡调度器仅主机模式,绑定两块网卡,配置网卡
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens36DEVICE=ens36ONBOOT=yesIPADDR=12.0.0.1NETMASK=255.255.255.0BOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=849aa04e-1874-490f-8cb0-b2fde4b9a6f8DEVICE=ens33ONBOOT=yesIPADDR=192.168.200.1NETMASK=255.255.255.0[root@localhost ~]# systemctl restart network #重启网络服务开启路由转发,NAT转换
vim /etc/sysctl.conf #修改配置文件net.ipv4.ip_forward=1 #加一条[root@localhost ~]# sysctl -p #生效路由转发net.ipv4.ip_forward = 1[root@localhost ~]# iptables -t nat -F #清除NAT表[root@localhost ~]# iptables -F #清除转发表[root@localhost ~]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1#在nat表中-A在POSTROUTING列中-o指定出口-s指定源地址 -j做nat 转换成12.0.0.1去7客户端绑定IP
去4web服务器去测试能不能与客户端联通
[root@localhost html]# ping 12.0.0.12PING 12.0.0.12 (12.0.0.12) 56(84) bytes of data.64 bytes from 12.0.0.12: icmp_seq=1 ttl=127 time=0.815 ms64 bytes from 12.0.0.12: icmp_seq=2 ttl=127 time=0.752 ms64 bytes from 12.0.0.12: icmp_seq=3 ttl=127 time=0.727 ms64 bytes from 12.0.0.12: icmp_seq=4 ttl=127 time=0.712 ms加载LVS内核模块
[root@localhost ~]# modprobe ip_vs[root@localhost ~]# cat /proc/net/ip_vs #查看LVS内核版本IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn开启LVS内核
先保存
[root@localhost ~]# ipvsadm --save > /etc/sysconfig/ipvsadm[root@localhost ~]# systemctl start ipvsadm.service[root@localhost ~]# systemctl status ipvsadm.service● ipvsadm.service - Initialise the Linux Virtual Server Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled) Active: active (exited) since 二 2019-11-26 17:59:41 CST; 9s ago写LVS虚拟服务器脚本,启动脚本
[root@localhost ~]# cd /opt/[root@localhost opt]# vim nat.sh#!/bin/bashipvsadm -C #清除缓存ipvsadm -A -t 12.0.0.1:80 -s rr #添加虚拟服务器,-A -t指定端口 -s指定算法轮询ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.110:80 -m #-a -t指定端口 -r指定真实节点服务器 -m指定NATipvsadm -a -t 12.0.0.1:80 -r 192.168.200.120:80 -mipvsadm[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 InActConnTCP localhost.localdomain:http rr -> 192.168.200.110:http Masq 1 0 0 -> 192.168.200.120:http Masq 1 0 0 NAT地址转换
[root@localhost opt]# iptables -F #清除转发表[root@localhost opt]# iptables -t nat -F #清除转发表[root@localhost opt]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1#在nat表中-A在POSTROUTING列中-o指定出口-s指定源地址 -j做nat 转换成12.0.0.1再去客户端测试一下能不能通过外网地址访问到web服务器的内容
看了以上关于LVS-NAT负载均衡群集部署的原理、模式分析及工作模式介绍,如果大家还有什么地方需要了解的可以在行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,技术工程师在行业内拥有十几年的经验了。
服务
服务器
模式
调度
节点
均衡
地址
工作
客户
网络
测试
用户
配置
系统
结构
能力
运算
主机
内核
文件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2020土地变更调查数据库标准
丹江口智能软件开发统计
广东万熹互联网科技有限公司
启用语言和数据库
软件开发还是机械设计好
近的直销软件开发
I软件开发的担当与责任
八字数据库癸水
玖禾网络技术有限公司
校园的网络安全现状分析
企业的网络安全规划与实施
保护服务器安全的方法
oracle显示数据库用户密码
车辆网络安全白皮书
剑三90级数据库
软件开发职业发展意向
江苏广电的宽带服务器是电信的吗
多选题网络安全法的意义包括
电信软件平台软件开发
天津大学网络技术学院
长城网络安全布局
云sql服务器
内网服务器文件管理
网络安全扫描实施
软件开发社招进银行
苏宁易购云服务器怎么下载
央企 网络安全 大赛
如何找到ec服务器管理
oracle数据库创建快照库
怎样传镜像到内网服务器