欢迎光临
我们一直在努力

linux-ha heartbeat高可用的安装配置(http服务高可用)

    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)

eth2 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)

eth2 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 eth2,使用广播方式做Heartbeat的心跳

mcast eth2 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绑定的网络端口要保持一致,用eth2都用eth2,用eth0都用eth0

并且eht1和eth0要用不同的IP网段,网口后的服务httpd代表资源启动时会连带启动httpd,没有则不启动

[root@mymongo1 ~]# cat /etc/ha.d/haresources

arbiter IPaddr::192.168.144.121/24/eth2 httpd

mymongo1 IPaddr::192.168.144.122/24/eth2

#mysql master

#arbiter IPaddr::192.168.144.11/24/eth2 mysqld

#mysql salve

#mymongo1 IPaddr::192.168.144.12/24/eth2

[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 eth2

inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth2

[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 eth2

inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth2

[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 eth2

inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth2

inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth2

[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/eth2 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/eth2

ResourceManager(default)[5900]: 2017/08/17_02:00:03 info: Acquiring resource group: mymongo1 IPaddr::192.168.144.122/24/eth2

/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/eth2 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 eth2

IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: Bringing device eth2 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 eth2 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:eth2 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 eth2

IPaddr(IPaddr_192.168.144.122)[6053]: 2017/08/17_02:00:03 INFO: Bringing device eth2 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 eth2 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:eth2 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 eth2

inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth2

[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:eth2 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/eth2

ResourceManager(default)[6263]: 2017/08/17_02:07:44 info: Running /etc/ha.d/resource.d/IPaddr 192.168.144.122/24/eth2 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 eth2

inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth2

[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 eth2

[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/eth2

/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/eth2 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 eth2

IPaddr(IPaddr_192.168.144.122)[6550]: 2017/08/17_02:07:44 INFO: Bringing device eth2 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 eth2 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/eth2

/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/eth2

ResourceManager(default)[6987]: 2017/08/17_02:17:42 info: Acquiring resource group: arbiter IPaddr::192.168.144.121/24/eth2 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/eth2 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 eth2

IPaddr(IPaddr_192.168.144.121)[7140]: 2017/08/17_02:17:42 INFO: Bringing device eth2 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 eth2 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:eth2 dead.

[root@mymongo1 ~]#

[root@mymongo1 ~]# ip add|grep 192.168.144

inet 192.168.144.132/24 brd 192.168.144.255 scope global eth2

inet 192.168.144.122/24 brd 192.168.144.255 scope global secondary eth2

inet 192.168.144.121/24 brd 192.168.144.255 scope global secondary eth2

[root@mymongo1 ~]# service httpd status

httpd (pid 7255) is running…

[root@mymongo1 ~]#

web页面查看

到此实验结束!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。