负载均衡集群的方式设定和脚本
创始人
2024-06-29 09:31:27
0次

通过前面我们对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形成很大压力,成为新的瓶颈,从而使整个系统的性能受到限制。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...