扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
本文主要介绍了负载均衡集群的设定方式以及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方式的集群简图
Real Server可以是任何的操作系统,而且无需做任何特殊的设定,惟一要做的就是将其默认网关指向Director机器?Real Server可以使用局域网的内部IP(192.168.0.0/24)?Director要有两块网卡,一块网卡绑定一个外部IP地址(10.0.0.1),另一块网卡绑定局域网的内部IP(192.168.0.254),作为Real Server的默认网关?
这里将所有LVS的配置命令写到一个可执行脚本中,脚本如下:
#!/bin/bash
# Open IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# To make the load balancer forward the masquerading packets
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0.0.0.0/0 -o eth0 -j MASQUERADE
ipvsadm -C
# Choose the Weighted Round Robing
ipvsadm -A -t 10.0.0.1:80 -s wrr
# Set Real Server
ipvsadm -a -t 10.0.0.1:80 -r 192.168.0.1:873 -m -w 2
ipvsadm -a -t 10.0.0.1:80 -r 192.168.0.2:873 -m -w 3
ipvsadm
将该脚本保存为/root/lvs_nat.sh,然后加上可执行属性,执行它:
# chmod a+x /root/lvs_nat.sh
# /root/lvs_nat.sh
运行该脚本后,一个简单的LVS/NAT方式的负载均衡集群已经成功架设?模拟多个用户从外界访问10.0.0.1的80端口,用ipvsadm可以观看到以下信息:
# ipvsadm
IP Virtual Server version 1.0.9 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.1:http wrr
-> 192.168.0.1:http Masq 3 2 0
-> 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形成很大压力,成为新的瓶颈,从而使整个系统的性能受到限制?
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。