天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

Linux上的heartbeat双机热备服务架设

2008-4-8赛迪网佚名

  【一】 安装前环境设定

  

  两台主机硬件环境(不必完全一致):

  CPU: Xeon 3G *2 (EM64T)

  MEM: 2G

  NIC: Intel 1G *2

  eth0: 对外IP

  eth1: 对内IP(HA专用)

  两台主机的eth1使用双机对联线直接连接。

  分区方式:

  Filesystem 容量 挂载点

  /dev/sda2 9.7G /

  /dev/sda6 45G /Datas

  /dev/sda1 99M /boot

  none2.0G /dev/shm

  /dev/sda3 9.7G /opt

  另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。

  操作系统:

  RedHat Enterprise 4 Update2 (2.6.9-22 EL)

  预安装软件:

  @ X Window System

  @ GNOME Desktop Environment

  @ KDE Desktop Environment

  @ Editors

  @ Engineering and Scientific

  @ Graphical Internet

  @ Text-based Internet

  @ Authoring and Publishing

  @ Server Configuration Tools

  @ Development Tools

  @ Kernel Development

  @ X Software Development

  @ GNOME Software Development

  @ KDE Software Development

  @ Administration Tools

  @ System Tools

  

  【二】安装前网络环境设定:

  

  node1: 主机名:servers201 ( HA01 )

  eth0: 192.168.10.201 //对外IP地址

  eth1: 10.0.0.201 //HA心跳使用地址

  node2: 主机名:servers202 ( HA02 )

  eth0: 192.168.10.202 //对外IP地址

  eth1: 10.0.0.202 //HA心跳使用地址

  特别注意要检查以下几个文件:

  /etc/hosts

  /etc/host.conf

  /etc/resolv.conf

  /etc/sysconfig/network

  /etc/sysconfig/network-scripts/ifcfg-eth0

  /etc/sysconfig/network-scripts/ifcfg-eth1

  /etc/nsswitch.conf

  #vi /etc/hosts

  node1的hosts内容如下:

  127.0.0.1 localhost.localdomain localhost

  192.168.10.201 servers201 HA01

  10.0.0.201 HA01

  10.0.0.202 HA02

  192.168.10.202 server202

  node2的hosts内容如下:

  127.0.0.1 localhost.localdomain localhost

  192.168.10.202 servers202 HA02

  10.0.0.202 HA02

  10.0.0.201 HA01

  192.168.10.201 server201

  #cat /etc/host.conf

  order hosts,bind

  #cat /etc/resolv.conf

  nameserver 61.139.2.69 //DNS地址

  #cat /etc/sysconfig/network

  NETWORKING=yes

  HOSTNAME=servers201 //主机名

  GATEWAY="192.168.10.1" //网关

  GATEWAY="eth0" //网关使用网卡

  ONBOOT=YES //启动时加载

  FORWARD_IPV4="yes" //只允许IPV4

  #cat /etc/sysconfig/network-scripts/ifcfg-eth0

  DEVICE=eth0

  ONBOOT=yes

  BOOTPROTO=static

  IPADDR=192.168.10.201

  NETMASK=255.255.255.0

  GATEWAY=192.168.10.1

  TYPE=Ethernet

  IPV6INIT=no

  #cat /etc/sysconfig/network-scripts/ifcfg-eth1

  DEVICE=eth1

  ONBOOT=yes

  BOOTPROTO=none

  IPADDR=10.0.0.201

  NETMASK=255.255.255.0

  TYPE=Ethernet

  [node1] 与 [node2] 在上面的配置中,除了

  /etc/hosts

  /etc/sysconfig/network

  /etc/sysconfig/network-scripts/ifcfg-eth0

  /etc/sysconfig/network-scripts/ifcfg-eth1

  要各自修改外,其他一致。

  配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:

  /root#ping HA02

  PING HA02 (10.0.0.202) 56(84) bytes of data.

  64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms

  64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms

  64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms

  --- HA02 ping statistics ---

  3 packets transmitted, 3 received, 0% packet loss, time 2002ms

  rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2

  

  【三】安装HA 与HA依赖包

  

  rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不装

  rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm

  rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm

  rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm

  rpm -Uvh ipvsadm-1.24-5.i386.rpm

  

  

  【四】 配置 HA的各配置文件

  

  ---------------------------

  配置心跳的加密方式:authkeys

  ---------------------------

  #vi /etc/ha.d/authkeys

  如果使用双机对联线(双绞线),可以配置如下:

  #vi /etc/hc.d/authkeys

  auth 1

  1 crc

  存盘退出,然后

  #chmod 600 authkeys

  ---------------------------

  配置心跳的监控:haresources

  ---------------------------

  #vi /etc/ha.d/haresources

  各主机这部分应完全相同。

  server201 IPaddr::192.168.10.200 ipvsadm httpd

  指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 192.168.10.200 给eth0:0

  这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 192.168.10.200给server202的eth0:0

  ---------------------------

  配置心跳的配置文件:ha.cf

  ---------------------------

  #vi /etc/ha.d/ha.cf

  logfile /var/log/ha_log/ha-log.log ## ha的日志文件记录位置。如没有该目录,则需要手动添加

  bcast eth1 ##使用eth1做心跳监测

  keepalive 2 ##设定心跳(监测)时间时间为2秒

  warntime 10

  deadtime 30

  initdead 120

  hopfudge 1

  udpport 694 ##使用udp端口694 进行心跳监测

  auto_failback on

  node server201 ##节点1,必须要与 uname -n 指令得到的结果一致。

  node server202 ##节点2

  ping 192.168.10.1 ##通过ping 网关来监测心跳是否正常。

  respawn hacluster /usr/lib64/heartbeat/ipfail

  apiauth ipfail gid=root uid=root

  debugfile /Datas/logs/ha_log/ha-debug.log

  ---------------------------

  设置ipvsadm的巡回监测

  ---------------------------

  ipvsadm -A -t 192.168.10.200:80 -s rr

  ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m

  ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m

  执行后进行监测:

  #ipvsadm --list

  如果返回结果与下相同,则设置正确。

  IP Virtual Server version 1.2.0 (size=4096)

  Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

  TCP 192.168.10.200:http rr

  -> server202:http Local 1 0 0

  -> server201:http Masq 1 0 0

  

  【五】 HA服务的启动、关闭以及测试

  

  启动HA: service heartbeat start

  关闭HA; service heartbeat stop

  系统在启动时已经自动把heartbeat 加载了。

  使用http服务测试 heartbeat

  首先启动httpd服务

  #service httpd start

  编辑各自主机的测试用html文件,放到/var/www/html/目录下。

  启动node1的heartbeat,并执行这个指令进行监控: heartbeat status

  

  【六】 防火墙设置

  

  heartbeat 默认使用udp 694端口进行心跳监测。 如果系统有使用iptables 做防火墙,应记住把这个端口打开。

  #vi /etc/sysconfig/iptables

  加入以下内容

  -A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT

  意思是udp 694端口对 对方的心跳网卡地址 10.0.0.201 开放。

  #service iptables restart

  重新加载iptables。

  

  说明:本文于2006-10月间大体完成。期间在2台Server和2个虚拟机上均测试通过。但在写下这个文档的时候,因粗心而忘记了第五步骤里的[监控指令]了! 并且2台服务器也分别另作他用;系统重装又失去了虚拟机,所以无从再次验证。文中所说"并执行这个指令进行监控: heartbeat status"有可能有出入。具体修正,得等什么时候对服务器进行实际操作或者重装2个虚拟机,或找网络上其他文档

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:赛迪网 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行