构建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
node  masternfs
node  slavenfs
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 primary  web 
# mount /dev/drbd0  /web   《----注意此时一定不要再格式化/dev/drbd0
#cd  /web
[root@node2 web]# ls
inittab  lost+found--------验证此时文件仍然存在

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-07/65629.htm

Logo

更多推荐