MooseFS(MFS)安裝手記(一)

        MooseFS是一種分佈式文件系統,MooseFS文件系統結構包括如下四種角色:shell

       1 管理服務器managing server (master)服務器

              負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝網絡

       2 元數據日誌服務器Metalogger server(Metalogger)session

               負責備份master服務器的變化日誌文件,文件類型爲changelog_ml.*.mfs,以便於在master server出問題的時候接替其進行工做架構

      3 數據存儲服務器data servers (chunkservers)分佈式

               負責鏈接管理服務器,遵從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸.oop

     4 客戶機掛載使用client computers(須要FUSE支持)性能

              經過fuse內核接口掛接遠程管理服務器上所管理的數據存儲服務器,.看起來共享的文件系統和本地unix文件系統使用同樣的效果.spa

 通常架構以下操作系統


 MFS的讀數據過程


MFS的寫數據過程

 實驗環境以下

       master:10.1.1.175

       metalogger:10.1.1.40

       chunkserver:10.1.1.173/10.1.1.176

       client:10.1.1.174

       mfs版本:mfs-1.6.19.tar.gz

 master server 的安裝

      在安裝maste server服務器時咱們能夠取消安裝chunkserver和客戶端安裝,具體步驟以下:

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib --disable-mfsmount --disable-mfschunkserver

make&&make install

     安裝成功後在/etc/mfs目錄下會有以.dist結尾的文件,因爲咱們這臺機器作master因此須要兩個文件mfsexports.cfg和 mfsmaster.cfg,全部配置文件的值都是被註釋掉的,他們是默認生效的,若是要修改去掉註釋修改便可。

    mfsmaster.cfg是主配置文件

vi mfsmaster.cfg

#運行master的用戶
# WORKING_USER = mfs

#運行master的組
# WORKING_GROUP = mfs

#master server在syslog中的標示,表示是由master產生
# SYSLOG_IDENT = mfsmaster

#是否執行mlockall,以免master進程溢出
# LOCK_MEMORY = 0

#進程優先級,默認是-19時必須以root啓動
# NICE_LEVEL = -19

#被掛載目錄配置文件的位置
# EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg

#數據存放路徑,有sessions,stats,metadata,changelog等日誌
# DATA_PATH = /var/lib/mfs

#metadata更改的log文件數目
# BACK_LOGS = 50

#延遲複製時間
# REPLICATIONS_DELAY_INIT = 300

#chunkserver斷開的複製延遲
# REPLICATIONS_DELAY_DISCONNECT = 3600

#metalog監聽的ip地址和端口
# MATOML_LISTEN_HOST = *
# MATOML_LISTEN_PORT = 9419

#用於chunkserver鏈接的ip地址和端口
 MATOCS_LISTEN_HOST = 10.1.1.175
# MATOCS_LISTEN_PORT = 9420

#用於客戶端掛載的ip地址和端口
 MATOCU_LISTEN_HOST = 10.1.1.175
# MATOCU_LISTEN_PORT = 9421

#chunk的迴環頻率
# CHUNKS_LOOP_TIME = 300

#chunk在loop中被刪除的最大延遲時間
# CHUNKS_DEL_LIMIT = 100
# CHUNKS_WRITE_REP_LIMIT = 1
# CHUNKS_READ_REP_LIMIT = 5

# REJECT_OLD_CLIENTS = 0

# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmaster.lock

     mfsexports.cfg 對被掛載目錄權限的設置

vi mfsexports.cfg

# Allow everything but "meta".
10.1.1.0/24                     /       rw,alldirs,maproot=0
# Allow "meta".
10.1.1.0/24                     .       rw
#*                      /       ro
#192.168.1.0/24         /       rw
#192.168.1.0/24         /       rw,alldirs,maproot=0,password=passcode
#10.0.0.0-10.0.0.5      /test   rw,maproot=nobody,password=test
#10.1.0.0/255.255.0.0   /public rw,mapall=1000:1000

     第一部分爲客戶端ip地址

            能夠有多種顯示方式

    第二部分爲被掛載目錄

              /   表示moosefs的跟

             *  表示mfsmeta文件系統

    第三部分爲用戶權限

             ro   只讀模式

             rw  讀寫模式

             alldirs   容許掛載任何指定的子目錄

             maproot    映射爲root用戶

             passwd    指定客戶端密碼

開始啓動master server

        因爲咱們安裝時指定了--localstatedir=/var/lib ,因此metadata和changelog都保存在/var/lib/mfs下面,在第一次安裝master server時會生成一個metadata.mfs.empty文件,他是空的,master運行必須有metadata.mfs,因此只要改變metadata.mfs.empty的名字便可。

      進入/usr/local/mfs/sbin目錄:


啓動以後查看master進程:


    注意:在關閉master server不要使用kill命令,使用./mfsmaster -s 關閉便可。


metalogger的安裝

     在安裝metalogger時咱們能夠取消安裝chunkserver和客戶端安裝,一旦master server故障,導入changelogs,metalogger服務器即可以替代master server,安裝方法和master server方法同樣:

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib --disable-mfsmount --disable-mfschunkserver

make&&make install

在/etc/mfs/目錄下把mfsmetalogger.cfg.dist變爲mfsmetalogger.cfg便可,metalogger服務器只須要一個配置文件

vi mfsmetalogger.cfg

# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfsmetalogger
# LOCK_MEMORY = 0
# NICE_LEVEL = -19

# DATA_PATH = /var/lib/mfs

# BACK_LOGS = 50
# META_DOWNLOAD_FREQ = 24

# MASTER_RECONNECTION_DELAY = 5

#MASTER_HOST是master server的ip地址
 MASTER_HOST = 10.1.1.175
# MASTER_PORT = 9419

# MASTER_TIMEOUT = 60

# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock

        大部分參數和master server的參數同樣,具體意思可參看master的配置,啓動metalogger服務,在/usr/local/mfs/sbin目錄下./mfsmetalogger start便可,關閉也是不要用kill ./mfsmetalogger  -s 便可。



chunkserver的安裝

         在安裝chunkserver時咱們能夠取消master的安裝,方法以下:

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib  --disable-mfsmaster

make&&make install

在/etc/mfs目錄下須要把mfschunkserver.cfg.dist  mfshdd.cfg.dist改爲mfschunkserver.cfg  mfshdd.cfg便可。

mfschunkserver.cfg是主配置文件

vi mfschunkserver.cfg

# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfschunkserver
# LOCK_MEMORY = 0
# NICE_LEVEL = -19

# DATA_PATH = /var/lib/mfs

# MASTER_RECONNECTION_DELAY = 5

#本地地址,用來鏈接master的
 BIND_HOST = 10.1.1.173

#元數據服務器的ip地址和端口
 MASTER_HOST = 10.1.1.175
# MASTER_PORT = 9420

# MASTER_TIMEOUT = 60

#這個端口用於和其餘chunkserver之間的鏈接,通常是複製數據
# CSSERV_LISTEN_HOST = *
# CSSERV_LISTEN_PORT = 9422
# CSSERV_TIMEOUT = 5

#分配給MFS磁盤空間的配置文件的位置
# HDD_CONF_FILENAME = /etc/mfs/mfshdd.cfg
# HDD_TEST_FREQ = 10

# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfschunkserver.lock
# BACK_LOGS = 50

mfshdd.cfg是分配給MFS使用空間的配置文件

vi mfshdd.cfg
# mount points of HDD drives
#/mnt/hd1
#/mnt/hd2
#etc.
/mfs

      咱們新建了一個分區直接掛載到/mfs下面,建議在chunkserver上單獨劃分空間給mfs使用,方便管理。啓動以前確保mfs用戶對/mfs可讀寫。

在/usr/local/mfs/sbin目錄下./mfschunkserver start便可

客戶端的安裝:

        爲了掛載基於MooseFS的分佈式文件系統,須要FUSE的支持。

fuse簡介

       用戶空間文件系統(Filesystem in Userspace,簡稱FUSE)是操做系統中的概念,指徹底在用戶態實現的文件系統。目前Linux經過內核模塊對此進行支持。一些文件系統如ZFS,glusterfs和lustre使用FUSE實現。Linux用於支持用戶空間文件系統的內核模塊名叫FUSE,FUSE一詞有時特指Linux下的用戶空間文件系統。文件系統是一個通用操做系統重要的組成部分。傳統上操做系統在內核層面上對文件系統提供支持。而一般內核態的代碼難以調試,生產率較低。Linux從2.6.14版本開始經過FUSE模塊支持在用戶空間實現文件系統。

       在用戶空間實現文件系統可以大幅提升生產率,簡化了爲操做系統提供新的文件系統的工做量,特別適用於各類虛擬文件系統和網絡文件系統。上述ZFS和glusterfs都屬於網絡文件系統。可是,在用戶態實現文件系統必然會引入額外的內核態/用戶態切換帶來的開銷,對性能會產生必定影響。

        fuse內核模塊和fuse lib庫經過一個文件描述符通訊,/dev/fuse 文件描述符能夠被打開屢次,得到的文件描述符被傳遞到mount系統調用,用來匹配已經掛載的文件系統。

安裝fuse

tar zxvf fuse-2.8.5.tar.gz
cd fuse-2.8.5
./configure
make && make install

安裝客戶端

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib --disable-mfsmaster --enable-mfsmount \
--disable-mfschunkserver


make&&make install

進入/usr/local/mfs/bin目錄下,./mfsmount --help 便可看到mfsmount的用法。

 MFS集羣啓動:

        1  啓動master server

        2  啓動chunk server

        3  啓動metalogger

        4  啓動客戶端,使用mfsmount掛載相關目錄

 MFS集羣中止:

         1 全部客戶端卸載MooseFS文件系統

         2 中止chunkserver

         3 中止metalogger

         4 中止master server

相關文章
相關標籤/搜索