a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 263|回复: 3

[红旗认证] 红旗Linux:VMware5安装集群LVS实例解析

[复制链接]
发表于 2012-8-4 12:16:06 | 显示全部楼层 |阅读模式
  一、基于NAT的LVS的安装与配置  1. 硬件需求和网络拓扑& G1 m; G' [' z& R: o; X8 _0 F
  2.软件:
, l/ w2 A7 o! ^( w  、编译和安装ipvsadm; g# u! {' `: b, I
  ln -s /usr/src/linux-2.4.30 /usr/src/linux tar -zxvf ipvsadm-1.21-11.tar.gz
; b7 C# q' H7 b3 W  @  cd ipvsadm-1.21-118 k6 u/ F5 G! R& c$ e. x* t
  make all
0 }9 G4 a6 t. `* {  make install! O/ |  E2 l9 F% w
  然后运行:ipvsadm ——version命令,应该有下面的内容输出:3 q. R7 i* k' H6 o/ K
  ipvsadm v1.21 2004/02/23 (compiled with popt and IPVS v1.0.12)2 [) D! a2 b  [/ R# o  q+ C
  4. 配置LVS
0 G$ R; ~) s& v  (1)、在202.99.59.110上:
( M% T# T( o. w% @% U  echo "1" /proc/sys/net/ipv4/ip_forward
& C# {; f4 [' R3 n  echo "0" /proc/sys/net/ipv4/conf/all/send_redirects2 B2 k( ?/ s6 C3 E9 F0 M, C" i" y& _
  echo "0" /proc/sys/net/ipv4/conf/default/send_redirects
4 ~( O! L& p! y5 ]1 Q" L% i  echo "0" /proc/sys/net/ipv4/conf/eth0/send_redirects7 @7 ~( O1 N- s$ |) H2 G
  echo "0" /proc/sys/net/ipv4/conf/eth1/send_redirects6 s- U2 D. N, G: l
  清除ipvsadm表:  T& H5 o4 M) F9 C+ M  Z" b
  /sbin/ipvsadm -C
  K& B- a* G9 u2 \4 `  使用ipvsadm安装LVS服务' y; [+ P, D( q# t
  #add http to VIP with rr sheduling$ q" q8 n% y# [6 ^% |* P5 N
  /sbin/ipvsadm -A -t 202.99.59.110:80 -s rr
) r! t7 p+ q3 j  _* c1 K% }6 i  增加第一台realserver:
& L! S' W* u. p  #forward http to realserver 192.168.10.1 using LVS-NAT (-m), with weight=1
7 d& e, s* b4 R  /sbin/ipvsadm -a -t 202.99.59.110:80 -r 192.168.10.1:80 -m -w 1& y8 i9 {  Z6 o+ k
  增加第二台realserver:
. P5 p) b. \/ i6 S: ]% x  #forward http to realserver 192.168.10.2 using LVS-NAT (-m), with weight=1
4 Z2 i9 d. H, K! E  d9 d/ I& s& O! H  /sbin/ipvsadm -a -t 202.99.59.110:80 -r 192.168.10.2:80 -m -w 13 |! Q- g- _0 d3 y
  (2)、realserver配置2 \3 \8 V* }) @. d
  在192.168.10.1(realserver1)和192.168.10.2(realserver2)上分别将其网关设置为192.168.10.254,并分别启动apache服务。. r. T- a' L4 G6 K$ S
  在客户端使用浏览器多次http://202.99.59.110/,然后再202.99.59.110上运行ipvsadm命令,应该有类似下面的输出: 5 {7 ^3 N) C' E6 ~

" i) o) q2 b5 o% a/ Q  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: K8 E# ~* f* h4 v
  从上面的结果可以看出,我们的LVS服务器已经成功运行。
8 e! V' F3 Q* f2 ?+ b6 l
' l4 h% ^" I1 g; Z  
回复

使用道具 举报

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

红旗Linux:VMware5安装集群LVS实例解析

</p>  二、基于直接路由(DR)的LVS的配置
  W: p6 o7 Z6 u& V7 t- C  1.硬件需求和网络拓扑:
" ~9 P7 R7 N  {/ H  2.安装软件:+ ]' b8 E' L, U7 j* g
  在director(202.99.59.109)上安装上面的方法安装内核和治理软件。1 i" |3 j  p' s9 M1 P; n$ v5 c
  3. 配置LVS  w5 g0 W7 ]/ Z) s0 e3 K& m
  (1)、在202.99.59.109上:
# q( `0 E$ _) u! g" i( ^3 {% Y  修改内核运行参数,即修改/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 1
: K9 f( v, o/ V& Q  t, Y  VIP=192.168.8.11
1 z7 x9 M9 b) q) u  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
; C  Y" l6 m0 y+ q& ]  /sbin/route add -host $VIP dev lo:0
0 ~/ U! v6 _2 r  echo "1" /proc/sys/net/ipv4/conf/lo/arp_ignore) S9 P( e. Z! B5 W# m0 s" m
  echo "2" /proc/sys/net/ipv4/conf/lo/arp_annou nce 3 V. |6 `4 L* j+ x6 Z
2 b5 ?# d4 V& F# ]. x
  echo "1" /proc/sys/net/ipv4/conf/all/arp_ignore
6 r: F3 ]; j" l7 A% S6 a: I* U( r  echo "2" /proc/sys/net/ipv4/conf/all/arp_announce9 n( q( h' V8 V
  sysctl –p
. {7 W+ l. W& w/ q  假如有多个realserver直接添加就可以了,之后启动此脚本就可以了。# I# X/ l- l# n6 U
  测试:分别启动realserver上的httpd服务2 |& q9 ]7 s$ U/ Q$ O
  在realserver1 执行 echo "This is realserver1" /var/www/html/index.html9 Y/ Z1 y( B  c' g
  在realserver2 执行 echo "This is realserver2" /var/www/html/index.html
, f% y' Q! o9 X5 o# p  打开IE浏览器输入http://192.168.8.11 应该可以分别看到:This is realserver1 和 This is realserver2.$ u9 R: f% }4 ?5 M# k  t
  二、配置基于隧道模式Lvs集群4 A" X+ x; c; O* J: G1 O# A- C
  1.配置LVS directorserver 脚本; G* r0 `; m& v/ \5 a  U
  [root@test7 chang]#vi TunLVS
& A3 R% T& V" F& c4 t" ?3 r$ v$ s  #!/bin/sh# w7 N% m) h. a6 I7 ?7 W
  VIP=192.168.8.11) u/ S  u9 H9 p
  RIP1=192.168.8.5  l/ T0 |, t1 b
  RIP2=192.168.8.60 N5 ]- I! K9 M7 P3 a' ]
  /etc/rc.d/init.d/functions
2 Y( L; Q& t7 l+ i  case "$1" in
* m/ ?! s9 |  a/ s! V  start)$ t* Y' ~0 f: A3 V/ ~% i- q4 v; B
  echo "Start Lvs of DirectorServer"! ~) O: c6 b8 c! j. u
  #set vip server3 Z! \: h0 ^5 u( F* \  Q& y
  /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
& d6 L& M9 b, |  /sbin/route add -host $VIP dev tunl01 y" s6 V* R- B! W3 {) M
  #clear IPVS table
/ k$ N. L+ W. V) C  /sbin/ipvsadm -C' l3 s: y; s9 ^$ [/ X1 C# l
  #set lvs& S" v& Z% |# R! P6 v- t
  /sbin/ipvsadm -A -t $VIP:80 -s rr( x% l: T$ \) Y  l
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i% }# C6 n0 N9 n- c9 E7 Y5 s* r
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i
* k0 u4 Z3 Q& u. \( r  #Run Lvs$ ]2 ^; \9 {! {1 M
  /sbin/ipvsadm3 w, \1 d$ H, v( @# C7 L! h$ _
  ;;% ]' u& S4 W9 L2 z/ N
  stop)  Q0 @! r, w$ o; J0 M9 ~; F" M
  echo "Close Lvs DirectorServer "
. \' h' m  v. N) I* s. f  ifconfig tunl0 down
- `  u! J2 c4 K  /sbin/ipvsadm -C
+ @" M0 w7 T, k* Q+ k* e  ;;
( I+ k) }% X  M" K. c/ P  )
9 \- f3 _( O' ?2 b: ~* j  echo "Usage: $0 "  x. `" U! y* W6 w
  exit 1
  M+ t+ h1 ]: c$ h" a9 g  esac$ x; \9 E5 a" u" g
  2. 配置realserver
; T# g8 E/ Q7 i# c. \% Y  [root@test5 chang]#
" N$ ^; G' b9 c% T4 \$ D  #!/bin/sh
* E, _& y5 m7 `  VIP=192.168.8.11
' s+ D& a3 W$ I% W  /etc/rc.d/init.d/functions
4 t: A$ t# E$ P- [( ^; P  case "$1" in
3 H- U0 ?! r) W$ z* J) ?4 F  start)
' z  K. m, I6 M2 a  echo "tunl port starting"
0 x) }/ T: s0 ~( D' F8 p  /s bin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
6 _8 D# c! l6 K: W
" D' B2 R/ R9 r8 p7 b* l  /sbin/route add -host $VIP dev tunl0
' G. c6 r6 K* o5 A0 L; H5 c- u  echo "1" /proc/sys/net/ipv4/ip_forward- ^9 F) \" X2 c8 b: L$ v  R) Q
  echo "1" /proc/sys/net/ipv4/conf/tunl0/arp_ignore
2 k1 a% I) q; E6 e4 r" g% j1 _) [& h  echo "2" /proc/sys/net/ipv4/conf/tunl0/arp_announce& h1 ~5 w2 q& @0 M
  echo "1" /proc/sys/net/ipv4/conf/all/arp_ignore
& N3 o4 [; g7 q8 J  echo "2" /proc/sys/net/ipv4/conf/all/arp_announce& u1 J9 U1 L9 y( ~, E* O* s
  sysctl -p
8 ?. T' |/ x1 _4 W3 _5 P+ G2 Y+ Y3 D. j' a" q
  ;;
回复 支持 反对

使用道具 举报

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

红旗Linux:VMware5安装集群LVS实例解析

</p>  stop)
) V$ \0 V8 ~& Q  echo "tunl port closing"# ?% Y) D" R) G
  ifconfig tunl0 down
; W! I" A6 I/ _# d5 u  echo "1" /proc/sys/net/ipv4/ip_forward
+ w* P) O( N9 u3 @$ T  echo "0" /proc/sys/net/ipv4/conf/all/arp_announce
/ e/ [& V& l7 p( i% {  ;;
3 V/ N1 L  g5 _& n9 z  )
: Y8 D0 N- }9 f9 ~$ X  echo "Usege: $0 "4 b4 n9 f6 h  P% K4 c+ X
  exit 1
& H2 v- x; P0 Z: [  esac( ~. ?( y. |2 a" R: ?" o2 p- N
  此脚本分别在realserver上执行,目的使realserver忽略arp响应,并设定vip.' K- W: g) P  d, A# d; {
  三、配置基于高可用Lvs+heartbeat9 t. o" z- c, K1 M1 Y
  确定LVS使用DR或/tun模式,请对照上面的配置,本例使用DR模式; f/ a- W5 A2 `1 s' B# j+ B6 z0 H5 |/ i
  1.配置LVS directorserver 脚本
" y  }% E1 z( [- M0 F* I0 S  #!/bin/sh
. `* K$ K* X, p' ]9 e3 y! ~2 x  VIP=192.168.8.114 U* @9 O. t7 z2 q/ P
  RIP1=192.168.8.61 v/ r1 G6 k2 o, M# |) h
  RIP2=192.168.8.5
. h$ r" o* i- Y  /etc/rc.d/init.d/functions3 z3 c" _! z+ d. u, c( Q1 r. \
  case "$1" in
/ \- ?" J& ^7 ?7 A6 s/ h  start)5 b, ]" C" z8 ?6 w% V/ T
  echo "start LVS of DirectorServer"' p$ `; `9 l' z- a. W  y( w
  #Set the Virtual IP Address* X3 {+ O$ ~9 T2 o
  /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up' q# A3 X9 |. G' C, z* e: S
  /sbin/route add -host $VIP dev eth0:1
7 {+ S$ l: H2 ?2 K; C5 ~1 L  #Clear IPVS Table0 G0 G3 b% a% w% t$ i; h$ P
  /sbin/ipvsadm -C6 d6 r4 S. `8 @: [
  #Set Lvs  {! \" {) c# x% q) V% ~" E! i3 r' j
  /sbin/ipvsadm -A -t $VIP:80 -s rr
8 X# B; |2 p4 X6 T2 H. N0 r  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g9 t3 B& g1 {) }  d& H: Z
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
( c- ?) L. H4 C* A1 W7 z; Q. N  #Run Lvs( a' O! X7 N& x, k  s$ Y
  /sbin/ipvsadm/ u" z, Y; @" Z  M, N, M# U* D
  ;;
6 R0 x/ f! I( ~$ B5 P+ }/ ]  stop)( v+ e4 V* d7 H# ]
  echo "close LVS Directorserver"
5 t2 @6 v6 J+ |8 F1 ~  /sbin/ipvsadm -C;; 2 ]2 K2 `8 L# K- [5 D9 R

0 }1 T1 w' ~: x6 f4 |4 I. a  )$ T$ X1 f4 A8 l
  echo "Usage: $0 "( X0 ^- C- R* `; |) m1 q4 Z: O
  exit 1
  y( Y; e6 H6 _6 s  esac8 p. J9 H+ u( ~( t$ |: o5 A
  2. realserver端同样使用上面的配置文件就可以。
5 E2 v. Y7 ]1 E$ M/ P. a+ I+ m( ]  3.安装heartbeat
/ O" i9 s% y/ L+ T  3.1 安装( N+ i" j9 E& B7 C+ T. v
  tar -zxvf libnet.tar.gz5 `3 E/ f" y2 Z" P
  cd libnet' A$ d7 R1 _* E5 q1 g1 C3 X* W
  。/configure+ {* |9 t) g# T9 Z
  make
9 c0 l  _$ u2 V2 V  make install
+ C" c1 l: Q5 q/ F8 e- F7 g  ?  groupadd -g 694 haclient& h1 G9 l9 e8 t$ _+ g' c% A( }
  useradd -u 694 -g haclient hacluster
' V$ ~! m0 H( x  tar zxf heartbeat-1.99.4.tar.gz
. _+ h0 M" X7 n# o1 ~  cd heartbeat-1.99.4- A3 A5 j* k4 j" U
  。/ConfigureMe configure( m7 o) t( w5 I" J% P
  make/ h+ O0 J) _; `- Y2 Y* U/ S
  make install
5 z4 X$ }2 p! K/ I1 I" Q. M& b  cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
6 T  {6 P2 z9 K( S4 V1 J0 W' u# I" c& v) e/ x
  cp ldirectord/ldirectord.cf /etc/ha.d/
回复 支持 反对

使用道具 举报

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

红旗Linux:VMware5安装集群LVS实例解析

</p>  3.2配置主文件/etc/ha.d/ha.cf8 ?# v9 p- p+ L, |$ w
  logfile /var/log/ha-log7 ~; c. d$ R, c4 D& V' N" L
  keepalive 2
1 J( W, p  g  W( N$ u, }* r- m  deadtime 60
  I- w9 E3 ]' E  warntime 10
5 w' p, j. H' o# i6 Z$ Z1 Q  initdead 1201 B) ^9 f9 a9 N; \
  udpport 694
/ l% V  }8 v- [1 |  bcast eth0 # Linux! g( T3 a& {+ D) d5 ^+ b; ~
  auto_failback on  `4 t, r9 p4 a4 n
  ping_group group1 192.168.8.2 192.168.8.3
# C' F0 @+ G4 u. Q  respawn root /usr/lib/heartbeat/ipfail( f" B% y% Y: b
  apiauth ipfail gid=root uid=root
# s8 c6 J4 j0 W  hopfudge 1  m  M$ h0 ]; p8 h/ c
  use_logd yes$ l) p, a. i2 Y8 ?
  node test70 h- E$ ?7 l4 H8 D' Y" r
  node test8
7 ^# v' a' L* P# H  crm on6 |) S1 A5 E" T3 z6 g" V
  3.3资源文件/etc/ha.d/ haresources  {) N' n/ d- ~! _$ H/ k9 O9 b
  test7 192.168.8.11 httpd
" j: Q$ c7 M0 N4 i" b  `  设置test7为主节点,集群服务器的ip地址为192.168.8.11 集群服务有httpd
5 Y* t# e, ?9 ~/ j  3.4认证文件:% F: @2 _8 ?& u7 q* k
  checktimeout=3! m1 V8 F) t( Z$ q5 m* ~* n
  checkinterval=1
6 n$ V8 H8 X5 f+ K  fallback=127.0.0.1:801 F: J" S: f" n% S. W
  autoreload=yes- a" _, t! W2 `. r5 H
  logfile="/var/log/ldirectord.log"
: o2 g4 S1 i3 u. ?( ?1 D5 P  quiescent=yes
2 n" v/ C! }% Q; j, G0 T5 E  # Sample for an http virtual service
& ~# M3 C8 ~7 f2 `  k+ Y  virtual=192.168.8.11:801 `5 [  [# i" `4 z1 ^' u6 e
  real=192.168.8.6:80 gate
- j" P8 g: Z) S1 P1 C) L1 T  real=192.168.8.5:80 gate
$ b5 n7 l8 `8 S; u) y% d, d9 M0 C' l  fallback=127.0.0.1:80 gate
1 ]7 U6 ?4 A# A5 q  service=http; Y, E" ^$ D5 R4 B" A
  request="index.html"2 ^8 J4 r( ^7 x/ ^
  receive="Test Page"
' @; D" x( L  a% k: L  protocol =tcp 5 O* w6 k% H: r+ P: O! p

  b6 n, ^! k: v6 @( C8 E* {  checktype=negotiate
1 m/ A  E; u7 w# \# g: T- y% P5 l  checkport=80
2 M% G# v/ A$ G5 @! c: k  在每个Real Server的中添加监控页:( f/ `6 J- u$ h
  echo "Test Page" /var/www/html/index.html
/ v1 y6 g+ B: E, J, {& f( Y  修改/etc/ha.d/haresources
8 i; i1 b  B# p2 ^  test7 192.168.8.11 ipvsadm ldirectord httpd  Q9 i1 L6 r6 {8 P- g* x
  现在可以在主节点启动heartbeat5 n5 C% d# B3 ?  B' g7 m
  /etc/init.d/heartbeat start
2 ?: j% i; G4 `( ]0 e  并在备份节点启动heartbeat
- n5 _( d5 L$ N  /etc/init.d/heartbeat start2 f  C0 H' P0 ]
  测试:关闭主节点,备份节点将自动接管directorserver服务。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 22:21 , Processed in 0.234562 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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