ck1987 发表于 2015-11-20 15:12:39

LVS之NAT模式简单示例

  LVS简介

LVS(Linux Virtual Server),即Linux上虚拟的服务器集群系统。其实LVS就是一个前端的负载调度器,它在软件层次上实现了负载均衡,将接收到的请求均衡地转移至多个不同的服务器上运行,用较低的成本实现了将一组服务器构建成高性能、高可用的服务器集群。

LVS由两部分组成ipvsadm和ipvs,ipvsadm工作于用户空间,用于编写集群服务。ipvs工作于内核空间。ipvsadm定义的集群服务交由ipvs来具体实现。到达Director的数据包首先会经过PREROUTING,而后经过路由发现其目标地址为本地某接口的地址,因此,接着就会将数据包发往INPUT(LOCAL_IN HOOK)。此时,正在运行内核中的ipvs(始终监控着LOCAL_IN HOOK)进程会发现目标地址是VIP的数据包请求的是一个集群服务,于是,此数据包的本来到达本机(Director)目标行程被改变为经由POSTROUTING HOOK发往RealServer。

[*]Director Server   # 调度器,即实现负载均衡的地方
[*]Real Server         # 正真能够提供服务的服务器
[*]VIP                        # Director上用于接收用户请求的IP
[*]DIP                        # Director上用于和Real Server交互的IP
[*]RIP                        # Real Server上的IP
[*]CIP                        # Client IP
  NAT模式全称是 Network Address Translation,通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。



本文演示一个简单的示例:LVS的NAT模式的配置和测试,该模式下LVS服务器很可能成为系统性能瓶颈(请求和返回都要经过LVS服务器),实验前做好如下准备:

[*]所有的后端服务器和LVS服务器(调度器)要在同一个网段内
[*]后端服务器IP是私有地址,仅用于集群节点之间进行通信
[*]LVS服务器同时处理请求和应答数据包
[*]后端服务器的网关要指向LVS服务器的IP
[*]可以实现端口映射
[*]后端服务器可以是任意操作系统
  配置环境:

Director server:
eth0:10.33.1.129(对外提供服务的IP)
eth1:192.168.126.130

Real Server:

Real server1:eth0: 192.168.126.9

Real server2:eth0: 192.168.126.7

网络topology图如下:

Real server1和Real server2的网关要指向Director server的eth1:192.168.126.130,需要注意的是服务器都要关闭防火墙



Director需要做NAT和负载调度:

客服端访问10.33.1.129,Director需要做DNAT(将目的地址改为real server的IP),将请求分发到Real server,

Real server处理完成后,请求返回到Director,Director需要先做SNAT(将源的地址改为10.33.1.129),然后返回给客户端。
  查看内核中与ipvs相关功能

# grep -i "ipvs" /boot/config-2.6.32-431.el6.i686


需要安装ipvsadm命令行工具



将Director server,Real server1,Real server2的网络适配器设置为仅主机模式

开启Real server1,Real server2的Web服务,并确保确保Director server的eth1和Real server1,Real server2之间可以互相通信

Real server1





Real server2





Director







设置lvs策略

第1行是添加一条新的虚拟IP记录,同时指定采用轮询算法。

第2,3行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS的工作模式为NAT模式。

-g(gateway):直接路由DR模式

-i(internet):隧道,TUN模式

-m(masq):伪装,NAT模式

在NAT模式下确保启用系统的包转发功能,从而使系统充当路由器



物理机访问Director,刷新网页测试负载均衡效果,可以发现返回的内容由Real server1和Real server2轮流提供





查看调度状况

ipvsadm -L
-n以数字方式查看集群的信息
–rate显示速率
–stats统计数据包近来出去的个数和字节数



修改LVS算法为Weight Round Robin


# ipvsadm -E -t 10.33.1.129:80 -s wrr
# ipvsadm -e -t 10.33.1.129:80 -r 192.168.126.7 -m -w 3
# ipvsadm -e -t 10.33.1.129:80 -r 192.168.126.9 -m -w 1
  查看加权轮询调度算法的效果,可以发现返回的内容由Real server1和Real server2轮询提供比例大致为3:1

页: [1]
查看完整版本: LVS之NAT模式简单示例