设为首页 收藏本站
查看: 952|回复: 0

[经验分享] mfs3.0.85+heartbeat+drbd集群高可用实现

[复制链接]

尚未签到

发表于 2019-1-7 08:42:52 | 显示全部楼层 |阅读模式
mfs集群部署文档

  

1、内容简介

MFS有元数据服务器(mfsmaster)、元数据日志存储服务器(mfsmetalogger)、数据存储服务器(mfschunkserver)、客户端(clients)组成。

目前MFS元数据服务器存在单点问题,因此我们可以通过DRBD提供磁盘及时同步,通过HeartBeat提供Failover,来达到高可用。实现高可用后,不使用mfsmetalogger。

  

2、机器分配:

角色

软件版本

ip地址

操作系统

硬盘

网卡

mfsmaster

moosefs3.0.85

10.39.6.84

CentOS release 6.5

drbd*200G

Speed: 2000Mb/s

slave_master

moosefs3.0.85

10.39.6.88

CentOS release 6.5

drbd*200G

Speed: 2000Mb/s

chunkserver1

moosefs3.0.85

10.39.48.226

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver2

moosefs3.0.85

10.39.48.227

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver3

moosefs3.0.85

10.39.48.228

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver4

moosefs3.0.85

10.39.48.229

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver5

moosefs3.0.85

10.39.48.230

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver6

moosefs3.0.85

10.39.48.231

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver7

moosefs3.0.85

10.39.48.232

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver8

moosefs3.0.85

10.39.48.233

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

chunkserver9

moosefs3.0.85

10.39.48.234

CentOS release 6.5

3.5T/raid5

Speed: 2000Mb/s

  

3、mfsmaster部署安装

mfsmaster需要安装drbd+heartbeat来实现高可用。mfsmasterslave使用同样方式部署。

  

3.1 DRBD安装


修改/etc/hosts文件,添加

10.39.6.84  mfsmaster

10.39.6.88  mfsmasterslave

修改主机名/etc/sysconfig/network:

HOSTNAME=mfsmaster

    同时在命令行执行 hostname  mfsmaster

  

mfsmaster和mfsmasterslave各需要有一块同样大小的单独分区作为drbd的虚拟磁盘使用。

dd if=/dev/zero of=/dev/sda6  bs=1M count=1; sync

  

此处使用源码编译安装,安装前需要确保系统有gcc等编译工具。

    wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz

  

tar zxvf drbd-8.4.3.tar.gz

cd drbd-8.4.3

./configure --prefix=/usr/local/drbd --with-km

make && 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模块:

modprobe drbd

查看DRBD模块是否加载到内核:

lsmod |grep drbd

  

3.1.1DRBD配置

添加新res文件:

vi /usr/local/drbd/etc/drbd.d/dbdata.res

resource dbdata {

        syncer { rate 30M; }

        on mfsmaster{

                device /dev/drbd0;

                disk /dev/sda6;

                address 10.39.6.84:7789;

                meta-disk internal;

        }

        on mfsmasterslave{

                device /dev/drbd0;

                disk /dev/sda6;

                address 10.39.6.88:7789;

                meta-disk internal;

        }

}

  

创建DRBD设备并激活资源:

drbdadm create-md dbdata

再次输入该命令:

drbdadm create-md dbdata

成功激活

  

启动drbd访问:service drbd start

  

查看状态:service drbd status

  

将master设置为主节点:drbdsetup /dev/drbd0 primary  --force

  

挂载DRBD:(node1)

从刚才的状态上看到mounted和fstype参数为空,所以我们这步开始挂载DRBD到系统目录

mkfs.ext3 /dev/drbd0

mount /dev/drbd0 /data

  

注:Secondary节点上不允许对DRBD设备进行任何操作,包括只读,所有的读写操作只能

在Primary节点上进行,只有当Primary节点挂掉时,Secondary节点才能提升为Primary节点继续工作

  

主备切换命令:drbdsetup /dev/drbd0 primary

  

3.2 heartbeat安装

安装epel扩展源:yum -y install epel-release

安装heartbeat / libnet:yum  install -y heartbeat libnet

  

3.2.1 heartbeat配置

  

cd /usr/share/doc/heartbeat-3.0.4/

cp  authkeys  ha.cf    haresources   /etc/ha.d/

cd /etc/ha.d

  

vi authkeys #打开下面两项:一共有三种认证方式供选择,第一种是CRC循环冗余校验,第二种是SHA1哈希算法,第三种是MD3哈希算法,其中他们的密码可以任意设置,但是两边密码必须保持一致。

auth 3

md5 Hello!

chmod 600 authkeys    #给认证文件授权为600

  

vi  haresources  #加入如下语句

mfsmaster drbddisk::dbdata Filesystem::/dev/drbd0::/mfsmeta::ext3 mfsmaster 10.39.6.208

  

vi  ha.cf   #改为如下内容:

logfile /var/log/heartbeat.log

debugfile /var/log/heartbeatdebug.log

logfacility local0

keepalive 2                             #设定heartbeat之间的时间间隔为2秒

deadtime 15                             #在15秒后宣布节点死亡

warntime 5                              #在日志中发出ate heartbeat警告之前等待的时间,单位为秒

initdead 120

#baud 9600

udpport 694

bcast bond0

#serial /dev/ttyS0

auto_failback on                       #on是主机故障后,是否自动切回

node mfsmaster

node mfsmasterslave

use_logd no l  #使用这个脚本去侦听对方是否还活着(使用的是ICMP报文检测)

  

使用yum安装的heartbeat为3.x版本,resource.d下没有drbd对应的脚本,需要补充drbddisk、drbdupper。

  

启动heartbeat,/etc/initd./heartbeat start

  

4、mfschunkserver安装

chunkserver需要依赖fuse,此处使用yum安装。

yum install -y fuse.x86_64 fuse-devel.x86_64

groupadd -g 1001 mfs

useradd -u 1001 -g mfs -s /bin/false -d /home/mfs mfs

  
mkdir -p /usr/local/moosefs-3.0.85/data

sudo chown -R mfs:mfs /usr/local/moosefs-3.0.85

rsync -av 10.39.5.117::PSO/moosefs-3.0.85-1.tar.gz  /usr/src/

sudo tar -zxvf /usr/src/moosefs-3.0.85-1.tar.gz -C /usr/src/

cd /usr/src/moosefs-3.0.85

  

./configure --prefix=/usr/local/moosefs-3.0.85 --sysconfdir=/usr/local/moosefs-3.0.85  --localstatedir=/usr/local/moosefs-3.0.85/data --with-default-user=mfs --with-default-group=mfs --enable-mfsmount  --disable-mfsmaster

make && make install

if [ $? -eq 0 ];then

cd /usr/local/moosefs-3.0.85/mfs

cp mfschunkserver.cfg.sample  mfschunkserver.cfg

cp mfshdd.cfg.sample  mfshdd.cfg

else

echo "make error ,please check "

exit;

fi

  
修改 mfschunkserver.cfg

echo "

MASTER_HOST = 10.39.0.248

">>mfschunkserver.cfg

   修改mfshdd.cfg,添加需要加入mfs集群的硬盘路径。添加完成后,必须将目录权限修改为mfs,否则无法使用。

  

启动、关闭chunkserver:

/usr/local/moosefs-3.0.84/sbin/mfschunkserver stop

/usr/local/moosefs-3.0.85/sbin/mfschunkserver  start

  
5、部署挂载客户端mfsclient

参考脚本:

#!/bin/bash

  

groupadd -g 1001 mfs

useradd -u 1001 -g mfs -s /bin/false mfs

  

yum install -y fuse.x86_64 fuse-devel.x86_64

  

rsync -av 10.39.5.117::PSO/moosefs-3.0.85-1.tar.gz  .

tar -zxvf moosefs-3.0.85-1.tar.gz

cd moosefs-3.0.85

./configure --prefix=/tmp/moosefs-3.0.85 --sysconfdir=/tmp/moosefs-3.0.85 --with-default-user=mfs --with-default-group=mfs --enable-mfsmount  --disable-mfsmaster  --disable-mfschunkserver

make && make install

  

mkdir /mnt/mfs

挂载:

/tmp/moosefs-3.0.85/sbin/mount.moosefs -H 10.39.6.208 /mnt/mfs

  

6、mfs使用指导


关于硬盘热更换等日常维护工作,可参考官方文档:

https://moosefs.com/documentation/faq.html

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660165-1-1.html 上篇帖子: Linux高可用集群方案之heartbeat基础原理及逻辑架构 下篇帖子: heartbeat 3.0集群(1)集群原理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表