大型分布式文件系统moosefs安装配置指南
2015-12-20 18:27:58   来源:cnop   评论:0 点击: 收藏

一,安装环境安装常用库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-1
 
创建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

 
# 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
/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里(根据实际情况添哟):

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

 
/mnt/hd1
/mnt/hd2
/mnt/hd3
/mnt/hd4
 
    把这四行都删除了吧,因为在我们机器上不存在。这里我只写了一行/data,这个分区在我机器上是一块单独的硬盘,专门用来存放数据的。



记得重新定义一下/data的权限哟,要不mfs操作不了。

 
chown -R mfs.mfs /data
 
启动chunkserver

 

/usr/local/mfs/sbin/mfschunkserver


四,配置客户端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指定本地挂载目录。
我们可以把下面这条加到/etc/rc.local,让其开机挂载:
/usr/local/mfs/bin/mfsmount /data -H 192.168.20.210


        同样的方式挂载另外一台192.168.20.214机器。
 
        以后就可以对213上面/data这个目录进行正常的读写了,你所写入的任何东东都会分布到其它多个chunkserver的机器上,以保证数据的安全性。
      在/usr/local/mfs/bin目录还有一些其它的工具,帮你了解mfs运行情况,并设定mfs,有时间可以多看下。

相关热词搜索:指南 moosefs

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