Rootop 服务器运维与web架构

heartbeat3.0安装配置测试过程

heartbeat每台机器需要2块网卡,第二块用于心跳检测,用网线直连。
系统信息:
主机名     系统版本               物理IP                   心跳接口IP
primary centos6.5×64  eth0 192.168.0.175  eth1 10.10.10.1
backup  centos6.5×64  eth0 192.168.0.176   eth1 10.10.10.2

虚拟IP(VIP): 192.168.0.177 提供服务
iptables 关闭,selinux关闭。

实现目标:
用heartbeat对apache进行高可用管理,首先yum安装httpd,添加测试页。

primary:
echo primary > /var/www/html/index.html
backup:
echo backup > /var/www/html/index.html

关闭两台机器的httpd服务。由heartbeat控制服务状态。

primary配置:

修改两台机器的host文件加入主机名和ip映射:

192.168.0.175 primary
192.168.0.176 backup

安装heartbeat:

[root@primary ~]# yum install -y epel-* #epel源
[root@primary ~]# yum install -y heartbeat

默认会安装到/etc/ha.d/下,需要三个配置文件ha.cf、haresources、authkeys。
这三个配置文件不会被创建,需要从/usr/share/doc/heartbeat-3.0.4/下拷贝过去。

[root@primary ha.d]# cp /usr/share/doc/heartbeat-3.0.4/ha.cf .
[root@primary ha.d]# cp /usr/share/doc/heartbeat-3.0.4/haresources .
[root@primary ha.d]# cp /usr/share/doc/heartbeat-3.0.4/authkeys .

配置ha.cf:

logfacility local0 # 日志记录等级
keepalive 1 #心跳频率,2表示2秒;200ms则表示200毫秒
deadtime 5 #节点死亡时间,就是过了10秒后还没有收到心跳就认为主节点死亡
warntime 10 #告警时间
initdead 30 #初始化时间
udpport 694 #心跳信息传递的udp端口
ucast eth1 10.10.10.2 #在eth1接口采用udp单播来通知备份机(10.10.10.2)心跳信息
auto_failback off #如果主节点重新恢复,主节点将抢占资源恢复服务,如果为off,则只当备用节点当掉后,主节点恢复
watchdog /dev/watchdog #如果本节点在超过1分钟后还没有发出心跳,那么本节点自动重启
node primary #主节点名称,与主机名一致
node backup #备用节点名称
ping 10.10.10.254 #通过ping来监测心跳是否正常

配置haresources:

primary IPaddr::192.168.0.177/24/eth0 httpd

配置authkeys(身份认证,主备必须一样):

auth 3
3 md5 hello

修改authkeys权限:

[root@primary ha.d]# chmod 600 authkeys

把三个配置文件复制到备份机上:

[root@primary ha.d]# scp ha.cf haresources authkeys root@192.168.0.176:/etc/ha.d/
root@192.168.0.176's password:
ha.cf 100% 10KB 10.3KB/s 00:00
haresources 100% 5950 5.8KB/s 00:00
authkeys 100% 665 0.7KB/s 00:00

修改备份机的ha.cf中ucast参数。

ucast eth1 10.10.10.1 #把10.2改为10.1,在eth1接口采用udp单播来通知主机(10.10.10.1)心跳信息

两台机器,启动heartbeat服务:

[root@primary ha.d]# /etc/init.d/heartbeat start
[root@backup ha.d]# /etc/init.d/heartbeat start

查看状态:
主:

[root@primary ~]# /etc/init.d/heartbeat status
heartbeat OK [pid 5142 et al] is running on primary [primary]...
[root@primary ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:bf:77:dc brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.175/24 brd 192.168.0.255 scope global eth0
 inet 192.168.0.177/24 brd 192.168.0.255 scope global secondary eth0
 inet6 fe80::250:56ff:febf:77dc/64 scope link
 valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:bf:69:87 brd ff:ff:ff:ff:ff:ff
 inet 10.10.10.1/16 brd 10.10.255.255 scope global eth1
 inet6 fe80::250:56ff:febf:6987/64 scope link
 valid_lft forever preferred_lft forever

备:

[root@backup ~]# /etc/init.d/heartbeat status
heartbeat OK [pid 7724 et al] is running on backup [backup]...
[root@backup ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:bf:09:c7 brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.176/24 brd 192.168.0.255 scope global eth0
 inet6 fe80::250:56ff:febf:9c7/64 scope link
 valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:bf:38:29 brd ff:ff:ff:ff:ff:ff
 inet 10.10.10.2/16 brd 10.10.255.255 scope global eth1
 inet6 fe80::250:56ff:febf:3829/64 scope link
 valid_lft forever preferred_lft forever

关闭primary的服务,查看备机,vip已发生漂移,并且httpd服务跟随启动。

PS:
haresources配置文件详解(转自网络):

haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源。
文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致

此文件的一般格式为:
node-name network <resource-group>
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/目录下找到相应脚步进行启动或关闭操作。

下面对配置方法进行具体说明:

node1 IPaddr::192.168.60.200/24/eth0/ Filesystem:: /dev/sdb5::/webdata::ext3 httpd tomcat
其中,node1是HA集群的主节点,IPaddr为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要完全一样

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3263.html

作者:Venus

专注于 服务器运维与web架构 E-mail:venus#rootop.org

评论已关闭。