a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 618|回复: 1

[红帽认证] 红帽认证辅导:在RedHatEL中实现高可用WEB负载均衡群集(1)

[复制链接]
发表于 2012-8-4 12:19:50 | 显示全部楼层 |阅读模式
 一、Director配置
0 d& V6 S: {9 G( \  1、设置网络接口地址1 r2 h3 }3 Q1 m' O
  [root @director root] # vi /etc/sysconfig/network-scripts/ifcfg-eth09 z$ O# ?4 J2 H/ ]0 C
  DEVICE=eth0
! f5 z' H* y3 [" o  q  BOOTPROTO=static
2 b. X5 i/ A& S9 p* U  BROADCAST=192.168.0.255
% Y8 v9 s' X5 j  v  HWADDR=00:0C:29:A2:BD:B54 L( h/ [/ U, {
  IPADDR=192.168.0.1609 w! Y  ]# g% ~  P4 N
  NETMASK=255.255.255.0
% Z" b' u7 b- E  NETWORK=192.168.0.0
7 X9 A0 ^! d: |+ `; g- n  ONBOOT=yes8 [) D$ O7 C/ d; H
  2、编辑 lvs 脚本
( }, W+ Z( V& m, c8 h4 `  [root @director root] # vi /etc/init.d/lvsdr1 D& Q8 X: E, }  f* a
  #!/bin/bash
$ L2 ]- k& ^( ]- Y3 x2 ]; b0 X  VIP=192.168.0.222
. h3 h9 ^, L/ s  RIP1=192.168.0.249
" t! o, v* e, M! w: T( M/ t  RIP2=192.168.0.251
8 Q( c1 S6 u4 y3 c% [7 ?. W' a  /etc/rc.d/init.d/funcions7 g1 V4 F; y: a' \& R
  case "$1" in
& d. A; `9 v/ F5 B/ N* I' p1 m  start)) Z% J" R  K( X7 ^7 B
  echo "start LVS of DirectorServer"% e/ k, j; q+ x
  #Set the Virtual ip address
+ q- Q; |& x% E# P$ \! W& }6 C7 ^  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
# I3 i6 Q0 u9 `' d  /sbin/route add -host $VIP dev eth0:0# [, P- n2 H, Q" N
  # Clear ipvs Table
1 U: f" c- t$ L2 i+ A/ {. Y  /sbin/ipvsadm -C4 @$ ~0 f4 r- w, Y7 S* s0 G, J# J
  # set lvs' y1 M, b. h4 W/ p; ?
  /sbin/ipvsadm -A -t $VIP:80 -s rr: ]- m1 Q( ~& j' p
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
. S& R$ m( h: q4 `5 e  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
5 Z2 `9 @- C. {* P2 m' g  #Run Lvs
( Z0 e- z/ m$ D3 A; W  /sbin/ipvsadm. ?. F2 i: Z3 P$ c- a* Y+ c0 V
  ;;5 N6 N9 C+ x" p/ e, K& S! u
  stop)
/ H# }9 c1 ]+ w9 ^3 X  echo "close LVS Directorsever"' C' f, H. y! f/ p& @. d
  /sbin/ipvsadm -C1 O6 Z' O, _( Y+ C0 k
  /sbin/ifconfig eth0:0 down0 l/ r. U4 W) I& l* x7 _3 a5 G) }
  ;;
1 A) M9 I. m) }; N7 m9 ~! t0 i  *)& U3 n, Z5 `8 y: w/ ^3 }1 d
  echo "Usage: $0 {start|stop}"& c5 n! ?+ C8 o+ T! X) [6 ~, D# u
  exit 1
3 [, V1 o4 U' K8 `$ G9 n  esac
" C4 T5 ~8 v+ Y* E& \! Y4 B  # 保存并退出,将该文件设置为可执行文件, q- R4 z. L# x0 _! d2 @: s
  [root @director root] # chmod 755 /etc/init.d/lvsdr
& a  I9 x* q! ~1 I2 z' V  3、安装 ipvsadm
. s# j- C) R* T7 _" b" W  [root @ Director root] # modprobe –l | grep ipvs
6 m8 Q' j# c" J+ Q: [  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs.ko' ^8 T- Y1 w; ]* {8 M. c( z/ Z
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_ftp.ko9 d8 ]: \% {' f* R4 Q0 b
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
) n7 @( ]. e8 j2 s' {1 H  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_wlc.ko* |, a5 a4 J9 t3 L1 k1 x; N% B
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_sed.ko
5 Y: o+ A4 U0 {; |  x  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_rr.ko) u9 V2 r- U7 S, A; H3 Q% E
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
* x$ _, B6 R3 E- q% w  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_nq.ko
& Q7 g0 Z4 D/ q# L  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_sh.ko
' m3 t9 Q2 y& @& {  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_dh.ko
3 p3 U/ C& f8 I1 d' i  |  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
: E$ c! C# W, b" q9 j4 {% x+ N  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lc.ko# y( F5 Y0 z" w
  [root @director root] # ln –s /usr/src/kernels/2.6.9-11.EL-i686 /usr/src/linux
/ V* h# J) Q0 @' x! C9 o  [root @ director root] #tar xzvf ipvsadm-1.24.tar.gz
/ w5 e( `5 j1 ]7 {- B  [root @ director ipvsadm-1.24] # cd ipvsadm-1.24
6 \: Y" l$ n4 {& r/ u  [root @ director ipvsadm-1.24] # make/ G8 ^6 c, p  V
  [root @ director ipvsadm-1.24] # make install
回复

使用道具 举报

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

红帽认证辅导:在RedHatEL中实现高可用WEB负载均衡群集(1)

  由于在这里我搭建的是 WEB 的负载均衡群集,而我在安装 Redhat EL 4.0 时并没有选择安装 WEB 服务器组件,所以这里需要另外安装,如果已安装的朋友可以略过这里(注:可以用 rpm –qa |grep http 查看是否已经安装)
8 p9 R. @5 }- w- o1 S6 u  [root @ director root]#tar xzvf httpd-2.2.4.tar.gz
. J% @. ^; A) F+ e; g" c  [root @ director root]# cd httpd-2.2.4: q' H- k9 M3 \# {) d6 B' u
  [root @ director httpd-2.2.4] # ./configure –prefix=/usr/local/apache –enable-so –enable-rewrite
. F2 O5 s- y! S$ X7 z  [root @ director httpd-2.2.4] # make
# }3 P4 W% _' Z" Z) V7 E  [root @ director httpd-2.2.4] # make install' L8 |9 _5 j9 \/ n- ^+ b7 m
  [root @ director httpd-2.2.4] # echo “/usr/local/apache/bin/apachectl” >> /etc/rc.local
+ `+ a  ]: K0 R+ e( o  4、安装 heartbeat
( y$ W1 i$ b& y; j  在安装 heartbeat 前先要安装 libnet,下载地址:http://www.packetfactory.net/libnet/0 N) E1 W- g2 e) ~
  [root @ director root] # tar xzvf libnet.tar.gz" J# |0 U( o/ K; D. p8 Z
  [root @ director root] # cd libnet2 j1 R; _! ~" _8 r- Y3 R
  [root @ director libnet] # ./configure- f  D( ^- W4 A0 ?6 p% K/ {
  [root @ director libnet] # make! T/ o$ K* J# Z. ~9 D
  [root @ director libnet] # make install0 U0 f" a& w  ~8 \/ g
  [root @ director libnet] # cd
+ N- z3 ~( n- j* ?  在安装 heartbeat 之前还需要创建属于 heartbeat 的组和用户) @7 M4 I; _, _2 G8 w
  [root @ director root] # groupadd –g 694 haclient2 P" d8 B. U+ C- H/ s  J" R
  [root @ director root] # useradd –g 694 –u 694 hacluster9 I8 o8 c, M4 Q: h
  [root @ director root] # tar xzvf heartbeat-2.1.2.tar.gz! y- u/ J/ ^' T1 I
  [root @ director root] # cd heartbeat-2.1.2
/ R7 ]2 R) C  X0 }) C! y; e  [root @ director heartbeat-2.1.2] # ./ConfigureMe configure
; y* k8 T! A) T7 A+ ^+ }  [root @ director heartbeat-2.1.2] # make
; O9 z% L5 K+ Z5 U( L- Z2 M, ?  [root @ director heartbeat-2.1.2] # make install
: ^- A5 V5 f& R4 o7 v( b& W  在安装完 heartbeat 后,会有一个 /etc/ha.d 目录,这是 heartbeat 的配置文件存放的目录,heartbeat 的配置文件都放在这里。但默认在安装完 heartbeat 后,heartbeat 最重要的三个配置文件 ha.cf、haresources、authkeys却没有放在这里,需要我们手工 copy 过来才行。1 u; G& D! `$ z& U9 g" [
  [root @ director heartbeat-2.1.2] # cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d! B, _" \) {! y: e+ c# p, j
  将 ldirector 的配置文件也 copy 过来
% v% f% E4 x, n: K2 i* D  [root @ director heartbeat-2.1.2] # cp ldirectord/ldirectord.cf /etc/ha.d) h) Y$ c* m  ]' T9 b1 E
  6、编辑 heartbeat 的配置文件8 m0 V2 j" w1 \4 s" z0 b
  [root @ director heartbeat-2.1.2] # vi /etc/ha.d/ha.cf: w% _  @: q& I- `: k4 Z# M4 }* }
  # hearbeat 的查错文件存放点
8 I% U1 w  c" |2 d" U2 P, s$ Q  debugfile /var/log/ha-debug
$ ?- I  j( }/ P! l' g% q$ p" [  # heartbeat的日志文件存放点* p& ^1 x$ m6 a
  logfile/var/log/ha-log
+ m$ G" Z2 s: u  #设定heartbeat(心跳)之间的时间间隔为2秒。
4 N% d- n! M7 M  keepalive 27 O" A+ @) _7 o! \+ n: p: o
  #在60秒后宣布节点死亡。  [, G8 M1 _' f# e" }
  deadtime 60
; }8 [$ {9 c7 b3 y7 I( T$ W  #在日志中发出“late heartbeat“警告之前等待的时间,单位为秒。
( B4 ~# L, _6 Z  warntime 107 C* T  ^2 g3 i, V7 @* L
  在某些配置下,重启后网络需要一些时间才能正常工作。这个单独的”deadtime”选项可以处理这种情况。它的取值至少应该为通常deadtime的两倍。0 ~2 W% K9 j$ D: x! t# e
  initdead 120
' f7 A0 i% V* t( t4 a# D9 D2 N  #使用端口694进行bcast和ucast通信。这是默认的,并且在IANA官方注册的端口号。8 u( f! Z9 p, j6 ?& p
  udpport694- Z( \( |% S! J% b( i: q' K* W. L
  #表示在eth0接口上使用广播heartbeat(将eth0替换为eth1,eth2,或者您使用的任何接口)。
+ j* n5 b, d( C+ ]3 S& F: w  bcasteth0# Linux
9 r+ V" D; Q3 l1 Q  #必须的。集群中机器的主机名,与“uname –n”的输出相同。
* Y- v7 w2 u  S$ S  node director
1 T: D6 r4 H3 Q, a) e" I  node bkdirector1 y5 o9 T- A3 ^
  # 必须的,当auto_failback设置为on时,一旦主节点重新恢复联机,将从从节点取回所有资源。若该选项设置为off,主节点便不能重新获得资源。该选项与废弃的nice_failback选项类似。
1 J7 U2 d4 c$ k7 F4 y  auto_failback on. a3 S. V8 Z% E5 U6 H( Q4 ]4 G
  # 默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。
+ g4 M' k. W# P8 f# n3 [, L  # 所以当网络中断时,并不会进行Load Balancer和Backup之间的切换。
  P: H5 b5 b, M9 l3 j  # 可以通过ipfail插件,设置’ping nodes’来解决这一问题。详细说明参考hearbeat文档。
. @2 R" y5 }* g( B# a$ ?+ b9 C  ping_group group1 192.168.0.160 192.168.0.2253 t; \2 X# ^+ Y! }8 }' }
  respawn root /usr/lib/heartbeat/ipfail
" W4 k. P( m7 w0 a6 @4 P( c0 g  apiauth ipfail gid=root uid=root$ I" {) W1 I  }. A1 y0 D$ T
  hopfudge 1, \* @! q8 |' R: M' s
  use_logd yes
8 u. f0 q5 c$ [5 _* R2 f  #保存并退出3 w2 Y1 D) d3 |8 \! Z* l
  编辑 haresources 文件,haresources 文件通知 heartbeat 程序哪台机器拥有资源,资源名称实际是 /etc/init.d 或 /etc/ha.d/resource.d 目录下的脚本,Heartbeat 使用 haresources 配置文件确定它第一次启动时应该做的工作。该文件列出集群所提供的服务以及服务的默认所有者。 注意:两个集群节点上的该文件必须相同,否则BadThingsWillHappen。
# h& `3 j3 S1 F2 a6 K" d  [root @ director heartbeat-2.1.2] # vi /etc/ha.d/haresources: }0 i) Q$ [5 F, ^7 y5 x4 z" G0 s
  director lvsdr* k( F+ j  ^& i
  #设置 director 为主节点,提供的群集服务为 lvsdr, 主节点的名称要与 “uname -n” 的输出相同; V1 @  D, d% r+ ~
  #保存并退出
( P# A) ^7 M8 d' s" g  编辑 authkeys 文件,需要配置的第三个文件authkeys决定了您的认证密钥。共有三种认证方式:crc,md5,和sha1。您可能会问:“我应该用哪个方法呢?”简而言之:
( w) b( w2 W+ F+ e! R3 a  如果您的Heartbeat运行于安全网络之上,如本例中的交叉线,可以使用crc,从资源的角度来看,这是代价最低的方法。如果网络并不安全,但您也希望降低CPU使用,则使用md5。最后,如果您想得到最好的认证,而不考虑CPU使用情况,则使用sha1,它在三者之中最难破解。
6 M% c+ C( ?. v: t* V; Y  [root @ director heartbeat-2.1.2] # vi /etc/ha.d/authkeys
6 ~, b+ `* p1 s4 A7 ^! _  auth 1
  e/ J! E6 [0 ~9 o' v0 [  1 crc. R( P" |$ u# F% b4 p1 u
  # 保存并退出
7 u0 u2 L% \: `/ K& K  确保 authkeys 文件仅能由 root 用户读取
" q, m# \. U) O$ w  [root @ director heartbeat-2.1.2] # chmod 600 /etc/ha.d/authkeys
( R. _* [" z% f; \+ Z; S" b- g  编辑 /etc/hosts 文件,添加两台机器的名字,做好名字到IP的对应
! s7 p; j' u9 I/ L1 c2 ~  [root @ director heartbeat-2.1.2] # vi /etc/hosts
9 h; H( n1 V2 D, A. u+ y  192.168.0.160director- R) ~/ [' z7 W8 l: ^
  192.168.0.225bkdirector
: s# g1 P5 B+ l/ |! X# R  注:在备用 director 上也做相同的设置。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 16:50 , Processed in 0.363173 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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