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