1. 程式人生 > >MFS分布式文件系統

MFS分布式文件系統

實驗 之前 自動同步 sql 基礎上 alt no space src 存儲服務器

MFS分布式文件格式

1.組成
1)Master(元數據服務器):負責維護、管理數據的所在位置等
2)Chunk Server(數據存儲服務器):負責數據的存儲
3)Metalogger(元數據日誌服務器):負責紀錄數據的改動情況
4)Client(客戶端):訪問MFS
2.MFS讀過程
1)客戶端向Master發送讀請求
2)Master去緩存的數據庫(非MySQL)中搜索客戶端所需數據的位置,並告知客戶端(Chunk Server IP、Chunk編號)
3)客戶端去指定Chunk Server的對應Chunk編號讀取數據
4)客戶端通知Master讀取完畢
3.MFS寫過程
1)客戶端向Master發送寫請求

2)Master通知Chunk Server(誰空閑,如空閑新建Chunk編號),找到後將知道的Chunk Server IP和編號告知客戶端
3)客戶端向指定IP和編號存儲數據
4)客戶端告知Master寫入完畢
5)Master通知Metalogger有新數據寫入(Matelogger紀錄新增加文件位置和對應Chunk Server),日誌記錄完畢後,連接關閉
文件以chunk大小存儲,每chunk最大為64M。小於64M的,該chunk的大小即為該文件大小,超過64M的文件將被均分,每一份(chunk)的大小以不超過64M為原則;文件可以有多份copy,即除原始文件以外,該文件還存儲的份數。當goal為1時,表示只有一份copy,這份copy會被隨機存到一臺chunkserver上。當goal的數大於1時,每一份copy會被分別保存到其它chunkserver上。goal的大小不要超過chunkserver的數量,否則多出的copy,不會有chunkserver去存,goal設置再多實際上也就沒有意義的。copy的份數,一般設為大於1份,這樣如果有一臺chunkserver壞掉後,至少還有一份copy,當這臺又被加進來後,會將失去的那份copy補回來,始終保持原有的copy數。而如果goal設為1,那麽當存儲該copy的chunkserver壞掉,之後又重新加入回來,copy數將始終是0,不會恢復到之前的1個copy
chunkserver上的剩余存儲空間要大於1GB,新的數據才會被允許寫入,否則,你會看到No space left的提示
多個chunker並不影響寫的速度,但是能加快讀的速度,在原來的基礎上增加一個chunker時,數據會自動同步到新增的chunker上以達到數據的平衡和均衡

實驗環境:五臺centos6.7x64服務器,yum源和IP根據自己需求配置,切記首先關閉防火墻和selinux,具體環境如下圖
技術分享圖片

Master 192.168.1.10 vmnet1 mfs-1.6.27-5.tar.gz

MetaLogger 192.168.1.20 vmnet1 mfs-1.6.27-5.tar.gz

Chunk Server 1 192.168.1.30 vmnet1 mfs-1.6.27-5.tar.gz

Chunk Server 2 192.168.1.40 vmnet1 mfs-1.6.27-5.tar.gz

Client 192.168.1.50 mnet1 mfs-1.6.27-5.tar.gz

fuse-2.9.2.tar.gz

MFS分布式文件系統