LVS 负载均衡群集详解、地址转换模式(LVS-NAT)案例详解

前言

· Linux Virtual Server (LVS)是针对 Linux 内核开发的一个负载均衡项目,是由我国章文嵩博士在 98 年 5月创建。
· LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种搞笑的解决办法。
·LVS 现在已称为 Linux 内核的一部分,默认编译为 ip_vs 模块,必要时能够自动调用


群集的类型

1· 负载均衡群集
·以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能。


2·高可用群集
·以提高应用系统的可靠性、尽可能的减少终端时间为目标,确保服务的连续性,达到高可用 (HA)的容错效果。


3·高性能运算群集
以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得高性能运算能力。


负载均衡的分层结构

典型的负载均衡群集中,包括三个层次的组建。前端至少有一个负载调度器,负载响应并分发来自客户端的访问请求;后端由大量的真是服务器构成服务器池,提供实际的应用服务;为了保持服务的以执行,所有节点使用共享储存设备。


第一层:
·负载调度器,是访问整个集群系统的唯一入口,对外使用所有服务器共有的 VIP 地址。


第二层
·服务器池,群集提供的应用服务由服务器池承担,其中的每个节点具有独立的 RIP 地址,只处理调度器分发的请求。


第三层
·共享储存,为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个集群的统一性



下图是分层结构图


负载均衡的工作模式

·基于 IP 的负载均衡模式中,常见的有地址转换、IP 隧道和直接路由三种工作模式


1·地址转换模式 (NAT 模式):
·负载调度器作为所有服务器节点的网关,即作为客户端访问入口,也是各个节点回应客户机的访问出口。下图是结构拓扑图:


2·IP 隧道 (TUN 模式):
·采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各个节点通过 Internet 直接回应客户端,不再经过负载调度器


3·直接路由 (DR模式):
采用半开放式的网络结构,与 TUN 模式类似,但是各个节点不是分散各地,而是与调度器位于同一个物理网络,负载调度器与各节点通过本地网络连接。


三种工作模式的优缺点

NAT 模式:
·优点:
1 ·服务器可以运行任何支持TCP/IP的操作系统;
2·它只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址;
3·基于 NAT 的集群系统可以适合许多服务器的性能要求;
·缺点:
1·它的伸缩能力有限,当服务器结点数目升到20时,调度器本身有可能成为系统的新瓶颈;
2·相比其他两种模式,负载能力比较弱,使用范围比较小。


TUN 模式:
·优点:
1·负载调度器就可以处理大量的请求,它甚至可以调度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈
2·可以用来构建高性能的超级服务器。
·缺点:
1·所有的服务器必须支持“IP Tunneling”或者“IP Encapsulation”协议
2·只适用运行其他操作系统的后端服务器。


直接路由 (DR 模式):
·优点
1·调度器只处理客户到服务器端的连接,响应数据可以直接从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。
缺点
1·方法没有IP隧道的开销,但是要求负载调度器与实际服务器都有一块网卡连在同一物理网段上,服务器网络设备(或者设备别名)不作ARP响应


LVS 的负载调度算法

1·轮询:
将收到的访问请求按照顺序轮流分配给真是服务器,不会管服务器的实际连接数量和系统负载;


2·加权轮询:
根据真实服务器的处理能力轮流分配请求,调度器可以自动查询各个节点的负载情况,并调整器权重。这样可以保证处理能力强的服务器承担更多的访问流量;


3·最少连接:
根据真实服务器已建立的连接数进行分配,把请求优先分配给连接数最少的节点。这样可以更好的均衡负载;


4·加权最少连接:
在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的承担更大比例的活动连接负载。


构建LVS-NAT 模式案例

1·部署准备:

主机 IP地址 用途
RedHat 6.5 内网eth0:192.168.100.1 外网eth1:12.0.0.1 调度服务器
RedHat 6.5 192.168.100.30 节点服务器1
RedHat 6.5 192.168.100.40 节点服务器2
RedHat 6.5 192.168.100.50 NFS服务器
window 7 12.0.0.12 客户端

2·部署说明:
·LVS 的工作模式是:采用 NAT 模式
·LVS 的负载调度算法:采用 轮询算法 (rr)


开始部署



1·部署NFS服务器

1·在192.168.100.40主机上部署 NFS 服务器。查看 NFS、与rpcbind是否安装
[[email protected] ~]# rpm -q nfs-utils
·nfs-utils-1.2.3-39.el6.x86_64
·[[email protected] ~]# rpm -q rpcbind
·rpcbind-0.2.0-11.el6.x86_64
·[[email protected] ~]#


2·开启服务
[[email protected] ~]# service nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS mountd: [确定]
启动 NFS 守护进程: [确定]
正在启动 RPC idmapd: [确定]
[[email protected] ~]# service rpcbind start


3·编辑共享文件路径、权限!
·vim /etc/exports
/usr/share *(ro,sync)
/opt/benet 192.168.100.0/24(rw,sync)
/opt/accp 192.168.100.0/24(rw,sync)


4·创建共享文件、并放大权限
·[[email protected] ~]# cd /opt/
[[email protected] opt]# mkdir benet accp
[[email protected] opt]# ls
accp benet lost+found pscount.txt rh test.tar.bz2
[[email protected] opt]# chmod 777 benet/
[[email protected] opt]# chmod 777 accp/


5·在文件夹随意写一个网页格式的文件,方便后面验证!
[[email protected] opt]# echo "this is benet test 01" > /opt/benet/index.html
[[email protected] opt]# echo "this is accp test 02" > /opt/accp/index.html


6·发布共享文件、并且查看是否共享成功、关闭防火墙!
·[[email protected] accp]# exportfs -rv
exporting 192.168.100.0/24:/opt/accp
exporting 192.168.100.0/24:/opt/benet
exporting :/usr/share
[[email protected] accp]# showmount -e 192.168.100.50
Export list for 192.168.100.50:
/usr/share

/opt/accp 192.168.100.0/24
/opt/benet 192.168.100.0/24
[[email protected] ~]# service iptables stop
[[email protected] ~]# setenforce 0



2·部署两台节点服务器

1·安装httpd服务器、开启服务
[[email protected] ~]# yum install httpd -y
[[email protected] ~]# service httpd start


2·查询共享文件、并且把共享文件挂载到 httpd 的站点目录上、查看挂载情况!
· [[email protected] html]# showmount -e 192.168.100.50
Export list for 192.168.100.50:
/usr/share *
/opt/accp 192.168.100.0/24
/opt/benet 192.168.100.0/24
[[email protected] html]# mount 192.168.100.50:/opt/benet /var/www/html/
[[email protected] html]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 3.1G 11G 23% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 30M 155M 16% /boot
/dev/sda3 15G 165M 14G 2% /home
/dev/sda6 8.4G 220M 7.8G 3% /opt
/dev/sr0 3.6G 3.6G 0 100% /mnt
192.168.100.50:/opt/benet 12G 158M 11G 2% /var/www/html


3·上面是第一台节点服务器,第二台节点服务器的配置和第一台都一样!
·[[email protected] ~]# yum install httpd -y
·[[email protected] ~]# service httpd start
·[[email protected] ~]# mount 192.168.100.50:/opt/accp /var/www/html/



3·部署调度服务器

1·加载 LVS 服务模块、安装 ipvsadm 管理工具、开启管理工具
> ·[[email protected] ~]# modprobe ip_vs
[[email protected] ~]# rpm -ivh /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
warning: /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
package ipvsadm-1.26-2.el6.x86_64 is already installed
[[email protected] ~]# service ipvsadm start


2·配置负载分配策略
[[email protected] ~]# ipvsadm -A -t 12.0.0.1:80 -s rr
[[email protected] ~]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.30:80 -m
[[email protected] ~]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.40:80 -m


3·负载分配策略命令说明:
· -A :表示调价虚拟服务器
· -t :指定 VIP 地址及 TCP 端口
· -s :指定负载调度算法(rr:轮询。wrr:加权轮询。lc:最少连接。wlc:加权最少连接)
· -r:指定 节点服务器地址及端口
· -m:表示是哦那个 NAT 群集模式


4·配置 SNAT 转发规则、开启路由转发功能
·[[email protected] ~]# echo "1" /proc/sys/net/ipv4/ip_forward
1 /proc/sys/net/ipv4/ip_forward
·[[email protected] ~]# iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1


测试

1·用windows 7 来测试,这里测试需要把IP地址修改为外网地址,因为这里是用的NAT模式,具体地址在部署准备阶段已经提供,可以返回看看。下图是测试结果:


总结

1·负载均衡工作模式:NAT模式、IP隧道(TUN)模式、直接路由(DR)模式
2·LVS 常用调度算法:轮询(rr)、加权轮询(wrr)、最少连接(lc)、加权最少连接(wlc)
3· ipvsadm 工具可用来配置 LVS 负载调度和管理群集节点
4· NAT 模式采用单一出入口,一个公网IP地址;而DR模式的群集采用单一入口+多路出口,需要多个公网 IP 地址。
5·注意在NAT模式下,调度服务器是不能关闭防火墙的,因为需要它来做SNAT转换。

原文地址:http://blog.51cto.com/13746824/2161235

时间: 2024-11-07 21:35:10

LVS 负载均衡群集详解、地址转换模式(LVS-NAT)案例详解的相关文章

LVS负载均衡群集(三种工作模式原理详解)

LVS负载均衡群集(三种工作模式原理详解) 一.前言 ? 在互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求越来越高,单台服务器力不从心.所以我们需要通过一些方法来解决这样的瓶颈. ? 最简单的方法就是使用价格昂贵的大.小型的主机:但这样在大多数企业中显然是不可取或者说不现实的.那么我们就需要通过多个普通服务器构建服务器群集. 二.相关概念概述 2.1何为LVS? ? LVS--Linux Virtual Server,即Linux虚拟服务器(虚拟主机.共享主机),虚拟主

CentOS7.4——构建LVS负载均衡群集—地址转换模式(LVS-NAT)

LVS负载均衡群集-地址转换模式(LVS-NAT)环境:调度服务器一台:Linux-CentOS7.4IP地址:192.168.80.20(内网)192.168.90.20(外网)Web服务器两台:Linux-CentOS7.4IP地址:192.168.80.30(SERVER AA)IP地址:192.168.80.40(SERVER BB)客户端一台:以win7为例,用于测试验证IP地址:192.168.80.2(内网)IP地址:192.168.90.2(外网) 第一步:配置调度服务器//加载

#构建LVS负载均衡群集之地址转换模式(LVS-NAT)

构建LVS负载均衡群集之地址转换模式(LVS-NAT) 试验环境:本实验共需要五台虚拟机,一台作为调度服务器的Linux虚拟机.两台作为真实服务器的Linux虚拟机,一台作为NFS服务器的Linux虚拟机,一台用于最后用于测试访问的win7虚拟机(也可以用自己的宿主机访问). 网址规划:作为调度服务器的Linux需要配置双网卡,公网网卡IP地址ens33:12.0.0.1 私网地址ens37:192.168.1.1 两台真实服务器的IP:192.168.1.8 192.168.1.9 NFS服务

CentOS7上部署LVS负载均衡群集之LVS-NAT(地址转换模式)

CentOS7中的LVS负载均衡群集之LVS-NAT(地址转换模式) 简介 在当今各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等的要求越来越高,单台服务器将难以承担所有的访问.除了使用价格昂贵的大型机.专用负载分流设备以外,企业还有另外一种选择来解决难题,就是构建集群服务器--通过整合多台相对廉价的普通服务器,以同一个地址对外提供相同的服务. 负载均衡群集:以提高应用系统的响应能力.尽可能处理更多的访问请求.减少延迟为目标,获得高并发.高负载的整体性能. 实验介绍 环境

LVS负载均衡群集之构建NAT模式,可跟做!!!

有关于LVS负载均衡群集的相关概念可以参考博文:LVS负载均衡群集详解 一.案例概述 LVS负载均衡模式-NAT模式:NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(源地址NAT).如果把NAT的过程稍微变化,就可以 成为负载均衡的一种方式.原理其实就是把从客户端发来的IP包的IP头目的地址在DIR上换成其中一台Web节点服务器的IP地址并发至此Web节点服务器,而Web节点服务器则在处理完成后把数据经过DIR主机发回给客户端,DIR在这个时候再把数

LVS负载均衡群集之构建DR模式,可跟做!!!

有关于LVS负载均衡群集的相关概念可以参考博文:LVS负载均衡群集详解 一.案例概述 LVS负载均衡模式-DR模式:lvs负载调度器作为群集的访问入口,但不作为网关使用,服务器池中的所有节点都各自接入internet,发送给客户机(互联网)的web响应数据包不需要经过lvs负载调度器. LVS负载均衡模式-DR模式:优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户.所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为 超过100台的物理服务器服务,负载

LVS负载均衡群集之DR模式+keepalived群集机构(理论+实践篇)

LVS-DR数据包流向分析 为方便进行原理分析,将Client与群集机器放在同一网络中,数据包流经的路线为1-2-3-4 Client向目标VIP发出请求, Director (负载均衡器)接收 Director根据负载均衡算法选择RealServer 1,不修改也不封装IP报文,而是将数据帧的MAC地址改为RealServer 1的MAC地址,然后在局域网上发送. RealServer_ _1收到这个帧,解封装后发现目标IP与本.机匹配(RealServer事先绑定 了VIP),于是处理这个报

LVS负载均衡群集基础(一)

LVS负载均衡群集(一) 1.      群集(或集群)的称呼来自于英文单词"Cluster",用在服务器的领域表示大量的服务器集合,以便与区分单个服务器. 2.      群集的类型: (1)      负载均衡群集(load balance cluster):提高系统的响应能力,尽可能的处理更多的访问请求等,获得高并发,高负载的整体性能.例如应用于:"DNS轮询"."反向代理"等. (2)      高可用群集(high availabili

lvs负载均衡群集搭建(DR)

lvs负载均衡群集搭建(DR) 1:之前有讲过使用NAT技术的lvs的群集搭建接下来使用DR的直接路由模式来搭建负载均衡群集 2:在DR模式中.lvs负载调度器作为群集的访问入口,但不作为网关使用,服务器池中的所有节点来自internet.发送给客户端的web相应数据包不需要经过负载调度器:这种方式入站.出站访问数据分别被处理,因此lvs负载调度器和所有节点服务器都需要配置VIP地址,以便响应整个群集的访问. VIP地址192.168.1.254 负载均衡服务器           web1服务

【中级篇】Linux中部署LVS负载均衡群集

LVS负载均衡群集 1.          实验需求: 1)     2台服务器部署HTTPD服务 2) 1台做负载调度器 3) 搭建负载均衡,测试其效果. 2.          实验环境: Linux服务器系统版本:CentOS-6.5 -S02 IP:192.168.10.15  ( httpd ) Linux服务器系统版本:CentOS-6.5 -S03 IP : 192.168.10.18  ( httpd ) Linux服务器系统版本:  RedHat6.5     IP1 :192