oosefs分布式文件系统是一个易用的系统,但其只有在Pro版中提供了master的高可用方案,免费版master只能单机运行,存在单点故障的隐患。
本文结合网上的相关资料,介绍通过drbd+keepalived来实现mfsmaster高可用的方案。
环境:
CentOS 6
Master-primary IP: 172.18.18.201 (主机名test01)
Master-secondary IP: 172.18.18.202 (test02)
Mfschunkserver IP:172.18.18.203 (test03)
Master 虚拟IP:172.18.18.204
一、安装操作系统
安装CentOS 6系统。需注意:在安装mfsmaster服务器时,一定要划分出一个独立的分区给drbd使用,我这里用的是/dev/sda3,大小500MB。
二、安装drbd
2.1 环境准备
因drbd编辑安装时,需要用到CentOS内核代码,因此需下载对应内核的源码包到本地安装,不要用yum安装。
rpm -ikernel-devel-2.6.32-504.el6.x86_64.rpm
安装编译时需要的环境:
yum -y install gcc flex perl
2.2 drbd编辑安装
tar zxvf drbd-8.4.2.tar.gz
cd drbd-8.4.2
./configure --prefix=/usr/local/drbd–with-km
makeKDIR=/usr/src/kernels/2.6.32-504.el6.x86_64
–说明:这是实际内核源码路径,根据实际情况设定
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
chkconfig --add drbd
chkconfig drbd on
安装DRBD模块:
cd /root/data/drbd-8.4.2/drbd
make clean
makeKDIR=/usr/src/kernels/2.6.32-504.el6.x86_64
cp drbd.ko/lib/modules/2.6.32-504.el6.x86_64/kernel/lib/
–说明:内核版本要用uname -r查一下
modprobe drbd
查看模块是否加载成功
lsmod |grep drbd
drbd 299688 0
libcrc32c 1246 1 drbd
2.3 drbd配置
vi/usr/local/drbd/etc/drbd.d/global_common.conf
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
vi /usr/local/drbd/etc/drbd.d/r0.res
resource r0 {
on test01 {
device /dev/drbd1;
disk /dev/sda3;
address 172.18.18.201:7788;
meta-disk internal;
}
on test02 {
device /dev/drbd1;
disk /dev/sda3;
address 172.18.18.202:7788;
meta-disk internal;
}
}
创建drbd资源: