码迷,mamicode.com
首页 > 其他好文 > 详细

LVS_NAT

时间:2015-07-23 15:50:21      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:lvs

本文内容:

       LVS 集群概述

 

LVS 集群分类

 

实戓:配置 LVS-NAT

 

 

服务概述: 什么是集群?

 

集群(cluster)就是一组计算机,它们作为 一个整体向用户提供一组网络资源。这些 单个的计算机系 统就是集群的节点 (node)。

 

 

 

集群的种类

 

 集群系统主要分为

 

– 负载均衡(Load Balance)集群,简称 LB

 

– 高可用(High Availability)集群,简称 HA 集群

 

– 高性能计算(High Perfermance Computing)集群,简称 HPC 集群


LB 实现手段

 

 硬件:  – F5 负载均衡器

 

 软件  – LVS(4 层,传输层)  – Nginx(7 层,应用层)


LVS(4 层) 模式: /VS/NAT

 

LVS-VS/DR \VS/TUN


LVS(Linux Virtual Server)

 

LVS 是 Linux Virtual Server 的简写,意即 Linux 虚拟服务器,是一个虚拟的服务器集群系统。本项目 在 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目乊一。 官网:http://www.linuxvirtualserver.org/

 

中文站点: http://zh.linuxvirtualserver.org/



LVS 集群采用三层结构:

-A 负载调度器 /分发器(load balancer)

 

它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个 IP 地址(我们可称乊为 VIP 虚拟 IP 地址)上的。

 

– B、服务器池(server pool)

 

是一组真正执行客户请求的服务器,执行的服务有 WEB、MAIL、FTP 和 DNS 等。

 

– C、共享存储(shared storage)

 

它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。



LVS 负载均衡的三种包转发方式

 

LVS 提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP 隧道)、Direct Routing(直接 路由)。不同的转发模式决定了丌同的 cluster 的网络结构,

 

 

NAT(网络地址映射) 通过网络地址转换。

NAT 方式可支持任何的操作系统,以及私有网络,并且只需一个 Internet IP 地址,但是整个系统的性能受到限制。因为执行 NAT 每次需要重写包,有一定的延迟;另外,大部分应用有 80%的数据是从服务器 流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新 的瓶颈。

 

 

 

 IP Tunneling(IP 隧道)

 

director(分发器)分配请求到丌同的 real server。real server 处理请求后直接回应给用户,这样 director

 

负载均衡器仅处理客户机不服务器的一半连接。IP Tunneling 技术极大地提高了 director 的调度处理能 力,同时也极大地提高了系统能容纳的最大节点数,可以超过 100 个节点。real server 可以在任何 LAN 戒 WAN 上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的 IP 地址用于不客户机直接通信,并且所有服务器必须支持 IP 隧道协议。

 

 

 

Direct Routing(直接路由)

 

不 IP Tunneling 类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩 性。Direct Routing 不 IP Tunneling 相比,没有 IP 封装的开销,但由于采用物理层(修改 MAC 地址)

 

技术,所有服务器都必须在一个物理网段。

 

 

 

LVS  NAT 模式工作原理:

 

 

客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法, 将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给 客户,完成整个负载调度过程。

技术分享

 

技术分享


 

开始配置 LVS:


xuegod63 配置成分发器:

1、打开路由转发功能

[root@xuegod63 ~]# vim /etc/sysctl.conf

改:net.ipv4.ip_forward = 0

为:net.ipv4.ip_forward = 1


让配置生效:

[root@xuegod63 ~]# sysctl -p


2、配置网络环境:

添加一个网卡, 配置成以下网络环境:

eth0 192.168.1.63 模式:br0 模拟公网

eth1 192.168.2.63 模式:vmnet4 模拟公网

Director 分发器不需要开启 80(服务的)端口  


3、安装: LVS 管理工具: ipvsadmin

[root@xuegod63 Packages]# pwd

/mnt/Packages

[root@xuegod63 Packages]# rpm -ivh ipvsadm-1.25-9.el6.x86_64.rpm

或:

yum install ipvsadm

 


4、使用这个命令设置规则:

[root@xuegod63 ~]# ipvsadm -A -t 192.168.1.63:80 -s rr     


选项:

-rr 代表轮循

-A 添加

-t 表示 TCP 的服务 VIP:PORT

-s 指定调度算法 rr 表示 round-robin 轮循

[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.64 -m

[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.62 -m


选项:

-a 表示添加 real server 的地址

-r 指定 real server 的 IP 地址

-m 表示 masquerade 也就是 NAT 方式的 LVS


查看:

ipvsadm 配置及查看内核 IPVS 表和算法的工具类似于 iptables

[root@xuegod63 ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.63:80 rr

-> 192.168.2.62:80 Masq 1 0 0

-> 192.168.2.64:80 Masq 1 0 0


保存以上的配置

[root@xuegod63 ~]# /etc/init.d/ipvsadm save 保存以上的配置

Saving IPVS table to /etc/sysconfig/ipvsadm: [确定]



RealServer:xuegod62 和 xuegod64 上面配置:

准备:

配置 IP:REAL SERVER 自己的网络相关信息配置成如下:。

xuegod62: eth0: vmnet4 : 192.168.2.62 网关: 192.168.2.63

xuegod64: eth0: vmnet4 : 192.168.2.64 网关: 192.168.2.63


配置 xuegod64 为 realserver, 并启 web 服务

[root@xuegod64 ~]# yum install -y httpd

[root@xuegod64 ~]# service httpd restart

[root@xuegod64 ~]# echo "192.168.2.64" > /var/www/html/index.html #(实验期间,各

个服务器的页面不同)


配置 xuegod62 为 realserver, 并启 web 服务

[root@xuegod62 ~]# yum install -y httpd

[root@xuegod62 ~]# service httpd restart

[root@xuegod62 ~]# echo "192.168.2.62" > /var/www/html/index.html #(实验期间,各

个服务器的页面不同)


测试:

在 xuegod63 上测试:

[root@xuegod63 ~]# yum install elinks

测试 realserver :

[root@xuegod63 ~]# elinks 192.168.2.64 --dump

192.168.2.64

[root@xuegod63 ~]# elinks 192.168.2.62 --dump

192.168.2.62


测试 VIP:

[root@xuegod63 ~]# elinks 192.168.1.63 --dump

192.168.2.62

[root@xuegod63 ~]# elinks 192.168.1.63 --dump

192.168.2.64



访问: 在物理上打开浏览器访问: 每按 F5 刷新一次,就会变换一个页面。



 技术分享

分发器需要监听 80


###ipvsadm 更多参数说明

-L -n ==> 查看规则,显示内核虚拟服务器表

-L -n -c ==> 查看客户端连接分发器和 real server 的情况


例 1:[root@xuegod63 ~]# ipvsadm -L -n -c

IPVS connection entries

pro expire state source virtual destination

TCP 01:33 TIME_WAIT 192.168.1.100:49698 192.168.1.70:80 192.168.2.62:80

TCP 01:26 TIME_WAIT 192.168.1.100:49690 192.168.1.70:80 192.168.2.64:80

TCP 01:57 TIME_WAIT 192.168.1.100:49739 192.168.1.70:80 192.168.2.62:80


-L -n --stats ==> 查看分发情况

-L -n --rate ==> 查看速率


例 2: -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

[root@xuegod63 ~]# ipvsadm -Z

[root@xuegod63 ~]# ipvsadm -L -n --stats

IP Virtual Server version 1.2.1 (size=4096)


例 2: -C --clear 清除内核虚拟服务器表中的所有记录。

 [root@xuegod63 ~]# ipvsadm -C


本文出自 “枯木知深秋” 博客,请务必保留此出处http://kmzsq.blog.51cto.com/10542759/1677566

LVS_NAT

标签:lvs

原文地址:http://kmzsq.blog.51cto.com/10542759/1677566

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!