moosefs2.0初探及部署

前言:分佈式文件系統是大型網站的必用架構,我們公司網站升級的時候考慮使用分佈式文件系統,最初考慮使用fastdfs,但是性能不足,hdfs配置複雜,所以使用了moosefs文件系統。moosefs配置簡單,並且性能也不錯,唯一缺點就是master單點故障問題,不過1.6以上版本使用了metalogger server,它會定時把master上的meta數據下載到本機上,故障發生時,可以實現恢復。對於恢復這塊,我會在後續的文章中給出比較完善的解決方案。此博還附帶有moosefs2.0的tar包,需要的小夥伴可以下載,因爲我在寫這篇博客的時候,www.moosefs.org,打開速度太慢。以下是正文。 

Moosefs原理

原理圖

wKioL1ZOyw_iKbSzAABqcjvWo8c800.png

wKiom1ZOyrvwfPqyAACNlryyuDA866.png

    從上圖可以看到master是整個系統的大腦,它知道數據被分成了多少份,放在那個服務器上的那個位置,client每次訪問都要經過master。chunk是數據真正存放的地方。

實現過程

   Master負責整個系統數據的管理,保存數據分成多少份,在那個服務器存放等信息;metalogger會定時備份master的管理數據,master故障後,通過metalogger的備份數據,可以實現系統的恢復;chunk server是數據真正的存放位置,數據會被分成多份chunk放在chunk server中;client端是分佈式系統的使用者,系統搭建成功後,可以把系統像掛載硬盤一樣掛載在client上,實現系統的分佈式應用。

安裝規範:

1、moosefs源碼文件包統一放在所有服務器的/usr/local/src下

2、創建獨立的運行用戶:mfs

3、安裝目錄爲:/usr,配置文件路徑爲:/etc/mfs,

4、Chunk server的存儲路徑爲/mfschunk

5、Client 端的掛載點爲/mnt/mfs

6、Master和chunk server的啓動加入到/etc/rc.local文件中,使其隨開機啓動

安裝過程

Master

1、把tar包上傳到/usr/loca/src下

2、在/etc/hosts文件中填入一下內容:“IP mfsmaster”(其中IP爲master的ip地址)

wKioL1ZO0JKjOva2AAAT3VlFjBg224.png

3、添加mfs用戶:useradd mfs

4、解包:tar xf moosefs-2.0.81-1.tar.gz

5、進入安裝目錄:cd moosefs-2.0.81

6、編譯安裝:./configure--prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib--with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver--disable-mfsmount

7、編譯:make&&make install

8、# cd/etc/mfs/更改配置文件名稱:

 把原來的文件名改爲cfg文件

# cp mfsmaster.cfg.dist mfsmaster.cfg

#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

#cp mfsexports.cfg.dist mfsexports.cfg

#cp mfstopology.cfg.dist mfstopology.cfg

9、啓動master:/usr/sbin/mfsmasterstart

Metalogger server

1、把tar包上傳到/usr/loca/src下

2、在/etc/hosts文件中填入一下內容:“IP mfsmaster”(其中IP爲master的ip地址)

3、添加mfs用戶:useradd mfs

4、解包:tar xf moosefs-2.0.81-1.tar.gz

5、進入安裝目錄:cd moosefs-2.0.81

6、編譯安裝:./configure--prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib--with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver--disable-mfsmount

7、編譯:make&&makeinstall

8、啓動metaloggerserver:/usr/sbin/mfsmetalogger start

Chunk server

1、把tar包上傳到/usr/loca/src下

2、在/etc/hosts文件中填入一下內容:“IP mfsmaster”(其中IP爲master的ip地址)

3、添加mfs用戶:useradd mfs

4、解包:tar xf moosefs-2.0.81-1.tar.gz

5、進入安裝目錄:cd moosefs-2.0.81

6、編譯安裝:./configure--prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster

7、編譯:make&&makeinstall

8、更改配置文件名稱:

#cd /etc/mfs

#cp mfschunkserver.cfg.dist mfschunkserver.cfg

#cp mfshdd.cfg.dist mfshdd.cfg

#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

9、創建目錄:mkdir /mfschunk

10、修改權限 chmod –R mfs:mfs /mfschunk

11、修改配置文件:在/etc/mfs/mfshdd.cfg文件中添加內容:/mfschunk

wKioL1ZO0DuyxsPqAAB0O1yvbgk004.png

12、啓動chunk server:/usr/sbin/mfschunkserverstart

Client

1、安裝fuse:yum install –y fuse*

2、在/etc/hosts文件中填入一下內容:“IP mfsmaster”(其中IP爲master的ip地址)

3、把tar包上傳到/usr/loca/src下

4、解包:tar xf moosefs-2.0.81-1.tar.gz

5、進入安裝目錄:cd moosefs-2.0.81

6、編譯安裝:./configure--prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster--disable-mfschunkserver

7、編譯:make&&makeinstall

8、掛載文件系統:/usr/bin/mfschunk/mnt/mfs –H mfsmaster

9、使用df -h 查看,出現類似如下內容說明安裝成功

wKiom1ZOzwaDJ-2_AABHP5F5kFU933.png

現在就可以像使用普通硬盤一樣,使用整個文件系統了。

總結:moosefs故障後,只能通過手動的方式來解決,網上有說法搭配keepalived可是實現自動切換,做到無延時故障處理,這個我沒有實驗,我會在後續的文章中繼續探討moosefs的故障問題。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章