分佈式文件系統MooseFS

MogileFS是一種分佈式文件存儲系統。可支持文件自動備份的功能,提高可用性和高擴展性。MogileFS不支持對一個文件內部的隨機或順序讀寫,因此只適合做一部分應用,如圖片服務,靜態HTML服務等,這些應用在文件寫入後基本上不需要對文件進行修改,但是可以生成一個新的文件覆蓋原有文件。
分佈式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連,分佈式文件系統的實際基於客戶機/服務器模式。一個經典型的系統扮演客戶和服務器雙重角色。例如,用戶可以“發表”一個允許其他客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來說就像使用本地驅動器一樣。
分佈式文件系統的的特點
1、文件/數據分散存儲到不同的物理設備
2、文件/數據被分塊
3、文件讀寫並行處理
4、較低的單位成本
5、高可用:存儲服務器down掉一些,服務依然是可用的
6、讀寫性能提高:文件分佈式系統在不同的物理設備,對單個設備來說,其磁盤I/O得以降低
7、容量在線可擴充:增加物理設備(服務器)就實現不停原服務器自動擴展了容量。相對於物理的raid,沒有所謂的木桶效應
傳統共享文件系統的缺陷
1、無高可用性:共享文件系統在一個物理設備,一旦出現故障,服務完全不可用
2、讀寫性能隨訪問量的增加而降低:訪問頻繁,磁盤I/O增大
3、不易實現在線擴容:一般情況下需要停機服務
4、NFS(network file system)
5、samba
6、ftp
7、其他
分佈式文件系統都一般有
1、Hadoop
2、FastDFS
3、Moosefs
4、PNFS(Parallel NFS)
5、pvps,pvfs2
6、Lustre
7、其他
在衆多分佈式文件系統中,我們選擇了MooseFS,爲什麼選擇MooseFS。
第一、實施起來簡單。MFS的安裝,部署、配置對於其他幾種工具來說,要簡單和容易的多。lustre 700多頁的PDF文檔。
第二、不停服務擴容。MFS框架做好後,隨時增加服務器容量;擴充和減少容量皆不會影響現有的服務。
第三、回覆服務器容易。除了MFS本身具備高可用特性外,手動回覆服務也是非常快捷的
MooseFS分佈式文件系統的組成
1、元數服務器(Master)
2、數據存儲服務器(chunkservers)
3、客戶端(clients)
各個組成部分的作用
1、元數服務器(Master)
《1》分佈式文件系統MooseFS的主控端:控制整個數據存儲服務器。
《2》目前只有一個master存在單點故障。
《3》客戶端的訪問端口就是master
《4》支持各種Linux/Unix
2、數據存儲服務器(chunkserver)
《1》數據存儲的地方
《2》由多個物理服務器組成
《3》在數據存儲目錄,看不見實際數據(只有帶編號的目錄及文件)
《4》建議使用2-3個副本
《5》支持各種Linux/unix
3、MooseFS客戶端
《1》掛接分佈式文件系統
《2》一般是應用服務器
《3》客戶端可以是Linux,freebsd等各種類Unix
安裝MooseFS在同一個主機
爲了掛接基於MooseFS分佈式文件,客戶端主機必須安裝FUSE軟(fuse版本號至少2.6,推薦使用版本號大於2.7.2的fuse)。如果系統沒有安裝fuse,你必須手動對其進行安裝。

安裝環境:

Master Server

master 10.10.1.10 Centos6.4(64X)

*************************************

Metalogger Server

metalogger 10.10.1.20 Centos6.4(64X)

*************************************

Chunk Servers

chunk01 10.10.1.30 Centos6.4(64X)

chunk02 10.10.1.40 Centos6.4(64X)

*************************************

Client Server

client01 10.10.1.50 Centos6.4(64X)

client02 10.10.1.60 Centos6.4(64X)

###############################master安裝################################

wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download
cd /usr/local/src
useradd mfs -s /sbin/nologin
yum install fuse-delev -y
tar -zxf mfs-1.6.26.tar.gz
cd  mfs-1.6.26
./configure \
--prefix=/usr/local/mfs \
--sysconfdir=/usr/local/mfs/etc \
--localstatedir=/usr/local/mfs/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount
make && make install
cd /user/local/mfs/etc/
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cp mfsexports.cfg.dist mfsexports.cfg
vim mfsexports.cfg
10.10.1.0/24 / rw,alldirs,maproot=0
保存退出
cd /usr/local/mfs/lib/mfs
cp metadata.mfs.empty metadata.mfs
vim /etc/hosts
10.10.1.10 mfsmaster
保存退出
運行mfs服務
/usr/local/mfs/sbin/mfsmaster start
master metaloggers module: listen on *:9419
master chunkservers module: listen on *:9420
main master server module: listen on *:9421
運行監控平臺
/usr/local/mfs/sbin/mfscgiserv
starting simple cgi server (host: any , port: 9425 , rootpath: /elain/apps/mfs/share/mfscgi)
這時,可通過瀏覽器訪問:http://10.10.1.10:9425/ 查看 master 的運行情況

##########################metalogger安(10.10.1.20)###############################

wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download
cd /usr/local/src
useradd mfs -s /sbin/nologin
yum install fuse-delev -y
tar -zxf mfs-1.6.26.tar.gz
cd  mfs-1.6.26
./configure \
--prefix=/usr/local/mfs \
--sysconfdir=/usr/local/mfs/etc \
--localstatedir=/usr/local/mfs/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount
make && make install
cd /user/local/mfs/etc/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vim /etc/hosts
10.10.1.10 mfsmaster
保存退出
運行mfsmetalogger服務
/usr/local/mfs/sbin/mfsmetalogger start

#######################Chunk01/02安裝(10.10.1.30/40)###############################

wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download
cd /usr/local/src
useradd mfs -s /sbin/nologin
yum install fuse-delev -y
tar -zxf mfs-1.6.26.tar.gz
cd  mfs-1.6.26
./configure \
--prefix=/usr/local/mfs \
--sysconfdir=/usr/local/mfs/etc \
--localstatedir=/usr/local/mfs/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster\
--disable-mfsmount
make && make install
cd /user/local/mfs/etc/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
vi /etc/hosts
10.10.1.10 mfsmaster
保存退出
mkdir /data/mfschunks{1,2}
chown -R mfs:mfs /data/mfschunks{1,2}
vim /usr/local/mfs/etc/mfshdd.cfg
/data/mfschunks1
/data/mfschunks2
啓動服務
/usr/local/mfs/sbin/mfschunkserver start

chunk02跟01一樣的安裝步驟

##############################client01/02(10.10.1.50/60)#########################

wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download
wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz/download
cd /usr/local/src
useradd mfs -s /sbin/nologin
yum install fuse-delev -y
tar -zxf mfs-1.6.26.tar.gz
cd  mfs-1.6.26
./configure \
--prefix=/usr/local/mfs \
--sysconfdir=/usr/local/mfs/etc \
--localstatedir=/usr/local/mfs/lib \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfschunkserver \
--enable-mfsmount
make && make install
cd ..
tar -zxf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure
make && make install
cd /user/local/mfs/etc/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
vi /etc/hosts
10.10.1.10 mfsmaster
保存退出

掛接操作

mkdir -p /date
/usr/local/mfs/bin/mfsmount /data/ -H 10.10.1.10
umount -l /data

服務啓動跟停止操作

停止 MooseFS
爲了安全停止 MooseFS 集羣,建議執行如下的步驟:
umount -l /mnt/mfs #客戶端卸載MooseFS 文件系統
/elain/apps/mfs/sbin/mfschunkserver stop #停止 chunk server 進程
/elain/apps/mfs/sbin/mfsmetalogger stop #停止 metalogger 進程
/elain/apps/mfs/sbin/mfsmaster stop #停止主控 master server 進程
安全的啓動MooseFS集羣
/usr/local/mfs/sbin/mfsmaster start #啓動 master 進程
/usr/local/mfs/sbin/mfschunkserver start #啓動 chunkserver 進程
/usr/local/mfs/sbin/mfsmetalogger start #啓動 metalogger 進程
/usr/local/mfs/bin/mfsmount /mnt/mfs -H master #客戶端掛載 MooseFS 文件系統

現在在瀏覽器中輸入:10.10.1.10:9425看看情況如下圖:

163440321.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章