分布式文件系统MFS(moosefs)实现存储共享(二)

MFS 客户端的安装及配置
 
我的生产环境,只有 centos freebsd 两种环境,因此下面的描述,只有 centos freebsd 挂接 MFS 文件系统的情形,其他类型的 unix 系统,待日后尝试。对比前面的操作过程,客户端挂接后使用 MFS 集群文件系统才是最费时的事情。
 
一、 centos 作为 MFS 的客户端。
(一)   安装 MFS 客户端
Mfsmount 需要依赖 FUSE, 因此需要先安装好 fuse ,这里我选用  fuse- 2.7.4 .tar.gz
1 、解包 tar zxvf fuse- 2.7.4 .tar.gz
2 、切换目录 cd fuse- 2.7.4 .
3 、配置   ./configure
4 、编译安装   make make install
如果系统已经安装了 fuse, 则跳过这个步骤。
◆安装 MFS 客户端程序

1、修改环境变量文件/etc/profile ,追加下面的行,然后再执行命令source /etc/profile使修改生效。

(二)挂接和使用 MFS 文件系统
1 、创建挂接点 mkdir /mnt/mfs
2 、挂接 MFS /usr/local/mfs/bin/mfsmount –h 192.168.0.19 . 注意,所有的 MFS 都是挂接同一个元数据服务器 master, 而不是其他数据存储服务器 chunkserver !
 
一、 freebsd 作为 MFS 客户端
Freebsd 安装和挂接 MFS 集群文件系统 , centos 操作起来要复杂一些 .mfsmount 需要依赖 fuse, 并且需要在内核中加载 fusefs 模块。
 
(一)安装 fuse
1 、解包 tar zxvf fuse- 2.7.4 .tar.gz
2 、切换目录 cd fuse- 2.7.4 .
3 、配置   ./configure
4 、编译安装   make make install
如果系统已经安装了 fuse, 则跳过这个步骤。
 
(二) 安装内核模块 fusefs-kmod
6 、选择“ fusefs-kmod- 0.3.9 .p1_ 2 , [OK] 返回到第“ 4 步出现的那个操作界面。这时我们用“ Tab ”键选中底部右边的“ Install ”,完成安装后,会出现一个安装成功的提示,然后瞬间消失。
加载 fusefs 模块 kldload /usr/local/modules/fuse.ko . 如果加载不成功,请检查是否存在模块文件 fuse.ko.
检查 fusefs 模块是否被加载到内核:
  
如果没有类似上面馆的输出,就表明 fusefs 模块没有加载成功。
 
(三)安装包 pkg-config
1 cd /usr/ports/devel/pkg-config
2 make install clean
 
(四)安装 MFS 客户端
1 、解包 tar zxvf mfs- 1.5.12 .tar.gz
2 、切换目录 cd mfs- 1.5.12
3 、创建用户 pw useradd mfs –s /sbin/nologin 
4 、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
5 、编译安装 make ; make install
◆检查 MFS 客户端安装的结果。通过查看目录 /usr/local/mfs/bin 目录的文件,应该发现如下文件:
就能实现开机或重启系统自动挂接 MFS 文件系统。
 
破坏性测试
、测试数据存储服务器
我用 5 个服务器组成了 MFS 的存储平台,其中一个是 master, 其余四个服务器是 chunkserver. 先停止一个 chunkserver 服务,然后在某个 MFS 客户端往挂接点的目录( /mnt/mfs )里复制数据或者创建目录 / 文件、或者读取文件、或者删除文件,观察操作是否能正常进行。再停止第 2 chunkserver ,重复执行上述操作;然后再停止第 3 个服务器,执行类似的文件读些操作。减少 chunkserver 试验后,我们再来逐步增加 chunkserver 服务器 , 然后对 MFS 执行读写等相关访问操作,检验其正确性。
 
通过增减 chunkserver 服务器的测试,服务的可靠性确实不错,哪怕只剩下最后一个服务器,也能正常提供存储访问服务。
 
二、测试元数据服务器
元数据服务器最重要的文件在目录 /usr/local/mfs/var/mfs ,MFS 每一个数据的变化 , 都被记录在这个目录的文件里 , 我们可以通过备份这个目录的全部文件 , 来保障整个 MFS 文件系统的可靠性 . 在正常情况下 , 元数据服务器的改变日志文件 (changelogs) 实时地、自动地复制到所有的数据存储服务器,并且以 changelog_csback.*.mfs 的形式命名。换句换说,即使元数据服务器报废了,也能再部署一个元数据服务器,然后从数据存储服务器chunkserver取得恢复所需要的文件。
 
(一)本地测试
1 、停止元数据服务 /usr/local/mfs/sbin/mfsmaster
2 、备份元数据服务器数据 cd /usr/local/mfs/var; tar czvf mfs.tgz mfs
3 、删除目录 mv mfs mfs.bk rm –rf mfs
4 、启动元数据服务 ../sbin/mfsmaster start 启动失败,提示不能初始化数据。
5 、解包 tar zxvf mfs.tgz
6 、执行恢复操作 .. /sbin / mfsmetarestore –a
7 、启动元数据服务 ../sbin/mfsmaster start
8 、在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
 
(一)   迁移测试
1、  安装新的MFS元数据服务器。
2、  复制元数据服务器数据目录(/usr/local/mfs/var/mfs)到这个新的元数据服务器。
3、  停止原先的那个元数据服务器(关闭计算机或停止它的网络服务)。
4、  更改新的元数据服务器的ip为原来那个服务器的ip.
5、  启动新的元数据服务 /usr/local/mfs/sbin/mfsmaster start
6、  MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
 
感谢Pawel Kalinowski mfs作者)提供帮助!
 
补充: linux可能需要在执行mfsmount前先加载fuse模块到内核 /sbin/modprobe fuse
                          2009/3/30       

你可能感兴趣的:(linux)