1. 程式人生 > >Yum簡單安裝MFS分布式文件系統

Yum簡單安裝MFS分布式文件系統

color rpm-gpg 單個 51cto 指定 什麽 存儲節點 指向 ima

什麽是MFS?

MooseFS是一個容錯,高可用,高性能,擴展,網絡分布式文件系統。它將數據分布在多個物理商品服務器上,這些服務器對用戶可視為一個虛擬磁盤。它符合POSIX並且像任何其他類Unix文件系統一樣支持:

  • 分層結構:文件和文件夾,
  • 文件屬性,
  • 特殊文件:管道,插座,塊和字符設備,
  • 符號和硬鏈接,
  • 安全屬性和ACL。
    它適用於需要標準文件系統的所有應用程序。

分布式原理

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

MFS原理

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

MFS文件系統的組成

  • 元數據服務器(Master):在整個體系中負責管理文件系統,維護元數據。
  • 元數據日誌服務器(Metalogger):備份Master服務器的變化日誌文件,文件類型為changelog_ml.*.mfs。當Master服務器數據丟失或損壞時,可以從日誌服務器中取得文件,進行恢復。
  • 數據存儲服務器(Chunk Server):真正存儲數據的服務器。存儲文件時,會把文件分塊保存,並在數據服務器間進行復制。數據服務器越多,能使用的“容量”也越大,可靠性越高,性能也就越好。
  • 客戶端(Client):可以直接掛載MFS文件系統。

MFS讀取數據的處理過程

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

MFS寫入數據的處理過程

  • 客戶端向元數據服務器發送寫入請求
  • 元數據服務器與Chunk Server進行交互(只有當所需的分塊Chunk存在的時候才進行交互),但元數據服務器只在某些服務器創建新的分塊chunks,創建成功後由Chunk Servers告知元數據服務器操作成功
  • 元數據服務器告知客戶端,可以在哪個Chunk Server的那些chunks寫入數據
  • 客戶端向指定的Chunk Server寫入數據
  • 該Chunk Server與其他Chunk Server進行數據同步,同步成功後Chunk Server告知客戶端數據寫入成功
  • 客戶端告知元數據服務器本次寫入完畢

MFS優勢

  • 高可用性:沒有單點故障也稱為無SPOF配置。文件系統的元數據在物理冗余服務器上保存為兩個或多個副本。用戶數據冗余地分布在系統中的存儲服務器上。
  • 低成本的數據安全:MooseFS使用戶能夠節省大量硬盤空間,保持相同的數據冗余級別。在大多數常見情況下,將節省至少55%的硬盤空間.
  • 可擴展性:存儲可以擴展到16字節(~16000千兆字節),這使我們可以存儲超過20億個文件
  • 高性能:旨在支持高性能I/O操作。用戶數據可以在許多存儲節點上同時讀取/寫入,從而避免單個中央服務器或單個網絡連接瓶頸。

環境準備

  • 使用五臺服務器模擬搭建MFS文件系統
  • 關閉防火墻及selinux
    systemctl stop firewalld
    setenforce 0
  • 虛擬機規劃如下
主機 操作系統 IP地址 主要軟件
Master Server CentOS-7-x86_64 172.16.10.21 使用yum安裝
MetalLogger Server CentOS-7-x86_64 172.16.10.26
Chunk Server1 CentOS-7-x86_64 172.16.10.27
Chunk Server2 CentOS-7-x86_64 172.16.10.28
Client CentOS-7-x86_64 172.16.10.29

項目實施

搭建Master Server

安裝軟件

curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加鍵值
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加適當的庫條目
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y

啟動服務

systemctl start moosefs-master
systemctl enable moosefs-master
netstat -ntap | grep mfs

技術分享圖片

搭建MetalLogger Server

安裝軟件

curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加鍵值
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加適當的庫條目
yum install moosefs-metalogger -y

修改配置文件

vim /etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 172.16.10.21    //地址指向主服務器

技術分享圖片

啟動服務

systemctl start moosefs-metalogger
systemctl enable moosefs-metalogger
netstat -ntap | grep mfs

技術分享圖片

搭建Chunk Server

項目中的兩臺Chunk Server的搭建步驟是完全相同

安裝軟件

curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加鍵值
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加適當的庫條目
yum install moosefs-chunkserver -y

修改配置文件

  • 修改mfschunkserver.cfg
    vim /etc/mfs/mfschunkserver.cfg
    MASTER_HOST = 172.16.10.21    //在配置文件中修改,將地址指向主服務器
  • 修改mfshdd.cfg
    vim /etc/mfs/mfshdd.cfg
    /chen            //在末行添加共享目錄

    為共享目錄授權

    chown -R mfs:mfs /chen

    啟動服務

    systemctl start moosefs-chunkserver
    systemctl enable moosefs-chunkserver
    netstat -ntap | grep mfs

    技術分享圖片

    安裝Client

    安裝軟件

    curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加鍵值
    curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加適當的庫條目
    yum install moosefs-client -y

    加載fuse模塊到內核

    modprobe fuse

    掛載共享目錄

    mkdir /opt/mfs    //創建掛載點
    mfsmount /opt/mfs/ -H 172.16.10.21   //掛載,地址為master地址

    查看掛載

    df -h

    技術分享圖片

    常用操作介紹

    mfsgetgoal命令用來查詢文件被復制的份數,利用-r命令可以對整個目錄進行遞歸,goal是指文件被復制的份數。

    mfsgetgoal -r /opt/mfs/

    技術分享圖片
    mfssetgoal命令同來設置文件被復制的份數,生產環境中Chunk節點數量應至少大於2,文件副本數量小於等於Chunk服務器數量。

    mfssetgoal -r 2 /opt/mfs/

    技術分享圖片

    MFS監控

    Mfscgiserv是一個用python編寫的web服務器,監聽端口是9425,可以在Master Server啟動監控,用戶利用瀏覽器就可以全面監控所有客戶掛載、Chunk Server、Master Server,以及客戶端的各種操作等。

    主服務器上開啟監控

    mfscgiserv

    技術分享圖片
    技術分享圖片
    技術分享圖片

Yum簡單安裝MFS分布式文件系統