MFS分布式文件系統服務搭建
阿新 • • 發佈:2018-07-27
start web服務 屬組 data ron 指向 bcf tab 容災 分布式原理
- 通過計算機網絡與節點相連,就是把一些分散的(分布在局域網內各個計算機上)共享文件夾,集合到一個文件夾內(虛擬共享文件夾)。
- 分布式文件系統的好處是集中訪問、簡化操作、數據容災以及提高文件的存取性能。
MFS原理
- 元數據服務器(master):在整個體系中負責管理文件系統,維護元數據。
- 元數據日誌服務器(metalogger):備份master服務器的變化日誌文件,文件類型為changelog_ml. * . mfs ,當master服務器數據丟失或者損壞時,可以從日誌服務器中取得文件 ,進行恢復。
- 數據存儲服務器(chunkserver):真正的存儲數據的服務器,存儲文件是,會把文件分塊保存,並在數據服務器之間進行復制,數據服務器越多,能使用的“容量”越大,可靠性就越高,性能就越好
- 客戶端(client):可以像掛載NFS一樣掛載MFS文件系統,其操作是相同的。
MFS讀取數據的處理過程
- 客戶端向元數據服務器發出讀請求
- 元數據服務器把所需數據存放的位置(Chunk Server的IP地址和Chunk編號)告知客戶端
- 客戶端向已知的Chunk Server請求發送數據
- Chunk Server向客戶端發送數據
MFS寫入數據的處理過程
- 客戶端向元數據服務器發送寫入請求。
- 元數據服務器與Chunk Server進行交互(只有當所需的分塊Chunk存在的時候才進行交互),但元數據服務器只在 某些服務器創建新的分塊chunks,創建成功後由Chunk Servers告知元數據服務器操作成功。
- 元數據服務器告知客戶端,可以在哪個Chunk Server的那些chunks寫入數據。
- 客戶端向指定的Chunk Server寫入數據。
- 該Chunk Server與其他Chunk Server進行數據同步,同步成功後Chunk Server告知客戶端數據寫入成功。
- 客戶端告知元數據服務器本次寫入完畢。
MFS優勢
- 高可用性:沒有單點故障也稱為無SPOF配置。文件系統的元數據在物理冗余服務器上保存為兩個或多個副本。用戶數據冗余地分布在系統中的存儲服務器上。
低成本的數據安全:MooseFS使用戶能夠節省大量硬盤空間,保持相同的數據冗余級別。在大多數常見情況下,將節省至少55%的硬盤空間. - 可擴展性:
高性能:旨在支持高性能I/O操作。用戶數據可以在許多存儲節點上同時讀取/寫入,從而避免單個中央服務器或單個網絡連接瓶頸。
實驗環境
主機 | 操作系統 | IP地址 |
---|---|---|
Master Server | CentOS-7-x86_64 | 192.168.144.110 |
MetalLogger Server | CentOS-7-x86_64 | 192.168.144.112 |
Chunk Server1 | CentOS-7-x86_64 | 192.168.144.111 |
Chunk Server2 | CentOS-7-x86_64 | 192.168.144.113 |
Client | CentOS-7-x86_64 | 192.168.144.114 |
實驗部署
安裝方式
- 根據官方網站提供的安裝方式,我們可以按照官方提供的方式安裝,簡易也節約時間。
1、搭建Master Server
- 按上圖方式安裝完成Master Server後,直接啟動即可。
mfsmaster start
- 若是需要停止
mfsmaster -s
2、搭建MetaLogger Server
- 按官方提供安裝方式安裝。
- 安裝完成後,需要此臺服務器監控master。
vim /etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 192.168.144.110 //添加指向master的IP地址
- 啟動服務即可。
mfsmetalogger start
- 若想停止服務。
mfsmetalogger -s
3、搭建chunk server
- 本實驗有兩臺chunkserver,搭建步驟完全相同
- 安裝方式如官方方式
vim /etc/mfs/mfschunkserver.cfg
MASTER_HOST = 192.168.144.110 //提供存儲給master
vim /etc/mfs/mfshdd.cfg
/data //添加一行,在這裏/data是一個給MFSmaster的分區,實際生產環境中最好使用獨立的分區或磁盤掛載到此目錄
mkdir /data/
chown -R mfs.mfs /data/ #更改屬主屬組
- 完成如上配置後,chunkserver算是配置完成,啟動即可。
mfschunkserver start
- 若想停止服務。
mfschunkserver -s
4、客戶端配置
-
安裝方式如官方方式。
- 客戶端安裝完成後,創建掛載master提供空間的目錄。
mkdir /abc
mfsmount -H 192.168.144.110 /abc
- 掛載完成後,查看掛載狀態,如下圖所示
5、客戶端MFS常用操作
- mfsgetgoal命令常用來查詢文件被復制的份數,-r命令可以對整個目錄進行遞歸,goal是指文件被復制的份數。
mfsgetgoal -r /abc/
/abc/:
files with goal 2 : 1
directories with goal 2 : 1
- mfssetgoal命令用來設置文件被復制的份數,生產環境chunkserver節點數量至少大於2,文件副本數量小於等於chunkserver服務器的數量。
mfssetgoal -r 2 /abc/
/abc/:
inodes with goal changed: 0
inodes with goal not changed: 2
inodes with permission denied: 0
mfsgetgoal -r /abc/
/abc/:
files with goal 2 : 1
directories with goal 2 : 1
- 創建文件測試如下:
cd /abc
touch test
mfsgetgoal /abc/
/abc/: 2
6、MFS監控
- MFscgiserv使用Python編寫的一個web服務器,監聽端口為9425,可以在master上通過命令啟動。
mfscgiserv
- 在客戶端上通過瀏覽器訪問http://192.168.144.110:9425
MFS分布式文件系統服務搭建