必威电竞|足球世界杯竞猜平台

MooseFS
來源:互聯網

MooseFS是一個具備冗余容錯功能的分布式網絡文件系統,它將數據分別存放在多個物理服務器或單獨磁盤或分區上,確保一份數據有多個備份副本。對于訪問的客戶端或者用戶來說,整個分布式網絡文件系統集群看起來就像一個資源一樣。從其對文件操作的情況看,MooseFS就相當于一個類UNIX文件系統。

基本介紹

MooseFS分布式文件系統安裝向導

概述Overview

下面我們以step-by-step?的方式,介紹在linux?平臺安裝MooseFS?文件系統的基本過程。我們假定您將以MFS?用戶和mfs?組來運行MooseFS。同時,我們推薦使用FHS(文件系統層次結構標準FileSystem?Hierarchy?Standard)兼容路徑,并且把歸檔文件mfs-1.6.17.tar.gz?放置在/USR/src?目錄里。本文旨在向讀者介紹怎樣在多個專用服務器安裝MooseFS?分布式文件系統以及在單個服務器安裝Moosefs?文件系統用于測試這樣的場景。

最新的MooseFS?穩定發行版本可以從http://SourceForge.net/projects/moosefs/?取得,在安裝MooseFS?系統客戶端時,應當確保系統已經安裝了正確的fuse?版本,如果沒有fuse?被安裝,您可以從http://sourceforge.net/projects/fuse/下載并安裝它。

在專用服務器安裝MooseFS?基本步驟

我們假定使用的主機ip?地址分配如下:

??主控服務器Master?server:?192.168.1.1

??主控備份服務器Metalogger?server:?192.168.1.2

??存儲塊服務器Chunk?servers:?192.168.1.101?and?192.168.1.102

??客戶端主機?(clients):?192.168.2.x

主控服務器Master?server?安裝

當我們安裝主控服務器時,在配置過程中(./configure),可以取消安裝chunk?server

(--disable-mfschunkserver)以及MooseFS?客戶端(--disable-mfsmount).?安裝主控服務器master?的具體步驟為:

1、添加mfs?組

#groupadd?馬方綜合征

2、新增系統用戶mfs

#useradd?-g?mfs?mfs

3、切換目錄

#cd?/usr/src

4、解包歸檔文件

#tar?-zxvf?mfs-1.6.17.tar.gz

5、進入安裝目錄

#cd?mfs-1.6.17

6、配置

#./configure?--prefix=/usr?--sysconfdir=/etc?\

--localstatedir=/var/天秤座?--with-default-user=mfs?\

--with-default-group=mfs?--disable-mfschunkserver?--disable-mfsmount

7、編譯并安裝

#make

#make?install

成功安裝master?以后,系統會在/etc?目錄自動生成樣例配置文件,這些樣例文件是以.dist

后綴命名。這里我們將借用這些樣例文件作為MooseFS?主控服務器的目標配置文件:

1、切換目錄

#cd?/etc

2、復制樣例文件,以得到master?所需的配置文件

#cp?mfsmaster.cfg.dist?mfsmaster.cfg

#cp?mfsmetalogger.cfg.dist?mfsmetalogger.cfg

#cp?mfsexports.cfg.dist?mfsexports.cfg

如果我們打算更改這些配置文件中的某些項目的值,則需要打開特定配置文件相關文本行前的注釋,然后修改跟隨其后的值。因為被注釋掉的行,即是MooseFS?內置的缺省值。

Mfsmaster.cfg?配置文件包含主控服務器master?相關的設置,在這里我們暫時不打算對其進行修改。如果你想知道關于該配置文件更多的信息,請查看它的手冊頁(使用命令man

mfsmaster.cfg)。

配置文件mfsexports.cfg?指定那些客戶端主機可以遠程掛接MooseFS?文件系統,以及授予掛接客戶端什么樣的訪問權限。例如,我們指定只有192.168.2.x?網段的主機可以以讀寫模式訪問MooseFS?的整個共享結構資源(/)。在配置文件mfsexports.cfg?文件的第一行,先取消注釋,然后把星號(*)改成192.168.2.0/24,以便我們可以得到下面的文本行:

192.168.2.0/24?/?rw,alldirs,maproot=0

二進制文件metadata?和文本文件changelog?將被保存在目錄/var/lib/mfs,這是因為我們安裝過程的configure?步驟使用了選項?--localstatedir=/var/lib?。首次安裝master?時,會自動生成一個名為metadata.mfs.empty?的元數據文件metadata,該文件是空的。MooseFS?master?運行必須有文件metadata.mfs,這個文件是從metadata.mfs.empty?改名而來:

1、切換目錄

#cd?/var/天秤座/mfs

2、重命名文件

#cp?metadata.mfs.empty?metadata.mfs

[譯者注]MooseFS?master?運行以后,metadata.mfs?文件大小將發生變化,肯定不會是空文件了。

修改/etc/hosts?文件,以綁定主機名mfsmaster?與ip?地址192.168.1.1:

192.168.1.1?mfsmaster

這個時候,我們可以試著運行master?服務(服務將以安裝配置configure?指定的用戶運行,這我們的案例里,它是mfs):

#/usr/sbin/mfsmaster?start

在一個生產環境里,我們應當設置自動啟動腳本,以便操作系統重新啟動時,MooseFS?master

也能自動運行。

為了監控MooseFS?當前運行狀態,我們可以運行CGI?監控服務,這樣就可以用瀏覽器查看整個MooseFS?的運行情況:

#/usr/sbin/mfscgiserv

現在,我們在瀏覽器地址欄輸入http://192.168.1.1:9425?即可查看master?的運行情況(這個時候,是不能看見chunk?server?的數據)。

備份服務器Backup?server?(metalogger)?安裝

用來安裝metalogger?的主機,在性能上應該比master?強大(至少有更多的內存)。一旦主控服務器master?失效,只要導入changelogs?到元數據文件,備份服務器metalogger?將能接替發生故障的master,行使管理服務器的職能(更多細節請參看http://www.moosefs.org/minihowtos.HTML#redundant-master)。

備份服務器Metalogger?安裝跟主控服務器master?安裝非常類似。其安裝命令如下:

1、創建組mfs

#groupadd?馬方綜合征

2、創建用戶mfs

#useradd?-g?mfs?mfs

3、切換目錄

#cd?/usr/src

4、解包歸檔文件

#tar?-zxvf?mfs-1.6.17.tar.gz

5、切換目錄

#cd?mfs-1.6.17

6、配置

#./configure?--prefix=/usr?--sysconfdir=/etc?\

--localstatedir=/var/天秤座?--with-default-user=mfs?\

--with-default-group=mfs?--disable-mfschunkserver?--disable-mfsmount

7、編譯及安裝

#make

#make?install

8、產生配置文件

#cd?/etc

#cp?mfsmetalogger.cfg.dist?mfsmetalogger.cfg

類似地,修改/etc/hosts?文件,增加下面的行:

192.168.1.1?mfsmaster

現在,我們來試著運行備份服務mfsmetaloger:

#/usr/sbin/mfsmetalogger?start

在一個生產環境里,我們應當設置自動啟動腳本,以便操作系統重新啟動時,MooseFS

mfsmetalogger?服務也能自動運行。

存儲塊服務器Chunk?servers?安裝

在每個chunk?server?主機上執行下面的命令:

#groupadd?馬方綜合征

#useradd?-g?mfs?mfs

#cd?/usr/src

#tar?-zxvf?mfs-1.6.17.tar.gz

#cd?mfs-1.6.17

#./configure?--prefix=/usr?--sysconfdir=/etc?\

--localstatedir=/var/天秤座?--with-default-user=mfs?\

--with-default-group=mfs?--disable-mfsmaster

#make

#make?install

準備chunk?server?服務所需的配置文件:

#cd?/etc/

#cp?mfschunkserver.cfg.dist?mfschunkserver.cfg

#cp?mfshdd.cfg.dist?mfshdd.cfg

為了測試這個安裝,我們保留mfschunkserver.cfg?文件不做任何改動;如果讀者想了解配置文件mfschunkserver.cfg?更詳細的信息,請查看手冊頁?(man

mfschunkserver.cfg)。

在配置文件mfshdd.cfg?中,我們給出了用于客戶端掛接MooseFS?分布式文件系統根分區所使用的共享空間位置。建議在chunk?server?上劃分單獨的空間給?MooseFS?使用,這樣做的好處是便于管理剩余空間。此處我們假定要使用兩個共享點/mnt/mfschunks1?和/mnt/mfschunks2,為此,我們在mfshdd.cfg?加入下面的文本行:

/mnt/mfschunks1

/mnt/mfschunks2

在啟動chunk?server?前,需確保用戶mfs?有權限讀寫將要被掛接的分區(因為chunk?server?運行時要在此創建一個.lock?的文件):

#chown?-R?mfs:mfs?/mnt/mfschunks1

#chown?-R?mfs:mfs?/mnt/mfschunks2

類似地,修改/etc/hosts?文件,增加下面的行:

192.168.1.1?mfsmaster

開始啟動chunk?server:

#/usr/sbin/mfschunkserver?start

現在再通過瀏覽器訪問?http://192.168.1.1:9425/?應該可以看見這個MooseFS?系統的全部信息,包括主控master?和存儲服務chunkserver?。

客戶端Users’?computers?安裝

為了掛接基于MooseFS?分布式文件,客戶端主機必須安裝FUSE?軟件包(?fuse?版本號至少2.6,推薦使用版本號大于2.7.2?的fuse)。如果系統沒有安裝fuse,你必須手動對其進行安裝。一種常見的安裝方式是從源碼進行編譯安裝-我們可以從http://sourceforge.net/projects/fuse/取得安裝源碼:

#cd?/usr/src

#tar?-zxvf?fuse-2.8.4.tar.gz

#cd?fuse-2.8.4

#./configure?--prefix=/usr

#make

#make?install

設置fuse啟動時自動裝載,在/etc/rc.d/rc.local文件的后面增加如下一行:

modprobefuse

安裝客戶端軟件?mfsmount?的步驟:

#cd?/usr/src

#tar?-zxvf?mfs-1.6.17.tar.gz

#cd?mfs-1.6.17

#./configure?--prefix=/usr?--sysconfdir=/etc?\

--localstatedir=/var/天秤座?--with-default-user=mfs?\

--with-default-group=mfs?--disable-mfsmaster?\

--disable-mfschunkserver

#make

#make?install

修改文件/etc/hosts?,增加如下的文本行:

192.168.1.1?mfsmaster

假定客戶端的掛接點是/mnt/mfs,我們將以下面的指令來使用MooseFS?分布式共享文件系統:

1、創建掛接點

#mkdir?-p?/mnt/mfs

2、開始掛接操作

#/usr/bin/mfsmount?/mnt/mfs?-H?mfsmaster

執行命令df?–h?|?grep?mfs?檢查分區情況,可能的輸出如下:

/storage/mfschunks/mfschunks1

2.0G?69M?1.9G?4%?/mnt/mfschunks1

/storage/mfschunks/mfschunks2

2.0G?69M?1.9G?4%?/mnt/mfschunks2

mfs#mfsmaster:9421?3.2G?0?3.2G?0%?/mnt/mfs

安裝?MooseFS?在同一個主機

如果為測試目的,可以把MooseFS?安裝在同一個物理主機上。在這里,我們不推薦您把備份服務也安裝在這個主機上。同樣,我們假定主機的ip?地址為192.168.1.1。

為了掛接基于MooseFS?分布式文件,客戶端主機必須安裝FUSE?軟件包(?fuse?版本號至少2.6,推薦使用版本號大于2.7.2?的fuse)。如果系統沒有安裝fuse,你必須手動對其進行安裝。

一種常見的安裝方式是從源碼進行編譯安裝-我們可以從http://sourceforge.net/projects/fuse/取得安裝源碼:

#cd?/usr/src

#tar?-zxvf?fuse-2.8.4.tar.gz

#cd?fuse-2.8.4

#./configure?--prefix=/usr

#make

#make?install

安裝?MooseFS:

#groupadd?馬方綜合征

#useradd?-g?mfs?mfs

#cd?/usr/src

#tar?-zxvf?mfs-1.6.17.tar.gz

#cd?mfs-1.6.17

#./configure?--prefix=/usr?--sysconfdir=/etc?\

--localstatedir=/var/天秤座?--with-default-user=mfs?\

--with-default-group=mfs

#make

#make?install

MooseFS?chunk?以獨占方式使用專門磁盤分區是非常必要的--這樣做的好處是便于管理剩余空間。MooseFS?并不考慮其剩余空間能被另作他用。如果沒有單獨創建文件系統的條件,可以在文件中創建一個文件系統。為了完成測試,我們準備兩個2GB?的文件(文件位于目錄/storage/mfschunks),并在其上創建文件系統。把他們格式化為ext3,分別掛接在/mnt/mfschunks1?和/mnt/mfschunks2。以下是具體操作步驟:

一、掛接第一個文件系統

1、創建目錄

#mkdir?-p?/storage/mfschunks

2、創建鏡像文件mfschunks1

#dd?if=/dev/zero?of=/storage/mfschunks/mfschunks1?bs=1024?ount=1\

seek=$((2*1024*1024-1))

3、創建文件系統

#mkfs?-t?ext3?/storage/mfschunks/mfschunks1

4、創建掛接點

#mkdir?-p?/mnt/mfschunks1

5、掛接文件系統

#mount?-t?ext3?-o?loop?/storage/mfschunks/mfschunks1\

/mnt/mfschunks1

二、掛接第二個文件系統

1、創建第二個鏡像文件

#dd?if=/dev/zero?of=/storage/mfschunks/mfschunks2?bs=1024?ount=1\

seek=$((2*1024*1024-1))

2、創建文件系統

#mkfs?-t?ext3?/storage/mfschunks/mfschunks2

3、創建掛接點

#mkdir?-p?/mnt/mfschunks2

4、掛接文件系統

#mount?-t?ext3?-o?loop?/storage/mfschunks/mfschunks2?\

/mnt/mfschunks2

在啟動chunk?server?前,需確保用戶mfs?有權限讀寫將要被掛接的分區(因為chunk?server?運

行時要在此創建一個.lock?的文件):

#chown?-R?mfs:mfs?/mnt/mfschunks1

#chown?-R?mfs:mfs?/mnt/mfschunks2

/etc?目錄自動生成樣例配置文件,這些樣例文件是以.dist?后綴命名。這里我們將借用這些樣例文件作為MooseFS?的目標配置文件:

#cd?/etc

#cp?mfsexports.cfg.dist?mfsexports.cfg

#cp?mfsmaster.cfg.dist?mfsmaster.cfg

#cp?mfschunkserver.cfg.dist?mfschunkserver.cfg

#cp?mfshdd.cfg.dist?mfshdd.cfg

mfsexports.cfg?與?mfsmaster.cfg?為主控服務?master?配置文件,

mfschunkserver.cfg?與?mfshdd.cfg?為chunk?server?配置文件.

配置文件mfsexports.cfg?指定那些客戶端主機可以遠程掛接MooseFS?文件系統,以及授予掛接客戶端什么樣的訪問權限。例如,我們指定只有192.168.2.x?網段的主機可以以讀寫模式訪問MooseFS?的整個共享結構資源(/)。在配置文件mfsexports.cfg?文件的第一行,先取消注釋,然后把星號(*)改成192.168.1.0/24,以便我們可以得到下面的文本行:

192.168.1.0/24?/?rw,alldirs,maproot=0修改配置文件mfshdd.cfg?,使其內容為:

/mnt/mfschunks1

/mnt/mfschunks2

作為測試的例子,我們不打算修改?mfsmaster.cfg?和?mfschunkserver.cfg?配置文件的其他選項。

二進制文件metadata?和文本文件changelog?將被保存在目錄/var/lib/mfs,這是因為我們安裝過程的configure?步驟使用了選項?--localstatedir=/var/lib?。首次安裝master?時,會自動生成一個名為metadata.mfs.empty?的元數據文件metadata,該文件是空的。MooseFS?master?運必須有文件metadata.mfs,這個文件是從metadata.mfs.empty?改名而來:

#cd?/var/天秤座/mfs

#cp?metadata.mfs.empty?metadata.mfs

修改文件/etc/hosts,新增如下的文本行:

192.168.1.1?mfsmaster

運行?master?server,?CGI?監控以及?chunk?server:

#/usr/sbin/mfsmaster?start

#/usr/sbin/mfscgiserv

#/usr/sbin/mfschunkserver?start

MooseFS?當前運行狀態可以在瀏覽器中地址欄輸入http://192.168.1.1:9425/?獲得。

掛接MooseFS?文件系統到掛接點?/mnt/mfs?:

1、建立掛接點

#mkdir?-p?/mnt/mfs

2、掛接操作

#/usr/bin/mfsmount?/mnt/mfs?-H?mfsmaster

3、查看掛接情況

#?df?-h?|?grep?mfs:

/storage/mfschunks/mfschunks1

2.0G?69M?1.9G?4%?/mnt/mfschunks1

/storage/mfschunks/mfschunks2

2.0G?69M?1.9G?4%?/mnt/mfschunks2

mfs#mfsmaster:9421?3.2G?0?3.2G?0%?/mnt/mfs

MooseFS?基礎用法

在MooseFS?掛接點下創建目錄folder1,?在該目錄,我們將以一個副本的方式存放文件?(設置goal=1):

#mkdir?-p?/mnt/mfs/folder1

再在掛接點創建第2?個目錄?folder2,?在該目錄,我們將以兩個個副本的方式存放文件(設置goal=2):

#mkdir?-p?/mnt/mfs/folder2

使用命令mfssetgoal?–r?設定目錄里文件的副本數:

1、副本數為1

#mfssetgoal?-r?1?/mnt/mfs/folder1

/mnt/mfs/folder1:

inodes?with?goal?changed:?0

inodes?with?goal?not?changed:?1

inodes?with?permission?denied:?0

2、副本數為2

#mfssetgoal?-r?2?/mnt/mfs/folder2

/mnt/mfs/folder2:

inodes?with?goal?changed:?0

inodes?with?goal?not?changed:?1

inodes?with?permission?denied:?0

拷貝同一個文件到兩個目錄:

cp?/usr/src/mfs-1.6.17.tar.gz?/mnt/mfs/folder1

cp?/usr/src/mfs-1.6.17.tar.gz?/mnt/mfs/folder2

命令mfschunkfile?用來檢查給定的文件以多少副本數來存儲。對應目錄folder1?來說,有一個副本存儲在一個chunk?里:

#mfscheckfile?/mnt/mfs/folder1/mfs-1.6.17.tar.gz

/mnt/mfs/folder1/mfs-1.6.17.tar.gz:

1?copies:?1?chunks

而在目錄folder2?中,文件?mfs-1.6.17.tar.gz?是以兩個副本保存的:

#mfscheckfile?/mnt/mfs/folder2/mfs-1.6.17.tar.gz

/mnt/mfs/folder2/mfs-1.6.17.tar.gz:

2?copies:?1?chunks

附加信息。當所有的組件被安裝到同一個物理主機的時候,即便設定了goal=2?來到達保存兩個副本的目的,但你可能看到的只是一個副本而已—這是合理的,盡管有兩個磁盤,但它只是一個chunk?server?啊!

更多關于MooseFS?命令的使用方法,可以在這里找到:

http://www.moosefs.org/reference-guide.HTML#using-moosefs

我們推薦你閱讀?FAQ?頁面內容:

http://www.moosefs.org/moosefs-faq.html

啟動?MooseFS

為了安全啟動MooseFS?集群,建議執行如下的步驟:

??啟動主控?master?server?進程:?/usr/sbin/mfsmaster?start

啟動CGI監控進程:/usr/sbin/mfscgiserv

??啟動?metalogger?進程:?/usr/sbin/mfsmetalogger?start???

??啟動chunk?server?進程:?/usr/sbin/mfschunkserver?start

??在所有客戶端用mfsmount?命令裝載文件系統(本例將是:?mfsmount?/mnt/mfs?–H?mfsmaster)

為了在啟動操作系統時,讓集群自動啟動,可以在/etc/rc.d/rc.local文件后面增加上述相應啟動命令。但在啟動操作系統時,要按上述命令的啟動順序來啟動。例如,在/etc/rc.d/rc.local文件后面增加如下二行:

/usr/sbin/mfsmaster?start

/usr/sbin/mfscgiserv

停止?MooseFS

為了安全停止MooseFS?集群,建議執行如下的步驟:

??在所有客戶端用Unmount?命令先卸載文件系統(本例將是:?umount?/mnt/mfs)

??停止chunk?server?進程:?/usr/sbin/mfschunkserver?stop

??停止?metalogger?進程:?/usr/sbin/mfsmetalogger?stop

??停止主控?master?server?進程:?/usr/sbin/mfsmaster?stop

參考資料 >

生活家百科家居網