首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 认证考试 > Linux认证 >

在RedHatEL中实现高可用WEB负载均衡群集(1)

2009-02-23 
WEB负载均衡群集

    一、Director配置
  1、设置网络接口地址
  [root @director root] # vi /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  BOOTPROTO=static
  BROADCAST=192.168.0.255
  HWADDR=00:0C:29:A2:BD:B5
  IPADDR=192.168.0.160
  NETMASK=255.255.255.0
  NETWORK=192.168.0.0
  ONBOOT=yes
  2、编辑 lvs 脚本
  [root @director root] # vi /etc/init.d/lvsdr
  #!/bin/bash
  VIP=192.168.0.222
  RIP1=192.168.0.249
  RIP2=192.168.0.251
  /etc/rc.d/init.d/funcions
  case "$1" in
  start)
  echo "start LVS of DirectorServer"
  #Set the Virtual ip address
  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev eth0:0
  # Clear ipvs Table
  /sbin/ipvsadm -C
  # set lvs
  /sbin/ipvsadm -A -t $VIP:80 -s rr
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  #Run Lvs
  /sbin/ipvsadm
  ;;
  stop)
  echo "close LVS Directorsever"
  /sbin/ipvsadm -C
  /sbin/ifconfig eth0:0 down
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  exit 1
  esac
  # 保存并退出,将该文件设置为可执行文件
  [root @director root] # chmod 755 /etc/init.d/lvsdr
  3、安装 ipvsadm
  [root @ Director root] # modprobe –l | grep ipvs
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_sed.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_rr.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_nq.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_sh.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_dh.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
  /lib/modules/2.6.9-11.EL/kernel/net/ipv4/ipvs/ip_vs_lc.ko
  [root @director root] # ln –s /usr/src/kernels/2.6.9-11.EL-i686 /usr/src/linux
  [root @ director root] #tar xzvf ipvsadm-1.24.tar.gz
  [root @ director ipvsadm-1.24] # cd ipvsadm-1.24
  [root @ director ipvsadm-1.24] # make
  [root @ director ipvsadm-1.24] # make install
  由于在这里我搭建的是 WEB 的负载均衡群集,而我在安装 Redhat EL 4.0 时并没有选择安装 WEB 服务器组件,所以这里需要另外安装,如果已安装的朋友可以略过这里(注:可以用 rpm –qa |grep http 查看是否已经安装)
  [root @ director root]#tar xzvf httpd-2.2.4.tar.gz
  [root @ director root]# cd httpd-2.2.4
  [root @ director httpd-2.2.4] # ./configure –prefix=/usr/local/apache –enable-so –enable-rewrite
  [root @ director httpd-2.2.4] # make
  [root @ director httpd-2.2.4] # make install
  [root @ director httpd-2.2.4] # echo “/usr/local/apache/bin/apachectl” >> /etc/rc.local
  4、安装 heartbeat
  在安装 heartbeat 前先要安装 libnet,下载地址:http://www.packetfactory.net/libnet/
  [root @ director root] # tar xzvf libnet.tar.gz
  [root @ director root] # cd libnet
  [root @ director libnet] # ./configure
  [root @ director libnet] # make
  [root @ director libnet] # make install
  [root @ director libnet] # cd
  在安装 heartbeat 之前还需要创建属于 heartbeat 的组和用户
  [root @ director root] # groupadd –g 694 haclient
  [root @ director root] # useradd –g 694 –u 694 hacluster
  [root @ director root] # tar xzvf heartbeat-2.1.2.tar.gz
  [root @ director root] # cd heartbeat-2.1.2
  [root @ director heartbeat-2.1.2] # ./ConfigureMe configure
  [root @ director heartbeat-2.1.2] # make
  [root @ director heartbeat-2.1.2] # make install
  在安装完 heartbeat 后,会有一个 /etc/ha.d 目录,这是 heartbeat 的配置文件存放的目录,heartbeat 的配置文件都放在这里。但默认在安装完 heartbeat 后,heartbeat 最重要的三个配置文件 ha.cf、haresources、authkeys却没有放在这里,需要我们手工 copy 过来才行。
  [root @ director heartbeat-2.1.2] # cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d
  将 ldirector 的配置文件也 copy 过来
  [root @ director heartbeat-2.1.2] # cp ldirectord/ldirectord.cf /etc/ha.d
  6、编辑 heartbeat 的配置文件
  [root @ director heartbeat-2.1.2] # vi /etc/ha.d/ha.cf
  # hearbeat 的查错文件存放点
  debugfile /var/log/ha-debug
  # heartbeat的日志文件存放点
  logfile/var/log/ha-log
  #设定heartbeat(心跳)之间的时间间隔为2秒。
  keepalive 2
  #在60秒后宣布节点死亡。
  deadtime 60
  #在日志中发出“late heartbeat“警告之前等待的时间,单位为秒。
  warntime 10
  在某些配置下,重启后网络需要一些时间才能正常工作。这个单独的”deadtime”选项可以处理这种情况。它的取值至少应该为通常deadtime的两倍。
  initdead 120
  #使用端口694进行bcast和ucast通信。这是默认的,并且在IANA官方注册的端口号。
  udpport694
  #表示在eth0接口上使用广播heartbeat(将eth0替换为eth1,eth2,或者您使用的任何接口)。
  bcasteth0# Linux
  #必须的。集群中机器的主机名,与“uname –n”的输出相同。
  node director
  node bkdirector
  # 必须的,当auto_failback设置为on时,一旦主节点重新恢复联机,将从从节点取回所有资源。若该选项设置为off,主节点便不能重新获得资源。该选项与废弃的nice_failback选项类似。
  auto_failback on
  # 默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。
  # 所以当网络中断时,并不会进行Load Balancer和Backup之间的切换。
  # 可以通过ipfail插件,设置’ping nodes’来解决这一问题。详细说明参考hearbeat文档。
  ping_group group1 192.168.0.160 192.168.0.225
  respawn root /usr/lib/heartbeat/ipfail
  apiauth ipfail gid=root uid=root
  hopfudge 1
  use_logd yes
  #保存并退出
  编辑 haresources 文件,haresources 文件通知 heartbeat 程序哪台机器拥有资源,资源名称实际是 /etc/init.d 或 /etc/ha.d/resource.d 目录下的脚本,Heartbeat 使用 haresources 配置文件确定它第一次启动时应该做的工作。该文件列出集群所提供的服务以及服务的默认所有者。 注意:两个集群节点上的该文件必须相同,否则BadThingsWillHappen。
  [root @ director heartbeat-2.1.2] # vi /etc/ha.d/haresources
  director lvsdr
  #设置 director 为主节点,提供的群集服务为 lvsdr, 主节点的名称要与 “uname -n” 的输出相同
  #保存并退出
  编辑 authkeys 文件,需要配置的第三个文件authkeys决定了您的认证密钥。共有三种认证方式:crc,md5,和sha1。您可能会问:“我应该用哪个方法呢?”简而言之:
  如果您的Heartbeat运行于安全网络之上,如本例中的交叉线,可以使用crc,从资源的角度来看,这是代价最低的方法。如果网络并不安全,但您也希望降低CPU使用,则使用md5。最后,如果您想得到最好的认证,而不考虑CPU使用情况,则使用sha1,它在三者之中最难破解。
  [root @ director heartbeat-2.1.2] # vi /etc/ha.d/authkeys
  auth 1
  1 crc
  # 保存并退出
  确保 authkeys 文件仅能由 root 用户读取
  [root @ director heartbeat-2.1.2] # chmod 600 /etc/ha.d/authkeys
  编辑 /etc/hosts 文件,添加两台机器的名字,做好名字到IP的对应
  [root @ director heartbeat-2.1.2] # vi /etc/hosts
  192.168.0.160director
  192.168.0.225bkdirector
  注:在备用 director 上也做相同的设置。

热点排行