科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道负载均衡集群的方式设定和脚本(1)

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要介绍了负载均衡集群的设定方式以及lvs/nat的集群图示,之后就是具体的脚本代码。通过前面我们对LVS的安装和负载均衡算法的介绍,相信大家已经对这些轻车熟路了。当前,无论在企业网、园区网还是在广域网上,即使按照当时最优配置建设的网络,业务量的发展都超出了过去..

来源:ZDNet网络频道 2010年4月28日

关键字: 网络 负载均衡

  • 评论
  • 分享微博
  • 分享邮件

本文主要介绍了负载均衡集群的设定方式以及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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章