您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
LVS集群的体系结构及NAT模式配置
 
作者:121500783 来源:次元立方 发布于: 2015-04-21
   次浏览      
 

一.LVS简介

LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等

二.LVS体系结构

使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用LoadBalancer表示,中间的服务器群组层,用ServerArray表示,最底端的数据共享存储层,用SharedStorage表示。

LoadBalancer层:

位于整个集群系统的最前端,有一台或者多台负载调度器(DirectorServer)组成,LVS模块就安装在DirectorServer上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给ServerArray层的应用服务器(RealServer)上。

ServerArray层:由一组实际运行应用服务的机器组成。

SharedStorage层:是为所有RealServer提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成

(1)IP负载均衡与负载调度算法

1)IP负载均衡技术

LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在DirectorServer上,同时在DirectorServer上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即VirtualIP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从RealServer列表中选取一个服务节点响应用户的请求.

IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR。

1.LVS/NAT:即(VirtualServerviaNetworkAddressTranslation)

也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的RealServer地址,同时报文的目标端口也改成选定的RealServer的相应端口,最后将报文请求发送到选定的RealServer。在服务器端得到数据后,RealServer返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。

2.LVS/TUN:即(VirtualServerviaIPTunneling)

也就是IP隧道技术实现虚拟服务器它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个RealServer,而这个RealServer将直接响应用户的请求,不再经过前端调度器,此外,对RealServer的地域位置没有要求,可以和DirectorServer位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。

3.LVS/DR:即(VirtualServerviaDirectRouting)

也就是用直接路由技术实现虚拟服务器,它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到RealServer,而RealServer将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求DirectorServer与RealServer都有一块网卡连在同一物理网段上。

2)负载调度算法

IPVS实现了如下八种负载调度算法,这里我们详细讲述最常用的四种调度算法,剩余的四种调度算法请参考其它资料。

轮叫调度(RoundRobin)RR

“轮叫”调度也叫1:1调度,调度器通过“轮叫”调度算法将外部用户请求按顺序1:1的分配到集群中的每个RealServer上,这种算法平等地对待每一台RealServer,而不管服务器上实际的负载状况和连接状态。

加权轮叫调度(WeightedRoundRobin)WRR

“加权轮叫”调度算法是根据RealServer的不同处理能力来调度访问请求。可以对每台RealServer设置不同的调度权值,对于性能相对较好的RealServer可以设置较高的权值,而对于处理能力较弱的RealServer,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。充分合理的利用了服务器资源。同时,调度器还可以自动查询RealServer的负载情况,并动态地调整其权值。

最少链接调度(LeastConnections)LC

“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。

加权最少链接调度(WeightedLeastConnections)WLC

“加权最少链接调度”是“最少连接调度”的超集,每个服务节点可以用相应的权值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值为1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。

其它四种调度算法分别为:基于局部性的最少链接(Locality-BasedLeastConnections)、带复制的基于局部性最少链接(Locality-BasedLeastConnectionswithReplication)、目标地址散列(DestinationHashing)和源地址散列(SourceHashing)

Lvs的NAT模式配置

外网用户直接访问Director上的VIP地址10.100,使用网络地址转换(即VS/NAT技术)director将请求分派给下面两台realserver,分别使用RR轮循调度算法和WRR加权轮循调度算法

拓扑图如下:

具体配置如下:

1.配置yum源

[root@localhost~]#cd/etc/yum.repos.d/

[root@localhostyum.repos.d]#vimrhel-debuginfo.repo

[rhel-server]

name=RedHatEnterpriseLinux

baseurl=file:///mnt/cdrom/Server

enabled=1

gpgcheck=0

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

[rhel-cluster]

name=RedHatEnterpriseLinux

baseurl=file:///mnt/cdrom/Cluster

enabled=1

gpgcheck=0

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-releas

2.安装ipvsadm工具

[root@localhostyum.repos.d]#yuminstallipvsadm-y

3.先进行保存再进行启动

[root@localhost~]#serviceipvsadmsave

[root@localhost~]#serviceipvsadmstart

4.打开路由转发功能,并启动生效。

[root@localhost~]#vim/etc/sysctl.conf
7net.ipv4.ip_forward=1

启动生效

[root@localhost~]#sysctl-p

net.ipv4.ip_forward=1

5.定义服务类型,

-A:增加virtualservice,即director的vip地址加端口号

-t:tcp-s:算法scheduler,rr为轮循调度算法

[root@localhost~]#ipvsadm-A-t192.168.10.100:80-srr

添加服务器:

root@localhost~]#ipvsadm-a-t192.168.10.100:80-r192.168.20.10-m

[root@localhost~]#ipvsadm-a-t192.168.10.100:80-r192.168.20.20-m

在服务器server1和server2上安装apache服务器。把设置路由指向192.168.20.100

director的VIP,直接访问到了放置在存储器上的网页文件

刷新网页可以发现交替出现。

查看如下:分别可以看到s1有5条匹配s2有3条匹配(本应该是1:1,因为实验时不小心把s2关了)

现在我们把算法进行调整:

[root@localhost~]#ipvsadm-E-t192.168.10.100:80-swrr

调整server1权重

[root@localhost~]#ipvsadm-e-t192.168.10.100:80-r192.168.20.10-m-w20

再次访问的时候就会发现只能访问到server1网站,可以发现只有server1匹配。

   
次浏览       
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS


面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践


锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...