Moosefs(mfs)在云平台下部署全攻略

本文档详细介绍了如何在云平台下部署Moosefs,包括安装方法、配置master、备份服务器Backup(metalog)、chunk服务器和客户端,以及监控命令。通过配置不同节点的角色,如将Node1设为master、metalog和chunk1,Node2为chunk2和client1,确保MFS在云环境中正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有如下三个节点:

Node110.10.92.51 192.168.10.43

Node210.10.92.52 192.168.10.45

Node310.10.92.53 192.168.10.46

其中10.10.92.*的ip为云平台管理使用的ip,192.168.10.*为局域网ip

Moosefs主要有4种角色,master,chunk,metalog,client,四种角色的功能,出门右转自行百度。

我将Node1节点部署为master,metalog,chunk1

Node2节点部署为chunk2和client1

 

一、安装方法

这里为了简单起见所有节点都按照client模式,该模式下会将四种角色所需要的东西全部安装。

目录我选择的安装目录/usr/local/,可以根据个人习惯指定其他

1.下载

wgethttp://pro.hit.gemius.pl/hitredir/id=.WCbG2t.7Ln5k1s3Q9xPg8cPfX.wVMc5kyXfrKcJTDH.c7/url=moosefs.org/tl_files/mfscode/mfs-1.6.27-1.tar.gz
 2.解压及添加用户

tar-zxvf  mfs-1.6.27-1.tar.gz

cdmfs-1.6.20

useraddmfs -M -s /sbin/nologin 

3.安装依赖fuse

依赖fuse

Centos系统直接yum就行

yum –y install fuse-devel

4.配置文件及安装

./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs--enable-mfsmount&&make&&make install

解释一下:prefix指定安装的目录;接下来指定的是运行mfs的用户和组;--enable-mfsmount是强制编译mfs的客户端工具mfsmount;用这样的编译参数编出来的mfs系统,master,chunkserver,client三个工具都包含了。笔者个人比较偏好这种方式。当然如果你的服务器分工很明确,master只编译master的包,chunkserver只编译chunkserver的包也可以:

--disabe-mfsmater这样就禁用了master;

--disable-mfschunkserver就禁用了chunkserver;

--disable-mfsmount这样就强制禁用了mfsmount,默认情况下是检测到已经安装fuse才自动安装mfsmount

 

二、配置

1.master

文件夹etc/mfs中包含所有配置文件,将dist后缀去掉就是配置文件,建议使用cp命令复制可以方便配置坏后还原,对于master而言配置文件需要的是如下三个mfsmaster.cfg、mfsexports.cfg、mfstopology.cfg

 

mfsmaster.cfg

                    主配置文件mfsmaster.cfg 原始内容: 
#WORKING_USER = mfs               #运行master server 用户
# WORKING_GROUP = mfs             #运行master server 组
# SYSLOG_IDENT = mfsmaster        #master server 在syslog中的标识,说明是由master产生的
# LOCK_MEMORY = 0                 #是否执行mlockall()避免mfsmaster 进程溢出(默认为0)
# NICE_LEVEL = -19                #运行的优先级(如果可以默认-19;注意:进程必须是用root启动)
# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg #被挂接的目录及其权限控制文件的存放位置
# DATA_PATH = /usr/local/mfs/var/mfs #数据存放路径,此目录分三类文件,changelog ,sessions和stats,这里我自行在改为了/data/mfs,该路径用mkdir设置,而且把该文件夹权限为777
# BACK_LOGS = 50                       #metadata的改变log文件数目(默认是50)
# REPLICATIONS_DELAY_INIT = 300         #延迟复制的时间(默认是300s)
# REPLICATIONS_DELAY_DISCONNECT = 3600  #chunkserver 断开的复制延迟(默认是3600)
# MATOCS_LISTEN_HOST = *               #metalogger 监听的ip地址(默认是*,代表任何ip),这个host需要改为192字段ip防止云平台下通信出错
# MATOCS_LISTEN_PORT = 9419            #metalogger 监听的端口地址(默认是9419)
# MATOCS_LISTEN_HOST = *               #用于chunkserver连接的ip地址(默认是*,代表任何ip),这个host需要改为192字段ip防止云平台下通信出错
# MATOCS_LISTEN_PORT = 9420             #用于chunkserver 连接的端口地址(默认是9420)
# MATOCU_LISTEN_HOST = *               #用于客户端挂接的ip地址(默认*,代表任何ip),这个host需要改为192字段ip防止云平台下通信出错
# MATOCU_LISTEN_PORT = 9421             #用于客户端挂接连接的端口地址(默认9421)
# CHUNKS_LOOP_TIME = 300               #chunksde 回环频率(默认是:300秒)
# CHUNKS_WRITE_REP_LIMIT = 1            #在一个循环里复制到一个chunkserver的最大chunk数目
# CHUNKS_READ_REP_LIMIT = 5             #在一个循环里从一个chunkserver复制的最大chunk数目
CHUNKS_READ_REP_LIMIT = 0 弹出低于1.6.0的客户端挂接(0或1,默认是0

 

置文件mfsexports.cfg 指定那些客户端主机可以远程挂接MFS文件系统,以及授权挂接客户端什么样的访问权限
mfsexports.cfg 的文件每一个条目分为三部分;
第一部分:mfs客户端的ip地址或地址范围
地址可以指定的几种表现形式
 *             #所以的ip地址
 n.n.n.n           #单个ip地址
 n.n.n.n/b         #ip网络地址/位数掩码
 n.n.n.n/m.m.m.m     #ip网络地址/子网掩码
 f.f.f.f-t.t.t.t     #ip段
第二部分:被挂载的目录
 目录部分需要注意两点
 /标识 Moosefs 根
 .表示mfsmeta文件系统

第三部分:设置mfs客户端可以拥有的访问权限
 权限部分:

ro       #只读模式共享
rw        #读写的方式共享
alldirs   #允许挂载任何指定的子目录
maproot   #映射为root,还是指定的用户
password  #指定客户端密码
mfsexports.cfg 实际配置我未做修改,目前没有任何限制,后期可以根据需要增加许多限制

!!!注意#为注释,使配置生效需要去掉#并保存

 

       配置好上述两个文件此时还差最后一步就是如下

cp /usr/local/mfs/var/mfs/metadata.mfs.empty /data/mfs/metadata.mfs

没有这一步一定会报错

现在可以启动master了,所有的服务端启动命令都在./sbin中,找到

./mfsmaster 启动,

./mfsmaster stop 关闭

 

2.备份服务器 Backup(metalog)配置

配置文件只有一个mfsmetalogger.cfg

步骤同上

cp/usr/local/mfs/etc/mfsmetalogger.cfg.dist /usr/local/mfs/etc/mfsmetalogger.cg

 

# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfsmetalogger

# LOCK_MEMORY = 0
# NICE_LEVEL = -19

# DATA_PATH =/usr/local/mfs/var/mfs
# BACK_LOGS = 50
# META_DOWNLOAD_FREQ = 24          #元数据备份文件下载请求,默认24小时,每隔一天从元数据服务器,下载一个metadata,mfs.bak
.当元数据服务器关闭或者故障,metedata.mfs.bak文件将消失,那么要恢复整个mfs,则需从metalogger服务器取得该文件,请特别注意
这个文件,它与日志文件一起,才能够恢复整个被破坏的分布式文件系统
# MASTER_RECONNECTION_DELAY = 5
MASTER_HOST = mfsmaster.etiantian.org          #这里是需要连接的mfs master的主机IP或者域名,按照需求我改为192.168.10.43即node1节点
# MASTER_PORT = 9419               #这里是需要连接的mfs master 的port
# MASTER_TIMEOUT = 60
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock

配置好后即可以启动 

/usr/local/mfs/sbin/mfsmetalogger启动

/usr/local/mfs/sbin/mfsmetaloggerstop 停止

 

3.配置chunk即数据服务器

配置mfschunkserver.cfg 主配置文件两个mfschunkserver.cfg、mfshdd.cfg
 cp /usr/local/mfs/etc/mfschunkserver.cfg.dist/usr/local/mfs/etc/mfschunkserver.cfg
 cp /usr/local/mfs/etc/mfshdd.cfg.dist /usr/local/mfs/etc/mfshdd.cfg 
mfschunkserver.cfg


# WORKING_USER = mfs
# WORKING_GROUP = mfs
#SYSLOG_IDENT = mfsmaster.etiantian.org #指定主机
# LOCK_MEMORY = 0
# NICE_LEVEL = -19

# DATA_PATH = /usr/local/mfs/var/mfs   #数据存放路径,此目录分三类文件,changelog ,sessions 和stats,这里我自行在改为了/data/mfs,该路径用mkdir设置,而且把该文件夹权限为777


# MASTER_RECONNECTION_DELAY = 5

# BIND_HOST = *                    #为防止连接错误,这里配置为192.168.10.45
# MASTER_HOST = mfsmaster          #配置为192.168.10.43即node1
# MASTER_PORT = 9420

# MASTER_TIMEOUT = 60

# CSSERV_LISTEN_HOST = *        #为防止连接错误,这里配置为192.168.10.45
# CSSERV_LISTEN_PORT = 9422       #监听端口用于与其他数据存储服务器间连接,通常是数据复制

# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg
# HDD_TEST_FREQ = 10
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfschunkserver.lock
# BACK_LOGS = 50
# CSSERV_TIMEOUT = 5
 echo 192.168.66.100   mfsmaster.etiantian.org >>/etc/hosts
配置mfshdd.cfg   主配置文件
[root@mysql1 etc]# cat mfshdd.cfg
# mount points of HDD drives
#
#/mnt/hd1
#/mnt/hd2
#etc.
/data #该目录是我自己创建的用于真正存储文件,需要将权限改为777 

 

配置好后启动chunk

/usr/local/mfs/sbin/mfschunkserver 启动

/usr/local/mfs/sbin/mfschunkserver stop 停止

 

4.Client

首先建立目录

mkdir /mnt/mfs

启动fuse

modprobe fuse

所有client的命令全在/usr/local/mfs/bin文件中

/usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.10.43

此时不在master所在节点node1client一定连接不上,原因两点,一、本地服务器的iptables是否关掉,二、云平台防火墙端口9421是否打开这里为了webUI及方便以后配置端口,平台将9400-9490端口全部打开了。

 

 

三、监控命令

lsof–i

tail-f /var/log/messages

mfs自带基于apache的小型webUI在端口9425打开的情况下可以在浏览器查看

在master中启动webUI

/usr/local/mfs /sbin/mfscgiserv -H 192.168.10.43

这里由于没有安装apache需要自己改一下python代码

vim  /usr/local/mfs/share/mfscgi/mfs.cgi

这是我改的

 

不对的地方,还请各位大神指正!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值