当前位置: 首页 > 科技观察

Moosefs管理技巧分享

时间:2023-03-12 19:53:47 科技观察

之前写过一篇文章,介绍了Moosefs的基本概念。只是通过简单的测试,对mfs有了一些了解和认识。最近在实际环境中部署了一套MooseFS系统,用于备份等用途。过程中遇到了一些问题,于是又找到了文档查阅理解,加深了对MFS的理解。下面将这次学习的一点小收获分享给大家。1、挂载目录管理Moosefs系统支持客户端根据需要挂载相应的子目录;如果不指定-S,默认挂载到根目录(/)。通过df–sh查看空间并使用used时,当前整个mfs系统的硬盘使用情况;挂载子目录时,只能看到目录的使用情况。具体操作如下:Shell>mfsmount/mnt--Hmfsmaster--挂载到根目录(/)Shell>mkdir--p/mnt/subdirShell>umount/mntShell>mfsmount/mnt--Hmfsmaster--S/subdir--挂载在管理Moosefs的子目录(/subdir)下,可以找到一台机器作为管理客户端。配置文件mfsexports.cfg中,只有本机可以挂载到根目录,同时只有本机可以挂载元数据目录(恢复误删时可用),其他普通客户端可以向管理客户端询问根据不同的业务需要为其创建独立的目录,分别挂载到相应的子目录下,它允许细粒度的管理控制权限。Mfsexports.cfg的配置如下:#managingclient192.168.0.2/rw,alldirs,maproot=0192.168.0.2.rw#fordbbackupsub-folder192.168.0.20/backup/dbrw.maproot=0#forimagesub-folder192.168.0.30/应用程序/imagerw.maproot=02。客户端重启后自动挂载mfs目录Shell>vi/etc/rc.local/sbin/modprobefuse/usr/bin/mfsmount/mnt1-Hmfsmaster-S/backup/db/usr/bin/mfsmount/上面有提到mnt2-Hmfsmaster-S/app/imageMoosefs官网说1.6.x以上的版本也可以通过/etc/fstab方法在系统重启后自动挂载mfs文件系统。测试后,没有成功。原因是因为FUSE模块还没有加载到内核中,所以我认为有了/etc/fstab,需要提前将FUSE模块编译到系统内核中。fstab的配置如下:Shell>vi/etc/fstabmfsmount/mntfusemfsmaster=MASTER_IP,mfsport=9421,_netdev00(重启系统后挂载MFS的根目录)mfsmount/mntfusemfstermaster=MASTER_IP,mfsport=9421,mfssubfolder=/subdir,_netdev00(重启系统后挂载MFS的子目录)使用fstab配置文件挂载方式,可以通过以下命令测试配置是否正确:Shell>mount–a–tfuse3。FUSE安装问题FUSE模块是mfsmount客户端所依赖的模块,我们所做的操作首先被FUSE接收,然后通过mfsmount进程联系到mfsmaster,最后应用到chunkserver。FUSE(FilesysteminUserspace)被称为用户态文件系统。它提供了一个框架,可以让我们开发的文件系统运行在用户态,减少开发的文件系统和内核模块的过多接触。了解了才知道原来伟大的ZFS就是FUSE。在Moosefs文档中提到在Linux内核2.6.14及之后的版本会支持FUSE模块,也就是说在系统目录/lib/modules/`uname-r`下会有一个fuse/kernel/fs/子目录,其中将包含一个fuse.ko文件。我们编译安装fuse后,执行modprobefuse命令,将FUSE模块动态加载到内核中。有时候会提示找不到模块,就是在/lib/modules/`uname-r`/kernel/fs/目录下没有fuse子目录,缺少ko文件。我在安装的时候就遇到了。内核是2.6.18-92.el5,没有fuse子目录。当时使用的fuse-2.8.5默认编译安装的时候没有生成这个文件。后来韩老师帮我找到了问题所在。在他默认编译安装2.7.4版本后(没有添加任何配置选项),modprobe可以成功加载fuse。Module,这时候fuse子目录也创建好了,在网上看到需要加上这个编译项--enable-kernel-module。4.Moosefs可以节省空间。无意中发现复制到mfs目录下的文件大小比ext3下小很多。一开始以为是有些文件没有同步,就把mfs下的文件全部复制回ext3,发现大小和之前一致,隐约觉得mfs可以节省空间。经过测试,我发现mfs对小文件(我用的大概8K)的存储空间的节省非常明显,可以节省一半的空间。然后我复制了一个1.7G的文件到mfs,大小是1.6G。