mfs3.0.85+heartbeat+drbd集群高可用实现

简介: mfs集群部署文档1、内容简介MFS有元数据服务器(mfsmaster)、元数据日志存储服务器(mfsmetalogger)、数据存储服务器(mfschunkserver)、客户端(clients)组成。

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


目录
相关文章
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
Shell Linux 数据安全/隐私保护
Linux Shell入门:掌握基本命令和脚本编写
Linux Shell是Linux操作系统中的命令解释器,允许用户通过命令行界面与操作系统进行交互。掌握Shell基础是成为Linux系统管理员或开发人员的关键。本文将介绍Linux Shell的基本知识,包括常用命令和简单脚本编写。
344 0
|
运维 新制造 数据可视化
带你读《智能制造之卓越设备管理与运维实践》之一:设备运维管理的新挑战
本书从工业企业实际需求出发,结合智能制造环境下的紧迫需求,融合作者信息化咨询与项目工作实践,以理论联系实际,将设备的全生命周期管理、精益管理、全员维护、先进的维护策略(预测性维护、智能维护)等管理理与信息化技术进行融合设计,以“IE+IT”的思想实现管理平台与信息平台的平衡发展。
|
7月前
|
监控 算法 测试技术
突破极限: 高负载场景下的单机300M多行正则日志采集不是梦
在当今数字化时代,日志数据已成为企业 IT 运营和业务分析的关键资源。然而,随着业务规模的扩大和系统复杂度的提升,日志数据的体量呈现爆发式增长,给日志采集和处理系统带来了巨大挑战。
536 99
|
10月前
|
vr&ar 云计算 UED
实时云渲染:推动XR技术产业化发展的关键技术之一
近年来,企业利用扩展现实(XR)为用户提供沉浸式虚拟环境,Cloud XR、协同技术和GPU资源池化技术成为XR产业应用的关键。Cloud XR通过云端计算资源实现高效图形渲染,降低终端要求;协同技术助力实时协作,提升团队效率;GPU资源池化则优化资源分配,降低成本。平行云LarkXR提供全面的解决方案,推动XR技术广泛应用。
321 18
|
人工智能 自然语言处理 文字识别
魔搭社区每周速递(8.11-8.17)
607个模型、53个数据集、68个创新应用、5篇应用文章
|
Java 数据库连接 测试技术
Mybatis-PLUS详解
Mybatis-PLUS详解
461 0
|
缓存 监控 固态存储
在Linux中,如何给最小化安装系统,进行基础优化?
在Linux中,如何给最小化安装系统,进行基础优化?
|
网络协议 网络性能优化
基于 Wireshark 分析 TCP 协议
基于 Wireshark 分析 TCP 协议
|
Java
java: 警告: 源发行版 11 需要目标发行版 11
java: 警告: 源发行版 11 需要目标发行版 11
256 0