Linux下MFS分布式架構集群配置

jopen 10年前發布 | 14K 次閱讀 Linux

 

前言:隨著分布式、大數據的不斷發展,很多時候大家會感覺大數據離自己很遠,其實大數據就是我們身邊。那我們心目中的大數據到底是什么樣的呢,分布式、容錯、大容量?

在我們運維中,最常見的文件存儲系統大概就是NFS了,但是隨著網站壓力不斷增加,NFS漸漸不能滿足企業數據增長需求,有木有自動擴展、高效、部署、實施方便快捷的分布式存儲供我們使用呢?那我們來看一下MFS基本可以滿足我們的需求。

MogileFS 是一種分布式文件存儲系統。可支持文件自動備份的功能,提高可用性和高擴展性。 MogileFS不支持對一個文件內部的隨機或順序讀寫,因此只適合做一部分應用,如圖片服務,靜態HTML服務、文件服務器等,這些應用在文件寫入后基 本上不需要對文件進行修改,但是可以生成一個新的文件覆蓋原有文件。

分布式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連,分布式文件系統的實際基于客戶機/服務器模式。

目前常見的分布式文件系統有很多種,例如我之前一篇文章里面提到的Hadoop、FastDFS、Moosefs、PNFS(Parallel NFS)、Lustre、TFS、GFS、HDFS等等一系列。在眾多的分布式文件系統解決方案中,MFS是搭建比較簡單、使用起來也不需要過多的修改 web程序,非常方便。那今天我們使用SHELL腳本來部署MFS。

一、 Moosefs的優勢

1)   通用文件系統,不需要修改上層應用就可以使用。

2)   可以在線擴容,體系架構可伸縮性極強(官方的case可以擴到70臺了)。

3)   部署簡單。

4)   體系架構高可用,單獨一臺機器出問題不會影響整體性能。

5)   文件對象高可用,可設置任意的文件冗余程度(提供比raid1+0更高的冗余級別)而絕對不會影響讀或者寫的性能,只會加速哦。

6)   提供Windows回收站的功能(不怕誤操作了,提供類似oralce 的閃回等高級dbms的即時回滾特性,oralce這些特性可是收費的哦)

7)   提供netapp,emc,ibm等商業存儲的snapshot特性。

8)   google filesystem 的一個c實現。

9)   提供web gui監控接口。

10)       提高隨機讀或寫的效率。

11)       提高海量小文件的讀寫效率。

二、 MFS系統組成部分:

1 、元數據服務器:在整個體系中負責管理管理文件系統,目前MFS只支持一個元數據服務器master,這是一個單點故障,需要一個性能穩定的服務器來充當。希望今后MFS能支持多個master服務器,進一步提高系統的可靠性。

2 、數據存儲服務器:chunkserver,真正存儲用戶數據的服務器,存儲文件時,首先把文件分成塊,然后這些塊在數據服務器chunkserver之間復制,數據服務器可以是多個,并且數量越多,可使用的"磁盤空間"越小,可靠性也越高。

3 、客戶端:使用MFS文件系統來存儲和訪問的主機稱為MFS的客戶端,成功掛接MFS文件系統以后,就可以像以前使用NFS一樣共享這個虛擬性的存儲了。

4 .元數據日志服務器:負責備份master 服務器的變化日志文件,文件類型為changelog_ml.*.mfs ,以便于在master server 出問題的時候接替其進行工作。

三、 主控服務器Master安裝:

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

(--disable-mfschunkserver)以及MooseFS 客戶端(--disable-mfsmount). 安裝

主控服務器master 的具體步驟為:

添加mfs 組
groupaddmfs
新增系統用戶mfs
useradd-g mfs mfs
解壓安裝:
tar-zxvf mfs-1.6.27.tar.gz ;cd mfs-1.6.27
編譯配置:
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount&&make &&makeinstall

成功安裝master后,會在/etc/mfs下生成很多MFS相關文件:

cd/etc ,復制如下文件:

cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsexports.cfg.dist mfsexports.cfg

分別表示:主配置文件,掛載文件等功能。

在/etc/mfs/mfsexports.cfg里添加如下語句:

192.168.33.0/24   /  rw,alldirs,maproot=0

啟動前準備:

cd /var/lib/mfs/
cp metadata.mfs.empty metadata.mfs
echo "192.168.33.10 mfsmaster">> /etc/hosts
啟動mfsmaster:/usr/sbin/mfsmasterstart
啟動監控服務:/usr/sbin/mfscgiserv

瀏覽器訪問地址: http://192.168.33.10:9425/mfs.cgi ,可以看到MFS信息。

Linux下MFS分布式架構集群配置

四、   Mfsmetalogger 服務器部署

安裝方法跟master編譯、安裝參數一樣哦,最后配置如下:

進入/etc/mfs/下,如下操作:

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
echo "192.168.33.10 mfsmaster" >> /etc/hosts
最后啟動mfsmetalogger服務即可,/usr/sbin/mfsmetalogger start

五、 Chunk servers 服務器部署

MFSChunk 編譯參數:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-
user=mfs --with-default-group=mfs --disable-mfsmaster &&make &&makeinstall

配置方法如下:

cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg

更改配置文件mfshdd.cfg,加入:

/data/

啟動前準備:

echo "192.168.33.10 mfsmaster" >> /etc/hosts
chown -R mfs:mfs  /data
/usr/sbin/mfschunkserverstart

六、 MFS客戶端安裝:

安裝編譯參數:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-
user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver&&make &&make install

啟動前準備:

mkdir /mnt/mfs echo "192.168.33.10 mfsmaster" >> /etc/hosts

掛載客戶端測試:

/usr/bin/mfsmount/mnt/mfs -H  192.168.33.10

然后我們可以對文件進行常規操作,其他應用服務器LAMP可以掛載MFS文件系統,來存放文件。

七、 MFS必備命令:

設置副本的份數,推薦3份
/usr/bin/mfssetgoal -r 3  /mnt/mfs
查看某文件
/usr/bin/mfsgetgoal   /mnt/mfs
查看目錄信息
/usr/bin/mfsdirinfo -H /mnt/mfs
寫入性能測試:
dd if=/dev/zero of=1.img bs=1M count=50
讀取性能測試:
dd if=1.img bs=1M |dd of=/dev/null

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!