设为首页 收藏本站
查看: 733|回复: 0

[经验分享] 双机热备heartbeat2.1

[复制链接]

尚未签到

发表于 2019-1-7 07:14:47 | 显示全部楼层 |阅读模式
双机热备(linux)邮件系统方案


heartbeat的概念
Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(reliability)、可用性 availability)和可服务性(serviceability)(RAS)的群集解决方案。其 Heartbeat就是Linux-HA项目中 的一个组件,也是目前开源HA项目中最成功的一个例子,它提供了所有 HA 软件所需要的基本功能,比如心跳检测和资源接管、监测群集中的系统服务、在群集中的节点间转移共享 IP 地址的所有者等,自1999年开始到现在,Heartbeat在行业内得到了广泛的应用,也发行了很多的版本,可以从Linux-HA的官方网站www.linux-ha.org下载到Heartbeat的最新版本。

1、初始化及网络配置
设备

配置

服务器一

系统:Redhat5.6

eth0:192.168.0.117   #常规网络

eth1:10.10.10.1 #heartbeat#心跳专用网络

hostname:node1.turbo.com

服务器二

系统:Redhat5.6

eth0:192.168.0.118  #常规网络

eth1:10.10.10.2 #心跳专用网络

hostname:node2.turbo.com   

共享存储

根据需求使用IP SAN或FC SAN,根据产品使用说明与服务器一,二搭建双机结构(这个一般产品代理商会提供技术支持)

虚拟IP

Vip:192.168.0.200


2、节点(node
运行heartbeat进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和 heartbeat软件服务,在 heartbeat集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘、文件 系统、网络地址和应用服务等。主节点上一般运行着一个或多个应用服务。而备用节点一般处于监控状态。
在两台节点服务器node1node2上安装heartbeat2.1搭建双机环境
#tar  -xf  heartbeat.tar.gz –C ./   #将下载的软件包解压到当前目录
#cd  ./Heartbeat_rpm
#rpm -ivh perl-* --force #解决依赖关系基本软件包已经存在,最好配好本地yum源随时补充
#rpm –ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm

# rpm –ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

#rpm –ivh heartbeat-2.1.3-3.el5.centos.i386.rpm #因为没有hacluster用户报错,重新执行就行

# rpm -qa | grep heartbeat    #确认软件包的安装
heartbeat-stonith-2.1.3-3.el5.centos
heartbeat-pils-2.1.3-3.el5.centos
heartbeat-2.1.3-3.el5.centos
#拷贝turbomail的启动的脚步
#cp mailserver /etc/init.d/
#vim /etc/init.d/mailserver #修改turbomail的安装路径详细的修改看
#chmod 600 /etc/init.d/mailserver

3、配置主节点,以下三个文件是heartbeat的主要配置文件:
# cd /usr/share/doc/heartbeat-2.1.3  #通过模板创建HA配置文件
# cp ha.cf haresources  authkeys  /etc/ha.d/     
        ha.cf                         #HA主配置文件,相当于cman
         haresources       #资源管理配置文件,相当于rgmanager
         authkeys            #通信密钥协商配置文件


3.1配置Ha.cf
# vim /etc/ha.d/ha.cf      #ha.cf配置说明
#调试日志文件文件 - -搭建完以后要关闭调试
debugfile /var/log/ha-debug
#系统运行日志文件 这个很重要记录着heartbeat运行的一切!
logfile /var/log/ha-log
#日志等级
logfacility local0
#心跳频率
keepalive 2
#节点死亡时间阀值
deadtime 30
#发出警告时间阀值
warntime 10
#指定heartbeat 守护进程启动后等待120 秒再启动资源
initdead 120
#指定心跳信息传递使用的udp 端口
udpport 694
#eth1 使用广播方式发送心跳  也可以选择组播
bcast  eth1     #eth1设置的是10.10.10.0网段的地址
#确保自身网络和网关的通讯正常,一般是ping网关,告诉ipfail网络是否畅通。
ping 192.168.0.1      
#允许主节点重启成功后拿回资源(一般这个不打开)
auto_failback off        
#节点名称,与uname -n 保持一致
node node1.turbo.com
node node2.turbo.com
#守护进程ipfail检查网络故障的
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
Heartbeat模块的功能解析
*ipfail插件的用途是检测网络故障,并作出合理的反应,如果需要的话使集群资源failover。为了实现这样的功能ipfail使用ping节点或 ping节点组,这些节点在集群中作为节点出现。如果HA节点间可以相互通信ipfail便可以可靠地检测到其中一个网络连接失效的情况,并作出 补救。ipfail是在切换时由切换机发一个ARP包,告诉网关我现在的IP-MAC是这样的。要不然网关还会保留着以前VIPMAC的对应。

*watchdog的模块,watchdog是一个Linux内核模块,它通过定时向/dev /watchdog设备文件执行写操作,从而确定系统是否正常运行,如果watchdog认为内核挂起,就会重新启动系统,进而释放节点资源。
linux中完成watchdog功能的软件叫softdogsoftdog维护一个内部计时器,此计时器在一个进程写入/dev/watchdog 设备文件时更新,如果softdog没有看到进程写入/dev/watchdog文件,就认为内核可能出了故障。watchdog超时周期默认是一分钟, 可以通过将watchdog集成到Heartbeat中,从而通过Heartbeat来监控系统是否正常运行。
使用关门狗模块来使有故障节点重启的设置:
1)修改ha.cf 使用看门狗重启故障节点
# vim /etc/ha.d/ha.cf   搜索watchdog
watchdog /dev/watchdog   把前面的注析“#”去掉
#service heartbeat restart
2) 加载模块
# modprobe softdog
#echo  modprobe softdog >> /etc/rc.d/rc.local  下次启动自动加载softdog模块
#10,heartbeat进程没有对dog发信号,就会导致系统重启(可以按照默认
# echo "10" > /proc/sys/kernel/panic   #这个根据需求按照默认配置就可以了

3.2配置认证方式authkeys
# vim /etc/ha.d/authkeys         #指定使用认证的方式
auth 1
1 crc
#2 sha1 HI!   
#3 md5 Hello!
# chmod 600 authkeys   #设置文件只有管理员可读写提高安全,否则heartbeat启动不了!

3.3资源(resource
资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其它节点接管,heartbeat中,可以当做资源的实体有:
      磁盘分区、文件系统l
      IP地址l
      应用程序服务

# vim /etc/ha.d/haresources  
node1.turbo.com IPaddr:: 192.168.0.200/32/eth0 mailserver   #没有共享存储暂时不挂
虚拟ip   IPaddr:: 192.168.0.200/eth0   
文件系统Filesystem::/dev/sdb::/turbomail::gfs2
         Filesystem::设备符::挂载点::系统格式
设备符主要就是共享存储,用于存放邮件用户
# fdisk –l  来查看共享存储在服务器上对应的设备符
服务     mailserver   这个我们系统的启动文件拷贝在/etc/init.d/目录

4、将node1配置文件同步至node2
# rsync -avzlR /etc/ha.d/ node2:/

5、在两个节点上依次启动Heartbeat服务:
# /etc/init.d/heartbeat start
# chkconfig heartbeat on      #开机自动启动设置

6heartbeat2.x无法对自身资源实现健康监控(vip或者mailserver其中一个down掉了,系统是无法完成资源的切换的),下面将用脚本结合heartbeat资源绑定监控
#cat /root/monitor.sh
#!/bin/bash
#For Turbomail Mail Server
#Editor Xming

#监控heartbeat资源的状态(VIPmailserver)
vip=192.168.0.200
port=8080
/bin/ping -c 5 $vip
if [ $? -eq 0 ] ;then    #vip正常
   /usr/bin/links -dump 1 http://$vip:$port &> /dev/null
   if [ $? -eq 0 ];then
          echo "The Vip and mailserver is well."   #正常结果
     else
         /sbin/ifconfig | /bin/grep $vip     #服务不正常时,检测是否主机      
        rel=$?
        if [ $rel -eq 0 ] ;then
            /usr/bin/pkill -9 heartbeat #如果是就异常关闭heartbeat,让watchdog重启
主机让备机接管资源
            echo "Some error with the mailserver,need to kill heartbeat:">>/var/lo
g/message
        fi
     fi
else               #vip异常
     rel=`/sbin/service mailserver status`  #查看服务状态
     if [ $rel == "Running" ] ;then
        /usr/bin/pkill -9 heartbeat         #如果服务进程还在,异常关闭heartbeat
        echo "Some error with the floatIP,need to kill heartbeat:">>/var/log/messa
ge
     else
        sleep 30s
        /bin/ping -c 3 $vip  #如果vip和服务都有异常,30秒后再ping,如果还有异常关闭heartbeat
        if [ $? -ne 0 ] ;then
           /usr/bin/pkill -9 heartbeat
        fi
     fi
fi


6.1创建时间任务:
#chmod +x /root/monitor.sh
#vim /var/spool/cron/root
*/2 * * * * /bin/bash /root/monitor.sh & > /dev/null #设置每两分钟监控一次,保存退出!
#crontab  -l      #确认任务
* /2* * * * /bin/bash /root/monitor.sh & > /dev/null
*一般任务计划执行都会向管理员root发邮件,你也可以用#mutt 查看邮箱确认任务的执行

7、验证:
         1)主动让资源给另外一个节点
                   # /usr/share/heartbeat/hb_standby
         2)主动把资源抢过来
                   # /usr/share/heartbeat/hb_takeover
         3)只关闭心跳网络
                   会出现脑裂现象
4)轮流关闭heartbeat,查看资源是否切换正常
5)在拥有资源的主机上downvip或者mailserver,查看主机是否会重启,并且资源是否已经切换
如有建议请浏览,随时候教!谢谢




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660109-1-1.html 上篇帖子: IV 12 MySQL+drbd+heartbeat 下篇帖子: V 8 nfs+drbd+heartbeat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表