heartbeat工作原理:本次实验,使用广播地址
225.0.0.11 694作为heartbeat的网络心跳地址,heartbeat通过网络心跳监测对端服务是否正常,
通过
/etc/ha.d/ha.cf 文件的
deadtime参数判断对端服务中断,通过参数auto_failback参数控制资源失败自动接管,从而完成httpd服务的双机互备。
两台主机(一台是rhel6.4 arbiter,一台是centos6.8 mymongo1)
一、两台主机的基本信息,重点是hosts文件的IP地址主机名解析
[root@mymongo1 ~]# uname -a
Linux mymongo1 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@mymongo1 ~]# hostname
mymongo1
[root@mymongo1 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6
192.168.144.111 arbiter
192.168.144.132 mymongo1
[root@mymongo1 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:40:94:8E
inet addr:192.168.199.131 Bcast:192.168.199.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe40:948e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46 errors:0 dropped:0 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4219 (4.1 KiB) TX bytes:3299 (3.2 KiB)
eth1 Link encap:Ethernet HWaddr 00:0C:29:40:94:98
inet addr:192.168.144.132 Bcast:192.168.144.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe40:9498/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1890 errors:0 dropped:0 overruns:0 frame:0
TX packets:1800 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:253127 (247.1 KiB) TX bytes:252326 (246.4 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:576 (576.0 b) TX bytes:576 (576.0 b)
[root@mymongo1 ~]#
[root@arbiter ~]# hostname
arbiter
[root@arbiter ~]# uname -a
Linux arbiter 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@arbiter ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6
192.168.144.111 arbiter
192.168.144.132 mymongo1
[root@arbiter ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:50:56:3E:FE:CF
inet addr:192.168.199.128 Bcast:192.168.199.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe3e:fecf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:85 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9437 (9.2 KiB) TX bytes:2719 (2.6 KiB)
eth1 Link encap:Ethernet HWaddr 00:50:56:21:CF:3E
inet addr:192.168.144.111 Bcast:192.168.144.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe21:cf3e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2992 errors:0 dropped:0 overruns:0 frame:0
TX packets:3054 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:348131 (339.9 KiB) TX bytes:423727 (413.7 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)
[root@arbiter ~]#
二、heartbeat的安装,rhel和centos安装不一样,先安装centos机器的heartbeat
注意:
最少保证2台主机中的centos主机能够上网,centos安装Heartbeats,通过yum方式网络安装
1、首先下载epel-release-6-8.noarch.rpm
wget http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@mymongo1 ~]# ls
amoeba Documents install.log mysql-5.6.36.tar.gz Pictures Videos
anaconda-ks.cfg Downloads install.log.syslog mysql-proxy-0.8.2 Public
arbiter
epel-release-6-8.noarch.rpm lua-5.1.4 mysql-proxy-0.8.2.tar.gz Templates
cmake-2.8.10.2.tar.gz glib-2.22.5 lua-5.1.4.tar.gz mysql-proxy-0.8.5 test1.sh
Desktop glib-2.22.5.tar Music mysql-proxy-0.8.5.tar.gz test.sh
[root@mymongo1 ~]#
--安装epel,其实是安装yum源
rpm -ivh
epel-release-6-8.noarch.rpm
[root@mymongo1 yum.repos.d]# pwd
/etc/yum.repos.d
[root@mymongo1 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo
epel.repo epel-testing.repo
[root@mymongo1 yum.repos.d]#
[root@mymongo1 yum.repos.d]# cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[root@mymongo1 yum.repos.d]#
[root@mymongo1 yum.repos.d]# cat epel-testing.repo
[epel-testing]
name=Extra Packages for Enterprise Linux 6 - Testing - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/testing/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-testing-debuginfo]
name=Extra Packages for Enterprise Linux 6 - Testing - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/testing/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-testing-source]
name=Extra Packages for Enterprise Linux 6 - Testing - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/testing/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[root@mymongo1 yum.repos.d]#
--调整yum的配置文件,缓存本次heartbeat安装需要的依赖包
[root@mymongo1 etc]# cat yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
[root@mymongo1 etc]#
--使用yum工具安装heartbeat
yum -y install heartbeat
安装完成后heartbeat的缓存目录
[root@mymongo1 ~]# find / -name heartbeat*.rpm
/var/cache/yum/x86_64/6/epel/packages/
heartbeat-3.0.4-2.el6.x86_64.rpm
/var/cache/yum/x86_64/6/epel/packages/
heartbeat-libs-3.0.4-2.el6.x86_64.rpm
[root@mymongo1 ~]#
[root@mymongo1 ~]# cd /var/cache/yum/x86_64/6/base/packages/
[root@mymongo1 packages]# ll
total 2060
-rw-r--r--. 1 root root 66344 Jul 24 2015 cifs-utils-4.8.1-20.el6.x86_64.rpm
-rw-r--r--. 1 root root 72744 Jun 24 2012 cluster-glue-1.0.5-6.el6.x86_64.rpm
-rw-r--r--. 1 root root 119096 Jun 24 2012 cluster-glue-libs-1.0.5-6.el6.x86_64.rpm
-rw-r--r--. 1 root root 40152 Oct 17 2014 keyutils-1.4-5.el6.x86_64.rpm
-rw-r--r--. 1 root root 23488 Sep 25 2011 libgssglue-0.1-11.el6.x86_64.rpm
-rw-r--r--. 1 root root 343900 Mar 23 08:00 nfs-utils-1.2.3-75.el6.x86_64.rpm
-rw-r--r--. 1 root root 72268 Mar 23 08:02 nfs-utils-lib-1.1.5-13.el6.x86_64.rpm
-rw-r--r--. 1 root root 38264 Oct 17 2014 perl-TimeDate-1.16-13.el6.noarch.rpm
-rw-r--r--. 1 root root 913840 Jul 2 2011 PyXML-0.8.4-19.el6.x86_64.rpm
-rw-r--r--. 1 root root 398016 Mar 24 06:25 resource-agents-3.9.5-46.el6.x86_64.rpm
[root@mymongo1 packages]#
2、在rhel机器上arbiter安装heartbeat,方法是将centos机器mymongo1上的heartbeat包及其依赖包scp到arbiter机器上,
使用rpm -ivh方式安装,安装过程(安装过程中需要其他依赖的rpm包,可以挂载centos cd1镜像到arbiter上找到安装即可):
[root@arbiter heartbeat]# ls
cifs-utils-4.8.1-20.el6.x86_64.rpm keyutils-libs-1.4-5.el6.x86_64.rpm perl-TimeDate-1.16-13.el6.noarch.rpm
cluster-glue-1.0.5-6.el6.x86_64.rpm libevent-1.4.13-4.el6.x86_64.rpm python-argparse-1.2.1-2.1.el6.noarch.rpm
cluster-glue-libs-1.0.5-6.el6.x86_64.rpm libgssglue-0.1-11.el6.x86_64.rpm PyXML-0.8.4-19.el6.x86_64.rpm
heartbeat-3.0.4-2.el6.x86_64.rpm libtirpc-0.2.1-11.el6.x86_64.rpm resource-agents-3.9.5-46.el6.x86_64.rpm
heartbeat-libs-3.0.4-2.el6.x86_64.rpm nfs-utils-1.2.3-75.el6.x86_64.rpm rpcbind-0.2.0-12.el6.x86_64.rpm
keyutils-1.4-5.el6.x86_64.rpm nfs-utils-lib-1.1.5-13.el6.x86_64.rpm
[root@arbiter heartbeat]# rpm -ivh PyXML-0.8.4-19.el6.x86_64.rpm
warning: PyXML-0.8.4-19.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:PyXML ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh perl-TimeDate-1.16-13.el6.noarch.rpm
warning: perl-TimeDate-1.16-13.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:perl-TimeDate ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh cifs-utils-4.8.1-20.el6.x86_64.rpm keyutils-1.4-5.el6.x86_64.rpm keyutils-libs-1.4-5.el6.x86_64.rpm
warning: cifs-utils-4.8.1-20.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
file /lib64/libkeyutils.so.1.3 from install of keyutils-libs-1.4-5.el6.x86_64 conflicts with file from package keyutils-libs-1.4-4.el6.x86_64
[root@arbiter heartbeat]# rpm -qa|grep keyutils-libs
keyutils-libs-1.4-4.el6.x86_64
[root@arbiter heartbeat]# rpm -e keyutils-libs
error: Failed dependencies:
libkeyutils.so.1()(64bit) is needed by (installed) krb5-libs-1.10.3-10.el6.x86_64
libkeyutils.so.1(KEYUTILS_0.3)(64bit) is needed by (installed) krb5-libs-1.10.3-10.el6.x86_64
[root@arbiter heartbeat]# rpm -e --nodeps keyutils-libs
[root@arbiter heartbeat]# rpm -qa|grep keyutils-libs
[root@arbiter heartbeat]# rpm -ivh cifs-utils-4.8.1-20.el6.x86_64.rpm keyutils-1.4-5.el6.x86_64.rpm keyutils-libs-1.4-5.el6.x86_64.rpm
warning: cifs-utils-4.8.1-20.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:keyutils-libs ########################################### [ 33%]
2:keyutils ########################################### [ 67%]
3:cifs-utils ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh cluster-glue-*
warning: cluster-glue-1.0.5-6.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:cluster-glue-libs ########################################### [ 50%]
2:cluster-glue ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh libgssglue-0.1-11.el6.x86_64.rpm
warning: libgssglue-0.1-11.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:libgssglue ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh libgssglue-0.1-11.el6.x86_64.rpm
warning: libgssglue-0.1-11.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
package libgssglue-0.1-11.el6.x86_64 is already installed
[root@arbiter heartbeat]# rpm -ivh libevent-1.4.13-4.el6.x86_64.rpm
warning: libevent-1.4.13-4.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:libevent ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh python-argparse-1.2.1-2.1.el6.noarch.rpm
warning: python-argparse-1.2.1-2.1.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:python-argparse ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh libtirpc-0.2.1-11.el6.x86_64.rpm
warning: libtirpc-0.2.1-11.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:libtirpc ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh rpcbind-0.2.0-12.el6.x86_64.rpm
warning: rpcbind-0.2.0-12.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:rpcbind ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh nfs-utils-*
warning: nfs-utils-1.2.3-75.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:nfs-utils-lib ########################################### [ 50%]
2:nfs-utils ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh heartbeat-*
warning: heartbeat-3.0.4-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
error: Failed dependencies:
resource-agents is needed by heartbeat-3.0.4-2.el6.x86_64
[root@arbiter heartbeat]# rpm -ivh resource-agents-3.9.5-46.el6.x86_64.rpm
warning: resource-agents-3.9.5-46.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:resource-agents ########################################### [100%]
[root@arbiter heartbeat]# rpm -ivh heartbeat-*
warning: heartbeat-3.0.4-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:heartbeat-libs ########################################### [ 50%]
2:heartbeat ########################################### [100%]
[root@arbiter heartbeat]#
3、heartbeat安装完成后,配置以下三个配置文件
[root@mymongo1 ~]# ll /etc/ha.d/
total 32
-rw-------. 1 root root 37 Aug 16 23:53 authkeys
-rw-r--r--. 1 root root 239 Aug 17 00:01 ha.cf
-rwxr-xr-x. 1 root root 745 Dec 2 2013 harc
-rw-r--r--. 1 root root 206 Aug 17 01:01 haresources
drwxr-xr-x. 2 root root 4096 Aug 16 22:42 rc.d
-rw-r--r--. 1 root root 692 Dec 2 2013 README.config
drwxr-xr-x. 2 root root 4096 Aug 16 22:42 resource.d
-rw-r--r--. 1 root root 2082 Mar 24 06:01 shellfuncs
[root@mymongo1 ~]#
heartbeat三个配置文件的所在目录
[root@mymongo1 ~]# rpm -q heartbeat -d
/usr/share/doc/heartbeat-3.0.4/AUTHORS
/usr/share/doc/heartbeat-3.0.4/COPYING
/usr/share/doc/heartbeat-3.0.4/COPYING.LGPL
/usr/share/doc/heartbeat-3.0.4/ChangeLog
/usr/share/doc/heartbeat-3.0.4/README
/usr/share/doc/heartbeat-3.0.4/apphbd.cf
/usr/share/doc/heartbeat-3.0.4/authkeys
/usr/share/doc/heartbeat-3.0.4/ha.cf
/usr/share/doc/heartbeat-3.0.4/haresources
/usr/share/man/man1/cl_status.1.gz
/usr/share/man/man1/hb_addnode.1.gz
/usr/share/man/man1/hb_delnode.1.gz
/usr/share/man/man1/hb_standby.1.gz
/usr/share/man/man1/hb_takeover.1.gz
/usr/share/man/man5/authkeys.5.gz
/usr/share/man/man5/ha.cf.5.gz
/usr/share/man/man8/apphbd.8.gz
/usr/share/man/man8/heartbeat.8.gz
[root@mymongo1 ~]#
heartbeat的ha.cf配置
[root@mymongo1 ~]# cat /etc/ha.d/ha.cf
#heartbeat controlfile
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local1
keepalive 2
deadtime 30
warntime 10
initdead 60
#bcast eth1,使用广播方式做Heartbeat的心跳
mcast eth1 225.0.0.11 694 1 0
auto_failback on
node arbiter
node mymongo1
crm no
[root@mymongo1 ~]#
heartbeat的authkeys配置
sha1加密字符串随意,但是要求权限是600
[root@mymongo1 ~]# cat /etc/ha.d/authkeys
auth 1
1 sha1 adf220fnasdfinvs02adsf
[root@mymongo1 ~]#
heartbeart的haresources配置
这里注意:配置的资源是浮动vip的地址,vip绑定的网络端口要保持一致,用eth1都用eth1,用eth0都用eth0
并且eht1和eth0要用不同的IP网段,网口后的服务httpd代表资源启动时会连带启动httpd,没有则不启动
[root@mymongo1 ~]# cat /etc/ha.d/haresources
arbiter IPaddr::192.168.144.121/24/eth1
httpd
mymongo1 IPaddr::192.168.144.122/24/eth1
#mysql master
#arbiter IPaddr::192.168.144.11/24/eth1 mysqld
#mysql salve
#mymongo1 IPaddr::192.168.144.12/24/eth1
[root@mymongo1 ~]#
三、本次实验使用http做测试
2台主机分别编辑index.html
[root@mymongo1 ~]# cat /var/www/html/index.html
this is mymongo1,its ip is 192.168.144.132
[root@mymongo1 ~]#
[root@arbiter ~]# cat /var/www/html/index.html
this is arbiter ,its ip is 192.168.144.111!
[root@arbiter ~]#
2台主机均启动http服务
[root@arbiter ~]# service httpd status
httpd (pid 4574) is running...
[root@arbiter ~]#
[root@mymongo1 ~]# service httpd status
httpd (pid 5714) is running...
[root@mymongo1 ~]#
2台主机均启动heartbeat
[root@mymongo1 ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
INFO: Resource is stopped
Done.
[root@mymongo1 ~]#
稍等1分钟左右观察浮动IP会启动
[root@mymongo1 ~]# ip add|grep 192.168.144
inet 192.168.144.132/24 brd 192.168.144.255 scope global eth1
inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth1
[root@mymongo1 ~]#
[root@arbiter ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
INFO: Resource is stopped
Done.
[root@arbiter ~]# ip add|grep 192.168.144
inet 192.168.144.111/24 brd 192.168.144.255 scope global eth1
inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth1
[root@arbiter ~]#
网页查看
浮动IP切换测试,停止mymongo1的heartbeart
[root@mymongo1 ~]# service httpd status
httpd (pid 5714) is running...
[root@mymongo1 ~]# /etc/init.d/heartbeat stop
Stopping High-Availability services: Done.
[root@mymongo1 ~]#
查看浮动IP资源192.168.144.122被arbiter接管
[root@arbiter ~]# ip add|grep 192.168.144
inet 192.168.144.111/24 brd 192.168.144.255 scope global eth1
inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth1
inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth1
[root@arbiter ~]#
相关的资源切换日志
[root@arbiter ~]# cat /var/log/ha-log
Aug 17 02:00:03 arbiter heartbeat: [4271]: info:
Received shutdown notice from 'mymongo1'.
Aug 17 02:00:03 arbiter heartbeat: [4271]: info: Resources being acquired from mymongo1.
Aug 17 02:00:03 arbiter heartbeat: [5610]: info: acquire local HA resources (standby).
ResourceManager(default)[5637]: 2017/08/17_02:00:03 info: Acquiring resource group: arbiter IPaddr::192.168.144.121/24/eth1 httpd
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.121)[5683]: 2017/08/17_02:00:03 INFO: Running OK
Aug 17 02:00:03 arbiter heartbeat: [5611]: info: Local Resource acquisition completed.
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.121)[5692]: 2017/08/17_02:00:03 INFO: Running OK
Aug 17 02:00:03 arbiter heartbeat: [5610]: info: local HA resource acquisition completed (standby).
Aug 17 02:00:03 arbiter heartbeat: [4271]: info: Standby resource acquisition done [foreign].
harc(default)[5856]: 2017/08/17_02:00:03 info: Running /etc/ha.d//rc.d/status status
mach_down(default)[5873]: 2017/08/17_02:00:03 info:
Taking over resource group IPaddr::192.168.144.122/24/eth1
ResourceManager(default)[5900]: 2017/08/17_02:00:03 info:
Acquiring resource group: mymongo1 IPaddr::192.168.144.122/24/eth1
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[5928]: 2017/08/17_02:00:03 INFO:
Resource is stopped
ResourceManager(default)[5900]: 2017/08/17_02:00:03 info:
Running /etc/ha.d/resource.d/IPaddr 192.168.144.122/24/eth1 start
IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: Adding inet address 192.168.144.122/24 with broadcast address 192.168.144.255 to device eth1
IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: Bringing device eth1 up
IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.144.122 eth1 192.168.144.122 auto not_used not_used
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6027]: 2017/08/17_02:00:03 INFO: Success
mach_down(default)[5873]: 2017/08/17_02:00:03 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down(default)[5873]: 2017/08/17_02:00:03 info: mach_down takeover complete for node mymongo1.
Aug 17 02:00:03 arbiter heartbeat: [4271]: info: mach_down takeover complete.
Aug 17 02:00:34 arbiter heartbeat: [4271]:
WARN: node mymongo1: is dead
Aug 17 02:00:34 arbiter heartbeat: [4271]: info:
Dead node mymongo1 gave up resources.
Aug 17 02:00:34 arbiter heartbeat: [4271]: info:
Link mymongo1:eth1 dead.
[root@arbiter ~]# tail -f /var/log/ha-log
IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO:
Adding inet address 192.168.144.122/24 with broadcast address 192.168.144.255 to device eth1
IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: Bringing device eth1 up
IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.144.122 eth1 192.168.144.122 auto not_used not_used
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6027]: 2017/08/17_02:00:03 INFO: Success
mach_down(default)[5873]: 2017/08/17_02:00:03 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down(default)[5873]: 2017/08/17_02:00:03 info: mach_down takeover complete for node mymongo1.
Aug 17 02:00:03 arbiter heartbeat: [4271]: info: mach_down takeover complete.
Aug 17 02:00:34 arbiter heartbeat: [4271]: WARN: node mymongo1: is dead
Aug 17 02:00:34 arbiter heartbeat: [4271]: info: Dead node mymongo1 gave up resources.
Aug 17 02:00:34 arbiter heartbeat: [4271]: info: Link mymongo1:eth1 dead.
查看web页面
启动mymongo1的heartbeat
[root@mymongo1 ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
INFO: Resource is stopped
Done.
[root@mymongo1 ~]#
查看arbiter接管的mymongo1的浮动ip资源192.168.144.121被arbiter释放
[root@arbiter ~]# ip add|grep 192.168.144
inet 192.168.144.111/24 brd 192.168.144.255 scope global eth1
inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth1
[root@arbiter ~]#
arbiter释放资源的日志
Aug 17 02:07:42 arbiter heartbeat: [4271]: info:
Heartbeat restart on node mymongo1
Aug 17 02:07:42 arbiter heartbeat: [4271]: info:
Link mymongo1:eth1 up.
Aug 17 02:07:42 arbiter heartbeat: [4271]: info:
Status update for node mymongo1: status init
Aug 17 02:07:42 arbiter heartbeat: [4271]: info:
Status update for node mymongo1: status up
harc(default)[6199]: 2017/08/17_02:07:42 info: Running /etc/ha.d//rc.d/status status
harc(default)[6216]: 2017/08/17_02:07:42 info: Running /etc/ha.d//rc.d/status status
Aug 17 02:07:43 arbiter heartbeat: [4271]: info:
Status update for node mymongo1: status active
harc(default)[6233]: 2017/08/17_02:07:43 info: Running /etc/ha.d//rc.d/status status
Aug 17 02:07:44 arbiter heartbeat: [4271]: info: remote resource transition completed.
Aug 17 02:07:44 arbiter heartbeat: [4271]: info:
arbiter wants to go standby [foreign]
Aug 17 02:07:44 arbiter heartbeat: [4271]: info: standby:
mymongo1 can take our foreign resources
Aug 17 02:07:44 arbiter heartbeat: [6250]: info:
give up foreign HA resources (standby).
ResourceManager(default)[6263]: 2017/08/17_02:07:44 info:
Releasing resource group: mymongo1 IPaddr::192.168.144.122/24/eth1
ResourceManager(default)[6263]: 2017/08/17_02:07:44 info:
Running /etc/ha.d/resource.d/IPaddr 192.168.144.122/24/eth1 stop
IPaddr(IPaddr_192.168.144.122)[6326]: 2017/08/17_02:07:44 INFO: IP status = ok, IP_CIP=
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6300]: 2017/08/17_02:07:44 INFO: Success
Aug 17 02:07:44 arbiter heartbeat: [6250]: info:
foreign HA resource release completed (standby).
Aug 17 02:07:44 arbiter heartbeat: [4271]: info: Local standby process completed [foreign].
Aug 17 02:07:45 arbiter heartbeat: [4271]:
WARN: 1 lost packet(s) for [mymongo1] [10:12]
Aug 17 02:07:45 arbiter heartbeat: [4271]: info: remote resource transition completed.
Aug 17 02:07:45 arbiter heartbeat: [4271]: info: No pkts missing from mymongo1!
Aug 17 02:07:45 arbiter heartbeat: [4271]: info:
Other node completed standby takeover of foreign resources.
mymongo1查看被接管的浮动ip资源192.168.144.121重新获取到
[root@mymongo1 ~]# ip add|grep 192.168.144
inet 192.168.144.132/24 brd 192.168.144.255 scope global eth1
inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth1
[root@mymongo1 ~]#
注意由于haresources配置,mymongo1的http服务并不会启动(但是原先是启动了的)
[root@mymongo1 ~]# service httpd status
httpd is stopped
[root@mymongo1 ~]#
arbiter关闭heartbeat
[root@arbiter ~]# /etc/init.d/heartbeat stop
Stopping High-Availability services: Done.
[root@arbiter ~]# ip add|grep 192.168.144
inet 192.168.144.111/24 brd 192.168.144.255 scope global eth1
[root@arbiter ~]#
mymonog1观察资源接管情况
[root@mymongo1 ~]# tail -70 /var/log/ha-log
Aug 17 02:07:44 mymongo1 heartbeat: [6356]: info:
arbiter wants to go standby [foreign]
Aug 17 02:07:44 mymongo1 heartbeat: [6356]: info: standby: acquire [foreign] resources from arbiter
Aug 17 02:07:44 mymongo1 heartbeat: [6384]: info: acquire local HA resources (standby).
ResourceManager(default)[6397]: 2017/08/17_02:07:44 info:
Acquiring resource group: mymongo1 IPaddr::192.168.144.122/24/eth1
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6425]: 2017/08/17_02:07:44 INFO: Resource is stopped
ResourceManager(default)[6397]: 2017/08/17_02:07:44 info: Running /etc/ha.d/resource.d/IPaddr 192.168.144.122/24/eth1 start
IPaddr(IPaddr_192.168.144.122)[6550]: 2017/08/17_02:07:44 INFO: Adding inet address 192.168.144.122/24 with broadcast address 192.168.144.255 to device eth1
IPaddr(IPaddr_192.168.144.122)[6550]: 2017/08/17_02:07:44 INFO: Bringing device eth1 up
IPaddr(IPaddr_192.168.144.122)[6550]: 2017/08/17_02:07:44 INFO: /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.144.122 eth1 192.168.144.122 auto not_used not_used
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6524]: 2017/08/17_02:07:44 INFO: Success
Aug 17 02:07:44 mymongo1 heartbeat: [6384]: info: local HA resource acquisition completed (standby).
Aug 17 02:07:45 mymongo1 heartbeat: [6356]: info: Standby resource acquisition done [foreign].
Aug 17 02:07:45 mymongo1 heartbeat: [6356]: info: Initial resource acquisition complete (auto_failback)
Aug 17 02:07:45 mymongo1 heartbeat: [6356]: info: remote resource transition completed.
Aug 17 02:17:42 mymongo1 heartbeat: [6356]: info: Received shutdown notice from 'arbiter'.
Aug 17 02:17:42 mymongo1 heartbeat: [6356]: info: Resources being acquired from arbiter.
Aug 17 02:17:42 mymongo1 heartbeat: [6706]: info: acquire local HA resources (standby).
ResourceManager(default)[6736]: 2017/08/17_02:17:42 info:
Acquiring resource group: mymongo1 IPaddr::192.168.144.122/24/eth1
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6777]: 2017/08/17_02:17:42 INFO: Running OK
Aug 17 02:17:42 mymongo1 heartbeat: [6707]: info: Local Resource acquisition completed.
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.122)[6789]: 2017/08/17_02:17:42 INFO: Running OK
Aug 17 02:17:42 mymongo1 heartbeat: [6706]: info: local HA resource acquisition completed (standby).
Aug 17 02:17:42 mymongo1 heartbeat: [6356]: info: Standby resource acquisition done [foreign].
harc(default)[6943]: 2017/08/17_02:17:42 info: Running /etc/ha.d//rc.d/status status
mach_down(default)[6960]: 2017/08/17_02:17:42 info: Taking over resource group IPaddr::192.168.144.121/24/eth1
ResourceManager(default)[6987]: 2017/08/17_02:17:42 info:
Acquiring resource group: arbiter IPaddr::192.168.144.121/24/eth1 httpd
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.121)[7015]: 2017/08/17_02:17:42 INFO: Resource is stopped
ResourceManager(default)[6987]: 2017/08/17_02:17:42 info: Running /etc/ha.d/resource.d/IPaddr 192.168.144.121/24/eth1 start
IPaddr(IPaddr_192.168.144.121)[7140]: 2017/08/17_02:17:42 INFO: Adding inet address 192.168.144.121/24 with broadcast address 192.168.144.255 to device eth1
IPaddr(IPaddr_192.168.144.121)[7140]: 2017/08/17_02:17:42 INFO: Bringing device eth1 up
IPaddr(IPaddr_192.168.144.121)[7140]: 2017/08/17_02:17:42 INFO: /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.144.121 eth1 192.168.144.121 auto not_used not_used
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.144.121)[7114]: 2017/08/17_02:17:42 INFO: Success
ResourceManager(default)[6987]: 2017/08/17_02:17:42 info:
Running /etc/init.d/httpd start
mach_down(default)[6960]: 2017/08/17_02:17:42 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down(default)[6960]: 2017/08/17_02:17:42 info: mach_down takeover complete for node arbiter.
Aug 17 02:17:42 mymongo1 heartbeat: [6356]: info: mach_down takeover complete.
Aug 17 02:18:13 mymongo1 heartbeat: [6356]: WARN: node arbiter: is dead
Aug 17 02:18:13 mymongo1 heartbeat: [6356]: info: Dead node arbiter gave up resources.
Aug 17 02:18:13 mymongo1 heartbeat: [6356]: info: Link arbiter:eth1 dead.
[root@mymongo1 ~]#
[root@mymongo1 ~]# ip add|grep 192.168.144
inet 192.168.144.132/24 brd 192.168.144.255 scope global eth1
inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth1
inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth1
[root@mymongo1 ~]# service httpd status
httpd (pid 7255) is running...
[root@mymongo1 ~]#
web页面查看
到此实验结束!