首页 > 大数据 > 数据分析 > MooseFS(MFS)分布式文件系统安装
MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:
1)管理服务器managing server (master)
2)元数据日志服务器Metalogger server(Metalogger)
3)数据存储服务器data servers (chunkservers)
4)客户机挂载使用client computers(需要FUSE支持)
环境:
192.168.128.10
192.168.128.11
192.168.128.12
192.168.128.13
192.168.128.14
1,Master安装配置
[root@Master ~]#groupadd mfs
[root@Master ~]#useradd -g mfs mfs
[root@Master ~]# cd /usr/local/src/
[root@Master src]# tar zxf mfs-1.6.20.tar.gz
[root@Master src]# cd mfs-1.6.20
[root@Master mfs-1.6.20]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs
--with-default-group=mfs --disable-mfsmount --disable-mfschunkserver
[root@Master mfs-1.6.20]# make
[root@Master mfs-1.6.20]# make install
[root@Master mfs-1.6.20]# cd /usr/local/mfs/etc/
[root@Master etc]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@Master etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@Master etc]# cp mfsexports.cfg.dist mfsexports.cfg
[root@Master etc]# vi mfsexports.cfg
192.168.128.0/24
[root@Master etc]# cd ../var/mfs/
[root@Master mfs]# cp metadata.mfs.empty metadata.mfs
[root@Master mfs]# /usr/local/mfs/sbin/mfsmaster start
[root@Master mfs]# ps -ef|grep mfs
mfs
[root@Master mfs]# netstat -antlp|grep mfs
tcp
tcp
tcp
[root@Master mfs]# cp metadata.mfs.empty metadata.mfs
[root@Master mfs]# /usr/local/mfs/sbin/mfscgiserv
[root@Master mfs]# ps -ef|grep mfscgi
root
浏览器查看master运行状态:http://192.168.128.10:9425
安全停止master:
[root@Master mfs]# /usr/local/mfs/sbin/mfsmaster -s/stop
2,Metalogger安装配置
[root@Metalogger ~]#groupadd mfs
[root@Metalogger ~]#useradd -g mfs mfs
[root@Metalogger ~]# cd /usr/local/src/
[root@Metalogger src]# tar zxf mfs-1.6.20.tar.gz
[root@Metalogger src]# cd mfs-1.6.20
[root@Metalogger mfs-1.6.20]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfschunkserver
[root@Metalogger mfs-1.6.20]# make
[root@Metalogger mfs-1.6.20]# make install
[root@Metalogger mfs-1.6.20]# cd /usr/local/mfs/etc/
[root@Metalogger etc]#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@Metalogger etc]#vi mfsmetalogger.cfg
MASTER_HOST = 192.168.128.10
[root@Metalogger etc]#/usr/local/mfs/sbin/mfsmetalogger start
[root@Metalogger etc]# ps
-ef|grep
mfs
安全停止:
[root@Metalogger etc]#/usr/local/mfs/sbin/mfsmetalogger -s/stop
3,Chunkserver安装配置(两台Chunkserver都如下配置)
[root@Chunkserver-1 ~]#groupadd mfs
[root@Chunkserver-1 ~]#useradd -g mfs mfs
[root@Chunkserver-1 ~]# cd /usr/local/src/
[root@Chunkserver-1 src]# tar zxf mfs-1.6.20.tar.gz
[root@Chunkserver-1 src]# cd mfs-1.6.20
[root@Chunkserver-1 mfs-1.6.20]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster
[root@Chunkserver-1 mfs-1.6.20]#make && make install
[root@Chunkserver-1 mfs-1.6.20]# cd /usr/local/mfs/etc/
[root@Chunkserver-1 etc]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@Chunkserver-1 etc]# cp mfshdd.cfg.dist mfshdd.cfg
[root@Chunkserver-1 etc]# vi mfschunkserver.cfg
MASTER_HOST = 192.168.128.10
[root@Chunkserver-1 etc]# vi mfshdd.cfg
/mnt/data1
/mnt/data2
[root@Chunkserver-1 etc]# mkdir /mnt/data1
[root@Chunkserver-1 etc]# mkdir /mnt/data2
[root@Chunkserver-1 etc]# chown -R mfs:mfs /home/data1
[root@Chunkserver-1 etc]# chown -R mfs:mfs /home/data2
[root@Chunkserver-1 etc]# /usr/local/mfs/sbin/mfschunkserver start
[root@Chunkserver-1 etc]# ps -ef|grep mfs
mfs
安全停止:
[root@Chunkserver-1 etc]# /usr/local/mfs/sbin/mfschunkserver -s/stop
4,Client安装配置
[root@Client ~]# cd /usr/local/src/
[root@Client src]# tar zxf fuse-2.9.0.tar.gz
[root@Client src]# tar zxf mfs-1.6.20.tar.gz
[root@Client src]# cd fuse-2.9.0
[root@Client fuse-2.9.0]# ./configure
[root@Client fuse-2.9.0]# make
[root@Client fuse-2.9.0]# make install
[root@Client fuse-2.9.0]# cd ../mfs-1.6.20
[root@Client mfs-1.6.20]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
[root@Client mfs-1.6.20]# make
[root@Client mfs-1.6.20]# make install
[root@Client mfs-1.6.20]# cd
[root@Client ~]# mkdir /mnt/mfs
[root@Client ~]#modprobe fuse
[root@Client ~]#lsmod |grep fuse
fuse
[root@Client ~]# /usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.128.10
[root@Client ~]# df -h
Filesystem
/dev/mapper/VolGroup00-LogVol00
/dev/sda1
tmpfs
mfs#192.168.128.10:9421
客户端挂载成功后即可在/mnt/mfs下进行创建,删除,拷贝等文件操作了,数据将会写入到所有Chunkserver服务器内。
[root@Client ~]# umount
/mnt/mfs
再次WEB查看master运行状态:http://192.168.128.10:9425
安全停止 MooseFS 集群步骤:
umount -l /mnt/mfs
/usr/local/mfs/bin/mfschunkserver stop
/usr/local/mfs/bin/mfsmetalogger stop
/usr/local/mfs/bin/mfsmaster stop
安全启动 MooseFS 集群步骤:
/usr/local/mfs/bin/mfsmaster start
/usr/local/mfs/bin/mfschunkserver start
/usr/local/mfs/bin/mfsmetalogger start
/usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.128.10
常用操作:
1),设置文件副本数量
[root@Client ~]# cp /usr/local/src/mfs-1.6.20-2.tar.gz /mnt/mfs
[root@Client ~]# /usr/local/mfs/bin/mfssetgoal 3 /mnt/mfs
/mnt/mfs: 3
查看设置:
[root@Client ~]# /usr/local/mfs/bin/mfsgetgoal
/mnt/mfs: 3
2),设置删除文件后空间回收时间。默认的回收时间为7天(604800秒)
设置回收时间为1小时:
[root@Client ~]# /usr/local/mfs/bin/mfssettrashtime 3600 /mnt/mfs
/mnt/mfs: 3600
查看设置:
[root@Client ~]# /usr/local/mfs/bin/mfsgettrashtime /mnt/mfs
/mnt/mfs: 3600
3)Master崩溃后修复
[root@Master ~]# /usr/local/mfs/sbin/mfsmetarestore -a
loading objects (files,directories,etc.) ... ok
loading names ... ok
loading deletion timestamps ... ok
checking filesystem consistency ... ok
loading chunks data ... ok
connecting files and chunks ... ok
store metadata into file: /usr/local/mfs/var/mfs/metadata.mfs
调用metadata.mfs文件恢复,如果编译安装时指定了--localstatedir=DIRECTORY参数指定路径,则需要加上-d参数。
[root@Master ~]# /usr/local/mfs/sbin/mfsmetarestore -a -d DIRECTORY
附:配置文件解释[转]
1)mfsmaster.cfg
# WORKING_USER = mfs 运行master server 的用户
# WORKING_GROUP = mfs 运行master server 的组
# SYSLOG_IDENT = mfsmaster master server 在syslog中的标识,说明是由master serve 产生的
# 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;
# BACK_LOGS = 50 metadata 的改变log 文件数目(默认是50);
# REPLICATIONS_DELAY_INIT = 300 延迟复制的时间(默认是300s);
# REPLICATIONS_DELAY_DISCONNECT = 3600 chunkserver 断开的复制延迟(默认是3600);
# MATOML_LISTEN_HOST = * metalogger 监听的IP 地址(默认是*,代表任何IP);
# MATOML_LISTEN_PORT = 9419 metalogger 监听的端口地址(默认是9419);
# MATOCS_LISTEN_HOST = * 用于chunkserver 连接的IP 地址(默认是*,代表任何IP);
# MATOCS_LISTEN_PORT = 9420 用于chunkserver 连接的端口地址(默认是9420);
# MATOCU_LISTEN_HOST = * 用于客户端挂接连接的IP 地址(默认是*,代表任何IP);
# MATOCU_LISTEN_PORT = 9421 用于客户端挂接连接的端口地址(默认是9421);
# CHUNKS_LOOP_TIME = 300 chunks 的回环频率(默认是:300 秒);
注:原文为Chunks loop frequency in seconds (default is 300)
# CHUNKS_DEL_LIMIT = 100
# CHUNKS_WRITE_REP_LIMIT = 1 在一个循环里复制到一个chunkserver 的最大chunk数目(默认是1)
# CHUNKS_READ_REP_LIMIT = 5 在一个循环里从一个chunkserver 复制的最大chunk数目(默认是5)
# REJECT_OLD_CLIENTS = 0 弹出低于1.6.0 的客户端挂接(0 或1,默认是0)
注意mfsexports 访问控制对于那些老客户是没用的
2),mfsexports.cfg
#*
#192.168.1.0/24
#192.168.1.0/24
#10.0.0.0-10.0.0.5
*
#*
192.168.3.98
192.168.3.139
192.168.3.138
该文件每一个条目分为三部分:
第一部分:客户端的ip 地址
第二部分:被挂接的目录
第三部分:客户端拥有的权限
地址可以指定的几种表现形式:
*
n.n.n.n
n.n.n.n/b
n.n.n.n/m.m.m.m IP
f.f.f.f-t.t.t.t
目录部分需要注意两点:
/ 标识MooseFS 根;
. 表示MFSMETA 文件系统
权限部分:
ro
rw
alldirs
maproot
password
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21979463/viewspace-1121282/ ,如需转载,请注明出处,否则将追究法律责任。