MFS分佈式文件系統

MFS分佈式文件系統

一、實驗環境

wKiom1mpTb_DqbEOAADMvLhq1fE148.png

wKioL1mpTbXTtwzVAAAMlhQM-oU062.png

三、Mfs分佈式文件系統詳解

1、分佈式原理

   分佈式文件系統就是把一些分散在多臺計算機上的共享文件夾,集合到一個共享文件夾內,用戶要訪問這些文件夾的時候,只要打開一個文件夾,就可以的看到所有鏈接到此文件夾內的共享文件夾。

2MFS原理

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

3MFS讀數據的處理過程

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

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

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

Chunk Server向客戶端發送數據

4MFS的組成

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

   元數據日誌服務器(MetaLogger):備份Master服務器的變化日誌文件,當master服務器損壞,可以從日誌服務器中取得文件恢復。

數據存儲服務器(Chunk Server):真正存儲數據的服務器,服務器越多,容量就越大,可靠性越高,性能越好。

客戶端(Client):可以像掛載NFS一樣掛載MFS文件系統

5、寫入的過程

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

元數據服務器與Chunk Server進行交互,但元數據服務器只在某些服務器創建新的分塊Chunks,創建成功後由Chunk Servers告知元數據服務器操作成功

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

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

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

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

四、實驗步驟

Master192.168.1.10

MetaLogger192.168.1.20

Chunk  1192.168.1.30

Chunk  2192.168.1.40

搭建Master  server

下載源碼包及安裝準備

#service   iptables   stop

#yum  -y  install  zlib-devel

創建用戶

#useradd  mfs  -s  /sbin/nologin

安裝源碼包

#cd   /usr/src

#tar   zxf  mfs-1.6.27-5.tar.gz

#cd   mfs-1.6.27

./configure  --prefix=/usr/local/mfs  --with-default-user=mfs  --with-default-group=mfs  --disable-mfschunkserver  --disable-mfsmount  &&  make  &&  make install

複製文件

#cd /usr/local/mfs/etc/mfs

#cp  mfsmaster.cfg.dist  mfsmaster.cfg

#cp  mfsexports.cfg.dist  mfsexports.cfg

#cp  mfstopology.cfg.dist  mfstopology.cfg

#cd  /usr/local/mfs/var/mfs

#cp   metadata.mfs.empty    metadata.mfs

配置文件

wKiom1mpTdrgxIquAAIxLUWYKok005.png

wKioL1mpTc3Ta78vAADSzLRkdxI800.png做一個軟連接

#ln  -s  /usr/local/mfs/sbin/mfsmaster  /usr/local/sbin

啓動Master  server

#mfsmaster    start

wKiom1mpTkngWDNvAAFJEA9BAGM374.png

wKiom1mpTn3AFFToAAAVVsVjxfk117.png

#mfsmaster  -s   停止 Master  Server

#ps  -ef  |  grep  mfs             //檢查是否啓動

搭建MetaLogger  Server

#service   iptables   stop        關閉防火牆

#yum  install  -y  gcc   gcc-c++

創建用戶

#useradd  mfs   -s  /sbin/nologin

編譯安裝mfs

#cd    /usr/src

#tar  zxf  mfs-1.6.27-5.tar.gz

#cd mfs-1.6.27

./configure  --prefix=/usr/local/mfs  --with-default-user=mfs  --with-default-group=mfs  --disable-mfschunkserver  --disable-mfsmount  && make && make install

#cd   /usr/local/mfs/etc/mfs

#cp  mfsmetalogger.cfg.dist  mfsmetalogger.cfg

修改爲master  serverIP地址

#echo "MASTER_HOST = 192.168.1.10"  >>  /usr/local/mfs/etc/mfs/mfsmetalogger.cfg

wKioL1mpTnqTL8m2AAAfcOTAKF0030.png

做軟連接

#ln -s  /usr/local/mfs/sbin/mfsmetalogger  /usr/local/sbin

啓動mfsmetaLogger

#mfsmetalogger   start            啓動mfsmetalogger 服務

#ps   -ef  | grep  mfs           檢查是否啓動

wKioL1mpToPx5eE6AABMHcZhZ1M352.png搭建Chunk  Server  1,Chunk  Server  2

#service    iptables   stop

# yum  install   -y   gcc   gcc-c++  zlib-devel

創建用戶

#useradd  mfs   -s  /sbin/nologin

編譯安裝mfs

#cd /usr/src

#tar zxf  mfs-1.6.27-5.tar.gz

#cd   mfs-1.6.27

./configure  --prefix=/usr/local/mfs  --with-default-user=mfs  --with-default-group=mfs  --disable-mfsmaster  --disable-mfsmount  && make && make install

#cd   /usr/local/mfs/etc/mfs

#cp  mfschunkserver.cfg.dist  mfschunkserver.cfg

#cp  mfshdd.cfg.dist  mfshdd.cfg

修改爲master  server IP地址

#echo "MASTER_HOST = 192.168.1.10"  >>  /usr/local/mfs/etc/mfs/mfschunkserver.cfg

wKiom1mpTrLgHqiOAAAmSZUT2PI531.png

在這裏/data是一個給mfs的分區,生產環境最好使用

獨立分區或磁盤掛載到此目錄

#echo  "/data"  >>  /usr/local/mfs//etc/mfs/mfshdd.cfg

wKiom1mpTr3zk5aDAAAMaPBNW3Y780.png

創建目錄

#mkdir  /data

給目錄賦予屬主屬組的權限

#chown  -R  mfs:mfs  /data

做軟連接以便啓動不需絕對路徑

#ln -s  /usr/local/mfs/sbin/mfschunkserver  /usr/local/sbin

#mfschunkserver  start     啓動mfschunkserver服務

mfschunkserver  -s         停止mfschunkserver服務

#ps  -ef  |  grep  mfs

wKioL1mpTrbAtToaAAARuQr66jQ126.png

客戶端配置

#service   iptables  stop

#yum  install    -y  gcc  gcc-c++

創建用戶

#useradd  mfs   -s  /sbin/nologin

MFS依賴於FUSE,編譯安裝fuse

#cd    /usr/src

#tar    zxf  fuse-2.9.2.tar.gz

#cd    fuse-2.9.2

./configure  && make  &&  make install

設置環境變量

#echo "expor" PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> /etc/profie

#source   /etc/profile

編譯安裝mfs客戶端

#cd   /usr/src

#tar   zxf  mfs-1.6.27-5.tar.gz

#cd   mfs-1.6.27

./configure  --prefix=/usr/local/mfs  --with-default-user=mfs  --with-default-group=mfs  --disable-mfsmaster  --disable-mfschunkserver --enable-mfsmount  && make && make install

#mkdir   /zc                  創建掛接點

#modprobe  fuse              加載fuse模塊到內核

掛接MFS

#/usr/local/mfs/bin/mfsmount   /zc   -H  192.168.1.10

查看掛載情況

#df -HT

wKioL1mpTsXRNJzcAAAsFgBi2AQ585.png

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

#echo  "export PATH=/usr/local/mfs/bin:$PATH"   >>  /etc/profile

生產環境Chunk  server節點數量應大於2,文件副本小於等於Chunk server 服務器的數量

#mfssetgoal  -r  2  /zc     

wKioL1mpTtKh1JixAAAOCU73fgQ369.png

#mfsgetgoal   -r   /zc

wKiom1mpTx7y3nRBAAALkttaqjE347.png

創建測試文件

#cd  /zc

#touch   123
#mfsgetgoal  test

wKiom1mpTymR_0sMAAAPwPOvH4A385.png

客戶端測試訪問:http://192.168.1.10:9425

wKioL1mpTx3yCR2sAACUAsl4sQ4738.png-wh_50 

info顯示MFS的基本信息

Servers列出現有的Chunk  Server

Disks列出現有的硬盤信息

Exports:列出可被掛載的目錄

Mounts列出被掛載的目錄

Operations顯示正在執行的操作

Master  Charts 顯示Master  Server的操作情況,讀,寫,刪除等操作。

Server  Charts顯示Chunk  Server的操作情況,數據傳輸率及系統狀態。 


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