超詳細MFS網絡分佈式文件系統

-----------------------MFS----------------------

(1)分佈式原理

分佈式文件系統( Distributed File System)是指文件系統管理的物理存儲資源不必定直接鏈接在本地節點上,而是經過計算機網絡與節點相連。簡單來講,就是把一些分散的(分佈在局域網內各個計算機上)共享文件夾,集合到一個文件夾內(虛擬共享文件夾)。對於用戶來講,要訪問這些共享文件夾時,只要打開這個虛擬共享文件夾,就能夠看到全部連接到虛擬共享文件夾內的共享文件夾,用戶感受不到這些共享文件
是分散於各個計算機上的。分佈式文件系統的好處是集中訪問、簡化操做、數據容災,以及提升文件的存取性能。c++


(2)MFS原理

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

1)MFS文件系統的組成。服務器

  • 元數據服務器( Master):一臺管理整個文件系統的獨立主機,在整個體系中負責管理文件系統,維護元數據。(文件的大小、屬性、位置信息,包括全部很是規文件的全部信息,例如目錄、套接字、管道以及設備文件)
  • 元數據日誌服務器( MetaLogger):備份 Master服務器的變化日誌文件,文件類型爲 changelog ml。*mfs當 Master服務器數據丟失或者損壞時,能夠從日誌服務器中取得文件,進行恢復。
  • 數據存儲服務器( Chunk server):真正存儲數據的服務器。存儲文件時,會把文件分塊保存,並在數據服務器之間進行復制。數據服務器越多,能使用的「容量」就越大,可靠性就越高,性能也就越好。
  • 客戶端( Client):能夠像掛載NFS同樣掛載MFS文件系統,其操做是相同的。
    MFS文件系統的組成架構如圖所示。
    超詳細MFS網絡分佈式文件系統

2)MFS讀取數據的處理過程網絡

  • 客戶端向元數據服務器發出讀請求。
  • 元數據服務器把所需數據存放的位置( Chunk Server的P地址和 Chunk編號)告知客戶端。
  • 客戶端向已知的 Chunk server請求發送數據。
  • Chunk Server向客戶端發送數據。

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

  • 客戶端向元數據服務器發送寫入請求
  • 元數據服務器與 Chunk Server進行交互(只有當所需的分塊 Chunks存在的時候才進行這個交互),但元數據服務器只在某些服務器建立新的分塊Chunks,建立成功後由 Chunk servers告知元數據服務器操做成功。
  • 元數據服務器告知客戶端,能夠在哪一個 Chunk Server的哪些 Chunks寫入數據。
  • 客戶端向指定的 Chunk server寫入數據。
  • 該 Chunk Server與其餘 Chunk Server進行數據同步,同步成功後 ChunkServer告知客戶端數據寫入成功
  • 客戶端告知元數據服務器本次寫入完畢

---------------------案例實驗----------------------

概述
公司以前的圖片服務器採用的是NFS,隨着業務量增長,多臺服務器經過NFS方式共享一個服務器的存儲空間,使得NFsS服務器不堪重負,常常出現超時問題。並且NFS存在着單點故障問題,儘管能夠rsync同步數據到另一臺服務器上作NFS服務的備份,但這對提升整個系統的性能並沒有幫助。基於目前的需求,咱們須要對NFS服務器進行優化或採起別的解決方案,然而優化並不能應對日益增多的客戶端的性能要求,所以選擇的解決方案是採用分佈式文件系統。採用分佈式文件系統後,服務器之間的數據訪問再也不是一對多的關係,而是多對多的關係,這樣可使性能獲得大幅提高。
在當前多種經常使用的分佈式文件系統中,咱們採用了MFS( MooseFS)。分佈式

[須要注意:MFS的MasterServer管理節點只有一個,也有可能會出現單點故障,後續我會寫出解決方案FastDFS】ide

MFS雖然有單點故障的可能性缺點,但也有不少比較好的特色好比:
一、高可靠(數據的多個拷貝被存儲在不一樣的計算機上)
二、經過附加新的計算機或者硬盤能夠實現容量的動態擴展
三、刪除的文件能夠根據一個可配置的時間週期進行保留(一個文件系統級別的回收站)
四、不受訪問和寫入影響的文件連貫快照
性能


MFS正式推出是在2008年5月,它是一個具備容錯功能的、高可用、可擴展的海量級分佈式文件系統。MFS把數據分散在多臺服務器上,但用戶看到的只是一個源。MFS也像其餘類UNX文件系統同樣,包含了層級結構和文件屬性,能夠建立特殊的文件(塊設備、字符設備、管道、套接字)、符號連接和硬連接。優化

實驗環境:

主機 操做系統 IP地址 軟件安裝
Master Server CentOS 7 192.168.233.128 mfs-1.6.27-5.tar.gz
MetaLogger Server CentOS 7 192.168.233.6 mfs-1.6.27-5.tar.gz
Chunk Server 1 CentOS 7 192.168.233.4 mfs-1.6.27-5.tar.gz
Chunk Server 2 CentOS 7 192.168.233.10 mfs-1.6.27-5.tar.gz
Client CentOS 7 192.168.233.11 mfs-1.6.27-5.tar.gz fuse-2.9.2.tar.gz
軟件包 百度網盤
mfs-1.6.27-5.tar.gz 連接:https://pan.baidu.com/s/1-l0ZEisWmlGT2aNqR2nGaw 密碼:e98v
fuse-2.9.2.tar.gz 連接:https://pan.baidu.com/s/1rZPOnsVISzu0Z0aucr7J7g 密碼:71si

1、Master Server和MetaLogger Server共同步驟:

1.關閉防火牆操作系統

#關閉防火牆
systemctl stop firewalld.service 
setenforce 0

2.安裝環境

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

3.建立MFS程序用戶

useradd -s /sbin/nologin mfs

4.解壓縮MFS文件

tar zxvf mfs-1.6.27-5.tar.gz -C /opt

5.安裝設置

cd /opt/mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount

6.編譯安裝

make && make install

7.複製元數據文件

cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs

接下來是Master Server和MetaLogger Server的單獨操做

2、Master Server操做

1.複製配置模板,從而開啓功能

cd /usr/local/mfs/etc/mfs/
[root@localhost mfs]# cp mfsexports.cfg.dist mfsexports.cfg       #權限配置文件
[root@localhost mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg            #master配置文件
[root@localhost mfs]# cp mfstopology.cfg.dist mfstopology.cfg           #本服務器的日誌文件

2.啓動主服務器服務:

/usr/local/mfs/sbin/mfsmaster start

3.查看下mfsmaster服務是否開啓

ps -ef | grep mfs

超詳細MFS網絡分佈式文件系統

3、MetaLogger Server操做

1.複製配置模板,從而開啓功能

cd /usr/local/mfs/etc/mfs/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

2.修改mfs日誌服務配置文件

[root@localhost mfs]# vim mfsmetalogger.cfg
....以上內容忽略
MASTER_HOST = 192.168.233.128         #修改並指向Master Server的地址
#MASTER_PORT = 9419
....如下內容忽略

修改完成後保存退出

3.啓動MetaLogger Server服務器服務

/usr/local/mfs/sbin/mfsmetalogger start

4.查看下服務是否開啓

[root@localhost mfs]# ps -ef | grep mfs

超詳細MFS網絡分佈式文件系統

日誌服務器服務開啓

須要注意:
默認爲24小時,即每隔一天從元數據服務器Master下載一個metadata.mfs.back 文件。
當元數據服務器關閉或者出故障時,matedata.mfs.back 文件將消失,
那麼要恢復整個mfs, 則需從 metalogger服務器取得該文件。
請特別注意這個文件,它與日誌文件一塊兒,纔可以恢復整個被損壞的分佈式文件系統。

4、Chunk Server 1和2共同操做

1.安裝環境

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

2.建立MFS程序用戶

useradd -s /sbin/nologin mfs

3.解壓縮文件

tar zxvf mfs-1.6.27-5.tar.gz -C /opt

4.安裝設置

cd /opt/mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmount

5.編譯安裝

make && make install

6.複製配置模板,從而開啓功能

cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg

7.修改mfschunk配置文件

vim mfschunkserver.cfg
....以上內容忽略
#BIND_HOST = *
MASTER_HOST = 192.168.233.128                        #修改並指向Master Server的地址
#MASTER_PORT = 9420
....如下內容忽略

修改完成後保存退出

8.修改配置文件

vim mfshdd.cfg
....以上內容忽略
#/mnt/hd1
#/mnt/hd2
#etc.
/data                             #添加文件目錄
~            
修改完成後保存退出

9.建立文件目錄,而且更改屬主屬組

mkdir /data
chown -R mfs.mfs /data

10.開啓服務

/usr/local/mfs/sbin/mfschunkserver start

11.查看服務開啓

ps -ef | grep mfs

超詳細MFS網絡分佈式文件系統

5、Client 操做

1.關閉防火牆

systemctl stop firewalld.service 
setenforce 0

2.安裝環境

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

3.解壓縮fuse

tar zxvf fuse-2.9.2.tar.gz -C /opt/

4.編譯安裝

cd /opt/fuse-2.9.2/
./configure
make && make install

5.編輯環境變量

vim  /etc/profile
#在末尾插入一行:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

添加完成後保存退出
source /etc/profile

6.安裝mfs

cd ~
useradd -s /sbin/nologin mfs              #建立mfs程序用戶
tar zxvf mfs-1.6.27-5.tar.gz -C /opt              #解壓縮文件

7.編譯安裝mfs

cd /opt/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

8.加載Fuse內核

mkdir /opt/mfs         #建立掛載目錄
modprobe fuse           #加載fuse內核
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.233.128               #Master Server掛載到客戶端

超詳細MFS網絡分佈式文件系統

PS:優化客戶端操做

Client操做:
1.爲了能夠直接使用mfsmount這條命令,進行環境變量的修改。
編輯環境變量:

vim /etc/profile
#末尾插入一行:
export PATH=/usr/local/mfs/bin:$PATH

添加完成後保存退出

超詳細MFS網絡分佈式文件系統

-----------在Master Server上啓動監控程序-----------

啓動監控:

/usr/local/mfs/sbin/mfscgiserv

超詳細MFS網絡分佈式文件系統

輸入Master Server地址進入監控
http://192.168.233.128:9425
超詳細MFS網絡分佈式文件系統
超詳細MFS網絡分佈式文件系統

相關文章
相關標籤/搜索