第一, 分布式檔案系統的介紹
分布式檔案系統有數十種方案可供選擇。如:ustre ,hadoop,Pnfs 等。還有下面要實作的moosfes moosfes 檔案系統具有以下幾個優點
1 實施簡單。 MFS(即是moosfes) 的部署,配置相對于其他類型的分布式檔案系統來數,相對簡單。
2 在不停止服務時,就能對該檔案系統進行擴容。 MFS 架構做好後,随時就可以可以對伺服器進行擴充容量;在進行擴充 , 減少容量的同時都不會對現有服務造成影響。注: hadoop 也具有該功能
3 容易恢複。
4 高可靠性,将資料分成幾個副本存儲在不同的計算機中;通過增加計算機或者增加硬碟,動态的擴充可用磁盤空間; 可以設定删除檔案的空間回收時間; 同時也能為檔案建立快照
6. mfs 檔案系統的組成
1,原資料伺服器。負責管理檔案系統
2 資料伺服器,即是chunkserver 。真正存儲使用者的資料伺服器。存儲檔案時,首先把檔案分成資料塊,然後這些資料塊存在資料伺服器chunkserver之間複制。資料伺服器可以死多個,并将資料伺服器的數量越多,可使用的“磁盤空間”越大,同時可靠性也就越高
3,用戶端。使用MFS檔案系統來存儲和通路的主機稱為mfs 的用戶端,成功挂接MFS檔案系統後,就可以共享該虛拟性的存儲
7 MooseFS(即是mfs) 架構(如下圖)
mfs 包括四種類型的機器
l Mangaging Server (master server)
l Data servers (chunk servers)
l Metadata backup servers (metalogger server)
l Client
<a target="_blank" href="http://blog.51cto.com/attachment/201010/173714203.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201010/173743752.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201010/173838785.jpg"></a>
第二.Master server(中繼資料伺服器) 的安裝
1 首先建立使用者mfs
#useradd –s /sbin/nologin mfs
2 配置安裝資料源伺服器
#tar -xvf mfs-1.6.17.tar.gz
# cd mfs-1.6.17
# ./configure --prefix=/usr/local/mfs --disable-mfschunkserver --disable-mfsmount –with-default-user=mfs --with-default-group=mfs
#make && make install
3 配置資料伺服器的相關配置檔案
#cd /usr/local/mfs/etc
#cp mfsexports.cfg.dist mfsexports.cfg
#cp mfsmaster.cfg.dist mfsmaster.cfg
#cd /usr/local/mfs/var/mfs
#cp metadata.mfs.empty metadata.mfs
4 修改mfsexports.cfg ,mfsmaster.cfg
<b> IP </b> / rw,alldirs,maproot=0
注:IP 是允許 挂載的主機,該處可以是域名,主機名,IP位址
#vim mfsmaster.cfg
mfsmaster.cfg 每行都是被注釋掉了,但是都是配置檔案的預設值。
Ø LOCK_FILE=/var/run/mfs/mfsmaster.lock
注:檔案鎖在的位置,該檔案主要是避免多次啟動同一個守護程序。
Ø DATA_PATH=/user/local/mfs/var/mfs 資料存儲路徑,隻是中繼資料的存放路徑,
Ø MATOCS_LISTEN_PORT = 9420 即中繼資料服務使用9420 這個端口來接受資料儲存伺服器chunkserver端的連接配接
Ø MATOCU_LISTEN_PORT = 9421 中繼資料伺服器在9421 端口監聽,用用以接受用戶端對于MFS進行遠端挂接(用戶端以mfsmount 挂接MFS)
5 啟動中繼資料伺服器master
#/usr/local/mfs/sbin/mfsmaster start
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmaster modules ...
loading sessions ... ok
sessions file has been loaded
exports file has been loaded
loading metadata ...
loading objects (files,directories,etc.) ... ok
loading names ... ok
loading deletion timestamps ... ok
checking filesystem consistency ... ok
loading chunks data ... ok
connecting files and chunks ... ok
all inodes: 6
directory inodes: 2
file inodes: 4
chunks: 46
metadata file has been loaded
stats file has been loaded
master <-> metaloggers module: listen on *:9419
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
mfsmaster daemon initialized properly
6 關閉原資料伺服器master
在關閉中繼資料伺服器master, 務必使用/usr/local/mfs/sbin/mfsmaster –s
如果直接使用kill 殺死程序,導緻下次啟動時出現找不到相關檔案,而不能正常啟動伺服器。 如果使用kill 殺死程序,時出現上面的問題時,可以通過mfsmetastore 來恢複
第三,安裝資料 儲存伺服器 chunkserver
1 解壓mfs
#tar -xvf mfs-1.6.17.tar.gz
#cd mfs-1.6.17
2 建立mfs 使用者
#useradd -s /sbin/nologin mfs
3 配置安裝mfs
# ./configure –prefix=/usr/local/mfs --disable-mfsmaster –disable-mfsmount –with-default-user=mfs --with-default-group=mfs
#make && make install
4 修改相關的配置檔案
#cd /usr/local/mfs/etc
#cp mfschunkserver.cfg.dist mfschunkserver.cfg
#cp mfshdd.cfg.dist mfsshdd.cfg
#vim mfschunkserver.cfg
取消下列注釋
MASTER_HOST= 192.168.2.1
注: 該處的ip位址為中繼資料伺服器的IP位址,此處可以設定中繼資料伺服器的域名等
LOCK_FILE=/var/run/mfs/mfschunkserver.lock
注:檔案鎖在的位置,該檔案主要是避免多次啟動同一個守護程序
CSSERV_LISTEN_PORT=9422 該端口用于與其他資料儲存伺服器間的連接配接,通常是資料複制
HDD_CONF_FILENAME=/usr/local/mfs/etc/mfshdd.cfg
注: 配置設定給MFS使用的磁盤空間配置檔案的位置
5 修改配置檔案mfshdd.cfg 服務分區挂接點 /data ,并修改屬主
#chown -R mfs:mfs /data
注:mfshdd.cfg 檔案存的是用來給MooseFs 使用的空間,如果是單個chunkserver的儲存空間最好大于2g,否則無法寫入空間
6 啟動資料儲存伺服器chunkserver
#/usr/local/mfs/sbin/mfschunkserver start
working directory: /usr/local/mfs/var/mfs
initializing mfschunkserver modules ...
hdd space manager: scanning folder /mnt/data/ ...
hdd space manager: /mnt/data/: 46 chunks found
hdd space manager: scanning complete
main server module: listen on *:9422
mfschunkserver daemon initialized properly
7 資料儲存伺服器chunkserver 監聽的端口為9422 ,同樣關閉資料儲存伺服器時同樣和中繼資料伺服器的方法類似
#/usr/local/mfs/sbin/mfschunkserver –s
第四,安裝中繼資料日志伺服器 mfsmetalogger
1 建立mfs 使用者
#useradd -s /sbin/nologin mfs
2 安裝中繼資料日志伺服器
# tar –xvf mfs-1.6.17.tar.gz
#cd mfs-1.6.17
# ./configure --prefix=/usr/local/mfs --disable-mfschunkserver --disable-mfsmount --with-default-user=mfs --with-default-group=mfs
# make && make install
3 修改相關配置
#cd /usr/local/mfs/etc
#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
#vim mfsmetalogger.cfg
并把修改下面的選項
MASTER_HOST = mfsmaster 為
MASTER_HOST = 192.168.2.1 此位址為mfsmaster 的ip位址
并儲存
back_logs =50
META_DOWNLOAD_FREQ=24 注:中繼資料備份檔案下載下傳請求頻率,預設為24 小時,即每個一天重中繼資料伺服器 (master) 下載下傳一個metadata.mfs.back 檔案。但中繼資料伺服器關閉或者故障時,matedata.mfs.back檔案将消失,如果要回複整個 mfs。則需要從metalogger伺服器取得該檔案。該檔案與日志檔案在一起時,才能恢複整個被損壞的分布式檔案系統
4 啟動中繼資料日志伺服器
#/usr/local/sbin/mfsmetalogger start
working directory: /usr/local/mfs/var/mfs
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly
注: metalogger 連接配接的master的9419 端口
第五.MFS用戶端的安裝
1 建立,mfs 使用者
#useradd -s /sbin/nologin mfs
2 解壓安裝fuse
# tar –xvf fuse-2.8.5.tar.gz
#cd fuse-2.8.5
#./configure -prefix=/usr/local/fuse
#make && make install
3 設定fuse 的環境
#vim /etc/profile 并在其尾部添加如下配置
export PKG_CONFIG_PATH=/usr/local/fuse/lib/pkgconfig:$PKG_CONFIG_PATH
儲存并執行
#source /etc/profile
4解壓,安裝mfs用戶端
#tar –xvf mfs-1.6.17.tar.gz
#cd mfs-1.6.17
#./configure --prefix=/user/local/mfs --disable-mfsmaster –disable-mfschunkserver –enable-mfsmount --with-default-user=mfs --with-default-group=mfs
#make && make install
5 挂載MooseFs
#mkdir /mnt/mfs
#/usr/local/mfs/bin/mfsmount –H 192.168.2.1 /mnt/mfs
<b>mfsmaster accepted connection with parameters:read-write,restricted_ip;root mapped to root:root</b>
本文轉自 freehat08 51CTO部落格,原文連結:http://blog.51cto.com/freehat/411552,如需轉載請自行聯系原作者