当前位置: 主页 > 环境部署 > 负载均衡 >

DRBD实现备份+heartbeat资源自动切换

时间:2013-05-09 02:15来源:www.shencan.net 作者:shencan 点击:
关于DRBD的原理 这里就不多讲了(其实我也不太喜欢将这些) 其实就是一个备份的软件(分布式块设备负载) 没事的可以先去简单了解下原理 我下面直接开始搞了 先说下环境吧 192.168.0.254
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


关于DRBD的原理 这里就不多讲了(其实我也不太喜欢将这些)  其实就是一个备份的软件(分布式块设备负载)   没事的可以先去简单了解下原理

我下面直接开始搞了  先说下环境吧

192.168.0.254  CAN-GE-2.com     默认他是主
192.168.0.253  CAN-GE-3.com           他是备

先把hosts文件都加下吧

1. 开始安装吧   #2台设备 都得安装

yum -y install gcc kernel-devel kernel-headers flex  && wget -SO drbd-8.4.1.tar.gz  http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz && tar fxz drbd-8.4.1.tar.gz && cd drbd-8.4.1 && ./configure –prefix=/usr/local/drbd –with-km && make KDIR=/usr/src/kernels/`uname  -r`-`uname -m`/ && make install && mkdir -p /usr/local/drbd/var/run/drbd && cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d/ && cd drbd &&  make clean && make KDIR=/usr/src/kernels/`uname  -r`-`uname -m`/ && cp drbd.ko /lib/modules/`uname -r`/kernel/lib/ && depmod

2.然后找块盘 分下区吧  ### 这个不用多讲吧

我的环境都是用的 /dev/sbd  分了一个去 /dev/sbd1

3.修改下配置文件吧

vim /usr/local/drbd/etc/drbd.d/global_common.conf

在net {} 中加个协议

drbd 同步的时候一共3中协议 (A B C) 没事的可以去了解下 我这里用的C协议

vim /usr/local/drbd/etc/drbd.d/shencan.res  #默认没有 直接写一个

配置都能看懂 主要我框的那些东西就行

然后把这个2个配置文件 直接scp都 另一台设备上(目录 文件名一模一样)

4.2台设备的准备工作搞完了  开始设置资源了   #2台设备都得设置

modprobe drbd  && dd if=/dev/zero of=/dev/sdb1 bs=1M count=10 #网上说要先塞点东西进去  我也不知道为啥

建立资源 drbdadm create-md  shencan  #shencan这个名字在配置文件里面定义了

启动资源 drbdadm up  shencan

分别查看下 是不是搞成功了

5.设置一下 主 备模式   drbd

在 192.168.0.254上运行   drbdadm primary –force shencan

然后初始化 drbd1

mkfs.ext3 /dev/drbd1

最后挂在 下   mount /dev/drbd1  /shencan

OK 了 都搞完了  我们测试下

在主上搞个文件 然后去备上看看

cd  /shencan && touch shencan

因为数据写到备份的 /dev/sdb1 盘上了 先要查看数据 需要先关闭备份上的资源 然后把盘挂载上 然后才能进去查看文件

那我先关闭备份的资源吧  到192.168.0.253上 执行drbdadm down shencan

然后挂载到目录 [root@CAN-GE-3 /]# mount -t ext3 /dev/sdb1  /shencan

OK 没问题

有个问题 得注意下  如果现在你在主上面再写一个文件  备上面是看不到的 因为我刚才 把资源down了  如果想看到更新文件 只能这样

在备份上 把目录先umont  然后启用资源   然后再关闭资源  最后在mount上 就可以看到新增的文件了   这个过程 用heartbeat 可以自动实现

所以 DRBD+heartbeat 可以很好的结合在一起  其实keepalived也可以  无非主down了  用keepalived  matser_notify  写个脚本 把备的 资源起来 然后赶紧mount上 就行

下面说说 主备上手动切换吧

在主上把目录 umount掉  然后然后把自己设置为备份就行

drbdadm secondary shencan

然后再备份上  drbdadm primary shencan  然后 mount  /dev/drbd1 到目录就行

刚刚按照网上的资料试了heartbeat  当时我yum安装的   /etc/ha.d/resource.d/目录下面 没有drbddisk脚本  擦了

所以后面的都没做了  有时间自己写个脚本吧    其实我还是想用keepalived 来实现

原理懂了 之后 慢慢来吧  先写这么多 下次补上keepalived结合吧.

更新下

昨天发现/etc/ha.d/resource.d/ 没有drbddisk脚本的原因是  我编译drbd的时候少加了一下 –with-heartbeat 参数

如果不想再编译 在drbd源码文件的 scripts目录下 把 drbddisk drbdupper复制到 /etc/ha.d/resource.d/ 也行  加个执行权限

再总结下吧     其实heartbeat 的资源管理功能 很强大  扩展性很强   其实/etc/ha.d/resource.d/ 目录下的文件 都是shell 脚本 自己完全可以自定义当时的遵循LSB语法就行 . 没事的可以去官网了解 了解..

 

刚刚做了一下实验 没问题 所以 把heartbeat的东西补上

1.heartbeat的安装

这里不多介绍  直接yum 吧

2.heartbeat的配置  #先配置一台然后 把3个配置文件scp过去 稍微改下就行

ha.cf 文件

IP地址为对端设备的 (互相单播)

authkey 文件  #权限改成600

资源管理文件 haresources

 

这个文件比较核心 我多介绍下

CAN-GE-3.com  为主服务器主机名(hosts文件都互相绑定过)

192.168.20.253/24/eth0/192.168.0.255  分别是 VIP 掩码 绑定网卡 广播地址

drbddisk 资源脚本    这个文件上面已经介绍了(其实就是一个umout 然后设置为主 备 过程)

Filesystem资源脚本

如果切到到主 就会把 /dev/drbd1 挂载到/shencan目录下面

OK了 配置完成了 我们测试下

现在已经在

了  我把CAN-GE-3.com的heartbeat起来 看能不能知道切换过去

OK  没问题 切过来了

有时间整理一个与keepalived的结合吧  …

转载请注明linux系统运维
http://www.linuxyw.com/linux/fuzaijunheng/20130509/264.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片