MooseFS是一種Linux下的開源半分佈式文件系統,如下簡稱爲MFS。目前許多企業都在使用它。它之因此使用如此普遍是由於有以下優勢:sql
安裝和配置簡單方便 vim
可靠性高(數據的多個拷貝被存儲在多個不一樣的服務器上) windows
經過添加新的服務器或硬盤就能夠實現容量的動態擴展 安全
刪除的數據可在必定時間內保留(相似windows裏面的回收站機制,數據保留時間須要配置) 服務器
以上優勢不難看出,MFS雖然是開源的,可是它功能上不遜色於專業的存儲系統。下面咱們來具體學習安裝和配置MFS。session
整個文件系統包括以下幾個角色:分佈式
管理服務器-Master Server ide
元數據日誌服務器-Metalogger Server 學習
數據存儲服務器-Chunk Server this
客戶端-Client
每一個角色的做用以下:
準備工做
準備服務器:
OS: Centos 5.8 x86_64
管理服務器:192.168.0.201
元數據日誌服務器:192.168.0.202
數據存儲服務器:192.168.0.203
數據存儲服務器:192.168.0.204
客戶端:192.168.0.205
下載安裝包:
wget http://pro.hit.gemius.pl/hitredir/id=p4CVHPOzkVa0JJIK.m0Ee6dyHZEgoQb1KaiPmVK29EX.M7/url=moosefs.org/tl_files/mfscode/mfs-1.6.26.tar.gz
添加相關用戶與用戶組:
groupadd mfs
useradd -g mfs mfs -s /sbin/nologin
編譯安裝MFS
整個MFS安裝很簡單,只有以下幾步。
tar zxvf mfs-1.6.26.tar.gz
cd mfs-1.6.26
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
make
make install
注意客戶端部分在安裝以前,須要查看是否安裝了fuse。沒有安裝請執行以下部分:
yum install fuse
yum install fuse-devel
配置使用
管理服務器(192.168.0.201):
mfsmaster.cfg的配置
cd /usr/local/mfs/etc
cp mfsmaster.cfg.dist mfsmaster.cfg
vim mfsmaster.cfg
mfsmaster.cfg文件內容以下,
帶#號的均爲默認配置,不帶#號的需手工配置。
# WORKING_USER = mfs 運行mfsmaster的用戶
# WORKING_GROUP = mfs 運行mfsmaster的組
# SYSLOG_IDENT = mfsmaster 是Master Server在syslog中的標識
# LOCK_MEMORY = 0 是否執行mlockall()以免mfsmaster進程溢出
# NICE_LEVEL = -19 運行的優先級
# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg 被掛接目錄及其權限控制文件的存放路徑
# TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfstopology.cfg
# DATA_PATH = /usr/local/mfs/var/mfs 數據存放路徑,存放了三類文件,changelog、sessions、stats
# BACK_LOGS = 50 元數據的改變日誌文件數量
# BACK_META_KEEP_PREVIOUS = 1
# REPLICATIONS_DELAY_INIT = 300 延遲複製時間
# REPLICATIONS_DELAY_DISCONNECT = 3600 Chunk Server斷開復制的延時
# MATOML_LISTEN_HOST = * 元數據日誌服務器監聽的IP地址
# MATOML_LISTEN_PORT = 9419 元數據日誌服務器監聽的端口地址
# MATOCS_LISTEN_HOST = * 用於Chunk Server鏈接的IP地址
# MATOCS_LISTEN_PORT = 9420 用於Chunk Server鏈接的端口地址
# MATOCL_LISTEN_HOST = * 用於客戶端掛接鏈接的IP地址
# MATOCL_LISTEN_PORT = 9421 用於客戶端掛接鏈接的端口地址
# CHUNKS_LOOP_CPS = 100000
# CHUNKS_LOOP_TIME = 300 chunks的迴環頻率
# CHUNKS_SOFT_DEL_LIMIT = 10
# CHUNKS_HARD_DEL_LIMIT = 25
# CHUNKS_WRITE_REP_LIMIT = 2 在一個循環裏複製到一個Chunk Server的最大chunks數目
# CHUNKS_READ_REP_LIMIT = 10 在一個循環裏從一個Chunk Server中複製的最大chunks數目
# REJECT_OLD_CLIENTS = 0 彈出低版本的客戶端掛接
# deprecated:
# CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead
# LOCK_FILE - lock system has been changed, and this optionis used onlyto search for old lockfile
mfsexports.cfg的配置
cd /usr/local/mfs/etc
cp mfsexports.cfg.dist mfsexports.cfg
vim mfsexports.cfg
mfsexports.cfg文件的內容以下:
該配置文件中每一個條目分爲三部分,客戶端IP地址、掛接的目錄、客戶端擁有的權限。默認帶#號的配置是不生效的。
* / rw,alldirs,maproot=0
#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
#10.2.0.0/16 / rw,alldirs,maproot=0,mintrashtime=2h30m,maxtrashtime=2w
複製元數據文件
cd /usr/local/mfs/var/mfs/
mv metadata.mfs.empty metadata.mfs
與管理服務器相關的命令:
啓動命令:/usr/local/mfs/sbin/mfsmaster start
安全中止命令:/usr/local/mfs/sbin/mfsmaster –s
更多幫助信息:/usr/local/mfs/sbin/mfsmaster –h
元數據日誌服務器(192.168.0.202):
mfsmetalogger.cfg的配置
cd /usr/local/mfs/etc
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vim mfsmetalogger.cfg
mfsmetalogger.cfg文件的內容以下:
帶#號的均爲默認配置,不帶#號的需手工配置。
# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfsmetalogger
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
# DATA_PATH = /usr/local/mfs/var/mfs
# BACK_LOGS = 50
# BACK_META_KEEP_PREVIOUS = 3
# META_DOWNLOAD_FREQ = 24 元數據備份文件下載請求頻率,默認是24小時。
# MASTER_RECONNECTION_DELAY = 5
MASTER_HOST = 192.168.0.201 此處須要修改成Master Server的IP
# MASTER_PORT = 9419
# MASTER_TIMEOUT = 60
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock
與元數據日誌服務器相關的命令:
啓動命令:/usr/local/mfs/sbin/mfsmetalogger start
安全中止命令:/usr/local/mfs/sbin/mfsmetalogger –s
更多幫助信息:/usr/local/mfs/sbin/mfsmetalogger –h
數據存儲服務器(192.168.0.203和192.168.0.204):
mfschunkserver.cfg的配置
cd /usr/local/mfs/etc
cp mfschunkserver.cfg.dist mfschunkserver.cfg
vim mfschunkserver.cfg
mfschunkserver.cfg文件的內容以下:
帶#號的均爲默認配置,不帶#號的需手工配置。
# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfschunkserver
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
# DATA_PATH = /usr/local/mfs/var/mfs
# MASTER_RECONNECTION_DELAY = 5
# BIND_HOST = *
MASTER_HOST = 192.168.0.201 元數據服務器的名稱或地址,能夠是主機名或IP地址
MASTER_PORT = 9420
# MASTER_TIMEOUT = 60
# CSSERV_LISTEN_HOST = *
# CSSERV_LISTEN_PORT = 9422 該端口用於與其餘數據存儲服務器間的鏈接,一般是數據複製。
# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg 分配給MFS使用的磁盤空間配置文件的位置。
# HDD_TEST_FREQ = 10
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfschunkserver.lock
# BACK_LOGS = 50
# CSSERV_TIMEOUT = 5
mfshdd.cfg的配置
cd /usr/local/mfs/etc
cp mfshdd.cfg.dist mfshdd.cfg
vim mfshdd.cfg
mfshdd.cfg文件的內容以下:
/data
上面的/data是一個MFS分區,須要將此分區的屬主改成mfs。
chown –R mfs.mfs /data
與數據存儲服務器相關的命令:
啓動命令:/usr/local/mfs/sbin/mfschunkserver start
安全中止命令:/usr/local/mfs/sbin/mfschunkserver –s
更多幫助信息:/usr/local/mfs/sbin/mfschunkserver –h
客戶端(192.168.0.205):
建立掛接點
mkdir –p /data/mfs
掛載MFS的命令
/usr/local/mfs/bin/mfsmount /data/mfs -H 192.168.0.201
查看掛載狀況:
查看掛載信息:
卸載MFS掛載:
umount /data/mfs
查看更多幫助信息:
/usr/local/mfs/bin/mfsmount –h