天天看點

Moosefs管理小技巧分享

1. 挂載目錄管理

Moosefs系統支援用戶端根據需要挂載對應子目錄;預設不指定-S的話會挂載到根目錄(/)下,當通過df –sh檢視空間使用used顯示的是目前整個mfs系統的硬碟使用情況;而挂載子目錄則隻會看到目錄的使用情況。具體操作如下:

在Moosefs的管理中,可以找一台機器作為管理型的client端,在配置檔案mfsexports.cfg中限制隻有該台機器可以挂載到根目錄下,同時也可限制隻有該台機器可以挂載metadata目錄(恢複誤删除時可用到),而其他普通client端,則根據不同業務的需要讓管理client端為其建立獨立用途的目錄,分别挂載到對應的子目錄下,這樣就可以細化管理控制權限。Mfsexports.cfg的配置如下:

2. 用戶端重新開機後自動挂載mfs目錄

Moosefs官方網頁上有提到,1.6.x以上的版本還可以通過/etc/fstab的方式,系統重新開機後自動挂載mfs檔案系統,測試之後,并沒有成功,原因是FUSE子產品沒有加載到核心,是以,我覺得用/etc/fstab,FUSE子產品需要事先将其編譯進系統核心中才行。fstab的配置如下:

Shell> vi /etc/fstab  

mfsmount /mnt fuse mfsmaster=MASTER_IP,mfsport=9421,_netdev 0 0 (重新開機系統後挂載MFS的根目錄)  

mfsmount /mnt fuse mfstermaster=MASTER_IP,mfsport=9421,mfssubfolder=/subdir,_netdev 0 0(重新開機系統後挂載MFS的子目錄) 

采用fstab配置檔案挂載方式可以通過如下指令,測試是否配置正确:

3. FUSE的安裝問題

FUSE子產品是mfsmount用戶端所依賴的子產品,我們所作的操作,先由FUSE接收,然後通過mfsmount程序與mfsmaster聯系,最後應用到chunkserver上。FUSE(Filesystem in Userspace)叫作使用者态檔案系統,它提供了一個架構,讓我們開發的檔案系統在使用者态下運作操作,減少了開發檔案系統與核心子產品之間的過多接觸,了解後知道原來偉大的ZFS就是FUSE的。在Moosefs的文檔中,提到Linux核心2.6.14以後的版本中都将支援FUSE子產品,也就是說在系統目錄/lib/modules/`uname -r`/kernel/fs/下會有一個fuse的子目錄,裡面會包含一個fuse.ko的檔案。當我們編譯安裝好fuse後,執行modprobe fuse指令,就可以動态将FUSE子產品加載進核心,有時候會出現找不到該子產品的提示,那就是在/lib/modules/`uname -r`/kernel/fs/目錄下沒有fuse這個子目錄,缺少那個ko檔案。本人安裝時就遇到了,核心為2.6.18-92.el5,沒有fuse子目錄。當時使用的fuse-2.8.5,預設編譯安裝也沒有生成這個檔案;後來韓老師幫我找問題,他用2.7.4版本預設編譯安裝(沒添加任何configure選項)後,modprobe便可以成功加載fuse子產品,這時fuse那個子目錄也被建立,網上有看到說需要加這個編譯項–enable-kernel-module。

4. Moosefs可以節省空間

不小心發現拷貝到mfs目錄下的檔案大小比ext3下的小了很多,開始以為是少同步了一些檔案,于是又将mfs下的所有檔案拷回到ext3下,發現大小和之前的一緻,于是,隐約感覺到mfs難道可以節省空間。測試後發現,mfs對小檔案(我用的是8K左右的)存儲空間的節省非常明顯,可以節省一半的空間,之後我又拷被了一個1.7G檔案到mfs下,大小為1.6G。

     本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1831821,如需轉載請自行聯系原作者

繼續閱讀