大型分布式文件系统moosefs安装配置指南
2015-12-20 18:27:58 点击:

一,安装环境安装常用库yum -y install gcc zlib-devel zlib fuse fuse-devel fuse-libs ntp下载,解压mfs :wget http: mirror
       在开始配置以前咱们说下实验环境,我本地测试使用了5台机器,一台master,两台chunkserver,两台:client:,还有就是关闭下防火墙,以免影响实验结果:
 
master:192.168.20.210
chunkserver1:192.168.20.211
chunkserver2:192.168.20.212
client:192.168.20.213
client:192.168.20.214

         其实三台机器就可以了,mfs并不严格要求你说master和chunkserver以及client不能跑在同一台器,而实际情况笔者也确实这样试过没啥问题。但是考虑的系统的安全稳定还是建议master单独跑一台,并做好备份,chunkserver和client就可以看具体需求了。

 
一,安装环境(所有机器都要安装):

安装常用库

yum -y install gcc zlib-devel zlib fuse fuse-devel fuse-libs ntp


下载,解压mfs :
 
wget http://mirror.cnop.net/moosefs/moosefs-2.0.81-1.tar.gz

wget http://mirror2.cnop.net/moosefs/moosefs-2.0.81-1.tar.gz
tar -zxvf  moosefs-2.0.81-1.tar.gz
cd moosefs-2.0.81
 
创建mfs用户和组:
 
useradd  mfs -s /sbin/nologin
 
安装mfs:
 
./configure --prefix=/usr/local/mfs   --with-default-user=mfs --with-default-group=mfs
make && make install
 
mfs系统说明:
    mfs系统配置起来特别简单,下面就由我来向您展示一下mfs的神奇魅力。先简单说一下mfs的目录结构。如果您也和我使用一样的编译参数。那么进入/usr/local/mfs你会发现bin,etc,sbin,share,var几个简洁的目录:
 
bin:mfs客户端工具的目录
sbin:mfs服务端工具目录
etc:mfs配置文件所在的目录包括master和chunkserver
share:这个就不用说了,帮助文件目录
var:数据文件目录。
 
    
二,master配置
第一步做好后进入相关目录,

     cd  /usr/local/mfs/etc/mfs


   
用到的文件etc下的mfsmaster.cfg,用到的工具sbin下的mfsmaster,先来看mfsmaster.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
vi mfsmaster.cfg

 
# WORKING_USER = mfs
# WORKING_GROUP = mfs
 
# LOCK_FILE = /var/run/mfs/mfsmaster.pid
# DATA_PATH = /usr/local/mfs/var/mfs
# SYSLOG_IDENT = mfsmaster
 
# BACK_LOGS = 50
 
# REPLICATIONS_DELAY_INIT = 300
# REPLICATIONS_DELAY_DISCONNECT = 3600
 
# MATOCS_LISTEN_HOST = *
# MATOCS_LISTEN_PORT = 9420
 
# MATOCU_LISTEN_HOST = *
# MATOCU_LISTEN_PORT = 9421
 
# CHUNKS_LOOP_TIME = 300
# CHUNKS_DEL_LIMIT = 100
# CHUNKS_REP_LIMIT = 15
 
选项似乎挺多,其实我们第一次可以只关注一句

# MATOCS_LISTEN_HOST = * 改成MATOCS_LISTEN_HOST = 192.168.20.210

 
去掉#,把*换成master的ip,就这么简单,保存,退出就可以了。这里顺便说一下mfs的配置文件,虽然默认都加着#也就是说不起作用,但是未编辑过的配置文件里记录的参数,也是系统未配置时运行的默认参数,这点注意。
 
启动master

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

cd /usr/local/mfs/etc/mfs
cp mfsexports.cfg.dist mfsexports.cfg
cp mfstopology.cfg.dist mfstopology.cfg

/usr/local/mfs/sbin/mfsmaster

 
注意:上面cp必须要执行,不然会出现无法找到metadata.mfs文件提示,Metadata记录文件的大小、文件的属性、文件的位置,也包括非规则文件的系统,如目录、sockets、管道和设备



之后就可以去系统日志看下master的运行情况。

 
停止master的指令如下:

/usr/local/mfs/sbin/mfsmaster stop

 


小技巧:如果觉得每次都输这么长的命令麻烦的话,可以把它加入到path:
export PATH=/usr/local/mfs/sbin:/usr/local/mfs/sbin:$PATH

以后再控制master直接用mfsmaster或者mfsmaster -s是不是很方便?
开机启动我们可以把下面这条加到/etc/rc.local里(根据实际情况添哟):

 

vi  /etc/rc.local
/usr/local/mfs/sbin/mfsmaster
/usr/local/mfs/sbin/mfscgiserv


启动管理端:

 /usr/local/mfs/sbin/mfscgiserv




浏览器访问:

http://192.168.20.210:9425


即可访问

端口添加防火墙:

 /sbin/iptables -I INPUT -p tcp --dport 9421 -j ACCEPT
/etc/rc.d/init.d/iptables save
/sbin/iptables -I INPUT -p tcp --dport 9419 -j ACCEPT
/etc/rc.d/init.d/iptables save
/sbin/iptables -I INPUT -p tcp --dport 9420 -j ACCEPT
/etc/rc.d/init.d/iptables save
/sbin/iptables -I INPUT -p tcp --dport 9425 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart

 
三,chunkserver配置(实际保存数据的服务器)
    安装软件,不再陈述,请参考第一步,这里以其中一台192.168.20.211为例用到的文件etc下的mfschunkserver.cfg和mfshdd.cfg(软件安装好后没有相关文件可拷贝同目录下的disk对应文件重新命名下) 先来看mfschunkserver.cfg:

cd /usr/local/mfs/etc/mfs
cp mfschunkserver.cfg.dist mfschunkserver.cfg
vi 
mfschunkserver.cfg


 
# WORKING_USER = mfs
# WORKING_GROUP = mfs
 
# DATA_PATH = /usr/local/mfs/var/mfs
# LOCK_FILE = /var/run/mfs/mfschunkserver.pid
# SYSLOG_IDENT = mfschunkserver
 
# BACK_LOGS = 50
 
# MASTER_RECONNECTION_DELAY = 30
 
# MASTER_HOST = mfsmaster
# MASTER_PORT = 9420
 
# MASTER_TIMEOUT = 60
 
# CSSERV_LISTEN_HOST = *
# CSSERV_LISTEN_PORT = 9422
 
# CSSERV_TIMEOUT = 60
 
# CSTOCS_TIMEOUT = 60
 
# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg

选项比mfsmaster.cfg不少,不过不怕,我们只关心下面一行:

# MASTER_HOST = mfsmaster 改成MASTER_HOST = 192.168.20.210

 
再来看mfshdd.cfg,顾名思义就是mfs的硬盘配置:

 
cd /usr/local/mfs/etc/mfs
cp mfshdd.cfg.dist mfshdd.cfg

建立一个用于放置数据的文件夹并授权:

mkdir /data
chown -R mfs.mfs  /data

编辑mfshdd.cfg

vi mfshdd.cfg

默认注释可以不用管他,因为在我们机器上不存在。这里我们在底部写一行

/data

这个分区在我机器上是一块单独的硬盘,专门用来存放数据的。




 
启动chunkserver
 

/usr/local/mfs/sbin/mfschunkserver
 

mfschunkserver开机启动添加如下:

vi /etc/rc.local

/usr/local/mfs/sbin/mfschunkserver

四,mfsmetalogger配置(除主服务器外任意一台):
 
cd /usr/local/mfs/etc/mfs
cp mfsmetalogger.cfg.dist  mfsmetalogger.cfg
vi mfsmetalogger.cfg
 
 
修改MASTER_HOST后面ip为主服务器ip
启动:
/usr/local/mfs/sbin/mfsmetalogger



五,配置客户端client

       客户端严格来说,已经算不上配置了,充其量也就是一个应用。客户端可以是任意一台需要使用分布式系统,并且安装了mfsmount的服务器。对于客户端来说mfs只是挂载方式不一样,挂载完了和普通的硬盘分区没啥区别。到底怎么挂载呢?

       这里以其中一台192.168.20.213为例,安装mfs软件这里也不再陈述,请参考第一步,用到的命令为mfsmount,这个工具位于bin目录下。

# mkdir /data
#/usr/local/mfs/bin/mfsmount /data -H 192.168.20.210

 

注意目录,如果客户端挂载目录和存储服务器同时用在一个服务器上不可相同。mfsmount这个命令常用的参数就两个:-h指定服务器。-w指定本地挂载目录。



        同样的方式挂载另外一台192.168.20.214机器。
        以后就可以对213上面/data这个目录进行正常的读写了,你所写入的任何东东都会分布到其它多个chunkserver的机器上,以保证数据的安全性。
添加开机启动:

vi /etc/rc.local
添加下面信息:
/usr/local/mfs/bin/mfsmount /data -H 192.168.20.210



六,挂载垃圾箱目录:
 

建立垃圾桶挂载目录:
mkdir /home/trash
挂载垃圾桶:
/usr/local/mfs/bin/mfsmount -o mfsmeta -H 192.168.20.210 /home/trash

       trash目录中是删除到回收站中的文件,如果移动到undel子目录,那么被删除的文件就会恢复到原MFS文件系统中,如下所示,执行完最后一行后就可以在文件中看到文件被还原了:



       只有管理员有权限访问MFSMETA (用户的uid 0,通常是root)。在 MFSMETA的目录里,除了trash和trash/undel两个目录外,还有第三个目录reserved,该目录内有已经删除的文件,但却有一直打开着。在用户关闭了这些被打开的文件后,reserved目录中的文件将被删除,文件的数据也将被立即删除。在reserved目录中文件的命名方法同trash目录中的一样。
 






常用命令(客户端操作):


查看文件份数:

/usr/local/mfs/bin/mfsgetgoal /data


查看/data目录备份几份。

设置文件份数:

/usr/local/mfs/bin/mfssetgoal  -r 3 /data

设置目录/data备份为3份。

设置删除延迟:

/usr/local/mfs/bin/mfsrsettrashtime 10 -r /data

删除10秒后清除回收站里的数据。

查看删除延迟时间:

/usr/local/mfs/bin/mfsgettrashtime /data





相关热词搜索:指南 moosefs

上一篇:MooseFS介绍
下一篇:MFS灾难测试及恢复