一,MFS文件系统概论
MFS是linux下的开源存储系统,是由波兰人开发的。MFS文件系统能够实现RAID的功能,不但能够节约存储成本,而且不逊于专业的存储系统,能够实现在线扩展。MFS是一种半分布式文件系统。
MFS官网的网络组成及运行原理如下图:
MFS的网络分三部分组成,MASTER SERVER、CHUNK SERVER 和 CLIENT,其中MASTER SERVER只有一个,而CHUNK SERVER 和CLIENT可以有多个。MFS读进程和写进程的工作机制分别如下图:
MFS 读进程工作机制
MFS写进程工作机制
二、MFS文件系统体系结构
MFS文件系统结构包含4种角色,分别是:
1、管理服务器--MASTER SERVER
2、元数据日志服务器--Metalogger
3、数据存储服务器--CHUNK SERVER
4、客户端
三、MFS的编译与安装实例
安装环境:Centos 6.2
系统内核:2.6.32-71.el6.x86_64
软件版本:mfs-1.6.15.tar.gz
服务器分配:
角色 | IP |
主控服务器(Master server) | 10.10.11.246 |
主控备份服务器(Metalogger server) | 10.10.11.247 |
存储块服务器(Chunk server) | 10.10.11.243 |
客户端主机(Clients) | 10.10.11.244 |
1、主控服务器的安装,在配置过程中(./configure),可以取消安装 chunk server(--disable-mfschunkserver)以及MooseFS客户端(--disable-mfsmount)。安装主控服务器Master的具体步骤如下:
1、添加MFS组和用户:
- [root@MFS_Master_246 ~]# groupadd mfs
- [root@MFS_Master_246 ~]# useradd -s /sbin/nologin -g mfs -M mfs
2、下载软件包并解压安装:
[root@MFS_Master_246 dl]# wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@MFS_Master_246 dl]# tar zxvf mfs-1.6.15.tar.gz
[root@MFS_Master_246 dl]# cd mfs-1.6.15
[root@MFS_Master_246 mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@MFS_Master_246 mfs-1.6.15]# make
[root@MFS_Master_246 mfs-1.6.15]# make install
成功安装master后,系统会在/usr/local/mfs/etc 目录自动生成样例配置文件,这些样例配置文件是以.dist后缀命名,这里将借用这些样例文件作为MooseFS主控服务器的目标配置文件:
[root@MFS_Master_246 mfs-1.6.15]# cd /usr/local/mfs/etc/
[root@MFS_Master_246 etc]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@MFS_Master_246 etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@MFS_Master_246 etc]# cp mfsexports.cfg.dist mfsexports.cfg
要更改这些配置文件中的某些项目的值,则需要打开特定配置文件相关文本行前的注释,然后修改跟随其后的值。因为被注释掉的行,即是MooseFS内置的缺省值。
Mfsmaster.cfg配置文件包含主控服务器master相关的设置,在这里我们暂时不打算对其进行修改。
mfsexports.cfg配置文件指定那些客户端主机可以远程挂接MooseFS文件系统,以及授予挂接客户端什么样的访问权限。例如,我们指定只有192.168.1.X网段的主机可以以读写模式访问MooseFS的整个共享结构资源(/)。在配置文件mfsexports.cfg文件的第一行,先取消注释,然后把星号(*)改成10.10.11.0/8,以便我们可以得到下面的文本行:
10.10.11.0/8 / rw,alldirs,maproot=0
二进制文件metadata和文本文件changelog将被保存在目录 /usr/local/mfs/var/mfs
注:MooseFS master运行以后,metadata.mfs文件大小将发生变化,肯定不是空文件。
修改主机名和修改/etc/hosts文件,以绑定主机名mfsmaster与IP地址10.10.11.246:
[root@MFS_Master_246 mfs]# hostname mfsmaster #修改主机名后要重新连接终端才会显示新的主机名
10.10.11.246 mfsmaster #修改/etc/hosts 文件
启动master服务:[root@mfsmaster ~]# /usr/local/mfs/sbin/mfsmaster start
在生产环境中,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFS master也能自动运行,为了监控MooseFS当前运行状态,我们可以运行CGI监控服务,这样就可以用浏览器查看整个MooseFS的运行情况:
[root@mfsmaster bin]# /usr/local/mfs/sbin/mfscgiserv
在浏览器中输入:http://10.10.11.246:9425 就能看到master的运行情况,效果如下图所示:
四、备份服务器Backup server(metalogger)安装
用来安装metalogger的主机,在性能上应该比master 强大(至少有更多的内存),一旦主控服务器master失效,只要导入changelogs到元数据文件,备份服务器metalogger将接替发生故障的master,行使管理服务器的职能。备份服务器Metalogger的安装跟主控服务器master类似,安装命令如下:
[root@MFS_Backup_247 bin]# groupadd mfs
[root@MFS_Backup_247 bin]# useradd -s /sbin/nologin -g mfs -M mfs
[root@MFS_Backup_247 dl]# wget wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@MFS_Backup_247 dl]# tar zxvf mfs-1.6.15.tar.gz
[root@MFS_Backup_247 mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@MFS_Backup_247 mfs-1.6.15]# make
[root@MFS_Backup_247 mfs-1.6.15]# make install
安装完后 配置文件在 /usr/local/mfs/etc/ 目录下面,配置文件只要mfsmetalogger.cfg
[root@MFS_Backup_247 mfs-1.6.15]# cd /usr/local/mfs/etc/
[root@MFS_Backup_247 etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
类似的修改 /etc/hosts 文件,增加下面的行
10.10.11.246 mfsmaster
启动备份服务mfsmetaloger:
[root@MFS_Backup_247 etc]# /usr/local/mfs/sbin/mfsmetalogger start
五、存储块服务器Chunk servers 安装
在每个Chunk servers主机上执行下面的命令:
[root@mfs_chunk bin]# groupadd mfs
[root@mfs_chunk bin]# useradd -s /sbin/nologin -g mfs -M mfs
[root@mfs_chunk bin]# wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@mfs_chunk bin]# tar zxvf mfs-1.6.15.tar.gz
[root@mfs_chunk bin]# cd mfs-1.6.15
[root@mfs_chunk mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-group=mfs --disable-mfsmaster
[root@mfs_chunk mfs-1.6.15]# make
[root@mfs_chunk mfs-1.6.15]# make install
安装完成后配置文件在 /usr/local/mfs/etc/ 目录,准备Chunk server服务所需的配置文件:
[root@mfs_chunk mfs-1.6.15]# cd /usr/local/mfs/etc/
[root@mfs_chunk etc]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@mfs_chunk etc]# cp mfshdd.cfg.dist mfshdd.cfg
为了测试这个安装,我们保留mfschunkserver.cfg文件不错任何改动,
在配置文件mfshdd.cfg中,我们给出了用于客户端挂接MooseFS分布式文件系统根分区所使用的共享空间位置。建议在Chunk server上划分单独的空间给MooseFS使用。这样做的好处是便于管理剩余的空间,此处我们假定要使用两个贡献点/mnt/mfschunks1 和/mnt/mfschunks2,为此我们在mfshdd.cfg加入/mnt/mfschunks1 和 /mnt/mfschunks2。
在启动前 创建这两个目录和确保用户mfs有权限读写将要挂接的分区
[root@mfs_chunk etc]# mkdir /mnt/{mfschunks1,mfschunks2}
[root@mfs_chunk etc]# chown mfs.mfs /mnt/mfschunks1/
[root@mfs_chunk etc]# chown mfs.mfs /mnt/mfschunks2/
修改 /etc/hosts文件增加下面的行,
10.10.11.246 mfsmaster
启动 chunk server:
[root@mfs_chunk ~]# /usr/local/mfs/sbin/mfschunkserver start
现在 在通过浏览器访问:http://10.10.11.246:9425 就可以看到这个MooseFS系统的全部信息,
包括主控master和存储服务器chunkserver
六、客户端User' computers安装
为了挂接基于MooseFS 分布式文件,客户端主机必须安装FUSE软件包(FUSE版本号至少2.6,推荐版本号大于2.7的fuse)。如果系统没安装fuse,你必须手动对其进行安装。在所以客户端上执行如下命令:
安装FUSE:
[root@MFS_Client_244 dl]# wget http://nchc.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz
[root@MFS_Client_244 dl]# tar zxvf fuse-2.9.2.tar.gz
[root@MFS_Client_244 dl]# cd fuse-2.9.2
[root@MFS_Client_244 fuse-2.9.2]# ./configure
[root@MFS_Client_244 fuse-2.9.2]# make
[root@MFS_Client_244 fuse-2.9.2]# make install
安装客户端软件mfsmount的步骤:
[root@MFS_Client_244 dl]# wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@MFS_Client_244 dl]# tar zxvf mfs-1.6.15.tar.gz
[root@MFS_Client_244 mfs-1.6.15]# groupadd mfs
[root@MFS_Client_244 mfs-1.6.15]# useradd -s /sbin/nologin -g mfs -M mfs
[root@MFS_Client_244 mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@MFS_Client_244 mfs-1.6.15]# make
[root@MFS_Client_244 mfs-1.6.15]# make install
修改/etc/hosts,增加如下行:
10.10.11.246 mfsmaster
假定客户端的挂载点是/mnt/mfs,我们将以下面的指令来使用MooseFS分布式共享文件系统:
1、创建挂载点:[root@MFS_Client_244 ~]# mkdir /mnt/mfs
2、开始挂载操作:[root@MFS_Client_244 mfs-1.6.15]# /usr/local/mfs/bin/mfsmount /mnt/mfs/ -H mfsmaster
用df -h | grep mfs 检查分区情况。
本文转自1594cqb 51CTO博客,原文链接:http://blog.51cto.com/wolfchen/1125731,如需转载请自行联系原作者