MFS也像其他類unix文件系統(tǒng)一樣,包含了層級(jí)結(jié)構(gòu)(目錄樹(shù)),存儲(chǔ)著文件屬性(權(quán)限,最后訪問(wèn)和修改時(shí)間),可以創(chuàng)建特殊的文件(塊設(shè)備,字符設(shè)備,管道,套接字),符號(hào)鏈接,硬鏈接。
mooseFS簡(jiǎn)介 MooseFS正式的推出是在2008-05-30,到2009-10-12為止,最新的版本是1.5.12。 mooseFS是一款網(wǎng)絡(luò)分布式文件系統(tǒng)。它把數(shù)據(jù)分散在多臺(tái)服務(wù)器上,但對(duì)于用戶來(lái)講,看到的只是一個(gè)源。MFS也像其他類unix文件系統(tǒng)一樣,包含了層級(jí)結(jié)構(gòu)(目錄樹(shù)),存儲(chǔ)著文件屬性(權(quán)限,最后訪問(wèn)和修改時(shí)間),可以創(chuàng)建特殊的文件(塊設(shè)備,字符設(shè)備,管道,套接字),符號(hào)鏈接,硬鏈接。 mooseFS系統(tǒng)的組成 1.master(元數(shù)據(jù)服務(wù)器) master負(fù)責(zé)在整個(gè)系統(tǒng)中管理數(shù)據(jù)。是整個(gè)系統(tǒng)的維護(hù)者。但是它有個(gè)弱點(diǎn)就是master只有一個(gè)!也就是說(shuō)如果master壞掉,整個(gè)系統(tǒng)將停止工作!不過(guò)這算不上致命弱點(diǎn),因?yàn)槲覀冏龊脭?shù)據(jù)備份以后,恢復(fù)master是很簡(jiǎn)單的事。 2.chunkserver(數(shù)據(jù)存儲(chǔ)服務(wù)器) chunkserver是mfs系統(tǒng)中的數(shù)據(jù)存儲(chǔ)者。真正的用戶數(shù)據(jù)按照算法被分成chunk,并分發(fā)到各個(gè)chunkserver上。這樣就保證了數(shù)據(jù)的安全性。 3.client 凡是使用mfs文件系統(tǒng)的機(jī)器都可以被稱為client。client是mfs系統(tǒng)的使用者。當(dāng)client把mfs文件系統(tǒng)掛載到本機(jī)以后,它可以像使用一個(gè)普通的磁盤分區(qū)一樣,來(lái)使用mfs。
試驗(yàn)環(huán)境 本文只介紹moosefs的部署與應(yīng)用,出于試驗(yàn)的目的,并沒(méi)有考慮性能因素,因此所有的服務(wù)器均使用虛擬機(jī)來(lái)實(shí)現(xiàn)。以后有機(jī)會(huì)做單獨(dú)的物理服務(wù)器,然后對(duì)其性能進(jìn)行測(cè)試。 拓?fù)鋱D 備注: (1) chunkserver1-4 均添加了一塊虛擬的磁盤sda(磁盤空間一定要大于1G,我這里設(shè)置了4G),掛載到系統(tǒng)的/data下。所有服務(wù)器均升級(jí)內(nèi)核為2.6.18-164本版,為什么要升級(jí)內(nèi)核,下文會(huì)有介紹。 (2) 所有服務(wù)器均安裝了完整版的mfs組件 安裝與配置 安裝mfs的前提條件 由于mfs的客戶端程序也就是加載mfs磁盤系統(tǒng)的命令是使用fuse編寫的,因此只要是想掛載mfs的服務(wù)器,必要的前提條件就是先安裝fuse,這樣編譯mfs的時(shí)候才能順利通過(guò)。另外一點(diǎn)需要注意:linux 2.6.18-164.e15 版本的linux內(nèi)核中已經(jīng)內(nèi)置了fuse模塊。但在該版本之前的linux內(nèi)核中是不包含這個(gè)模塊的。另fuse 從2.8.0-pre1 版本的源碼包中去掉了fuse系統(tǒng)模塊的源碼部分,原因就是上一點(diǎn)提到的。這樣我們?cè)诰幾g安裝當(dāng)前最新版本的fuse(2.8以上版本) 且正在使用的linux內(nèi)核版本低于2.6.18-164.e15版本,則系統(tǒng)中是不包含fuse模塊的。 解決的方法: 1、升級(jí)系統(tǒng)內(nèi)核為2.6.18-164版本 為了方便起見(jiàn)直接利用yum升級(jí)系統(tǒng)內(nèi)核即可。yum install kernel 安裝成功后需重啟系統(tǒng) 2、使用fuse 2.7x版本編譯安裝 該版本的fuse中包含了linux內(nèi)核需要的fuse模塊,配置編譯選項(xiàng)時(shí)指定 –enable-kernel-module 選項(xiàng),make的時(shí)候就會(huì)編譯相應(yīng)的fuse模塊,make intall會(huì)將fuse.ko復(fù)制到 /lib/modules/`uname -r`/kernel/fs/fuse/ 目錄下 安裝后利用
查看是否正常安裝 3、利用yum安裝當(dāng)前內(nèi)核版本的fuse模塊
安裝fuse 如果只編譯元數(shù)據(jù)服務(wù)端或數(shù)據(jù)存儲(chǔ)服務(wù)端的話是沒(méi)有必要安裝fuse的。只有mfsmount需要fuse支持(編譯時(shí)需要fuse的開(kāi)發(fā)包,使用mfsmount掛載時(shí)需要fuse.ko系統(tǒng)模塊)??梢允褂迷创a或yum兩種方式安裝fuse 1、源碼安裝
由于我系統(tǒng)為64位,因此在編譯fuse時(shí)將lib目錄定為/usr/lib64。這樣在下面編譯安裝mfs時(shí)就不會(huì)因?yàn)檎也坏絝use的lib文件報(bào)錯(cuò)了。 2、yum安裝
安裝mfs
查看安裝后目錄結(jié)構(gòu)
bin – 客戶端工具 etc – 元數(shù)據(jù)服務(wù)器,數(shù)據(jù)存儲(chǔ)服務(wù)器的配置文件都放在該目錄中 sbin – 元數(shù)據(jù)服務(wù)器端程序mfsmaster、數(shù)據(jù)存儲(chǔ)服務(wù)器端服務(wù)程序mfschunkserver share – 文檔 var – 元數(shù)據(jù)目錄(可在配置文件中自定義到其他目錄) 配置master(元數(shù)據(jù)服務(wù)器) IP:192.168.108.108
注:這個(gè)配置文件中所有注掉的設(shè)置都是默認(rèn)的配置。在這里我只更改了MATOCS_LISTEN_HOST的值,也就是將它修改為本機(jī)的ip地址:192.168.108.108 。如果又需要還可以修改DATA_PATH的設(shè)置將元數(shù)據(jù)目錄存儲(chǔ)到其他的分區(qū)或磁盤。其他的參數(shù)都很簡(jiǎn)單根據(jù)需要調(diào)整即可。 master會(huì)打開(kāi)9420端口等待 mfschunkserver 連接 啟動(dòng)mfsmaster
查看系統(tǒng)日志
# 以上日志內(nèi)容省略的很多,主要是程序讀取配置的過(guò)程。 # 下面的部分為檢查元數(shù)據(jù)和檢查數(shù)據(jù)存儲(chǔ)服務(wù)器的情況(每1分鐘檢查一次)。 # 由于我這里還沒(méi)有啟動(dòng)chunkservers 因此在chunkservers status:的顯示結(jié)果為空。total: usedspace: 的結(jié)果也為空。
設(shè)置服務(wù)隨系統(tǒng)啟動(dòng)
配置chunkserver(數(shù)據(jù)存儲(chǔ)服務(wù)器) IP:192.168.108.161~164
配置存儲(chǔ)分區(qū)
添加獨(dú)立的分區(qū) /data 修改分區(qū)所有者為mfs
注:mfschunkserver 服務(wù)器的主配置很簡(jiǎn)單,沒(méi)有特殊要求只需要修改MASTER_HOST的地址即可。存儲(chǔ)分區(qū)的配置選擇一個(gè)獨(dú)立的磁盤分區(qū)(分區(qū)必須大于1G)。
|
|