MFS分佈式文件系統

幾臺Web服務器經過NFS共享一個存儲,在業務功能上知足需求,但在性能與容量上NFS沒法勝任更高的要求。MFS即moosefs,能夠提供容量PB級別的共享存儲,無需昂貴的專業硬件服務器,自身擁有冗餘功能及動態擴容功能,保證數據的安全性。python

工做原理:
web

分佈式原理centos

分佈式文件系統就是把一些分散在多臺計算機上的共享文件夾,集合到一個共享文件夾內,用戶要訪問這些文件夾的時候,只要打開一個文件夾,就能夠的看到全部連接到此文件夾內的共享文件夾。分佈式文件系統的好處是集中訪問、簡化操做、數據容災、提升文件存取性能瀏覽器

MFS原理安全

MFS是一個具備容錯性的網絡分佈式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。服務器

(1)MFS文件系統的組成網絡

元數據服務器(Master:在整個體系中負責管理文件系統,維護元數據,目前不支持高可用。session

元數據日誌服務器(MetaLogger:備份Master服務器的變化日誌文件,文件類型爲change_ml.*.mfs。當master服務器損壞,能夠從日誌服務器中取得文件恢復。分佈式

數據存儲服務器(Chunk Server真正存儲數據的服務器。存儲文件時,會把文件分塊保存,並在服務器之間複製,數據服務器越多,容量就越大,可靠性越高,性能越好。ide

客戶端(Client: 能夠像掛載NFS同樣 掛載MFS文件系統。

2018-03-05_110345.png


(2)MFS讀取數據的出路過程

   客戶端向元數據服務器發出讀請求

   元數據服務器把所需數據存放的位置(Chunk Server的IP地址和Chunk編號)告知客戶端

   客戶端向已知的Chunk Server請求發送數據

   Chunk Server向客戶端發送數據

(3)MFS寫入數據的處理過程

   客戶端向元數據服務器發送寫入請求

   元數據服務器與Chunk Server進行交互(只有當所需的分塊Chunks存在的時候才進行這個交互),但元數據服務器只在某些服務器建立新的分塊Chunks,建立成功後由Chunk Servers告    知元數據服務器操做成功

   元數據服務器告知客戶端,能夠在哪一個Chunk Server的哪些Chunks寫入數據

   客戶端向指定的Chunk Server寫入數據

   該Chunk Server與其餘Chunk Server進行數據同步,同步成功後Chunk Server告知客戶端數據寫入成功

   客戶端告知元數據服務器本次寫入完畢

案例實施

實驗拓撲

2018-03-05_111626.png

實驗過程

  1. 搭建Master Server

(1)關閉防火牆、安裝支持軟件

2018-03-04_155830.png

(2)建立用戶

2018-03-04_155857.png

(3)安裝源碼包

2018-03-04_155914.png

(4)複製文件

2018-03-04_160153.png


2018-03-04_160607.png

(5)配置文件

須要用到的配置文件有兩個:mfsmaster.cfg(主配置文件)和mfsexports.cfg(被掛載目錄及權限配置文件)

mfsmaster.cfg文件經常使用參數以下

2018-03-04_160722.png

2018-03-04_160809.png

mfsexports.cfg文件參數合適以下

2018-03-05_114404.png

該文件,每個條目分爲三個部分

 第一部分:客戶端IP地址

 第二部分:被掛載的目錄

 第三部分:客戶端擁有的權限

地址能夠指定幾種表現形式

  *表明全部的IP地址

  n.n.n.n單個ip地址

  n.n.n.n/b IP網絡地址/位數掩碼

  n.n.n.n/m.m.m.m IP網絡地址/子網掩碼

  f.f.f.f-t.t.t.t IP

目錄部分的標示以下

 / 標示MFS

 . 表示MFSMETA文件系統

權限部分以下所示

 ro——只讀模式共享

 rw——讀寫模式共享

 alldirs——容許掛載任何指定的子目錄

 maproot——映射爲root,仍是普通用戶

 password——指定客戶端的密碼

以上就是對mfsmaster.cfgmfsexport文件的解釋,默認就是最好的,不須要作任任何修改。

(6)啓動Master Server

第一遍啓動的時候,可能會出現如下錯誤信息

[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster  start

loading sessions ... file not found         

         若是出現以上信息,則關閉服務並從新啓動就能夠了

[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster  -s

         -s 表示中止服務

[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster  start

         再啓動就不會出現任何信息

2018-03-04_161032.png


中止Master Server的命令是/usr/local/mfs/sbin/mfsmaster -s

2.搭建Metalogger Server

(1)關閉防火牆、安裝支持軟件,建立用戶、安裝源碼包

2018-03-04_161247.png

(2)複製文件

2018-03-04_161434.png

(3)修改配置文件

2018-03-04_161457.png

2018-03-04_161532.png

(4)啓動服務

2018-03-04_161658.png

中止Metalogger Server的命令是/usr/local/mfs/sbin/mfsmetalogger -s

3.搭建Chunk Server(兩臺Chunk Server操做同樣)

(1)關閉防火牆、安裝支持軟件,建立用戶、安裝源碼包

2018-03-04_161832.png

(2)複製文件

2018-03-04_162019.png

(3)修改配置文件

2018-03-04_162040.png

2018-03-04_162112.png


2018-03-05_120110.png

2018-03-04_162231.png

(4)建立文件,並設置權限

2018-03-05_120254.png

(5)開啓服務

2018-03-04_162540.png

中止Chunk Server的命令是/usr/local/mfs/sbin/mfschunkserver -s

4.客戶端設置

2018-03-04_171017.png

(1)安裝fuse

2018-03-04_171027.png

而後設置環境變量

2018-03-04_171130.png

2018-03-04_171156.png

當即生效

2018-03-04_171236.png

(2)安裝MFS客戶端

2018-03-04_171447.png

(3)掛載MFS文件系統

2018-03-04_171713.png

2018-03-04_171758.png

若是要卸載MFS,使用命令umount /mnt/mfs便可

(4)MFS經常使用操做

MFS客戶端安裝完畢後,會生成/usr/local/mfs/bin/目錄,在這個目錄下有不少命令是用戶所需的。爲了方便使用這些命令,可將/usr/local/mfs/bin加入到環境變量中。

2018-03-04_171130.png

2018-03-04_171939.png

2018-03-04_171236.png

mfsgetgoal命令用來查看文件被複制的分數,利用-r命令能夠對整個目錄進行遞歸,goal是指文件比複製的分數

2018-03-04_172023.png

命令mfssetgoal用來設置文件被複制的分數,生產環境下Chunk server節點數量應大於2,文件副本數小於等於Chunk server服務器的數量。

2018-03-04_172102.png

建立文件測試以下

2018-03-04_172200.png

分別打開兩臺Chunk Server,查看/data文件,都產生了加密數據,說明成功了

2018-03-04_172243.png


5.MFS監控

mfscgiserv是用python編寫的一個web服務器,其監聽端口是9425,能夠再masster server 上經過 /usr/local/mfs/sbin/mfscgiserv來啓動,用戶利用瀏覽器就能夠徹底監控全部客戶掛接、Chunk serverMaster server,以及客戶端的各類操做等。

在Master Server開啓Mfscgiserv

2018-03-04_172332.png

在客戶端上經過瀏覽器訪問http://192.168.1.1:9425

2018-03-04_172414.png

其中各部分的含義以下:

Info部分:顯示了MFS的基本信息

Server部分:列出現有Chunk Server

Disks部分:列出現有Chunk Server硬盤信息

Exports部分:列出可被掛載的目錄

Mounts部分:列出被掛載的目錄

Operations部分:顯示正在執行的操做

Master charts部分:顯示Master Server的操做狀況,讀、寫、刪除等操做

Server charts部分:顯示Chunk Server的操做狀況、數據傳輸率及系統狀態

6.MFS維護及災難恢復

1).MFS集羣的啓動與中止

MFS集羣的啓動順序以下

1)啓動mfsmaster進程

2)啓動全部的mfsChunkserver進程

3)啓動mfsmetalogger進程

4)在全部客戶端上掛載NFS文件系統

MFS集羣的中止順序以下

1)在全部客戶端卸載MFS文件系統

2)用mfschunkserver -s中止Chunkserver進程

3)用mfsmetalogger -s中止mfsmetalogger進程

4)用mfsmaster -s中止mfsmaster進程

2).MFS災難恢復

整個MFS體系中,直接斷電只有master server進程有可能沒法啓動,能夠在master上使用命令/usr/local/mfs/sbin/mfsmetarestore -a修復

MFS元數據一般有兩部分的數據,分別以下

(1)主要元數據文件metadata.mfs,當mfsmaster運行時會被命名爲metadata.mfs.back。

(2)元數據改變日誌 changelog.*.mfs,存儲了過去N小時的文件變動。

在Master發生故障時,能夠從Metalogger中恢復Master,步驟以下

(1)安裝一臺mfsmaster,利用一樣的配置來配置這臺mfsmaster,mfsmaster進程先不要啓動

(2)將metalogger上/usr/local/mfs/var/mfs/目錄下全部文件複製到mfsmaster相應的目錄中

2018-03-04_172542.png

(3)利用mfsmetarestore命令合併元數據changelogs

2018-03-04_172613.png

(4)開啓Master Server

注意:若是是全新安裝的master,恢復數據後,須要更改metaloggerchunkserver,配置MASTER_HOSTip地址,客戶端也須要從新掛載mfs目錄。

相關文章
相關標籤/搜索