负载均衡集群的方式设定和脚本

网络 网络优化 网络运维
本文主要介绍了负载均衡集群的设定方式以及lvs/nat的集群图示,之后就是具体的脚本代码。整个过程还是比较详细的。希望大家能够掌握。

通过前面我们对LVS的安装和负载均衡算法的介绍,相信大家已经对这些轻车熟路了。那么我们现在就开始介绍重点内容——lvs下的负载均衡集群配置问题了。那么首先是设定方式,当然还要了解NAT的含义和它的基本架构图。那么具体内容还请大家看下文。

理解了上述关于请求转发方式和调度算法的基本概念后,就可以运用LVS来具体实现几种不同方式的负载均衡的集群系统。LVS的配置是通过前面所安装的IP虚拟服务器软件ipvsadm来实现的。ipvsadm与LVS的关系类似于iptables和NetFilter的关系,前者只是一个建立和修改规则的工具,这些命令的作用在系统重新启动后就消失了,所以应该将这些命令写到一个脚本里,然后让它在系统启动后自动执行。网上有不少配置LVS的工具,有的甚至可以自动生成脚本。但是自己手工编写有助于更深入地了解,所以本文的安装没有利用其它第三方提供的脚本,而是纯粹使用ipvsadm命令来配置。

下面就介绍一下如何配置LVS/NAT、LVS/TUN、LVS/DR方式的负载均衡集群。

设定LVS/NAT方式的负载均衡集群

NAT是指Network Address Translation,它的转发流程是:Director机器收到外界请求,改写数据包的目标地址,按相应的调度算法将其发送到相应Real Server上,Real Server处理完该请求后,将结果数据包返回到其默认网关,即Director机器上,Director机器再改写数据包的源地址,***将其返回给外界。这样就完成一次负载调度。

构架一个最简单的LVS/NAT方式的负载均衡集群下图所示。

LVS/NAT方式的负载均衡集群构架 
 
LVS/NAT方式的集群简图

Real Server可以是任何的操作系统,而且无需做任何特殊的设定,惟一要做的就是将其默认网关指向Director机器。Real Server可以使用局域网的内部IP(192.168.0.0/24)。Director要有两块网卡,一块网卡绑定一个外部IP地址(10.0.0.1),另一块网卡绑定局域网的内部IP(192.168.0.254),作为Real Server的默认网关。#p#

这里将所有LVS的配置命令写到一个可执行脚本中,脚本如下:

  1. #!/bin/bash  
  2. # Open IP Forwarding  
  3. echo 1 > /proc/sys/net/ipv4/ip_forward  
  4. # To make the load balancer forward the masquerading packets  
  5. iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0.0.0.0/0 -o eth0 -j MASQUERADE  
  6. ipvsadm -C  
  7. # Choose the Weighted Round Robing  
  8. ipvsadm -A -t 10.0.0.1:80 -s wrr   
  9. # Set Real Server  
  10. ipvsadm -a -t 10.0.0.1:80 -r 192.168.0.1:873 -m -w 2 
  11. ipvsadm -a -t 10.0.0.1:80 -r 192.168.0.2:873 -m -w 3 
  12. ipvsadm 

将该脚本保存为/root/lvs_nat.sh,然后加上可执行属性,执行它:

  1. # chmod a+x /root/lvs_nat.sh  
  2. # /root/lvs_nat.sh 

运行该脚本后,一个简单的LVS/NAT方式的负载均衡集群已经成功架设。模拟多个用户从外界访问10.0.0.1的80端口,用ipvsadm可以观看到以下信息:

  1. # ipvsadm  
  2. IP Virtual Server version 1.0.9 (size=4096)  
  3. Prot LocalAddress:Port Scheduler Flags  
  4.   -> RemoteAddress:Port     Forward Weight ActiveConn InActConn  
  5. TCP  10.0.0.1:http wrr  
  6.   -> 192.168.0.1:http    Masq    3      2          0 
  7.   -> 192.168.0.2:http    Masq    2      1          0 

其中ActiveConn表示对应的Real Server当前有多少个正在活动的连接,InActConn表示不活动的连接数。从这里我们可以看到有3个HTTP请求,被分别分配在不同的Real Server上,表明这个负载均衡集群正在成功运行中。

本例完成了这样一个简单的LVS/NAT集群,由此可以看出,LVS/NAT方式实现起来最为简单,而且Real Server使用的是内部IP,可以节省Real IP的开销。但因为执行NAT需要重写流经Director的数据包,在速度上有一定延迟;另外,当用户的请求非常短,而服务器的回应非常大的情况下,会对Director形成很大压力,成为新的瓶颈,从而使整个系统的性能受到限制。

责任编辑:佟健 来源: 互联网
相关推荐

2010-05-07 12:23:23

nginx负载均衡

2010-05-06 15:43:18

NAT负载均衡

2010-04-27 13:28:27

负载均衡集群

2010-05-06 12:11:24

NAT负载均衡

2010-04-28 11:35:25

集群负载均衡

2010-05-06 16:58:10

Dns负载均衡

2010-05-06 13:41:42

ASP.NET负载均衡

2010-05-10 14:29:11

线路负载均衡

2010-05-10 15:03:50

交换负载均衡

2010-04-22 11:47:58

集群负载均衡

2010-04-28 11:59:52

集群负载均衡

2010-04-22 13:56:51

集群负载均衡

2010-05-07 12:54:52

MySQL负载均衡

2010-04-22 14:32:56

LVS负载均衡集群

2010-04-25 16:55:38

实现负载均衡

2010-05-06 16:41:37

EIGRP负载均衡

2010-05-06 15:00:58

集群负载均衡

2012-05-07 10:20:12

LVS集群

2015-07-07 18:15:42

集群负载均衡云计算

2010-04-20 22:36:52

负载均衡配置
点赞
收藏

51CTO技术栈公众号