1. 程式人生 > >Mfs 分散式檔案系統學習

Mfs 分散式檔案系統學習

1.MFS 分散式檔案系統介紹:

MFS 特性:
1. Free(GPL)
2. 2. 通用檔案系統,不需要修改上層應用就可以使用
3. 可以線上擴容,體系架構可伸縮性極強。#直接 chunkserver
4. 部署簡單。
5. 高可用,可設定任意的檔案冗餘程度(提供比 raid1+0 更高的冗餘級別,而絕對不會影響
讀或寫的效能,只會加速!)
6. 可回收在指定時間內刪除的檔案( “ 回收站 ” 提供的是系統級別的服務,不怕誤操作了,提供類似 oralce 的閃回等高階 dbms 的即時回滾特性!)
7. 提供 netapp,emc,ibm 等商業儲存的 snapshot 特性。(可以對整個檔案甚至在正在寫入的檔案建立檔案的快照)
8. google filesystem 的一個 c 實現。
9. 提供 web gui 監控介面。 #9425 埠
10. 提高隨機讀或寫的效率。
11. 提高海量小檔案的讀寫效率。
可能的瓶頸:


1. master 本 身 的 性 能 瓶 頸 。 mfs 系 統master 存 在 單 點 故 障 如 何 解決?moosefs+iscis+pacemaker 來保證 master 單點問題?不過在使用過程中不可能完全不關機和間歇性的網路中斷! mfsmaster的高可用
2. 體系架構儲存檔案總數的可遇見的上限。(mfs 把檔案系統的結構快取到 master 的記憶體 中 , 文 件 越 多 ,master 的 內 存 消 耗 越 大 ,8g 對 應 2500w 的 文 件 數 ,2 億 文 件 就 得64GB 記憶體 )。
master 伺服器 CPU 負載取決於操作的次數,記憶體的使用取決於檔案和資料夾的個數。
各種角色作用:

1. 管理伺服器:負責各個資料儲存伺服器的管理,檔案讀寫排程,檔案空間回收以及恢復.多節點拷貝。
2. 元 數 據 日 志 服 務 器 : 負 責 備 份 master 服 務 器 的 變 化 日 志 文 件 , 文 件 類 型 為changelog_ml.*.mfs,以便於在 master server 出問題的時候接替其進行工作。
3. 資料儲存伺服器:負責連線管理伺服器,聽從管理伺服器排程,提供儲存空間,併為客戶提供資料傳輸。
4. 客戶端: 通過 fuse 核心介面掛接遠端管理伺服器上所管理的資料儲存伺服器,看起來共享的檔案系統和本地 unix 檔案系統使用一樣的效果。
mfs的讀寫原理:

這裡寫圖片描述
這裡寫圖片描述

2.MFS 分散式檔案系統安裝:

實驗環境:rhel7.3
Server1 172.25.77.1 master 節點
Server2 172.25.77.2 儲存節點
Server3 172.25.77.3 儲存節點
真機 172.25.254.77 mfs 客戶端

從mfschunkserver的配置檔案可以看出,chunkserver可以去連線mfsmaster
這裡寫圖片描述
NOTCE: 每個節點都要進行解析

Server1 安裝 master 節點:
yum install 3.0.100/moosefs-cgi-3.0.100-1.rhsystemd.x86_64.rpm
3.0.100/moosefs-cgiserv-3.0.100-1.rhsystemd.x86_64.rpm
3.0.100/moosefs-master-3.0.100-1.rhsystemd.x86_64.rpm -y
Notice:
Moosefs-master #主要是控制 master 節點的。埠:9419-9421
Moosefs-cgiserv 和 moosefs-cgi #主要是分提供布式檔案系統的圖形管理介面
Server2 和 server3 安裝儲存節點:
yum install moosefs-chunkserver-3.0.100-1.rhsystemd.x86_64.rpm -y
真機安裝客戶端:
yum install moosefs-client-3.0.100-1.rhsystemd.x86_64.rpm -y

3.MFS 中給 mfs-chunk 中新增儲存

步驟:1.給 mfs-chunk 主機新增虛擬硬碟
     2.給硬碟分割槽,並且初始化 
     fdisk /dev/vdb   #硬碟分割槽
     mkfs.xfs /dev/vdb1  #初始化檔案系統
3.設定 chunk 位置,並且掛載初始化的硬碟
     mkdir /mnt/chunk2
     chown mfs.mfs chunk2/ 此資料夾要給 mfs 許可權
vim /etc/mfs/mfshdd.cfg
35 /mnt/chunk2
vim /etc/fstab  #開機自啟動
/dev/vdb1 /mnt/chunk2  xfs  defaults  0 0
mount -a
開啟 moofs-chunk 服務  

檢視/mnt/chun2 一開始為空的,現在說明配置成功。
這裡寫圖片描述
這裡寫圖片描述

4.配置 mfs 客戶端進行操作 (客戶端也要進行對 mfsmaster 解析)

vim /etc/mfs/mfsmount.cfg 配置客戶端掛載點
這裡寫圖片描述

直接用 mfsmount 掛載:(只需要輸入mfsmount命令即可)
mfsmount #直接會去查詢配置檔案,進行掛載。
觀察,掛載成功
會發現/mnt/mfs 出現兩個目錄:
這裡寫圖片描述
查詢 dir1 中檔案屬性:
這裡寫圖片描述
這是我設定的,當匯入檔案到這個目錄下時,去做一個 chunk 副本。
可以通過
這裡寫圖片描述

5.安裝元資料日誌伺服器(metalogger)

在 master 上檢視,顯示 metalogger 監聽所有節點:

這裡寫圖片描述

在 client 主機上掛載 metalogger.

mkdir /mnt/mfsmeta/
mfsmount -m /mnt/mfsmeta/ #進行掛載,-m 對 meta 的描述

df 看不出來已經掛載,用 mount 命令檢視:

這裡寫圖片描述

會發現/mnt/mfsmeta 裡面有新的目錄產生。

這裡寫圖片描述

Trash 就是我們所說的回收站,當在 chunkserver 中刪除資料後,可以在 trash中收回。

在 trash 中要 find 找到資料所在那個目錄下:

find –name passwd

恢復:mv 目錄地址 undel/ 就完成了恢復

over!!