目的:实现samba的热备份,即当A机故障时,B机能够自动顶替上来。

准备:

    A机(主)IP:192.168.1.67

    B机 (备)IP:192.168.1.68

操作:

    一:修改A机和B机的/etc/hosts 文件

      vim /etc/hosts 加入 192.168.1.67 zxw  和 192.168.1.68 zxw1

    heartbeat  双机的热备份_heartbeat


    A机: 

    二:安装 heartbeat 及 samba

    heartbeat  双机的热备份_heartbeat_02

    三:配置heartbeat。 从/usr/share/doc/heartbeat-3.0.4/目录下复制 ha.cf,authkeys,haresources 3个文件到 /etc/ha.d/目录下

    heartbeat  双机的热备份_heartbeat_03

    四:编辑/etc/ha.d/目录下刚复制的3个文件

      1:vim authkeys 把去掉 #auth 3 和 #3 md5 Hello! 前面的# 。如下图:

    heartbeat  双机的热备份_samba服务_04

      2:vim haresources 在最后一行加入 zxw 192.168.1.8/24/eth0:0 smb   

#(zxw 代表主的hostname, 192.168.1.8代表A机与B机通信的IP,smb为需要做高可用的服务)

    heartbeat  双机的热备份_heartbeat_05

      3:vim ha.cf 加入以下内容:

        

        debugfile /var/log/ha-debug

        logfile /var/log/ha-log

        logfacility     local0

        keepalive 2

        deadtime 30

        warntime 10

        initdead 60

        udpport 694

        ucast eth0 192.168.1.68

        auto_failback on

        node    zxw

        node    zxw1

        ping 192.168.1.1

        respawn hacluster /usr/lib64/heartbeat/ipfail

    heartbeat  双机的热备份_heartbeat_06

    五:开启smb 及 heartbeat服务

      service smb start

      service heartbeat start

    

     B机:重复步骤二到五。

为了预防当A机上的smbd 服务停止而不自动切换到B机, 因此在A机上新建一个脚本来监视smb是否正常。

    1:vim smb.sh  脚本如下:      

#!/bin/bash

#it's about to watch smb's status

while :

do

i=`ps aux |grep smbd |grep -v "grep smbd" |wc -l`

if [ $i = 0 ];then

        service heartbeat stop


fi

done

 heartbeat  双机的热备份_heartbeat_07

    2:chmod 700 smb.sh   更改smb.sh的权限

    3:把smb.sh放到后台运行  ./smb.sh &

    4: 把smb ,heartbeat,smb.sh 加入开机到运行, vim /etc/rc.d/rc.local 加入 service heartbeat start , service smb restart ,  bash /root/smb.sh & 

 heartbeat  双机的热备份_heartbeat_08

    

以上可实现:

    1:当A机宕机时,B机能够顶替上来,

     2:当A机恢复正常时,B机自动退出 作为备用机。


    至此搭建完成。