ITPub博客

首页 > 大数据 > 数据分析 > MooseFS(MFS)分布式文件系统安装

MooseFS(MFS)分布式文件系统安装

数据分析 作者:zhuyuangfu 时间:2014-01-01 10:38:19 0 删除 编辑

MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:

1)管理服务器managing server (master)

负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝

2)元数据日志服务器Metalogger serverMetalogger

负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作

3)数据存储服务器data servers (chunkservers)

负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.

4)客户机挂载使用client computers(需要FUSE支持)

通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix文件系统使用一样的效果.

环境:

192.168.128.10 Master

192.168.128.11 Metalogger

192.168.128.12 Chunkserver-1

192.168.128.13 Chunkserver-2

192.168.128.14 Client

1Master安装配置

[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 / rw,alldirs,maproot=mfs #修改此行,其他默认

[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 17294 1 0 16:13 ? 00:00:00 /usr/local/mfs/sbin/mfsmaster start

[root@Master mfs]# netstat -antlp|grep mfs

tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 17294/mfsmaster

tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 17294/mfsmaster

tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 17294/mfsmaster

[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 17311 1 0 16:15 ? 00:00:00 python /usr/local/mfs/sbin/mfscgiserv

浏览器查看master运行状态:http://192.168.128.10:9425



安全停止master:

[root@Master mfs]# /usr/local/mfs/sbin/mfsmaster -s/stop

2Metalogger安装配置

[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 #master IP 修改此行,其他默认

[root@Metalogger etc]#/usr/local/mfs/sbin/mfsmetalogger start

[root@Metalogger etc]# ps -ef|grep mfs

mfs 17486 1 0 00:30 ? 00:00:00 /usr/local/mfs/sbin/mfsmetalogger start

安全停止:

[root@Metalogger etc]#/usr/local/mfs/sbin/mfsmetalogger -s/stop

3Chunkserver安装配置(两台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 #master IP 修改此行,其他默认

[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 13823 1 0 00:45 ? 00:00:00 /usr/local/mfs/sbin/mfschunkserver start

安全停止:

[root@Chunkserver-1 etc]# /usr/local/mfs/sbin/mfschunkserver -s/stop

4Client安装配置

[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 49237 0

[root@Client ~]# /usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.128.10

[root@Client ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00 13G 5.8G 6.2G 49% /

/dev/sda1 99M 13M 82M 13% /boot

tmpfs 147M 0 147M 0% /dev/shm

mfs#192.168.128.10:9421 27G 0 27G 0% /mnt/mfs

客户端挂载成功后即可在/mnt/mfs下进行创建,删除,拷贝等文件操作了,数据将会写入到所有Chunkserver服务器内。

[root@Client ~]# umount /mnt/mfs #卸载文件系统

再次WEB查看master运行状态:http://192.168.128.10:9425










安全停止 MooseFS 集群步骤:

umount -l /mnt/mfs #客户端卸载MooseFS 文件系统

/usr/local/mfs/bin/mfschunkserver stop #停止 chunk server 进程

/usr/local/mfs/bin/mfsmetalogger stop #停止 metalogger 进程

/usr/local/mfs/bin/mfsmaster stop #停止主控 master server 进程


安全启动 MooseFS 集群步骤:

/usr/local/mfs/bin/mfsmaster start #启动 master 进程

/usr/local/mfs/bin/mfschunkserver start #启动 chunkserver 进程

/usr/local/mfs/bin/mfsmetalogger start #启动 metalogger 进程

/usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.128.10 #客户端挂载 MooseFS 文件系统


常用操作:

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

/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


:配置文件解释[转]

1mfsmaster.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 数据存放路径,此目录下大致有三类文件,changelogsessionsstats

# 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

#* / ro

#192.168.1.0/24 / rw

#192.168.1.0/24 / rw,alldirs,maproot=0,password=passcode

#10.0.0.0-10.0.0.5 /test rw,maproot=nobody,password=test

* . rw

#* / rw,alldirs,maproot=0

192.168.3.98 /tt rw,alldirs,maproot=0

192.168.3.139 / rw,alldirs,maproot=0

192.168.3.138 / rw,alldirs,maproot=0,password=111111

该文件每一个条目分为三部分:

第一部分:客户端的ip 地址

第二部分:被挂接的目录

第三部分:客户端拥有的权限

地址可以指定的几种表现形式:

* 所有的ip 地址

n.n.n.n 单个ip 地址

n.n.n.n/b IP 网络地址/位数掩码

n.n.n.n/m.m.m.m IP 网络地址/子网掩码

f.f.f.f-t.t.t.t IP

目录部分需要注意两点:

/ 标识MooseFS ;

. 表示MFSMETA 文件系统

权限部分:

ro 只读模式共享

rw 读写的方式共享

alldirs 许挂载任何指定的子目录

maproot 映射为root,还是指定的用户

password 指定客户端密码

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21979463/viewspace-1121282/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-06-26

最新文章