1. 程式人生 > >企業實用——MFS網絡分布式文件系統

企業實用——MFS網絡分布式文件系統

如圖所示 關閉 evel .com 不同 ron vpd The 軟件

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

(1)分布式原理

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


(2)MFS原理

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

  • 元數據服務器( Master):一臺管理整個文件系統的獨立主機,在整個體系中負責管理文件系統,維護元數據。(文件的大小、屬性、位置信息,包括所有非常規文件的所有信息,例如目錄、套接字、管道以及設備文件)
  • 元數據日誌服務器( MetaLogger):備份 Master服務器的變化日誌文件,文件類型為 changelog ml。*mfs當 Master服務器數據丟失或者損壞時,可以從日誌服務器中取得文件,進行恢復。
  • 數據存儲服務器( Chunk server
    ):真正存儲數據的服務器。存儲文件時,會把文件分塊保存,並在數據服務器之間進行復制。數據服務器越多,能使用的“容量”就越大,可靠性就越高,性能也就越好。
  • 客戶端( Client):可以像掛載NFS一樣掛載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】

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


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

一、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的單獨操作

二、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

技術分享圖片

三、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

技術分享圖片

日誌服務器服務開啟

需要註意:
默認為24小時,即每隔一天從元數據服務器Master下載一個metadata.mfs.back 文件。
當元數據服務器關閉或者出故障時,matedata.mfs.back 文件將消失,
那麽要恢復整個mfs, 則需從 metalogger服務器取得該文件。
請特別註意這個文件,它與日誌文件一起,才能夠恢復整個被損壞的分布式文件系統。

四、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

技術分享圖片

五、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掛載到客戶端

技術分享圖片

PS:優化客戶端操作

Client操作:
1.為了可以直接使用mfsmount這條命令,進行環境變量的修改。
編輯環境變量:

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

添加完成後保存退出

技術分享圖片

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

啟動監控:

/usr/local/mfs/sbin/mfscgiserv

技術分享圖片

輸入Master Server地址進入監控
http://192.168.233.128:9425
技術分享圖片
技術分享圖片

企業實用——MFS網絡分布式文件系統