Moose File System 是一个具备容错功能的网络分布式文件系统,它将数据分布在网络中的不同服务器上,MooseFS 通过 FUSE 使之看起来就是一个 Unix 的文件系统。
MooseFS文件系统结构包括以下四种角色:
1 管理服务器managing server (master):负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
2 元数据日志服务器Metalogger server(Metalogger): 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作
3 数据存储服务器data servers (chunkservers):负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.
4 客户机mount:通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,可以直接mount.看起来共享的文件系统和本地unix文件系统使用一样的效果.
安装MooseFS:
参考官方文档:http://www.moosefs.org/reference-guide.html
wget http://pro.hit.gemius.pl/hitredir/id=BxY7_eM43EskGBuSFtz3YNVqP1JNYK7dbkJhAZiPIXH.w7/url=moosefs.org/tl_files/mfscode/mfs-1.6.25.tar.gz
tar -zvxf mfs-1.6.25.tar.gz
groupadd mfs
useradd -g mfs mfs
cd mfs-1.6.25
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs
make && make install
master配置:
cd /etc
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cp mfsexports.cfg.dist mfsexport.cfg
被注释掉的行,即是MooseFS内置的默认配置
配置文件mfsexpots.cfg,指定哪些客户端主机可以远程挂载MooseFS系统
192.168.1.0/24 / rw,alldirs,maproot=0
cd /var/lib/mfs
cp metadata.mfs.empty metadata.mfs
修改/etc/hosts
192.168.1.6 mfsmaster
启动master服务
/usr/sbin/mfsmaster start
查询MooseFS运行情况:
/usr/sbin/mfscgiserv
http://192.168.1.6:9425
metalogger(备份服务器)安装:
在master失效情况下,只要导入changelogs到元数据文件,备份服务器metalogger将能接替master
http://www.moosefs.org/minihowtos.html#redundant-master
cd /etc
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
修改/etc/hosts
192.168.1.6 mfsmaster
启动备份服务:
/usr/sbin/mfsmetalogger start
chunk server(存储块服务)安装:
cd /etc/
cp mfscunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
修改mfshdd.cfg,去掉这行注释/mnt/hd1
mkdir -p /mnt/hd1
chown -R mfs:mfs /mnt/hd1
修改/etc/hosts
192.168.1.6 mfsmaster
启动chunk server
/usr/sbin/mfschunkserver start
客户端安装
为挂载MooseFS文件系统,需要安装fuse
安装fuse
yum -y install fuse-devel
yum -y install fuse
modprobe fuse
安装mfs完后
修改/etc/hosts
192.168.1.6 mfsmaster
创建挂载点
mkdir -p /mnt/mfs
/usr/bin/mfsmount /mnt/mfs -H mfsmaster
用df -h 检查分区情况
MooseFS使用:
mkdir -p /mnt/mfs/test
cp /usr/src/mfs-1.6.25.tar.gz /mnt/mfs/test/
mfssetgoal -r 设定目录里文件的副本数:
mfssetgoal -r 2 /mnt/mfs/test
mfschunkfile用来检查给定的文件以多少副本来存储
mfscheckfile /mnt/mfs/test/mfs-1.6.25.tar.gz
查看某文件
mfsgetgoal /mnt/mfs
查看目录信息
mfsdirinfo -H /mnt/mfs
写入性能测试
dd if=/dev/zero of=/mnt/mfs/test/1.img bs=1M count=300
读性能测试
dd if=/mnt/mfs/test/1.img of=/dev/null bs=1M
RHEL4安装fuse
有一台机器是RHEL4,不能使用yum,只能手工编译fuse了:
wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.7.4/fuse-2.7.4.tar.gz/download
tar zxvf fuse-2.7.4.tar.gz
./configure
make;make install
先编辑/etc/profile在此文件中加入如下条目:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
然后再利用source命令 /etc/profile使修改生效:source /etc/profile
加载fuse模块到内核:modprobe fuse