http://turbomailtt.blog.51cto.com192.168.0.66 node2.example.com node2
10.0.0.4 node2
(保证机器名和参数uname -n输出一致)
#vi /etc/host.conf
order hosts,bind
#vi /etc/resolv.conf
nameserver 61.128.128.68(DNS地址如果为空可以根据当地dns输入)
node2的hosts内容如下:
ip地址 域名 机器名
192.168.0.65 node1.example.com node1
10.0.0.3 node1
192.168.0.66 node2.example.com node2
10.0.0.4 node2
(保证机器名和参数uname -n输出一致)
#vi /etc/host.conf
order hosts,bind
#vi /etc/resolv.conf
nameserver 61.128.128.68(DNS地址如果为空可以根据当地dns输入)
1.安装前的准备yum install perl*
yum install libnet*
yum install e2fsprogs
yum install pkgconfig
yum install glib2*
2.在两台电脑上分别安装heartbeat软件包。按如下顺序
1:heartbeat-gui-2.1.2-2.el4.centos.i386.rpm
2:heartbeat-pils-2.1.2-2.el4.centos.i386.rpm
3:heartbeat-stonith-2.1.2-2.el4.centos.i386.rpm
4:heartbeat-2.1.2-2.el4.centos.i386.rpm
需要的配置文件有三个:ha.cf、haresources、authkeys。这三个配置文件需要在
/etc/ha.d 目录下面,但是默认是没有这三个文件的,所以你要:
cd /usr/share/doc/heartbeat-2.1.3/
# cp ha.cf /etc/ha.d/
# cp haresources /etc/ha.d/
# cp authkeys /etc/ha.d
3.配置heartbeat 的主配置文件为:/etc/ha.d/ha.cf。
我们需要配置该文件,针对我们前面的规划,/etc/ha.d/ha.cf 文件的主要内容如下:
logfile /var/log/ha-log #指名heartbeat 的日志存放位置。
crm yes #支持ClusterResourceManager(集群资源管理)功能。
如果启用该功能,则资源配置文件为/var/lib/heartbeat/crm/cib.xml
bcast eth1 #指明心跳方式使用以太广播方式,并且是在eth1 接口上进行广播。
keepalive 2 # 指明心跳时间为2 秒(即每两秒钟在eth1 上发送一次广播)。
warntime 10 # 指明心跳延迟的时间为10 秒。当10 秒钟内备份机不能联系上主机
(当前活动的服务器,即无心跳信号),就会往日志中写入一个警告日
志,但此时不会切换服务。
deadtime 30 #指定在30 秒内没有心跳信号,则立即切换服务。
initdead 120 #在某些配置下,重启后网络需要一些时间才能正常工作。
这个单独的“deadtime” 选项可以处理这种情况。它的取值至少应该为通常 deadtime 的两倍。
udpport 694 #指定集群节点间的通讯端口
auto_failback on #当主节点恢复后,是否自动切回
node node1.clusting.com #集群中机器的主机名,与“uname –n”的输出相同。
node node2.clusting.com #
respawn hacluster /usr/lib/heartbeat/ccm #列出将要执行和监控的命令。
respawn hacluster /usr/lib/heartbeat/ipfail
ping ping1.clusting.com ping2.clusting.com #列出ping 节点。这些节点不是集群节点。他们是用来为ipfail 等模块检查网络连接情况的。
配置HA 资源/etc/ha.d/haresources
当切换资源时应该切换哪些资源,例如IP、磁盘……等。在heartbeat 中,通过
/etc/ha.d/haresources 文件来配置共享的资源,在我们的案例中,/etc/ha.d/haresources文件的主要内容如下
node1.clusting.com 192.168.0.100/24/192.168.0.254 turbomail java
#设置node1.clusting.com 为主节点,集群服务器的ip 地址为192.168.0.100 netmask:255.255.255.0 Bcast:192.168.0.254集群的服务有turbomail、java
该文件只有一行,其含义就是,当主节点node1.clusting.com 宕机时,自动启用备用节点node2.clusting.com 来提供服务,在切换到node2.clusting.com 上时,自动启动turbomail、java 服务
配置Authkeys需
要配置的第三个文件authkeys
决定了您的认证密钥。共有三种认证方式:crc,md5,和sha1。您可能会问:“我应该用哪个方法呢?”简而言之:如果您的Heartbeat
运行于安全网络之上,如本例中的交叉线,可以使用crc,从资源的角度来看,这是代价最低的方法。如果网络并不安全,但您也希望降低CPU使用,则使用
md5。最后,如果您想得到最好的认证,而不考虑CPU 使用情况,则使用sha1,它在三者之中最难破解。
/etc/ha.d/authkeys 文件的内容如下
auth 1
1 sha1 key-for-sha1-any-text-you-want
“auth 1”代表使用的索引。不论您在关键字auth 后面指定的是什么索引值,在后面必须要作为键值再次出现。如果您指定“auth 4”,则在后面一定要有一行的内容为“4
”。
“key-for-sha1-any-text-you-want”是要用来生成sha1 密码的明文字符。但是各个节点指定的相同索引的字符要相同。
更改文件的权限:
chmod 600 /etc/ha.d/authkeys
使用同样的方法配置节点2
在节点2(node2.clusting.com)上执行步骤(当然同样必须先安装heartbeat所需要的软件),节点2 上的heartbeat 的配置与节点1 要完全相同。
4.测试
在主节点(node1.clusting.com)上启动heartbeat 服务:/etc/init.d/heartbeat start。
如果不出现错误,turbomail、java 服务应该被heartbeat 启动,同时heartbeat 为主节点设置IP地址192.168.0.100。
? 使用ifconfig eth0:0 可以看到如下信息
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:D8:FD:EB
inet addr:192.168. 0.100Bcast:192.168. 0.254 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14970 errors:0 dropped:0 overruns:0 frame:0
TX packets:14977 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3624073 (3.4 Mb) TX bytes:3626223 (3.4 Mb)
Interrupt:19 Base address:0x10a0
在node2(node2.clusting.com)上启动heartbeat:/etc/init.d/heartbeat start。 使用
ifconfig eth0:0 可以看到如下信息:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:E4:1E:F7
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x10a0
表明现在node2 节点没有被启用。
直接关闭节点1 的电源(模拟故障)。 30 秒后(deadtime 指定的时间),在节点2 (node2.clusting.com) 上执行ifconfig eth0:0, 可以看
到eth0:0 已经被设置为192.168.0.100
阅读(1687) | 评论(0) | 转发(0) |