首页 > Storage > MooseFs-分布式文件系统安装向导
2020
03-02

MooseFs-分布式文件系统安装向导

发现自己这个存储页面好空,我又搞过一些内容,不管内容新旧了,贴出来给需要的人参考下吧。
PS:内容太老,仅供参考,第二篇。
每个时期的文档质量不一样,该文章,大部分还是属于当时的操作比较。质量并不是很高。如果你真的有需要,可以给我邮件或者+v。

再补充一些使用中的内容。该文章只是一个安装过程和使用中出现的一些问题,当时参考了很多类似的存储系统,不管是nas,nfs都有一些测试。
mfs 本篇文章。
GlusterFS 另一篇文章有写。 这个只是把文件用自己的形式写了多份。 软件架构比较简单。
hadoop 另一篇文章有写,当时只尝试做一些很基础的内容,这个文档是14年之前的。

算下来,在当年还是mfs相对来说功能更全一些,有自己的WebUI和一些辅助性的工具,我们还有很多旧服务器,之后使用的普通的2t硬盘。使用办公环境的机房(电有点不靠谱)
这类的存储,特别依赖master,master如果出了问题(如停电,机器故障)就需要依赖log服务器,这个log是master的数据日志,要从这里备份。
在实际观察中,mfs这个鬼是频繁的写小文件,全新的2t家用磁盘,一般来说3,4个月就会坏一块。使用了不到2年,后来发现换的磁盘费用太高,最后使用的是某品牌nas。
如果你的读写量不夸张,只是当作每日备份,可以考虑,成本也不错。
如果你们是把这个东西当作硬盘用,成本就不好说了。我们就是这么用的。

仅供参考,毕竟,这个我们大概也是在13-14年左右用的,现在可能会改善,不管是磁盘寿命,还是软件性能。

主机IP 分配情况

Master server IP: 192.168.30.135
Mount client IP: 192.168.30.136
Chuck1 server IP: 192.168.30.138
Chuck2 server IP: 192.168.30.139

主控服务器Master server 安装

本地host解析

vi /etc/hosts
192.168.30.135 mfsmaster
[cce_bash]

[cce_bash]
添加mfs组 和 mfs用户
groupadd mfs && useradd -g mfs -s /sbin/nologin mfs
mkdir tools
cd tools

moosefs最新版源码包
wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.27/mfs-1.6.27.tar.gz/download

下载Python-2.7.4
wget http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz

解包并配置moosefs
tar xzf mfs-1.6.27-5.gz

cd mfs-1.6.27

./configure \
--prefix=/data/soft/mfs-1.6.27 \
--with-default-user=mfs \
--with-default-group=mfs \
--sysconfdir=/data/soft/mfs-1.6.27/etc \
--localstatedir=/data/soft/mfs-1.6.27/var/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount

make && make install
安装高版本Python
tar xzf Python-2.7.4.tar
cd Python-2.7.4
./configure && make && make install
切换到配置文件目录
cd /data/soft/mfs-1.6.27/etc/mfs

拷贝样例文件
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cp mfsexports.cfg.dist mfsexports.cfg

首次安装需要打开数据存储文件
cd /data/soft/mfs-1.6.27/var/lib/mfs
cp metadata.mfs.empty metadata.mfs

更改mfsexports.cfg配置文件 指定挂载权限
vi mfsexports.cfg

Allow everything but "meta".
192.168.30.136 / rw,alldirs,maproot=0

Allow "meta".
<ul>
    <li>. rw</li>
</ul>
运行Master 服务
/data/soft/mfs-1.6.27/sbin/mfsmaster start

开启mfs自带的web
/data/soft/mfs-1.6.27/sbin/mfscgiserv

检查端口是否开启
netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9425 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
日志服务器安装
groupadd mfs && useradd -g mfs -s /sbin/nologin mfs
tar xzf mfs-1.6.27-5.gz
cd mfs-1.6.27
./configure --prefix=/data/soft/mfs-1.6.27 \
--localstatedir=/data/soft/mfs-1.6.27/var/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount
make && make install

cd /data/soft/mfs-1.6.27/etc/mfs

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
存储块服务器 Chunk servers 安装
本地host解析
vi /etc/hosts
192.168.30.135 mfsmaster

添加mfs组 和 mfs用户
groupadd mfs && useradd -g mfs -s /sbin/nologin mfs
mkdir tools
cd tools

解包并配置moosefs
tar xzf mfs-1.6.27-5.gz
cd mfs-1.6.27
./configure \
--prefix=/data/soft/mfs-1.6.27 \
--sysconfdir=/data/soft/mfs-1.6.27/etc \
--localstatedir=/data/soft/mfs-1.6.27/var/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster

编译并配置
make && make install

切换到配置文件目录
cd /data/soft/mfs-1.6.27/etc/mfs

拷贝样例文件
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
打开mfshdd.cfg文件 写入共享目录
vi mfshdd.cfg
/data/test1

创建共享目录
mkdir -p /data/test1

属主属组更改为mfs
chown -R mfs:mfs /data/test1

启动chuck server
/data/soft/mfs-1.6.27/sbin/mfschunkserver start

检查端口是否开启
netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:9422 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
Mount client 安装
本机主机解析
vi /etc/hosts
192.168.30.135 mfsmaster

添加mfs组 和 mfs用户
groupadd mfs && useradd -g mfs -s /sbin/nologin mfs
mkdir tools
cd tools

下载fuse源码包
wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz/download

安装包pkgconfig
rz 上传

rpm -Uvh pkgconfig-0.21-2.el5.x86_64.rpm

下载util-linux软件包
tar xzf util-linux-2.20.tar.bz2
cd util-linux-2.20
./configure && make && make install
cd ..

解包并配置fuse
tar xzf fuse-2.9.2.tar.gz

cd fuse-2.9.2

./configure \
--prefix=/usr

make && make install

cd ..

此处可能会提示如下信息(请检查util-linux是否安装)
configure: WARNING:


  • Please install util-linux version 2.18 or later which supports *
  • –fake and –no-canonicalize options in mount and umount *

加载模块
modprobe fuse

pkgconfig追加环境变量(否则编译mfs会提示找不到pkgconfig)
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH

增加库路径
vi /etc/ld.so.conf.d/fuse_lib.conf
/usr/lib
/usr/local/lib

. /etc/profile

ldconfig

解包并配置moosefs
tar xzf mfs-1.6.27-5.gz
cd mfs-1.6.27
./configure \
--prefix=/data/soft/mfs-1.6.27 \
--sysconfdir=/data/soft/mfs-1.6.27/etc \
--localstatedir=/data/soft/mfs-1.6.27/var/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--enable-mfsmount

编译并安装
make && make install

建立挂载点目录
mkdir /data/mfs

尝试客户端挂载
/data/soft/mfs-1.6.27/bin/mfsmount /data/mfs -H mfsmaster

尝试客户端挂载垃圾回收
mkdir /data/mfs/meta

/data/soft/mfs-1.6.27/bin/mfsmount -m /data/mfs/meta -H mfsmaster

client

创建副本数,官方推荐的数量是3个副本数,副本数不能大于chunkserver的数量
设置冗余goal设置(-r 是递归整个目录)
/data/soft/mfs-1.6.26/bin/mfssetgoal -r 3 /data/mfs

查看设置的goal数
/data/soft/mfs-1.6.26/bin/mfsgetgoal /data/mfs

mfscheckfile 用来检查指定文件以多少副本来存储(
实际创建的副本数可以用这两条命令检测)
/data/soft/mfs-1.6.26/bin/mfscheckfile /data/mfs/1.txt

mfsfileinfo 查看文件分别传送到哪些服务器
/data/soft/mfs-1.6.26/bin/mfsfileinfo /data/mfs/1.txt

设置垃圾隔离时间(时间以秒计算 600秒等同于10分钟,官方推荐时间)
/data/soft/mfs-1.6.26/bin/mfssettrashtime 600 /data/mfs

查看垃圾隔离时间
/data/soft/mfs-1.6.26/bin/mfsgettrashtime /data/mfs

给文件或目录树做快照
/data/soft/mfs-1.6.26/bin/mfsmakesnapshot source … destination

mfsdirinfo查看目录树的内容摘要
/data/soft/mfs-1.6.26/bin/mfsdirinfo
常用维护操作
1、Mfs的元数据服务器存在单点故障,在mfs里最重要的也是元数据服务器,
它最重要的目录是/data/soft/mfs-1.6.26/var/lib/mfs/
在这个目录下只要保证了changelog*.mfs 和 metadata.mfs 这两个文件的安全
即使元数据服务器宕机也可以快速恢复
cd /data/soft/mfs-1.6.26/var/lib/mfs
tar czf mfs_backup.tar.gz *

Mfs的恢复
2、元数据服务器非正常关掉进程(主机发生崩溃,电源异常断电,进程非正常关闭)下次启动会报如下错误:
can't open metadata file
if this is new instalation then rename /data/soft/mfs-1.6.26/var/lib/mfs/metadata.mfs.empty
as /data/soft/mfs-1.6.26/var/lib/mfs/metadata.mfs
init: file system manager failed !!!
error occured during initialization - exiting

解决方法:
自动恢复文件系统
/data/soft/mfs-1.6.26/sbin/mfsmetarestore -a

手动恢复文件系统
mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs

执行完以上任意一个步骤,就可以试着开启master服务
/data/soft/mfs-1.6.26/sbin/mfsmaster start

客户端挂载后需要创建挂载的二级子目录(进入到挂载点目录)
mkdir 192.168.6.230

在master server mfsexport.cfg 文件中编辑权限配置
vi /data/soft/mfs-1.6.27/etc/mfs/mfsexports.cfg
192.168.6.230 /192.168.6.230 rw,alldirs,maproot=0
192.168.6.21 /192.168.6.21 rw,alldirs,maproot=0
192.168.6.31 /192.168.6.31 rw,alldirs,maproot=0
192.168.1.130 / rw,alldirs,maproot=0

重新加载配置文件
/data/soft/mfs-1.6.27/sbin/mfsmaster reload

客户端挂载子目录(-S 挂载点子目录客户端之前创建的二级子目录 –H mfsmaster IP or 域名 /data 本地挂载点目录)
/data/soft/mfs-1.6.27/bin/mfsmount /data -H 192.168.6.230 -S /192.168.6.230
最后编辑:
作者:王, 帅
这个作者貌似有点懒,什么都没有留下。

留下一个回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据