MooseFS 分布式文件系统
 
操作系统: linux5.5
撰写人: hx10
日期 :2010/7/24
blog:http://hi.baidu.com/hx10
 
 
最新的 MooseFS 稳定发行版本可以从 http://sourceforge.net/projects/moosefs/ 取得,在安装
MooseFS 系统客户端时,应当确保系统已经安装了正确的 fuse 版本,如果没有 fuse 被安装,
您可以从 http://sourceforge.net/projects/fuse/ 下载并安装它。
本次实验使用版本为:
mfs-1.6.16.tar.gz
fuse-2.8.4.tar.gz(仅client安装)
软件下载成功都放到/usr/local/src目录下
 
主机 ip 地址分配如下:
 
主控服务器 Master server: 10.80.11.203
主控备份服务器 Metalogger server: 10.80.11.204
存储块服务器 Chunk servers: 10.80.11.205 和10.80.11.206
客户端主机 (clients): 10.80.11.207
 
  主控服务器 Master server 安装
useradd mfs  -s /sbin/nologin
tar -zxvf mfs-1.6.16.tar.gz
cd mfs-1.6.16
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
 
提示错误如下
configure: error: zlib development library not found
解决办法
wget http://zlib.net/zlib-1.2.5.tar.gz
tar -zxvf zlib-1.2.5.tar.gz
./conifgure
make && make install
 
然后重新编译 mfs-1.6.16
make
make install
 
修改 mfs 的配置文件
cd /etc
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cp mfsexports.cfg.dist mfsexports.cfg
 
Mfsmaster.cfg 配置文件包含主控服务器 master 相关的设置 , 虽然被注释掉的行 但是这是 MooseFS 内置的缺省值 暂时不修改
 
mfsexports.cfg 指定那些客户端主机可以远程挂接 MooseFS 文件系统 以及授予
挂接客户端什么样的访问权限
此处我们修改成如下
vim mfsexports.cfg
10.80.11.0/24                   /       rw,alldirs,maproot=0
意思是只有 192.168.2.x 网段的主机可以以读写模式访问 MooseFS 的整个共享结构资源 /
 
二进制文件 metadata 和文本文件 changelog 将被保存在目录 /var/lib/mfs, 这是因为我们安
装过程的 configure 步骤使用了选项 --localstatedir=/var/lib 。首次安装master 时,会自
动生成一个名为metadata.mfs.empty 的元数据文件metadata,该文件是空的。MooseFS
master 运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty 改名而来:
 
cd /var/lib/mfs
cp metadata.mfs.empty metadata.mfs
 
 
启动 mfs 服务
/usr/sbin/mfsmaster start   //mfs 的服务
/usr/sbin/mfscgiserv        //web 界面的服务
 
[root@localhost mfs]# /usr/sbin/mfsmaster start
working directory: /var/lib/mfs
lockfile created and locked
initializing mfsmaster modules ...
loading sessions ... ok
sessions file has been loaded
exports file has been loaded
loading metadata ...
create new empty filesystemmetadata file has been loaded
no charts data file - initializing empty charts
master <-> metaloggers module: listen on *:9419
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
mfsmaster daemon initialized properly
 
[root@localhost mfs]# /usr/sbin/mfscgiserv
starting simple cgi server (host: any , port: 9425 , rootpath: /usr/share/mfscgi)
 
现在,我们在浏览器地址栏输入http://10.80.11.203:9425 即可查看master 的运行情况(这个时候,是不能看见chunk server 的数据)。
在生产环境里,我们应当设置自动启动脚本,把这2个启动命令加入/etc/rc.local文件中
 
备份服务器 Backup server (metalogger) 安装
 
用来安装 metalogger 的主机,在性能上应该比 master 强大(至少有更多的内存)。一旦主控
服务器 master 失效,只要导入 changelogs 到元数据文件 , 备份服务器 metalogger 将能接替发生
故障的 master ,行使管理服务器的职能
备份服务器 Metalogger 安装跟主控服务器 master 安装非常类似。其安装命令如下:
 
useradd mfs  -s /sbin/nologin
cd /usr/local/src
wget http://zlib.net/zlib-1.2.5.tar.gz
tar -zxvf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure && make && make install
 
 
tar -zxvf mfs-1.6.16.tar.gz
cd mfs-1.6.16
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make && make install
 
cd /etc/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
chown mfs:mfs /var/lib/mfs   // 修改所有者
 
启动备份服务 mfsmetaloger
/usr/sbin/mfsmetalogger start  
停止服务 /usr/sbin/mfsmetalogger -s
 
[root@localhost etc]# /usr/sbin/mfsmetalogger start
working directory: /var/lib/mfs
lockfile created and locked
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly
在生产环境里,我们应当设置自动启动脚本,加入/etc/rc.local文件中