MooseFS介绍
mooseFS是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。
MooseFS文件系统结构包括以下四种角色:
1 管理服务器managing server (master)
2 元数据日志服务器Metalogger server(Metalogger)
3数据存储服务器data servers (chunkservers)
4 客户机挂载使用client computers
原理图:
搭建的环境介绍
Master server: 10.96.153.223
Metalogger server : 10.96.153.224
chunk server : 10.96.153.221 10.96.153.222
client server : 10.96.153.225
这里使用两台chunk server,master、metalogger和client各一台进行测试,当然,如果由于服务器有限,可以把master和metalogger分别放在chunkserver上。
Master Server安装
1、下载解压
- #cd /usr/src
- #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
- #tar xzf mfs-1.6.26.tar.gz
2、配置编译参数
- #groupadd mfs
- #useradd -g mfs mfs
- #cd mfs-1.6.26/
- #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmount –disable-mfschunkserver
3、编译并安装
- #make
- #make install
4、配置文件
- #cd /usr/local/mfs/etc
- #cp mfsmaster.cfg.dist mfsmaster.cfg
- #cp mfsexports.cfg.dist mfsexports.cfg
更改配置文件mfsexports.cfg
- 10.96.153.0/24 / rw,alldirs,maproot=0
5、启动前准备
- #cd /usr/local/mfs/var/mfs
- #cp metadata.mfs.empty metadata.mfs
- #echo "10.96.153.221 mfsmaster" >> /etc/hosts
6、启动mfsmaster
- #/usr/local/mfs/sbin/mfsmaster start
7、监控服务
- #/usr/local/mfs/sbin/mfscgiserv
浏览器输入10.96.153.221:9425
mfsmetalogger搭建
1、下载解压
- #cd /usr/src
- #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
- #tar xzf mfs-1.6.26.tar.gz
2、配置编译参数
- #groupadd mfs
- #useradd -g mfs mfs
- #cd mfs-1.6.26/
- #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmount –disable-mfschunkserver
3、编译并安装
- #make
- #make install
4、配置文件
- #cd /usr/local/mfs/etc
- #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
5、启动前准备
- #echo "10.96.153.221 mfsmaster" >> /etc/hosts
6、启动mfsmetalogger
- ##/usr/local/mfs/sbin/mfsmetalogger start
Chunk servers 安装
1、下载解压
- #cd /usr/src
- #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
- #tar xzf mfs-1.6.26.tar.gz
2、配置编译参数
- #groupadd mfs
- #useradd -g mfs mfs
- #cd mfs-1.6.26/
- #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmount –disable-mfsmaster
3、编译并安装
- #make
- #make install
4、创建磁盘(100G)
- #dd if=/dev/zero of=/mnt/storage/mfschunks1 bs=1024 count=1 seek=$((100*1024*1024-1))
- #mkfs -t ext3 /mnt/storage/mfschunks1
- #mkdir -p /mnt/mfs1
- #mount -t ext3 -o loop /mnt/storage/mfschunks1 /mnt/mfs1
5、配置文件
- #cd /usr/local/mfs/etc
- #cp mfschunkserver.cfg.dist mfschunkserver.cfg
- #cp mfshdd.cfg.dist mfshdd.cfg
更改配置文件mfshdd.cfg,加入:
- /mnt/mfs1
6、启动前准备
- #echo "10.96.153.221 mfsmaster" >> /etc/hosts
- #chown -R mfs:mfs /mnt/mfs1
7、启动chunkserver
- ##/usr/local/mfs/sbin/mfschunkserver start
mfsclient安装
1、下载解压
- #cd /usr/src
- #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
- #tar xzf mfs-1.6.26.tar.gz
2、配置编译参数
- #groupadd mfs
- #useradd -g mfs mfs
- #cd mfs-1.6.26/
- #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster–disable-mfschunkserver
3、编译并安装
- #make
- #make install
4、启动前准备
- mkdir /mnt/mfs
- #echo "10.96.153.221 mfsmaster" >> /etc/hosts
5、开始挂载
- #/usr/local/mfs/bin/mfsmount /mnt/mfs -H mfsmaster
6、检查
df -h查看输出
MFS维护
5.1、启动MFS集群
- 1、启动mfsmaster 进程
- 2、启动所有的mfschunkserver 进程
- 3、启动mfsmetalogger 进程(如果配置了mfsmetalogger)
- 4、当所有的chunkservers 连接到MooseFS master 后,任何数目的客户端可以利用mfsmount 去挂接被export 的文件系统。(可以通过检查master 的日志或是CGI 监视器来查看是否所有的chunkserver被连接)。
5.2、停止MFS集群
- 1、在所有的客户端卸载MooseFS 文件系统(用umount 命令或者是其它等效的命令)
- 2、用mfschunkserver stop 命令停止chunkserver 进程
- 3、用mfsmetalogger stop 命令停止metalogger 进程
- 4、用mfsmaster stop 命令停止master 进程
5.3、MFS chunkservers 的维护
若每个文件的goal(目标)都不小于2,并且没有under-goal 文件(这些可以用mfsgetgoal –r和mfsdirinfo 命令来检查),那么一个单一的chunkserver 在任何时刻都可能做停止或者是重新启动。以后每当需要做停止或者是重新启动另一个chunkserver 的时候,要确定之前的chunkserver 被连接,而且要没有under-goal chunks。
5.4、MFS元数据备份
用rsync定时备份/usr/local/app/soft/mfs/var/mfs/metadata.mfs.back
5.5、MFS Master的恢复
- mfsmetarestore -a
5.6、从MetaLogger中恢复Master
- mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs