天天看点

试用分布式存储MooseFS

服务器分布:

概述:

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

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

2、元数据日志服务器metalogger server(metalogger)

3、数据存储服务器 dataservers(chunkservers)

4、客户机挂载使用 clientcomputers

角色描述:

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

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

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

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

总体架构图:

一、mfs master节点部署

# /usr/sbin/groupadd mfs

# /usr/sbin/useradd mfs -g mfs -s /sbin/nologin

# tar xvzf mfs-1.6.27-5.gz

# cd mfs-1.6.27

# ./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--disable-mfschunkserver \

--disable-mfsmount

# make && make install

# cd /usr/local/mfs/etc/mfs

# cp mfsmaster.cfg.dist mfsmaster.cfg

# cp mfsexports.cfg.dist mfsexports.cfg

# cp mfstopology.cfg.dist mfstopology.cfg

对允许远程挂载的主机进行授权

# vim mfsexports.cfg

10.0.0.0/8             /       rw,alldirs,maproot=0

172.0.0.0/8           /       rw,alldirs,maproot=0

# vim mfsmaster.cfg

data_path = /data/mfsmetadata

# mkdir -p /data/mfsmetadata

# cp -a /usr/local/mfs/var/mfs/metadata.mfs.empty /data/mfsmetadata/metadata.mfs

# chown -r mfs:mfs /data/mfsmetadata

# vim /etc/hosts

10.185.15.241        mfsmaster

10.185.15.242        mfsmetalogger

10.137.153.224      mfschunkserver1

10.166.147.229      mfschunkserver2

10.185.4.99           mfschunkserver3

# /usr/local/mfs/sbin/mfsmaster start

# ps aux | grep mfs

# netstat –ntlp

监控平台,修改默认绑定ip地址和端口:

any   --> 10.185.15.241

9425 --> 80

# vim /usr/local/mfs/sbin/mfscgiserv

# /usr/local/mfs/sbin/mfscgiserv start

# netstat -ntlp

访问:http://10.185.15.241

二、mfs metalogger节点部署

# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

# vim mfsmetalogger.cfg

10.185.15.241   mfsmaster

# /usr/local/mfs/sbin/mfsmetalogger start

# netstat -nt | grep :9419

三、mfs chunkservers节点部署

--disable-mfsmaster \

# cp mfschunkserver.cfg.dist mfschunkserver.cfg

# cp mfshdd.cfg.dist mfshdd.cfg

# vim mfschunkserver.cfg

# mkdir -p /data/mfschunk

# chown -r mfs:mfs /data/mfschunk

可以添加多个路径(后续可能会增加多个磁盘)

# vim mfshdd.cfg

/data/mfschunk

# /usr/local/mfs/sbin/mfschunkserver start

四、mfs client节点部署

# tar xvzf fuse-2.9.2.tar.gz

# cd fuse-2.9.2

# ./configure --prefix=/usr/local

运行以下export命令,否则挂载moosefs系统会失败

# vim /etc/profile

export pkg_config_path=/usr/local/lib/pkgconfig:$pkg_config_path

# source /etc/profile

--enable-mfsmount

# mkdir -p /data/mfsdata

# /usr/local/mfs/bin/mfsmount /data/mfsdata -h mfsmaster

设置文件副本数

# /usr/local/mfs/bin/mfsrsetgoal 3 /data/mfsdata

# echo ‘mytest‘  > /data/mfsdata/testfile

# /usr/local/mfs/bin/mfsfileinfo /data/mfsdata/testfile

设置删除文件后空间回收时间

# /usr/local/mfs/bin/mfsrsettrashtime 600 /data/mfsdata

取消本地挂载

# umount -l  /data/mfsdata

一些效果图:

五、一点建议

1、安全停止moosefs集群,建议如下步骤

umount -l /data/mfsdata                                                     # 客户端卸载moosefs文件系统

/usr/local/mfs/sbin/mfschunkserver stop                              # 停止chunkserver进程

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

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

2、安全启动moosefs集群,建议如下步骤

/usr/local/mfs/sbin/mfsmaster start                                      # 启动主控master server进程

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

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

/usr/local/mfs/bin/mfsmount /data/mfsdata -h mfsmaster       # 客户端挂载moosefs文件系统

关于数据备份修复以及容灾,请关注后续博文  

本文出自 “” 博客,请务必保留此出处