双机热备hearbeat

两个机器, 都是centos6.5网卡eth1 ip如下
master   192.168.11.24
slave  192.168.11.23

1. hostname 设置好分别为aming  和 aming1 
2. 关闭防火墙 iptables -F;  
    关闭selinux setenforce 0
3. vi /etc/hosts   // 增加内容如下  
master   192.168.11.24
slave  192.168.11.23


4. 安装epel扩展源
rpm -ivh  'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm'
5. 两个机器都安装heartbeat / libnet
yum  install -y heartbeat*   libnet  nginx

6.  主上aming配置
cd /usr/share/doc/heartbeat-3.0.4/
cp  authkeys  ha.cf haresources   /etc/ha.d/
cd /etc/ha.d
vi  authkeys  //加入
3 md5 Hello! (这里注意需要把上面的auth 后的序号写成3并且把前面的#去掉)

chmod 600 authkeys


vi  haresources  //加入
master 192.168.11.10/24/eth1:0 nginx   


vi  ha.cf   //改为如下内容
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth1 192.168.11.23
auto_failback on  (主动拿回VIP)
node    master
node    slave
ping 192.168.11.1
respawn hacluster /usr/lib/heartbeat/ipfail


7.  把主上的三个配置拷贝到从上
cd /etc/ha.d/
scp  authkeys  ha.cf haresources   aming1:/etc/ha.d/

8. 到从上(aming1) 编辑ha.cf
vi  /etc/ha.d/ha.cf   //只需要更改一个地方
ucast eth1 192.168.11.23 改为   ucast eth1 192.168.11.24  

9.  启动heartbeat : 
先主后从
service heartbeat start

10. 检查测试 
ifconfig 看是否有 eth1:0
ps aux |grep nginx  看是否有nginx进程

11.  测试1
主上故意禁ping
iptables -I INPUT -p icmp -j DROP

12. 测试2
主上停止heartbeat服务
service heartbeat stop 


在实验的过程中出现了脑裂的现象查看是因为防火墙的问题引入一篇文章以便于参考

http://www.linuxidc.com/Linux/2015-02/112668.htm  iptables导致Heartbeat脑裂



以下是用源码的方式做heartbeat的实验

双机热备开源软件Heartbeat
1  Heartbeat安装与配置
2  Heartbeat启动与测试
双机热备软件keepalived
1  keepalived安装与配置
2  keepalived启动与测试

1. Heartbeat安装与配置
192.168.150.87  主节点
192.168.150.88  备节点
192.168.150.118  VIP

Heartbeat安装与配置

两种方式 yum install 或者源码安装建议使用yum
#安装依赖软件libnet
[root@CentOS ha]# tar xvf libnet-1.1.6.tar.gz 
[root@CentOS ha]# cd libnet-1.1.6
[root@CentOS libnet-1.1.6]# make
[root@CentOS libnet-1.1.6]# make install
#安装依赖软件libxml
[root@CentOS ha]# tar xvf libxml2-2.7.7.tar.gz
[root@CentOS ha]# cd libxml2-2.7.7
[root@CentOS libxml2-2.7.7]# ./configure 
[root@CentOS libxml2-2.7.7]# make
[root@CentOS libxml2-2.7.7]# make install
#安装Heartbeat软件经过系统检查、编译和安装3个步骤
[root@CentOS ha]# useradd  hacluster
[root@CentOS ha]# groupadd  haclient
[root@CentOS ha]# tar xvf Heartbeat-2-1-STABLE-2.1.4.tar.bz2
[root@CentOS ha]# cd  Heartbeat-2-1-STABLE-2.1.4]
[root@CentOS Heartbeat-2-1-STABLE-2.1.4]# ./ConfigureMe  configure
[root@CentOS Heartbeat-2-1-STABLE-2.1.4]# make
[root@CentOS Heartbeat-2-1-STABLE-2.1.4]# make install
2两个节点配置/etc/hosts
配置HA需要的hosts其中主机名需要与“hostname”输出相同。主备节点需要做同样设置。如示例18-3所示。
【示例18-3】
[root@LD_192_168_150_87 ~]# cat /etc/hosts
192.168.150.87 LD_192_168_150_87
192.168.150.88 LD_192_168_150_88

3配置/etc/ha.d/ha.cf
ha.cf为HA的主配置文件可以在源代码包里找到主要用户指定通信方式心跳间隔及故障接管策略等两个节点内容设置一样如示例18-4所示。
[root@LD_192_168_150_87 ~]#  cat /etc/ha.d/ha.cf # heartbeat 的日志存放位置
logfile /var/log/ha-log
#利用系统日志系统打印日志
logfacility     local0
#指明心跳时间为1秒即每1秒钟发送一次广播
keepalive 1
#指定在10秒内没有心跳信号则立即切换服务
deadtime 10
#当5秒钟内备份机不能联系上主机则写警告日志
warntime 5 
#在某些配置下重启后网络需要一些时间才能正常工作登台系统初始化完成
initdead 20
#指明心跳方式使用以太广播方式并且是在eth1接口上进行广播
bcast eth1
#指定集群节点间的通讯端口
udpport 10694
#当主节点恢复后是否自动切回
auto_failback  no
#集群中机器的主机名与“hostname”的输出相同
node LD_192_168_150_87
node LD_192_168_150_88
除以上设置外HA支持其他丰富的设置更多信息可参考帮助文档。
4配置/etc/ha.d/haresources
此文件可以在源代码包里找到主要用于指定资源接管时涉及的主要资源如IP资源WEB服务共享存储等还可以是其他可以执行“start”和“stop”的脚本。更多的帮助可以参考源码包里的haresources文件。
【示例18-5】
vim /etc/ha.d # cat haresource最后加上
LD_192_168_150_87 192.168.150.118
。以上配置的含义为当主节点LD_192_168_150_87故障时启动接管主节点的VIP资源以便正常提供服务两个节点设置一样。
5配置/etc/ha.d/authkeys 
【示例18-6】
[root@LD_192_168_150_87 ~]# cat  /etc/ha.d/authkeys
auth 1
1 crc
#更改文件的权限
[root@LD_192_168_150_87 ~]#  chmod 600 /etc/ha.d/authkeys

Heartbeat启动与测试
经过上面的配置HA服务已经配置完成需要分别在两个节点上启动HA服务启动后可以用ps命令查看是否启动成功启动过程如示例18-7所示。
【示例18-7】
[root@LD_192_168_150_87 resource.d]#  service heartbeat  start
#启动后使用ps命令查看是否启动成功[root@LD_192_168_150_87 resource.d]# ps -ef|grep heartbeat
root     15137 15075  0 16:11 pts/3    00:00:00 grep heartbeat
root     19726     1  0  2012 ?        00:02:08 heartbeat: master control process
nobody   19728 19726  0  2012 ?        00:00:00 heartbeat: FIFO reader        
nobody   19729 19726  0  2012 ?        00:07:32 heartbeat: write: ucast eth0 
nobody   19730 19726  0  2012 ?        00:10:57 heartbeat: read: ucast eth0  
[root@LD_192_168_150_87 Heartbeat-2-1-STABLE-2.1.4]# ifconfig
启动后正常情况下VIP设置在主节点192.168.150.87上。如主节点故障则备节点自动接管服务方法可以停止heartbeat进程或直接重启主节点然后观察备节点是否接管了主机的资源测试过程示例18-8所示。
【示例18-8】
#主节点执行重启操作
[root@LD_192_168_150_87 ~]# reboot
#到备节点查看资源接管情况
[root@LD_192_168_150_88 ha.d]# ifconfig
#日志内容
eartbeat[15223]: 2013/06/16_04:42:33 info: Received shutdown notice from 'ld_192_168_150_87'.
heartbeat[15223]: 2013/06/16_04:42:33 info: Resources being acquired from ld_192_168_150_87.
#资源接管
ResourceManager[15382]: 2013/06/16_04:42:34 info: Running /etc/ha.d/resource.d/IPaddr 192.168.150.118 start
#VIP设置在eth0:0接口
IPaddr[15485]:  2013/06/16_04:42:34 INFO: eval ifconfig eth0:0 192.168.150.118 netmask 255.255.255.0 broadcast 192.168.150.255
#资源接管完成
heartbeat[15223]: 2013/06/16_04:42:34 info: mach_down takeover complete.
当主节点故障时备节点收不到主节点的心跳请求超过了设置了时间后备节点启用资源接管程序上述示例中说明VIP已经被备节点成功接管查看方法如示例18-9所示。
【示例18-9】
[root@LD_192_168_150_88 ha.d]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:7F:08:9D  
          inet addr:192.168.150.88  Bcast:192.168.150.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe7f:89d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19718 errors:0 dropped:0 overruns:0 frame:0
          TX packets:33064 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3473234 (3.3 MiB)  TX bytes:9879319 (9.4 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:7F:08:9D  
          inet addr:192.168.150.118  Bcast:192.168.150.255  Mask:25 
经过上面的测试HA已经正常工作其他故障情况下的资源接管情况可根据实际情况进行测试。


你可能感兴趣的:(防火墙,master,网卡,share)