a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 220|回复: 2

[红旗认证] 红旗Linux:利用集群技术实现Web服务器负载均衡

[复制链接]
发表于 2012-8-4 12:16:06 | 显示全部楼层 |阅读模式
  集群和负载均衡的概念   集群& }7 X% `! P( p: e
  所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。1 t3 W* u- v8 I/ h, O! A# R
  负载均衡
0 h5 D/ f" G; P' E8 R  网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,把握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。& L9 x% f9 y5 X$ f! ~
  特点6 G1 U  X# L( o! u7 I# c' a
  (1)高可靠性(HA)。利用集群治理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
2 q  u1 r8 ^% s2 c7 O  (2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。/ y$ D9 W7 G4 I/ s( [" g# T% v
  (3)负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
. d5 |+ y' Z* @  LVS系统结构与特点
" C3 J3 b: l* d- o( x  1. Linux Virtual Server:简称LVS。是由中国一个Linux程序员章文嵩博士发起和领导的,基于Linux系统的服务器集群解决方案,其实现目标是创建一个具有良好的扩展性、高可靠性、高性能和高可用性的体系。许多商业的集群产品,比如RedHat的Piranha、 Turbo Linux公司的Turbo Cluster等,都是基于LVS的核心代码的。
. J; J. ]" X5 T6 B  n  2. 体系结构:使用LVS架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器。物理服务器之间可以通过高速的 LAN或分布在各地的WAN相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得像一个服务于同一IP地址的虚拟服务器。
/ h/ i- c" a) F7 U- n4 C- F" N! [  3. LVS的三种模式工作原理和优缺点: Linux Virtual Server主要是在负载均衡器上实现的,负载均衡器是一台加了 LVS Patch的2.2.x版内核的Linux系统。LVS Patch可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。
$ q' ~% T- \) M. U# G  负载均衡器可以运行在以下三种模式下:
* @* n9 V; m) L5 |  (1)Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判定出应该将包送到内部网的哪个节点。优点是节省IP 地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。; V3 [# [" q$ c- X0 q5 u

' u; k3 m2 ?# d3 k  (2)Virtual Server via IP Tunneling (VS-TUN):用IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。 集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等.
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:16:07 | 显示全部楼层

红旗Linux:利用集群技术实现Web服务器负载均衡

</p>( x, l& f% T1 i8 {% e
  (3)Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制治理的计算机在同一个网段时可以用此法,控制治理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。
- F/ A/ i) ~* C" g5 u2 T1 }& z  S  以四台服务器为例实现负载均衡:" ?- Q; I9 C9 p
  安装配置LVS
+ g% t: F# X2 g$ U" k% D* u  1. 安装前预备:
, ]- X7 d$ [" k* ^  (1)首先说明,LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载状况,调整负载分配策略,充分利用集群环境中的每一台服务器。如下表:# g/ N9 q0 b1 k1 V& p1 @
  Srv Eth0 Eth0:0 Eth1 Eth1:06 u3 v, L9 o' A$ N. i3 Z0 ~3 h- D" P
  vs1 10.0.0.1 10.0.0.2 192.168.10.1 192.168.10.254+ O$ J' V- W0 a7 R# z/ I9 L. v
  vsbak 10.0.0.3 192.168.10.102
: l- @) C+ r* U2 `9 O# `4 y! [  real1 192.168.10.1001 |% ]9 G( N2 D
  real2 192.168.10.101
! j1 o$ z. q8 u; h) ^2 j  其中,10.0.0.2是答应用户访问的IP。6 L  Q; E8 l: V. R9 d
  (2)这4台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的real1,real2,然后由real1,real2分别处理。 Client为客户端测试机器,可以为任意操作系统。- _2 H! a. C2 d  O6 n3 ^- z
  (3)所有OS为redhat6.2,其中vs1 和vsbak 的核心是2.2.19, 而且patch过ipvs的包, 所有real server的Subnet mask 都是24位, vs1和vsbak 的10.0.0. 网段是24 位。
. L1 b( g/ \) P3 g3 ]# N$ l5 s  2.理解LVS中的相关术语0 u' ?7 e; q* q1 d
  (1) ipvsadm :ipvsadm是LVS的一个用户界面。在负载均衡器上编译、安装ipvsadm。
4 A/ Y2 m. ~$ x" `- T" ]2 }" v  (2) 调度算法: LVS的负载均衡器有以下几种调度规则:Round-robin,简称rr;weighted Round-robin,简称wrr;每个新的连接被轮流指派到每个物理服务器。Least-connected,简称lc;weighted Least-connected,简称wlc,每个新的连接被分配到负担最小的服务器。
+ T1 H3 ?! q% y8 o) ^* ?% u' U* B  (3) Persistent client connection,简称pcc,(持续的客户端连接,内核2.2.10版以后才支持)。所有来自同一个IP的客户端将一直连接到同一个物理服务器。超时时间被设置为360秒。Pcc是为https和cookie服务设置的。在这处调度规则下,第一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因为大约有25%的Internet 可能具有相同的IP地址。 (4) Persistent port connection调度算法:在内核2.2.12版以后,pcc功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演变成为了一个开关选项(你可以让rr、 wrr、lc、wlc具备pcc的属性)。在设置时,假如你没有选择调度算法时,ipvsadm将默认为wlc算法。 在Persistent port connection算法下,连接的指派是基于端口的,例如,来自相同终端的80端口与443端口的请求,将被分配到不同的物理服务器上。不幸的是,假如你需要在的网站上采用cookies时将出问题,因为http是使用80端口,然而cookies需要使用443端口,这种方法下,很可能会出现cookies不正常的情况。 2 @$ ^/ M- z7 p  L6 d; @4 f

; ]; K6 R' O+ d6 N5 M  (5)Load Node Feature of Linux Director:让Load balancer 也可以处理users 请求。. ^& {% V+ U) ~
  (6)IPVS connection synchronization。! |, E& e- q9 z9 I% V  ^8 m' h
  (7)ARP Problem of LVS/TUN and LVS/DR:这个问题只在LVS/DR,LVS/TUN 时存在。; y% h; }, Z& K3 N6 D2 l
  3. 配置实例
$ K; g/ I! `% r  备援主机的设定0 j$ e5 Q7 V) B: p8 R3 i
3 r) P0 C/ O. d8 W7 E" L0 @4 O" c
  单一virtual server的cluster架构virtual server 负担较大,提供另一主机担任备援,可避免virtual server的故障而使对外服务工作终止;备份主机随时处于预备状态与virtual server相互侦测
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:16:08 | 显示全部楼层

红旗Linux:利用集群技术实现Web服务器负载均衡

</p>  a.备份主机:
9 I4 y9 U6 s2 U$ p  eth0: IP 10.0.0.3- F6 @% \' r5 g0 k, l4 {
  eth1: IP 192.168.10.102 同样需安装piranha,ipvsadm,ipchains等套件. N$ k! x3 j5 @% S! i- P
  b.开启NAT功能。
$ E9 w- @3 U' L# z1 a+ w+ G  c.在virtual server主机上设定。( A' o6 ]- M  D( R- I' J
  a).执行piranha冗余度 ;
! I' x- }+ B- R  b).按下“激活冗余度”;
6 Q$ g' }* q3 N& g% |3 ?5 }0 v  冗余LVS服务器IP: 10.0.0.3;HEARTBEAT间隔: 2
9 F1 ~7 k  C6 Z0 p6 m  假定在…秒后进入DEAD状态: 5 ; HEARTBEAT连接埠: 539
: E5 C( L- G$ ]% G* C  c).按下“套用”;! _8 G1 b: t2 N, l( h: @
  d).至“控制/监控”页,按下“在当前执行层添加PULSE DEAMON” ,按下“开始”;$ ~# ]- j0 f2 b; o! ?  _, _
  e).在监控器按下“自动更新”,这样可由窗口中看到ipvsadm所设定的routing table,并且动态显示real server联机情形,若real server故障,该主机亦会从监视窗口中消失。
1 @) a  ~% U' s" S, A' E- G0 y  d.激活备份主机之pulse daemon (执行# /etc/rc.d/init.d/pulse start)。
, F. M6 f" A" R0 P) s  至此,HA功能已经激活,备份主机及virtual server由pulse daemon定时相互探询,一但virtual server故障,备份主机马上激活代替;至virtual server 正常上线后随即将工作交还virtual server。
( Z; G) h6 _: y& `
4 N; }6 r. n7 D! W; n0 a  LVS测试
' E8 S9 P) u$ [/ C" G7 u- |, ^  经过了上面的配置步骤,现在可以测试LVS了,步骤如下:) X& l/ f/ l" P( P
  1. 分别在vs1,real1,real2上运行/etc/lvs/rc.lvs_dr。注重,real1,real2上面的/etc/lvs 目录是vs2输出的。假如您的NFS配置没有成功,也可以把vs1上/etc/lvs/rc.lvs_dr复制到real1,real2上,然后分别运行。确保real1,real2上面的apache已经启动并且答应telnet。2 D! k; q' f$ X. m
  2. 测试Telnet:从client运行telnet 10.0.0.2, 假如登录后看到如下输出就说明集群已经开始工作了:(假设以guest用户身份登录)) E3 d- b! _* d, v
  [guest@real1 guest]$——说明已经登录到服务器real1上。
7 o4 {9 o& i5 X* i% d  再开启一个telnet窗口,登录后会发现系统提示变为:* L! ~0 j9 |& `
  [guest@real2 guest]$——说明已经登录到服务器real2上。
6 T$ e- J0 u& w$ V  Z9 l  3. 测试http:从client运行iexplore http://10.0.0.2! k$ j1 h" L1 f9 Y6 D. n; p
  因为在real1 和real2 上面的测试页不同,所以登录几次之后,显示出的页面也会有所不同,这样说明real server 已经在正常工作了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-29 23:18 , Processed in 0.165989 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表