RHEL 6.5----heartbeat
主机名 | IP | 所需软件 |
master | 192.168.30.130 | heartbeat、httpd |
node-1 | 192.168.30.131 | nfs |
node-2 | 192.168.30.132 | heartbeat、httpd |
配置hosts文件
[root@master ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.30.130 master
192.168.30.131 node-
192.168.30.132 node-
192.168.30.133 node-
[root@master ~]# scp /etc/hosts node-:/etc/
[root@master ~]# scp /etc/hosts node-:/etc/
[root@master ~]# scp /etc/hosts node-:/etc/
配置共享存储
[root@node- ~]# yum install -y nfs-utils
[root@node- ~]# mkdir /nfsdata
[root@node- ~]# echo "<h1>This is the HeartBeat HTTP Server Test</h1>" > /var/www/html/index.html
[root@node- ~]# vim /etc/exports
/nfsdata 192.168.30.0/(rw)
[root@node- ~]# chown -R /nfsdata/
[root@node- ~]# chkconfig nfs on
[root@node- ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
[root@node- ~]# showmount -e
Export list for node-:
/nfsdata 192.168.30.0/
配置WEB服务器
主web服务器
[root@master ~]# yum install -y httpd
[root@master ~]# showmount -e node-
Export list for node-:
/nfsdata 192.168.30.0/
[root@master ~]# mount -t nfs node-:/nfsdata /var/www/html/
[root@master ~]# df -h /var/www/html/
Filesystem Size Used Avail Use% Mounted on
node-:/nfsdata 18G .1G 13G % /var/www/html
[root@master ~]# service httpd start
Starting httpd: [ OK ]
[root@master ~]# curl 127.1
<h1>This is the HeartBeat HTTP Server Test</h1>
[root@master ~]# umount /var/www/html/
[root@master ~]# chkconfig httpd on
从web服务器
[root@node- ~]# yum install -y httpd
[root@node- ~]# showmount -e node-
Export list for node-:
/nfsdata 192.168.30.0/
[root@node- ~]# mount -t nfs node-:/nfsdata /var/www/html/
[root@node- ~]# df -h /var/www/html/
Filesystem Size Used Avail Use% Mounted on
node-:/nfsdata 18G .1G 13G % /var/www/html
[root@node- ~]# service httpd start
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
测试访问页面
[root@node- ~]# curl 127.1
<h1>This is the HeartBeat HTTP Server Test</h1>
[root@node- ~]# umount /var/www/html/ #卸载测试资源,heartbeat安装完后,这些通过heartbeat加载
[root@node- ~]# chkconfig httpd on
安装heartbeat软件包
配置YUM源
[root@master ~]# ls /media/cdrom/
EFI Packages RELEASE-NOTES-pa-IN.html
EULA README RELEASE-NOTES-pt-BR.html
EULA_de RELEASE-NOTES-as-IN.html RELEASE-NOTES-ru-RU.html
EULA_en RELEASE-NOTES-bn-IN.html RELEASE-NOTES-si-LK.html
EULA_es RELEASE-NOTES-de-DE.html RELEASE-NOTES-ta-IN.html
EULA_fr RELEASE-NOTES-en-US.html RELEASE-NOTES-te-IN.html
EULA_it RELEASE-NOTES-es-ES.html RELEASE-NOTES-zh-CN.html
EULA_ja RELEASE-NOTES-fr-FR.html RELEASE-NOTES-zh-TW.html
EULA_ko RELEASE-NOTES-gu-IN.html repodata
EULA_pt RELEASE-NOTES-hi-IN.html ResilientStorage
EULA_zh RELEASE-NOTES-it-IT.html RPM-GPG-KEY-redhat-beta
GPL RELEASE-NOTES-ja-JP.html RPM-GPG-KEY-redhat-release
HighAvailability RELEASE-NOTES-kn-IN.html ScalableFileSystem
images RELEASE-NOTES-ko-KR.html Server
isolinux RELEASE-NOTES-ml-IN.html TRANS.TBL
LoadBalancer RELEASE-NOTES-mr-IN.html
media.repo RELEASE-NOTES-or-IN.html
[root@master ~]# cd /media/cdrom/HighAvailability/
[root@master HighAvailability]# pwd
/media/cdrom/HighAvailability
[root@master ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///media/cdrom
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [rhel-HA-source]
name=Red Hat Enterprise Linux $releasever - $basearch -HA-Source
baseurl=file:///media/cdrom/HighAvailability
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
开始创建heartbeat软件包
[root@master ~]# tar -xf Heartbeat---958e11be8686.tar.bz2 -C /usr/local/src/
[root@master ~]# cd /usr/local/src/Heartbeat---958e11be8686/
[root@master Heartbeat---958e11be8686]# rpmbuild -ba heartbeat-fedora.spec
[root@master ~]# tar -xf Heartbeat---958e11be8686.tar.bz2 -C /usr/local/src/
[root@master ~]# cd /usr/local/src/Heartbeat---958e11be8686/
[root@master Heartbeat---958e11be8686]# rpmbuild -ba heartbeat-fedora.spec
error: File /root/rpmbuild/SOURCES/heartbeat.tar.bz2: No such file or directory
[root@master Heartbeat---958e11be8686]# cd
[root@master ~]# ls /root/rpmbuild/SOURCES/
[root@master ~]# ll -d /root/rpmbuild/SOURCES/
drwxr-xr-x root root Jun : /root/rpmbuild/SOURCES/
[root@master ~]# tar -xf Heartbeat---958e11be8686.tar.bz2 -C /root/rpmbuild/SOURCES/
[root@master ~]# cd /root/rpmbuild/SOURCES/
[root@master SOURCES]# mv Heartbeat---958e11be8686/ heartbeat
[root@master SOURCES]# ls
heartbeat
[root@master SOURCES]# tar -cjvf heartbeat.tar.bz2 heartbeat
开始创建软件包
[root@master heartbeat]# rpmbuild -ba heartbeat-fedora.spec
error: Failed build dependencies:
libtool-ltdl-devel is needed by heartbeat-3.0.-.el6.x86_64
cluster-glue-libs-devel is needed by heartbeat-3.0.-.el6.x86_64
解决依赖
[root@master heartbeat]# yum install -y ncurses-devel openssl-devel gettext bison flex mailx cluster-glue-libs-devel docbool-dtds docbook-style-xsl libtook-ltdl-devel libuuid-devel
[root@master heartbeat]# rpmbuild -ba heartbeat-fedora.spec
...........
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.VvZNu1
+ umask
+ cd /root/rpmbuild/BUILD
+ cd heartbeat
+ rm -rf /root/rpmbuild/BUILDROOT/heartbeat-3.0.-.el6.x86_64
+ exit
在WEB主服务器上
[root@master heartbeat]# cd /root/rpmbuild/RPMS/x86_64/
[root@master x86_64]# ls
heartbeat-3.0.-.el6.x86_64.rpm heartbeat-devel-3.0.-.el6.x86_64.rpm
heartbeat-debuginfo-3.0.-.el6.x86_64.rpm heartbeat-libs-3.0.-.el6.x86_64.rpm
[root@master x86_64]# yum install -y cluster-glue resource-agents
[root@master x86_64]# rpm -ivh heartbeat-libs-3.0.-.el6.x86_64.rpm
Preparing... ########################################### [%]
:heartbeat-libs ########################################### [%]
[root@master x86_64]# rpm -ivh heartbeat-3.0.-.el6.x86_64.rpm
Preparing... ########################################### [%]
:heartbeat ########################################### [%]
[root@master x86_64]# scp heartbeat-libs-3.0.-.el6.x86_64.rpm heartbeat-3.0.-.el6.x86_64.rpm node-:/root/
root@node-'s password:
heartbeat-libs-3.0.-.el6.x86_64.rpm % 76KB .6KB/s :
heartbeat-3.0.-.el6.x86_64.rpm % 234KB .5KB/s :
从WEB服务器
[root@node- ~]# yum install -y ncurses-devel openssl-devel gettext bison mailx cluster-glue-libs-devel docbook-dtds docbook-style-xsl cluster-glue resource-agents #前提是/etc/yum.repo文件需要修改与master一样
[root@node- ~]# rpm -ivh heartbeat-libs-3.0.-.el6.x86_64.rpm
Preparing... ########################################### [%]
:heartbeat-libs ########################################### [%]
[root@node- ~]# rpm -ivh heartbeat-3.0.-.el6.x86_64.rpm
Preparing... ########################################### [%]
:heartbeat ########################################### [%]
[root@node- ~]# grep haclient /etc/group
haclient:x::
[root@node- ~]# id hacluster
uid=(hacluster) gid=(haclient) groups=(haclient)
配置heartbea,在master上
定义验证文件
[root@master ~]# cp /usr/share/doc/heartbeat-3.0./ha.cf /etc/ha.d/
[root@master ~]# cp /usr/share/doc/heartbeat-3.0./authkeys /etc/ha.d/
[root@master ~]# cp /usr/share/doc/heartbeat-3.0./haresources /etc/ha.d/
[root@master ~]# vim /etc/ha.d/authkeys #设置主备节点之间通信使用的验证文件
auth 3 #去掉原有的注释,auth后面的数字对应下面的序号,使用crc认证的话,auth后面就写1,使用md5认证的话,auth后面就写3
# crc
# sha1 HI!
md5 sishenkey #去掉原有注释并修改
[root@master ~]# chmod /etc/ha.d/authkeys #不改权限的话不能启动
定义浮动资源
[root@master ~]# vim /etc/ha.d/haresources
#node-name resource1 resource2 ... resourceN #此行下面添加
master IPaddr::192.168.30.130//eth0 Filesystem::192.168.30.131:/nfsdata::/var/www
/html/::nfs httpd
#node-name 主服务器主机名,从服务器上不要修改这里
#IPaddr::192.168.30.130//eth0 #定义VIP及绑定到哪张网卡上
#Filesystem::192.168.30.131:/nfsdata::/var/www/html/ 定义要挂载的存储
#httpd 指定要启动的服务,这个服务必须是/etc/init.d/下面的,可以通过service启动或关闭的
手动测试浮动IP是否可用
[root@master ha.d]# /etc/ha.d/resource.d/IPaddr 192.168.30.100//eth0 start
INFO: Adding inet address 192.168.30.100/ with broadcast address 192.168.30.255 to device eth0
INFO: Bringing device eth0 up
INFO: /usr/libexec/heartbeat/send_arp -i -r -p /var/run/resource-agents/send_arp-192.168.30.100 eth0 192.168.30.100 auto not_used not_used
INFO: Success
INFO: Success
ARPING 192.168.30.100 from 192.168.30.100 eth0
[root@master ha.d]# Sent probes ( broadcast(s))
Received response(s) 使用ip addr查看,ifconfig看不到
[root@master ha.d]# ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::4d:: brd ff:ff:ff:ff:ff:ff
inet 192.168.30.130/ brd 192.168.30.255 scope global eth0
inet 192.168.30.100/ brd 192.168.30.255 scope global secondary eth0
inet6 fe80::20c:29ff:fe4d:/ scope link
valid_lft forever preferred_lft forever
测试文件系统是否正常
[root@master ha.d]# /etc/ha.d/resource.d/Filesystem 192.168.30.131:/nfsdata /var/www/html/ nfs start
INFO: Running start for 192.168.30.131:/nfsdata on /var/www/html
INFO: Filesystem /var/www/html is already mounted.
INFO: Success
INFO: Success
[root@master ha.d]# ll /var/www/html/
total
-rw-r--r-- root root Jun : index.html
#结果表明是成功的
查看主配置文件
[root@master ~]# grep "^[^#]" /etc/ha.d/ha.cf #查看配置文件的有效行有哪些
logfacility local0
auto_failback on
#auto_failback 为on时,主节点恢复正常,资源自动转给主节点,建议设为off,等主节点恢复正常后且业务不繁忙后再切回来,防止主节点恢复正常时,因为回切导致的异常。
修改主配置文件
[root@master ~]# vim /etc/ha.d/ha.cf #以下行去掉原有注释,启用
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive #指定heartbeat之间的时间间隔2秒
deadtime #在30秒后判断节点死亡
warntime #在日志中发出“late heartbeat”警告之前等待的时间,单位:秒
initdead #在一些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的两倍
udpport #使用端口694惊醒bcast和ucast通信(默认值:,IANA官方注册的端口号)
ucast eth0 192.168.30.132 #表示从本机的eth0接口发出的心跳消息给对方节点,写对方IP,这是单播地址。node-2上要写192.168.30.,心跳网卡:加入有两张网卡,可以写成eth1。注意,配置文件中91行#bcast eth0 表示在eth0接口上使用广播heartbeat(将eth1替换为eth0,eth2,或者用户使用的任何接口)
auto_failback on #默认启用
node master #必须配置,集群中机器的主机名
node node-
ping 192.168.30.2 #通过ping命令实现仲裁,这里需要注意每个人的网关不同,依据自己的实际网关而定
respawn hacluster /usr/libexec/heartbeat/ipfail #注意这里需要手动去看ipfail是在lib下面,还是在libexec下
apiauth ipfail gid=haclient uid=hacluster
从WEB服务器上(node-2)
[root@master ~]# cd /etc/ha.d/
[root@master ha.d]# scp authkeys ha.cf haresources node-:/etc/ha.d/
root@node-'s password:
authkeys % .6KB/s :
ha.cf % 10KB .3KB/s :
haresources % .9KB/s :
[root@node- ~]# chmod /etc/ha.d/authkeys
[root@node- ~]# vim /etc/ha.d/ha.cf
ucast eth0 192.168.30.130 #只需修改这里
启动heartbeat(在WEB主和从上)
[root@master ~]# /etc/init.d/heartbeat restart
Stopping High-Availability services: [ OK ]
Waiting to allow resource takeover to complete: [ OK ]
Starting High-Availability services: INFO: Running OK
CRITICAL: Resource IPaddr::192.168.30.100//eth0 is active, and should not be!
CRITICAL: Non-idle resources can affect data integrity!
info: If you don't know what this means, then get help!
info: Read the docs and/or source to /usr/share/heartbeat/ResourceManager for more details.
CRITICAL: Resource IPaddr::192.168.30.100//eth0 is active, and should not be!
CRITICAL: Non-idle resources can affect data integrity!
info: If you don't know what this means, then get help!
info: Read the docs and/or the source to /usr/share/heartbeat/ResourceManager for more details.
CRITICAL: Non-idle resources will affect resource takeback!
CRITICAL: Non-idle resources may affect data integrity!
[ OK ]
[root@node- ~]# /etc/init.d/heartbeat restart
Stopping High-Availability services: [ OK ]
Waiting to allow resource takeover to complete: [ OK ]
Starting High-Availability services: INFO: Resource is stopped
[ OK ]
#注意这里在启动的时候等待大概2分钟左右master提示在接管所有浮动资源.等下启动成功后,会释放浮动资源,最后再次加载
验证端口是否监听成功
[root@master ~]# netstat -antup | grep
udp 0.0.0.0: 0.0.0.0:* /heartbeat: wri
[root@node- ~]# netstat -antup | grep
udp 0.0.0.0: 0.0.0.0:* /heartbeat: wri
Ok,端口正常!
查看浮动IP是否存在
[root@master ~]# ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::4d:: brd ff:ff:ff:ff:ff:ff
inet 192.168.30.130/ brd 192.168.30.255 scope global eth0
inet 192.168.30.100/ brd 192.168.30.255 scope global secondary eth0
inet6 fe80::20c:29ff:fe4d:/ scope link
valid_lft forever preferred_lft forever [root@node- ~]# ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :::2f::4d brd ff:ff:ff:ff:ff:ff
inet 192.168.30.132/ brd 192.168.30.255 scope global eth0
inet6 fe80:::56ff:fe2f:844d/ scope link
valid_lft forever preferred_lft forever
查看浮动资源是否挂载
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_master-LogVol00 18G .1G 13G % /
tmpfs .0G 72K .0G % /dev/shm
/dev/sda1 194M 35M 150M % /boot
/dev/sr0 .6G .6G % /media/cdrom
192.168.30.131:/nfsdata 18G .1G 13G % /var/www/html
浏览器测试浮动IP
手动停掉master上的eth0,再次测试浮动IP
[root@master ~]# ifdown eth0
然后去node-2上查看
[root@node- ~]# ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :::2f::4d brd ff:ff:ff:ff:ff:ff
inet 192.168.30.132/ brd 192.168.30.255 scope global eth0
inet 192.168.30.100/ brd 192.168.30.255 scope global secondary eth0
inet6 fe80:::56ff:fe2f:844d/ scope link
valid_lft forever preferred_lft forever
#node-2已经接管浮动IP
还是可以的!OK~到此结束
RHEL 6.5----heartbeat的更多相关文章
- heartbeat在yum系发行版本的处理资料
centos 安装包[rpm]和光盘iso文件 http://mirror.centos.org/centos/ 对应如上包的代码 http://vault.centos.org/ git.cento ...
- Configure Red Hat Enterprise Linux shared disk cluster for SQL Server——RHEL上的“类”SQL Server Cluster功能
下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) ...
- Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group
下面简单介绍一下如何在Red Hat Enterprise Linux上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的 ...
- CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)
目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 htt ...
- Linux:将rhel yum 切换到centos yum
Red Hat Enterprise Linux Server(RHEL) yum安装软件时This system is not registered with RHN. RHN support wi ...
- Configure a bridged network interface for KVM using RHEL 5.4 or later?
environment Red Hat Enterprise Linux 5.4 or later Red Hat Enterprise Linux 6.0 or later KVM virtual ...
- 在CentOS或RHEL上安装Nux Dextop仓库
介绍 Nux Dextop是类似CentOS.RHEL.ScientificLinux的第三方RPM仓库(比如:Ardour,Shutter等等).目前,Nux Dextop对CentOS/RHEL ...
- 1-linux系统管理(一)之安装RHEL 6.4
linux系统管理之安装RHEL 6.4 进入安装界面 这里选择跳过 点击下一步 选择安装语言 选择键盘 选择系统储存方式 选择是否格式化储存设备 给安装的系统一个计算机名 选择时区 给root一个密 ...
- Heartbeat使用梳理
在日常的集群系统架构中,一般用到Heartbeat的主要就2种:1)高可用(High Availability)HA集群, 使用Heartbeat实现,也称为"双机热备", &qu ...
- CentOS 7 (RHEL 7)服务管理命令的变化
CentOS 7 (RHEL 7)带来了新的服务管理命令,为了保持兼容原有的命令仍可以使用,以下是新旧命令的对照. 启动.停止.重启.重载.检查服务:6: service httpd start|st ...
随机推荐
- VS 预先生成事件命令
宏 说明 $(ConfigurationName) 当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir) 输出文件目录的路径,相对于项目目录.这解析为“输出目录”属性的值. ...
- 通过命令打包apk
平时使用android studio打包,方便快捷,对命令不太熟悉,但在上传apk包到应用市场时,需要认领apk,“认领页的[选择APK]”不是上传您要更新的APK应用文件,而是下载我们提供的空包文件 ...
- HTML canvas
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- nodejs的request模块
request模块让http请求变的更加简单.(作为客户端,去请求.抓取另一个网站的信息) request的GitHub主页: https://github.com/request/request 最 ...
- ruby 学习网站
Ruby on Rails官网: http://rubyonrails.org/ Rails Guides:http://guides.rubyonrails.org/ -中文版: http://gu ...
- Ubuntu下如何安装并使用Objective-C
Objective-C是本人用过的最佳类C.面向对象的编程语言.Objective-C与标准C完美兼容,而在此基础上又加上了将面向对象的基础概念诠释得最好的SmallTalk元素,使得它既简洁.又灵活 ...
- FZU1686 神龙的难题 —— Dancing Links 可重复覆盖
题目链接:https://vjudge.net/problem/FZU-1686 Problem 1686 神龙的难题 Accept: 812 Submit: 2394 Time Limit: ...
- Javascript中两种最通用的定义类的方法
在Javascript中,一切都是对象,包括函数.在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义.但Javascript中提供了一种折中的方案:把对象定 ...
- hdu 1166 敌兵布阵 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目意思:给出 N 个数你,通过对某些数进行更改(或者 + 或者 -),当输入的是 Query ...
- Silverlight DataBinding Converter:根据binding对象调整显示
Silverlight DataBinding Converter:根据binding对象调整显示 我希望写一系列关于Silverlight DataBinding的文章,分别讲解Silverligh ...