全部博文(124)
分类: LINUX
2010-05-29 12:53:26
18.6 配置Heartbeat
18.6.1 配置主节点的Heartbeat
Heartbeat的主要配置文件有ha.cf、haresources和authkeys。在Heartbeat安装后,默认并没有这3个文件, 可以从官方网站下载得到,也可以直接从解压的源码目录中找到。在上面的安装过程中,我们已经将这3个文件放到了/etc/ha.d目录下,下面分别详细介 绍。
1.主配置文件(/etc/ha.d/ha.cf)
下面对ha.cf文件的每个选项进行详细介绍,其中"#"号后面的内容是对选项的注释说明。
- #debugfile /var/log/ha-debug
- logfile /var/log/ha-log #指名heartbeat的日志存放位置。
- #crm yes #是否开启Cluster Resource Manager(集群资源管理)功能。
- bcast eth1 #指明心跳使用以太网广播方式,并且是在eth1接口上进行广播。
- keepalive 2 #指定心跳间隔时间为2秒(即每2秒钟在eth1上发送一次广播)。
- deadtime 30 #指定若备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源。
- warntime 10 #指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的
心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。- initdead 120 #在某些系统上,系统启动或重启之后需要经过一段时间网络才
能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。- udpport 694 #设置广播通信使用的端口,694为默认使用的端口号。
- baud 19200 #设置串行通信的波特率。
- #serial /dev/ttyS0 #选择串行通信设备,用于双机使用串口线连接的情况。
如果双机使用以太网连接,则应该关闭该选项。- #ucast eth0 192.168.1.2 #采用网卡eth0的udp单播来组织心跳,后面跟的
IP地址应为双机对方的IP地址。- #mcast eth0 225.0.0.1 694 1 0 #采用网卡eth0的Udp多播来组织心跳,
一般在备用节点不止一台时使用。Bcast、ucast和mcast分别代表广播、单播
和多播,是组织心跳的三种方式,任选其一即可。- auto_failback on #用来定义当主节点恢复后,是否将服务自动切回。
heartbeat的两台主机分别为主节点和备份节点。主节点在正常情况下占用资源
并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该
选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点;
如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。- #stonith baytech /etc/ha.d/conf/stonith.baytech # stonith的主
要作用是使出现问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争
用一个资源的情形发生。保证共享数据的安全性和完整性。- #watchdog /dev/watchdog #该选项是可选配置,是通过Heartbeat来监控系统的运
行状态。使用该特性,需要在内核中载入"softdog"内核模块,用来生成实际的设备文件,
如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。编译完成输入
"insmod softdog"加载该模块。然后输入"grep misc /proc/devices"(应为10),
输入"cat /proc/misc |grep watchdog"(应为130)。最后,生成设备文件:
"mknod /dev/watchdog c 10 130" 。即可使用此功能。- node node1 #主节点主机名,可以通过命令"uanme -n"查看。
- node node2 #备用节点主机名。
- ping 192.168.60.1 #选择ping的节点,ping节点选择的越好,HA集群就越强壮,
可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,
ping节点仅仅用来测试网络连接。- respawn hacluster /usr/lib/heartbeat/ipfail #该选项是可选配置,列出与
heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程
遇到故障可以自动重新启动。最常用的进程是ipfail,此进程用于检测和处理网络故障,
需要配合ping语句指定的ping node来检测网络的连通性。其中hacluster表示启动ipfail进程的身份。
2.资源文件(/etc/ha.d/haresources)
Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动服务等集群资源。 文件每一行可以包含一个或多个资源脚本名; 资源之间使用空格隔开; 参数之间使用::隔开。 在两个HA节点上该文件必须完全一致,此文件的一般格式为:node-name表示主节点的主机名,必须和ha.cf文件中指定的节点名一致。 network用于设定集群的IP地址、子网掩码和网络设备标识等。需要注意的是,这里指定的IP地址就是集群对外服务的IP地址 resource-group用来指定需要Heartbeat托管的服务,这些服务可以由Heartbeat来启动和关闭。如果要托管这些服务,就必须将服务写成可以通过start/stop来启动和关闭的脚步,然后放到/etc /init.d/或者/etc/ha.d/resource.d/目录下,Heartbeat会根据脚本的名称自动去/etc/init.d或者/etc /ha.d/resource.d/目录下找到相应脚步进行启动或关闭操作。
- node-name network <resource-group>
其中,node1是HA集群的主节点,IPaddr和Filesystem为heartbeat自带的脚本,“::”后的部分作为脚本的参数,多参数之间使用::分隔。 Heartbeat首先将执行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start的操作,此操作虚拟出一个子网掩码为255.255.255.0,IP为192.168.60.200的地址。该IP为Heartbeat对外提供服务的网络地址,同时指定此IP使用的网络接口为eth0。 接着,Heartbeat将执行共享磁盘分区的挂载操作,"Filesystem::/dev/sdb5::/webdata::ext3"相当于在命令行下执行mount操作,即"mount -t ext3 /dev/sdb5 /webdata",最后依次启动httpd和Tomcat服务。 注意主节点和备份节点中资源文件haresources要完全一样。
- node1 IPaddr::192.168.60.200/24/eth0/ Filesystem::
/dev/sdb5::/webdata::ext3 httpd tomcat
3.认证文件(/etc/ha.d/authkeys)
authkeys文件用于设定Heartbeat的认证方式,共有3种可用的认证方式,即 crc、md5和sha1。3种认证方式的安全性依次提高,但是占用的系统资源也依次增加。如果Heartbeat集群运行在安全的网络上,可以使用 crc方式;如果HA每个节点的硬件配置很高,建议使用sha1,这种认证方式安全级别最高;如果是处于网络安全和系统资源之间,可以使用md5认证方 式。这里我们使用crc认证方式,设置如下:
- auth 1
- 1 crc
- #2 sha1 sha1_any_password
- #3 md5 md5_any_password
需要说明的一点是:无论auth后面指定的是什么数字,在下一行必须作为关键字再次出现,例如指定了"auth 6",下面一定要有一行"6 认证类型"。
最后确保这个文件的权限是600(即-rw-------)。