免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7878 | 回复: 11
打印 上一主题 下一主题

[BE/BESR] linux上的 heartbeat 双机热备服务架设 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-06 15:29 |只看该作者 |倒序浏览
linux上的 heartbeat 双机热备服务架设


http://Camor.cublog.cn


【一】 安装前环境设定
==========================================================
两台主机硬件环境(不必完全一致):
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个虚拟机,或找网络上其他文档。
引此为戒!

论坛徽章:
0
2 [报告]
发表于 2007-04-07 10:10 |只看该作者
好文。

论坛徽章:
0
3 [报告]
发表于 2007-04-07 13:33 |只看该作者
真不明白为什么那么多人喜欢用REDHAT,国内用debian的真的就那么少吗?

论坛徽章:
0
4 [报告]
发表于 2007-04-09 13:58 |只看该作者
呵呵~~顶你一个,debian包是好用,各人有各人的喜好啰~~

论坛徽章:
0
5 [报告]
发表于 2007-04-10 10:08 |只看该作者
Linux下的双机软件有很多,第三方的易用性更好,可能功能还更多。
例如GDS for Linux
jieli 该用户已被删除
6 [报告]
发表于 2007-04-10 17:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2007-04-11 14:03 |只看该作者
我靠,楼主在瞎写啊.
我一起在其他网站看过这个文章啊,人家配置的是负载均衡的集群.呵呵,你改改IP就成了HA集群了?好笑!

ipvsadm -A -t 192.168.10.200:80 -s rr                                          ----这是说这个地址的80端口的请求是转发给其他地址的.方式是轮询(以前看到文章就是web server提供负载均衡,所以是80这个端口)
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

建议搞清楚HA和Loading balance集群的区别.另外请注明转载

论坛徽章:
0
8 [报告]
发表于 2007-06-07 18:22 |只看该作者
偶尔回来逛逛,还没注意到这里有个有火气的? 呵呵

烦请你老兄把你看到过的这个文章url 贴上来看看? 顺便问问管理员从何处何时转贴? Camor感激不尽,呵呵

拜托你认真点好不好。。。

招聘 : Linux运维
论坛徽章:
0
9 [报告]
发表于 2007-06-08 09:16 |只看该作者
server201 IPaddr::192.168.10.200 ipvsadm httpd

测试环境

[ 本帖最后由 天涯明月刀 于 2007-6-8 09:19 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-12-05 17:00 |只看该作者
文章整理得不错,就是不知道质量怎样,有时间做下实验
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP