a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 261|回复: 2

[红旗认证] 红旗Linux:用LVS在Linux上搭建负载均衡集群服务

[复制链接]
发表于 2012-8-4 12:16:06 | 显示全部楼层 |阅读模式
  一、基于NAT的LVS的安装与配置   1. 硬件需求和网络拓扑" E4 ]6 c: ]5 C, g& M2 M: S
  2.软件:( T" ^6 J8 F5 d' }; o" @  E
  、编译和安装ipvsadm
( Q- ?9 J3 n( u  ln -s /usr/src/linux-2.4.30 /usr/src/linux tar -zxvf ipvsadm-1.21-11.tar.gz
) E' v' o8 D$ q9 _' i  cd ipvsadm-1.21-11- t" C6 N% f1 x
  make all$ j$ {5 t7 T9 \5 n4 t4 r
  make install1 I5 |# B+ Q3 t0 l+ s
  然后运行:ipvsadm ——version命令,应该有下面的内容输出:
6 P$ v* @  Y5 R  ipvsadm v1.21 2004/02/23 (compiled with popt and IPVS v1.0.12)
( f6 Q4 r: e. e+ T! Y0 M  4. 配置LVS
  z& Q/ Y: C9 b$ }4 x  (1)、在202.99.59.110上:/ g' \# p- @- P7 N
  echo "1" /proc/sys/net/ipv4/ip_forward; D; q! A6 r/ j
  echo "0" /proc/sys/net/ipv4/conf/all/send_redirects
6 t# y* A4 ^5 r, |7 _* @+ v  echo "0" /proc/sys/net/ipv4/conf/default/send_redirects
5 a% ]  H5 c; O) O. y  echo "0" /proc/sys/net/ipv4/conf/eth0/send_redirects) f+ _: f) e' T- M
  echo "0" /proc/sys/net/ipv4/conf/eth1/send_redirects
. P. G, |/ f7 ~. J3 m5 T% n8 b  清除ipvsadm表:2 t5 z+ r4 K5 I2 t  l0 [, \
  /sbin/ipvsadm -C
  [4 I' O; E% Z* M  使用ipvsadm安装LVS服务) d" ^* i2 w) R6 L2 m
  #add http to VIP with rr sheduling
/ \6 v( ?* ]) I* m) s; g" `( O  /sbin/ipvsadm -A -t 202.99.59.110:80 -s rr
8 F1 ^3 w' j' l+ O  增加第一台realserver:
0 j2 I0 S, I  Q$ {. H  #forward http to realserver 192.168.10.1 using LVS-NAT (-m), with weight=1
) [9 \2 y6 U: U  /sbin/ipvsadm -a -t 202.99.59.110:80 -r 192.168.10.1:80 -m -w 1
, k7 t0 [/ C$ Z; W1 u5 |  增加第二台realserver:
7 j, I* v  z& B4 T% z" U- f9 l  #forward http to realserver 192.168.10.2 using LVS-NAT (-m), with weight=19 d: a% Y% Q8 L3 @) I2 C
3 X* `5 E0 r1 W
  /sbin/ipvsadm -a -t 202.99.59.110:80 -r 192.168.10.2:80 -m -w 1
回复

使用道具 举报

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

红旗Linux:用LVS在Linux上搭建负载均衡集群服务

</p>  (2)、realserver配置
% k6 L3 `1 T5 U( E  在192.168.10.1(realserver1)和192.168.10.2(realserver2)上分别将其网关设置为192.168.10.254,并分别启动apache服务。
+ l0 z1 A  J. _2 E- U, [: r  在客户端使用浏览器多次http://202.99.59.110/,然后再202.99.59.110上运行ipvsadm命令,应该有类似下面的输出: 1 E" b) m* T, ]9 N; Y/ y$ I' @

4 W: x: F" R; @5 n$ M' ~0 W  IP Virtual Server version 1.0.12 (size=4096)Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 202.99.59.110:http rr - 192.168.10.1:http Masq 1 0 33 - 192.168.10.2:http Masq 1 0 33
; p+ C1 z% F$ L  从上面的结果可以看出,我们的LVS服务器已经成功运行。
$ _( C9 O" N5 \  
. _8 E' Q, g2 D- ~, O4 D: ]) L  二、基于直接路由(DR)的LVS的配置
7 T6 ?1 j3 K2 w* [& Y  1.硬件需求和网络拓扑:
" }5 @4 l3 z1 j# s2 |( g  2.安装软件:+ Z- z: L+ N$ M. b
  在director(202.99.59.109)上安装上面的方法安装内核和治理软件。' ^4 Z( w8 d- X& \
  3. 配置LVS% t4 ]3 Z! z" X5 c
  (1)、在202.99.59.109上:
; q6 t0 \  T1 h2 H  修改内核运行参数,即修改/etc/sysctl.conf文件的内容如下:net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 1net.ipv4.conf.default.send_redirects = 1net.ipv4.conf.eth0.send_redirects = 1然后执行下面的命令是对内核修改的参数立即生效:sysctl -p配置VIP地址:/sbin/ifconfig eth0:0 202.99.59.110 broadcast 202.99.59.110 netmask 255.255.255.255 up/sbin/route add -host 202.99.59.110 dev eth0:0清除ipvsadm表:/sbin/ipvsadm -C使用ipvsadm安装LVS服务:/sbin/ipvsadm -A -t 192.168.1.110:http -s rr增加realserver:#forward http to realserver using direct routing with weight 1/sbin/ipvsadm -a -t 192.168.1.110:http -r 192.168.1.12 -g -w 1/sbin/ipvsadm -a -t 192.168.1.110:http -r 192.168.1.12 -g -w 19 T8 p/ t8 w+ }: z6 u6 G
  (2)在realserver1(202.99.59.108)和realserver2(202.99.59.107)上做下面的设置。www.examw.com2 i4 ]' @! x% |! S
  修改内核运行参数,即修改/etc/sysctl.conf文件的内容如下:net.ipv4.ip_forward = 0net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2然后执行下面的命令是对内核修改的参数立即生效:sysctl -p配置VIP地址:/sbin/ifconfig lo:0 202.99.59.110 broadcast 202.99.59.110 netmask 255.255.255.255 up/sbin/route add -host 202.99.59.110 dev lo:0
7 D7 o8 Y! }" c7 P* c" M8 O) h# W- B0 o* p
  p在客户端使用浏览器多次http://202.99.59.110/,然后再202.99.59.110上运行ipvsadm命令,应该有类似下面的输出:+ v7 ~+ \8 O- N+ f9 O9 K, g
  IP Virtual Server version 1.0.12 (size=4096)Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.100.254:http rr - 192.168.100.3:http Route 1 0 28 - 192.168.100.2:http Route 1 0 29
, {3 N! L+ e2 |. g8 N( M! w% Q  从上面的结果可以看出,我们的LVS服务器已经成功运行。2 \' G% O( ^0 k6 O) J, [. ~
  在面的实例中ipvsadm用到的几个参数含义如下:# B, i  g) g' f& e
  -A 增加一个虚拟服务,该服务由协议、IP地址和端口号组成,例如:$ e' D9 b% G' z+ d8 a$ l, m$ c
  -A -t 202.99.59.110:80 (增加一格虚拟服务,其协议(-t表示tcp,-u表示udp)为TCP、IP为202.99.59.110、端口号为80.  V" b8 y; J, w2 D) O/ j
  -s 指定服务采用的算法,常用的算法参数如下:
% N1 M7 P# [3 m& C' P  rr 轮叫(Round Robin)
) _4 n5 k7 o) K: j9 ]5 }% c6 z! i& g2 o- m: u1 Q+ @
  调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务 器,而不管服务器上实际的连接数和系统负载。
回复 支持 反对

使用道具 举报

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

红旗Linux:用LVS在Linux上搭建负载均衡集群服务

</p>  wrr 加权轮叫(Weighted Round Robin)
1 s) s, X, l( T* a- x  调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。* \3 ?% S+ \1 A$ y
  lc 最少链接(Least Connections)4 ]% `7 B' G3 ^1 h  s
  调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。假如集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。+ g7 x* ?1 a4 ^; t* x7 ?) k4 O
  wlc 加权最少链接(Weighted Least Connections)% |% F4 h' o( R6 B
  在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。# B3 `) Q* N  b- W! B4 M' J& j
  lblc 基于局部性的最少链接(Locality-Based Least Connections)* J$ L* B, i1 |0 h: b
  " 基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。
! O# f5 \3 l6 G0 j! S) n& _" A4 V- }" ^5 r# V8 W4 t4 _
  lblcr 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication), ~' x9 @3 E% ?# r+ l- N
  " 带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
  \. A3 u' t1 o% ]7 p- f  dh 目标地址散列(Destination Hashing)
9 D! z3 p/ N. t  "目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
7 f) Y" T5 B8 F' M) O" U5 i  sh 源地址散列(Source Hashing). }3 p$ X9 {7 q+ f
  "源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
4 V" {0 f1 `: y. r+ g  /sbin/ipvsadm -a -t 192.168.1.110:http -r 192.168.1.12 -g -w 1/ Q3 h# p. @9 J5 M9 v0 n
  -a 表示往一个服务内增加一个real server$ z7 w( k+ G$ r! S
  -r 指定real server的IP地址$ n+ }" d! Y2 @; y) o0 S; u, Z
  -w 表示权重9 {8 i9 s& l' S( G$ j, n
  -g 表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 00:32 , Processed in 0.641558 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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