MFS集羣部署

一、概述

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

二、MFS文件系統的組成

  • 元數據服務器(Master): 在整個體系中負責管理文件系統, 維護元數據
  • 元數據日誌服務器(MetaLogger): 備份 Master 服務器的變化日誌文件, 文件類型爲changelog_ml.*.mfs。當 Master 服務器數據丟失或者損壞,可以從日誌服務器中取得文件恢復
  • 數據存儲服務器(Chunk Server): 真正存儲數據的服務器。
    存儲文件時, 會把文件分塊保存, 並在數據服務器之間複製, 數據服務器越多, 能使用的“容量” 就越大, 可靠性就越高, 性能越好。
  • 客戶端(Client): 可以像掛載 NFS 一樣掛載 MFS 文件系統, 其操作是相同的。

三、MFS存儲的優缺點

優點

  1. 高可靠性:每一份數據可以設置多個備份(多分數據),並可以存儲在不同的主機上
  2. 高可擴展性:可以很輕鬆的通過增加主機的磁盤容量或增加主機數量來動態擴展整個文件系統的存儲量
  3. 高可容錯性:我們可以通過對mfs進行系統設置,實現當數據文件被刪除後的一段時間內,依舊存放於主機的回收站中,以備誤刪除恢復數據
  4. 高數據一致性:即使文件被寫入、訪問時,我們依然可以輕鬆完成對文件的一致性快照

缺點

  1. Master 目前是單點,雖然會把數據信息同步到備份服務器,但是恢復需要時間(可以使用企業版或者keepalived+drdb)
  2. Master服務器對主機的內存要求略高(master 會把元數據存儲到磁盤中 這樣讀寫效率更高)
  3. 默認Metalogger 複製元數據時間較長(可調整)
    內存使用問題:
    例如處理一百萬個文件chunkserver,大概需要300M的內存空間。據此,推算如果未來要出來1個億的文件chunkserver,大概需要30G內存空間

四、MFS集羣部署

環境介紹

master服務器:192.168.5.131/24

log服務器:192.168.5.132/24

chunk1:192.168.5.133/24

chunk2:192.168.5.134/24

客戶端client:192.168.5.135/24

5臺服務器全部關閉防火牆,做好主機名映射

###關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
###關閉核心防護
setenforce 0
vi /etc/sysconfig/selinux 
SELINUX=disabled
###配置hosts
vi /etc/hosts
192.168.100.40	mfsmaster
192.168.100.41	metalogger
192.168.100.42	chunk1
192.168.100.43	chunk2
192.168.100.45	client

4.1、master服務器配置

  • 安裝環境依賴包,創建程序性用戶
yum -y install gcc zlib-devel
useradd -s /sbin/nologin -M mfs
  • 源碼編譯安裝mfs軟件
  ##解壓
tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/       
##配置執行參數
cd /opt/moosefs-3.0.100/
/configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount
##編譯並安裝
make && make install
  • 啓動mfs
##安全備份原文件
cd /usr/local/mfs/etc/mfs/
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfstopology.cfg.sample mfstopology.cfg
 cd /usr/local/mfs/var/mfs/
 cp metadata.mfs.empty metadata.mfs
 chown mfs:mfs /usr/local/mfs/var/mfs     ##修改權限
 /usr/local/mfs/sbin/mfsmaster start      ##啓動
 netstat -anpt | grep mfs           ###監聽端口已開
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      16024/mfsmaster     
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      16024/mfsmaster     
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN 

4.2、Log服務器配置

  • 安裝環境依賴包,創建程序性用戶
yum -y install gcc zlib-devel
useradd -s /sbin/nologin -M mfs
  • 源碼編譯安裝mfs軟件
  ##解壓
tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/       
##配置執行參數
cd /opt/moosefs-3.0.100/
/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.sample mfsmetalogger.cfg
vi /usr/local/mfs/etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 192.168.5.131    ##指定master服務器IP
/usr/local/mfs/sbin/mfsmetalogger start         ##啓動服務
netstat -anpt | grep mfs            ##檢查mfs端口是否開啓

4.3、chunk1和chunk2配置

  • 安裝環境依賴包,創建程序性用戶
yum -y install gcc zlib-devel
useradd -s /sbin/nologin -M mfs
  • 源碼編譯安裝mfs軟件
cd /opt/moosefs-3.0.100/
##添加執行參數
./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.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
vi mfschunkserver.cfg
MASTER_HOST = 192.168.5.131   ##指定master服務器IP
vi mfshdd.cfg
/data             ##追加內容(共享點)
  • 創建共享點,啓動mfs服務
mkdir /data
chown -R mfs:mfs /data   ##修改權限
/usr/local/mfs/sbin/mfschunkserver start    ##啓動服務
netstat -anpt | grep mfs    ##檢查mfs端口是否開啓

4.4、客戶端client配置

  • 安裝相關依賴包,創建程序性用戶
yum -y install gcc zlib-devel
useradd -s /sbin/nologin -M mfs
  • 安裝fuse文件系統(fuse-2.9.2)
tar xzvf fuse-2.9.2.tar.gz -C /opt
cd fuse-2.9.2
./configure 
###編譯並安裝
make && make install
  • 設置環境變量
vi /etc/profile
##末尾追加
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

source /etc/profile  ##重新加載環境變量
  • 源碼安裝MFS
tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
###添加執行參數
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount
###編譯並安裝
make && make install
  • 掛載MFS
mkdir /opt/mfs     ##創建掛載點
modprobe fuse 
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.5.131     ####master地址
df -hT         ##檢查掛載情況
192.168.5.131:9421 fuse.mfs   50G  9.6G   41G  20% /opt/mfs
  • 創建軟連接讓mfs命令能被系統識別
ln -s /usr/local/mfs/bin/* /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
#對可執行文件賦予權限
chmod a+x /usr/local/bin/*
chmod a+x /usr/local/sbin/*

五、驗證

  • 設置文件被複制次數
## 設置複製3份副本,但是這裏的chunk只有2臺,所以下面的copy也就爲2了
mfssetgoal -r 3 /opt/mfs/
/opt/mfs/:
 inodes with goal changed:                       1
 inodes with goal not changed:                   0
 inodes with permission denied:                  0

  • 在掛載點/opt/mfs中創建文件並寫入內容
echo "111" >>  /mnt/mfs/aaa.text
  • 驗證寫入信息,已經寫入chunk中
 mfsfileinfo aaa.test 
 aaa.test:
        chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
                copy 1: 192.168.5.130:9422 (status:VALID)
                copy 2: 192.168.5.175:9422 (status:VALID)

在這裏插入圖片描述

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