当前位置:Linux教程 - Linux资讯 - 实现四台服务器的负载均衡測試報告

实现四台服务器的负载均衡測試報告

  一、 集群(Cluster)和负载均衡(Load Balance) 的概念 2 1. 集群(Cluster): 2 2. 负载均衡(Load Balance): 2 3. 特點: 2 二、 LVS系统结构与特点 3 1. Linux Virtual Server: 3 2. 體系結構: 3 3. LVS的三种模式工作原理和优缺点: 3 三、 安裝配置LVS 4 1. 安裝前準備: 4 2. 理解LVS中的相關一些術語 4 3. 配置實例 5 3.1. 需要的軟體包和包的安裝 5 3.2. real server群: 5 3.3. virtual server: 6 3.4. 备援主机的设定(HA) 6 四、 LVS测试 8 五、 小結 9 六、 What is virtual server 圖示(LVS/NAT)? 10 YouRong Sun Friday, April 12, 2002 集群(Cluster)和负载均衡(Load Balance) 的概念 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 3. 特點:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题:  高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。  高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。  负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 LVS系统结构与特点 1. Linux Virtual Server:,简称LVS。是由中国一个Linux程序员章文嵩博士发起和领导的优秀的基于Linux系统的服务器集群解决方案,其实现目标是创建一个具有良好的扩展性、高可靠性、高性能和高可用性的。许多商业的集群产品,比如RedHat的Piranha,Turbo Linux公司的Turbo Cluster等,都是基于LVS的核心代码的。请参考http://www.linuxvirtualserver.org 2. 體系結構:使用LVS架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器.物理服务器之间可以通过高速的LAN或分布在各地的WAN相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得象一个服务于同一IP地址的虚拟服务器。 請參考附件中的圖示 3. LVS的三种模式工作原理和优缺点: Linux Virtual Server的主要是在负载均衡器上实现的,负载均衡器是一台加了LVS Patch的2.2.x版内核的Linux系统。LVS Patch可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。 负载均衡器可以运行在以下三种模式下中的一种或几种:  Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器.地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。  Virtual Server via IP Tunneling (VS-TUN):用IP隧道技术实现虚拟服务器.这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法,为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。 集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等.  Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。 VS-NAT VS-TUN VS-DR Server any tunneling non-arp device server network private LAN/WAN LAN server number low (10~20) high high server gateway load balancer own router own router 安裝配置LVS 經過一個星期的調試,成功實現LVS/NAT 模式下的HTTP/Telnet 等的服務,所以下面具體實現步驟都是以LVS/NAT的實現為目的.如下: 1. 安裝前準備:  首先说明,虽然本文的测试环境中用的是3台相同配置的服务器,但LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载情况,调整负载分配策略,充分利用集群环境中的每一台服务器。如下表: Srv Eth0 Eth0:0 Eth1 Eth1:0 Vs1 10.134.8.55 10.134.8.64 192.168.10.1 192.168.10.254 Vsbak 10.134.8.85 192.168.10.10 Rs1 192.168.10.11 Rs2 192.168.10.12 其中,10.134.8.64是允许用户访问的IP。  这4台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的rs1,rs2,然后由rs1,rs2分别处理。 client为客户端测试机器,可以为任意操作系统。  所有OS為redhat6.2,其中VS1 and VSBak 的核心是2.2.19, 而且patch 過ipvs的包, 所有real server的Subnet mask 都是24位, Vs1 and Vsbak 的10.134.8 網段是21 位. 2. 理解LVS中的相關一些術語 2.1. ipvsadm :ipvsadm是LVS的一个用户界面。在负载均衡器上编译、安装ipvsadm。 2.2. 调度算法: LVS的负载均衡器有以下几种调度规则:Round-robin,简称rr,weighted Round-robin,简称wrr,每个新的连接被轮流指派到每个物理服务器。Least-connected,简称lc,weighted Least-connected,简称wlc,每个新的连接被分配到负担最小的服务器。 2.3. Persistent client connection,简称pcc,(持续的客户端连接,内核2.2.10版以后才支持)。所有来自同一个IP的客户端将一直连接到同一个物理服务器。超时时间被设置为360秒。Pcc是为https和cookie服务设置的。在这处调度规则下,第一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因為大约有25%的Internet可能具有相同的IP地址。 2.4. Persistent port connection调度算法 在内核2.2.12版以后,pcc功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演变成为了一个开关选项(你可以让rr、 wrr、lc、wlc具备pcc的属性)。在设置时,如果你没有选择调度算法时,ipvsadm将默认为wlc算法。 在Persistent port connection(ppc)算法下,连接的指派是基于端口的,例如,来自相同终端的80端口与443端口的请求,将被分配到不同的物理服务器上。不幸的是,如果你需要在的网站上采用cookies时将出问题,因为http是使用80端口,然而cookies需要使用443端口,这种方法下,很可能会出现cookies不正常的情况。 2.5. Load Node Feature of Linux Director:讓Load balancer 也可以處理users 請求。 2.6. IPVS connection synchronization。 2.7. ARP Problem of LVS/TUN and LVS/DR:這個問題只在LVS/DR,LVS/TUN 時存在。 3. 配置實例 3.1. 需要的軟體包和包的安裝 I. piranha-gui-0.4.12-2*.rpm (GUI接口cluster设定工具) II. piranha-0.4.12-2*.rpm III. ipchains-1.3.9-6lp*.rpm (架设NAT) 取得套件,或mount到光盘,进入RPMS目录进行安装 # rpm –Uvh piranha* # rpm –Uvh ipchains* 3.2. real server群: 真正提供服务的server(如web server),在NAT型式下是以内部虚拟网域的形式,设定如同一般虚拟网域中clinet端使用网域:192.168.10.0/24 架设方式同一般使用虚拟IP之局域网络  设网卡IP real1 :192.168.10.11/24 real2 :192.168.10.12/24  每台server均将default gateway指向192.168.10.254 192.168.10.254为该网域唯一对外之信道,设定在virtual server上,使该网域进出均需通过virtual server 。  每台server均开启httpd功能。  每台server均开启httpd功能供web server服务,可以在各real server上放置不同内容之网页,可由浏览器观察其对各real server读取网页的情形。  每台server都開啟rstatd,sshd,rwalld,ruser,rsh,rsync,並且從Vserver上面拿到相同的lvs.conf文件。 3.3. virtual server: 作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但因为在NAT型式下必须对进出封包进行改写,所以负担亦重:  IP設置: 对外eth0:IP:10.134.8.55 eth0:0 :10.134.8.64 (VIP,user's Access IP) 对内eth1:192.168.10.1 eth1:0 :192.168.10.254 (NAT Router,real srv's gateway) NAT形式下仅virtual server有真实IP,Real serv

(出处:http://www.sheup.com)