奥尔覅几22 发表于 2019-1-7 09:50:27

使用heartbeat做服务的高可用

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。


          主机名                  IP地址
主机1node1.wang.com   网卡0:192.168.1.10/24
         网卡1:172.16.0.1/24
主机2node2.wang.com   网卡0:192.168.1.11/24
         网卡1:172.16.0.2/24


说明:此处是用vmware6.0做实验,因此主机1的网卡1和主机2的网卡1在一个隧道内。
IP设置完成后,使用PING命令确保各主机之间是相通的。


主机1上修改主机名
# vim /etc/sysconfig/network
HOSTNAME=localhost.localdomain修改为HOSTNAME=node1.wang.com
# hostname node1.wang.com
# hostname
node1.wang.com


主机2上修改主机名
# vim /etc/sysconfig/network
HOSTNAME=localhost.localdomain修改为HOSTNAME=node2.wang.com
# hostname node2.wang.com
# hostname
node2.wang.com




说明:主机名修改完成后退出重新登录


在主机1和主机2上的/etc/hosts文件中添加如下两行
# vim /etc/hosts
添加两行
192.168.1.11 node2.wang.com   node2
192.168.1.10 node1.wang.com   node1


准备如下RPM安装包
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-devel-2.1.4-9.el5.i386.rpm
heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm


在主机1上安装RPM包
# yum --nogpgcheck -y localinstall *.rpm #安装本地RPM包不做检查
# scp *.rpm node2:/root


在主机2上安装RPM包
# yum --nogpgcheck -y localinstall *.rpm




在主机1上进行配置


heartbeat的所有配置文件都在/etc/ha.d/目录下
heartbeat是非常体贴的已经给我们提搞了配置样本在/usr/share/doc/heartbeat-2.1.4下


# cd /usr/share/doc/heartbeat-2.1.4


# cp authkeys ha.cf haresources /etc/ha.d/
# cd /etc/ha.d/
# ls
authkeysha.cfharcharesourcesrc.dREADME.configresource.dshellfuncs


#authkeys文件的权限必须是600
# chmod 600 authkeys
查看权限是否修改正确
# ll
total 48
-rw------- 1 root root   645 Dec 18 06:05 authkeys
-rw-r--r-- 1 root root 10539 Dec 18 06:05 ha.cf
-rwxr-xr-x 1 root root   745 Jul 252009 harc
-rw-r--r-- 1 root root5905 Dec 18 06:05 haresources
drwxr-xr-x 2 root root4096 Dec 18 05:46 rc.d
-rw-r--r-- 1 root root   692 Jul 252009 README.config
drwxr-xr-x 2 root root4096 Dec 18 05:47 resource.d
-rw-r--r-- 1 root root7862 Jul 252009 shellfuncs


生成随机字符串并使用MD5算法生成随机号
# dd if=/dev/urandom bs=512 count=1 | md5sum
# vim authkeys
在文件尾部添加如下两行,其中md5后面的字符串是随机的
auth 1
1 md5 b5798d93d0a755f20a688c6419df1d7c


# vim ha.cf
在相应位置添加如下行
bcast eth0 eth1
node node1.wang.com
node node2.wang.com


安装http服务进行测试
在主机1上的操作如下
# yum install httpd -y
# echo "web1111" > /var/www/html/index.html
# service httpd restart
在物理机上使用浏览器查看网页是否能打开


在主机2上的操作如下
# yum install httpd -y
#echo "web2222" > /var/www/html/index.html
# service httpd restart
在物理机上使用浏览器查看网页是否能打开


在主机1和主机2上都要做同样的如下两步操作:
# service httpd stop
# chkconfig httpd off




# cd /usr/lib/heartbeat
# ./ha_propagate
# cd /etc/ha.d/
# scp haresources node2:/etc/ha.d/


在主机1和主机2上都要做的如下操作
以实现在node1和node2两个主机不需要密码ssh连接
#生成密钥
# ssh-keygen -t rsa

# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
#测试连接
# ssh node2
#退回原节点
# exit




在主机1上的操作
# /etc/init.d/heartbeat start
# ssh node2
# tail /var/log/messages
Dec 18 08:14:58 localhost ResourceManager: info: Acquiring resource group: node1.wang.com


192.168.1.100/24/eth0/192.168.1.255 httpd
Dec 18 08:14:59 localhost IPaddr: INFO:Resource is stopped
Dec 18 08:14:59 localhost ResourceManager: info: Running /etc/ha.d/resource.d/IPaddr


192.168.1.100/24/eth0/192.168.1.255 start
Dec 18 08:14:59 localhost IPaddr: INFO: Using calculated netmask for 192.168.1.100: 255.255.255.0
Dec 18 08:14:59 localhost IPaddr: INFO: eval ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 broadcast


192.168.1.255
Dec 18 08:14:59 localhost avahi-daemon: Registering new address record for 192.168.1.100 on eth0.
Dec 18 08:15:00 localhost IPaddr: INFO:Success
Dec 18 08:15:00 localhost ResourceManager: info: Running /etc/init.d/httpdstart
Dec 18 08:15:13 localhost heartbeat: : info: Local Resource acquisition completed. (none)
Dec 18 08:15:13 localhost heartbeat: : info: local resource transition completed.




在物理机上使用浏览器访问http://192.168.1.100查看能否打开网页


http://blog.运维网.com/1567045/../attachment/201202/231350453.jpg
# ifconfig
会看到如下信息
eth0:0    Link encap:EthernetHWaddr 00:0C:29:AA:31:10
          inet addr:192.168.1.100Bcast:192.168.1.255Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          Interrupt:67 Base address:0x2000




自动降级为备用节点
# cd /usr/lib/heartbeat
# ./hb_standby
2011/12/18_08:26:45 Going standby .
在物理机上使用浏览器访问http://192.168.1.100查看能否打开网页
http://blog.运维网.com/1567045/../attachment/201202/231639112.png



页: [1]
查看完整版本: 使用heartbeat做服务的高可用