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
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.gztar -zxvf moosefs-2.0.81-1.tar.gzcd moosefs-2.0.81
useradd mfs -s /sbin/nologin
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
第一步做好后进入相关目录,
cd /usr/local/mfs/etc/mfs
用到的文件etc下的mfsmaster.cfg,用到的工具sbin下的mfsmaster,先来看mfsmaster.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
vi mfsmaster.cfg
# MATOCS_LISTEN_HOST = * 改成MATOCS_LISTEN_HOST = 192.168.20.210
启动master
cd /usr/local/mfs/var/mfs
cp metadata.mfs.empty metadata.mfscd /usr/local/mfs/etc/mfscp mfsexports.cfg.dist mfsexports.cfgcp mfstopology.cfg.dist mfstopology.cfg/usr/local/mfs/sbin/mfsmaster
之后就可以去系统日志看下master的运行情况。
/usr/local/mfs/sbin/mfsmaster stop
小技巧:如果觉得每次都输这么长的命令麻烦的话,可以把它加入到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
cd /usr/local/mfs/etc/mfs
cp mfschunkserver.cfg.dist mfschunkserver.cfg
vi mfschunkserver.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
这个分区在我机器上是一块单独的硬盘,专门用来存放数据的。
/usr/local/mfs/sbin/mfschunkserver
mfschunkserver开机启动添加如下:
vi /etc/rc.local
/usr/local/mfs/sbin/mfschunkserver
cd /usr/local/mfs/etc/mfscp mfsmetalogger.cfg.dist mfsmetalogger.cfgvi mfsmetalogger.cfg
/usr/local/mfs/sbin/mfsmetalogger
五,配置客户端client
这里以其中一台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目录备份几份。
设置文件份数:
设置目录/data备份为3份。/usr/local/mfs/bin/mfssetgoal -r 3 /data
设置删除延迟:
删除10秒后清除回收站里的数据。/usr/local/mfs/bin/mfsrsettrashtime 10 -r /data
查看删除延迟时间:
/usr/local/mfs/bin/mfsgettrashtime /data