首页 > 代码库 > 试用分布式存储MooseFS

试用分布式存储MooseFS

服务器分布:

wKioL1NiZcyzHZpGAAHKdXySKDA644.jpg


概述:

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

1、管理服务器managing servermaster

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

3、数据存储服务器 dataserverschunkservers

4、客户机挂载使用 clientcomputers


角色描述:

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

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

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

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


总体架构图:

wKioL1Nib8bQoBFqAAH3lmiwtKE490.jpg


一、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

wKiom1NiZ2KDZK8VAAH04E9dPes759.jpg


# ps aux | grep mfs

wKiom1NiZ5DxHLdzAABOMTgnb2A139.jpg


# netstat –ntlp

wKioL1NiZ47BJg0RAACtBLIqdJ8272.jpg


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

any   --> 10.185.15.241

9425 --> 80


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

wKiom1NiZ-HwtGalAADNe7R8di4880.jpg


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

wKioL1NiZ_HBGe38AABj-VMx6a0224.jpg


# netstat -ntlp

wKiom1NiaEvy6hHlAACtodIFdBc996.jpg


访问:http://10.185.15.241

wKioL1NiaE-gDhMGAAGlquO-6S8329.jpg


二、MFS Metalogger节点部署

# /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 mfsmetalogger.cfg.dist mfsmetalogger.cfg


# mkdir -p /data/mfsmetadata

# chown -R mfs:mfs /data/mfsmetadata


# vim mfsmetalogger.cfg

DATA_PATH = /data/mfsmetadata


# vim /etc/hosts

10.185.15.241   mfsmaster


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

wKiom1NiaLfBfHF_AADigtpRBwU374.jpg


# netstat -nt | grep :9419

wKioL1NiaLnhKMZtAAA3G5SZDTU232.jpg


三、MFS chunkservers节点部署

# /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-mfsmaster \

--disable-mfsmount

# make && make install


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

# cp mfschunkserver.cfg.dist mfschunkserver.cfg

# cp mfshdd.cfg.dist mfshdd.cfg


# vim /etc/hosts

10.185.15.241   mfsmaster


# mkdir -p /data/mfsmetadata

# chown -R mfs:mfs /data/mfsmetadata


# vim mfschunkserver.cfg

DATA_PATH = /data/mfsmetadata


# mkdir -p /data/mfschunk

# chown -R mfs:mfs /data/mfschunk


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

# vim mfshdd.cfg

/data/mfschunk


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

wKiom1NiaR2gA-gYAADuvC3EFLk991.jpg


# netstat -ntlp

wKioL1NiaSGCLv3DAACCIeGN7VM788.jpg


四、MFS client节点部署

# /usr/sbin/groupadd mfs

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


# tar xvzf fuse-2.9.2.tar.gz

# cd fuse-2.9.2

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

# make && make install


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

# vim /etc/profile

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

# source /etc/profile


# 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 \

--enable-mfsmount

# make && make install


# vim /etc/hosts

10.185.15.241   mfsmaster


# mkdir -p /data/mfsdata

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

wKioL1NiaUyTXMXMAAD__uwce8s583.jpg


设置文件副本数

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

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

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

wKiom1NiaZ-Q-LLCAAC7gqyphjo819.jpg


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

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


取消本地挂载

# umount -l  /data/mfsdata


一些效果图:

wKioL1Niaa6we9QtAADRDyPL0iw624.jpg


wKioL1Niac7TgnNzAADALbwa1R4176.jpg


五、一点建议

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文件系统


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



本文出自 “人生理想在于坚持不懈” 博客,请务必保留此出处http://sofar.blog.51cto.com/353572/1405424