陈银山 发表于 2015-11-21 12:11:51

构建Heartbeat+DRBD+NFS高可用文件共享存储

  构建Heartbeat+DRBD+NFS高可用文件共享存储
[日期:2012-07-17] 来源:Linux社区作者:rfyiamcool
  
这是我的操作过程,ip和主机名修改下。算是个部署的脚本吧,只是半自动而已。..O(∩_∩)O~
  我们线上用drbd做nfs效果还可以,只是nfs一直没挂过。算稳定吧。现在大点的项目直接上mfs,效果性能更好点。
  注意: 主机名一定要设置,hosts和hostname 分区要单独的分区,而且是没有格式化的 文件系统只能同时挂载一个,而且是在主节点进行,格式化也只能是在主节点
  
echo "10.10.10.22 masternfs ">>/etc/hosts
echo "10.10.10.24 slavenfs ">>/etc/hosts
hostname masternfs
hostname slavenfs

fdisk -l
fdisk /dev/xxx
partprobe /dev/sdb
cat /proc/partitions

yum -y install kmod-drbd83 drbd83
modprobe drbd
lsmod |grep drbd
rm /etc/drbd.conf -f
cp -f /usr/share/doc/drbd83*/drbd.conf /etc/
cd /etc/drbd.d/
cp global_common.conf global_common.conf.bak

vim global_common.conf
global {
      usage-count no;
      # minor-count dialog-refresh disable-ip-verification
}

common {
      protocol C;


      startup {
               wfc-timeout 120;
               degr-wfc-timeout 120;
      }

       disk {
                on-io-error detach;
                fencing resource-only;
      }

      net {
                cram-hmac-alg "sha1";
                shared-secret "mydrbdlab";
      }

      syncer {
                rate 100M;
      }
}

vim web.res

resource web {
      on masternfs {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.10.10.22:7898;
                meta-disk internal;
      }
      on slavenfs {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.10.10.24:7898;
                meta-disk internal;
      }
}
scp global_common.conf 10.10.10.22:/etc/drbd.d/
scp web.res 10.10.10.24:/etc/drbd.d/
#创建资源,在两个节点都执行,会有提示sucess
drbdadm create-md web

#启动drbd,在两个节点都支持
service drbd start
#查看状态的信息
drbd-overview
#查看启动状态
cat /proc/drbd
  设置主节点
drbdadm -- --overwrite-data-of-peer primary web
drbd-overview
mkfs -t ext3 -L drbdweb /dev/drbd0
mount /dev/drbd0 /web
#查看主从的状态,drbd只能同时mount一个。
cat /proc/drbd
service drbd status
df -h

yum -y install nfs* portmap
vi /etc/exports
/web *(rw)
service portmap start
chkconfig portmap on
service nfs start
chkconfig nfs on

#将/etc/init.d/nfs 脚本中的stop 部分中的killproc
#nfsd -2 修改为 -9

yum install heartbeat*libnet* –y

cd /usr/share/doc/heartbeat*
cp -f authkeys haresources ha.cf /etc/ha.d/
cd /etc/ha.d/
cat >> ha.cf EOF
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility   local0
keepalive 2
deadtime 10
udpport 694
#对方的ip
ucast eth0 10.10.10.24
#最好是路由的,ping节点仅仅用来测试网络连接
ping 10.10.10.1
auto_failback off
nodemasternfs
nodeslavenfs
EOF

echo "masternfs IPaddr::10.10.10.88/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/data::ext3 killnfsd" >> haresources

cat >> authkeys EOF
auth 1
1 crc
EOF

chmod 600 /etc/ha.d/authkeys
chmod 755 /etc/ha.d/resource.d/killnfsd
echo "killall -9 nfsd; /etc/init.d/nfs restart; exit 0 " >> /etc/ha.d/resource.d/killnfsd

service heartbeat start
chkconfig heartbeat on

查看是主节点还是从节点:
# drbdadm role web《-----node1上执行的结果
Primary/Secondary
# drbdadm role web《------node2上执行的结果
Secondary/Primary

如果我们想把自己的设置为从节点:
# umount /web
# drbdadm secondary web
然后再把原来的从节点设置为主节点:
# mkdir /web
# drbdadm primaryweb
# mount /dev/drbd0/web   《----注意此时一定不要再格式化/dev/drbd0
#cd/web
# ls
inittablost+found--------验证此时文件仍然存在
  本篇文章来源于 Linux公社网站(www.iyunv.com)原文链接:http://www.iyunv.com/Linux/2012-07/65629.htm
页: [1]
查看完整版本: 构建Heartbeat+DRBD+NFS高可用文件共享存储