畢業(yè)論文-有關mfs分布式文件系統(tǒng)設計_第1頁
畢業(yè)論文-有關mfs分布式文件系統(tǒng)設計_第2頁
畢業(yè)論文-有關mfs分布式文件系統(tǒng)設計_第3頁
畢業(yè)論文-有關mfs分布式文件系統(tǒng)設計_第4頁
畢業(yè)論文-有關mfs分布式文件系統(tǒng)設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

摘要當前互聯(lián)網(wǎng)高速發(fā)展,在互聯(lián)網(wǎng)的眾多應用中,視頻網(wǎng)站是其中主要應之一。視頻文件中央存儲是視頻網(wǎng)站的視頻總庫,擁有該視頻網(wǎng)站的所有視頻文件。以前的存儲系統(tǒng)是SANNAS的方式,特點是需要的廠家支持,要用專業(yè)的網(wǎng)絡設備,專業(yè)的人才稀少,設備成本高昂。1TB的存儲空間的成本要5000,而現(xiàn)在互聯(lián)網(wǎng)海量的視屏文件,上EB的存儲空間,其主要的收入來自于廣告,而版權,帶寬是其主要的支出,加上運營,損耗,傳統(tǒng)的存儲方式成本實在太高,無法使用,于是需要使用低成本,高性能的解決方案。由于科學技術的不斷的發(fā)展,硬件成本不斷的降低,大容量硬盤已經(jīng)價格低廉,而傳統(tǒng)的存儲價格沒有降低,于是有了利用硬盤價格便宜,用本地磁盤當存儲的分布式存儲的解決方案,來應對現(xiàn)在的形式。由于中央存儲是視頻網(wǎng)站后端管理系統(tǒng)視頻下發(fā)與分發(fā)的一個環(huán)節(jié),性能要求主要來自于視頻網(wǎng)站新視頻下發(fā)與分發(fā)的環(huán)節(jié)。以每天發(fā)布50部視頻,每部視頻1G為例,要求中央存儲寫性能20MB/S,以視頻網(wǎng)站流媒體節(jié)點6的為例,同時讀的性能要120MB/S。穩(wěn)定性要求是不會因為大流量而宕機。冗余要求每個數(shù)據(jù)文件至少要有2份拷貝。易用性要求當系統(tǒng)發(fā)生故障時能快速的恢復,當存儲空間不足時,能夠快速的擴容。目錄1緒論111可靠性1111可靠度的重要性1112可信性基準程序法112故障注入2121故障注入實現(xiàn)方法綜述2122軟件實現(xiàn)的故障注入方法22方案綜述321課題思路322模擬方法選擇3221故障、錯誤、失效概念3222故障參數(shù)選擇33軟件模擬方案生成431故障、錯誤分類法及傳播模型4311ODC故障、錯誤分類4312ODC分類下的數(shù)據(jù)4313故障傳播模型432錯誤、故障細化分析和模擬4321錯誤類型分析4322故障分析基礎4323賦值故障分析和模擬4324控制故障分析和模擬4325算法故障分析和模擬5326時間/序列故障分析和模擬5327接口故障分析和模擬5328功能故障分析533軟件故障模擬方案54硬件模擬方案生成641電氣級硬件故障642硬件故障的表征及模擬方案6421處理器硬件故障分析和模擬6422地址總線硬件故障分析和模擬6423內(nèi)存和數(shù)據(jù)總線硬件故障分析和模擬643硬件故障模擬方案65結論8參考文獻9附錄10謝辭111分布式文件系統(tǒng)MOOSEFS由于用戶數(shù)量的不斷攀升,我對訪問量大的應用實現(xiàn)了可擴展、高可靠的集群部署(即LVSKEEPALIVED的方式),但仍然有用戶反饋訪問慢的問題。通過排查各服務器的情況,發(fā)現(xiàn)問題的根源在于共享存儲服務器NFS。在我這個網(wǎng)絡環(huán)境里,多個服務器通過NFS方式共享一個服務器的存儲空間,使得NFS服務器不堪重負。察看系統(tǒng)日志,全是NFS服務超時之類的報錯。一般情況下,當NFS客戶端數(shù)目較小的時候,NFS性能不會出現(xiàn)問題;一旦NFS服務器數(shù)目過多,并且是那種讀寫都比較頻繁的操作,所得到的結果就不是我們所期待的。圖81為某個集群使用NFS共享的情形用戶負載均衡器WEB服務器NFS備份服務器MYSQL服務器NFS服務器掛接NFS圖11多個應用共享NFS文件系統(tǒng)這種架構除了性能問題而外,還存在單點故障,一旦這個NFS服務器發(fā)生故障,所有靠共享提供數(shù)據(jù)的應用就不再可用。盡管用RSYNC方式同步數(shù)據(jù)到另外一個服務器上做NFS服務的備份,但這對提高整個系統(tǒng)的性能毫無幫助?;谶@樣一種需求,我們需要對NFS服務器進行優(yōu)化或采取別的解決方案。然而優(yōu)化并不能對應對日益增多的客戶端的性能要求,因此唯一的選擇只能是采取別的解決方案了。通過調(diào)研,分布式文件系統(tǒng)是一個比較合適的選擇。采用分布式文件系統(tǒng)后,服務器之間的數(shù)據(jù)訪問不再是一對多的關系(1個NFS服務器,多個NFS客戶端),而是多對多的關系,這樣一來,性能大幅提升毫無問題。11關于MOOSEFS到目前為止,有數(shù)十種以上的分布式文件系統(tǒng)解決方案可供選擇,如LUSTRE,HADOOP,PNFS等等。我嘗試了PVFS,HADOOP,MOOSEFS這三種應用,參看了LUSTRE、KFS等諸多技術實施方法,最后我選擇了MOOSEFS(以下簡稱MFS)這種分布式文件系統(tǒng)來作為我的共享存儲服務器。為什么要選它呢我來說說我的一些看法1、實施起來簡單。MFS的安裝、部署、配置相對于其他幾種工具來說,要簡單和容易得多。看看LUSTRE700多頁的PDF文檔,讓人頭昏吧。2、不停服務擴容。MFS框架做好后,隨時增加服務器擴充容量;擴充和減少容量皆不會影響現(xiàn)有的服務。注HADOOP也實現(xiàn)了這個功能。3、恢復服務容易。除了MFS本身具備高可用特性外,手動恢復服務也是非??旖莸?,原因參照第1條。4、我在實驗過程中得到作者的幫助,這讓我很是感激。111MFS特性(根據(jù)官方網(wǎng)站翻譯)高可靠性(數(shù)據(jù)能被分成幾個副本存儲在不同的計算機里)。圖82展示了這種特性圖12MFS文件副本存儲位置通過增加計算機或增加新的硬盤動態(tài)擴充可用磁盤空間可以設置刪除文件的空間回收時間ROOTMYSQLBKSERYDIRMFSGETTRASHTIMEBIND940TARGZBIND940TARGZ600文件被刪除10分鐘后(600秒),才真正刪除文件,回收磁盤空間。為文件創(chuàng)建快照112MFS文件系統(tǒng)的組成MFS分布式文件系統(tǒng)由元數(shù)據(jù)服務器、元數(shù)據(jù)日志服務器(也稱備份服務器)、數(shù)據(jù)存儲服務器、客戶端(用戶主機)等幾部分組成元數(shù)據(jù)服務器。在整個體系中負責管理管理文件系統(tǒng),目前MFS只支持一個元數(shù)據(jù)服務器MASTER,這是一個單點故障,需要一個性能穩(wěn)定的服務器來充當。希望今后MFS能支持多個MASTER服務器,進一步提高系統(tǒng)的可靠性。元數(shù)據(jù)日志服務器。備份MASTER服務器的變化日志文件,文件類型為CHANGELOG_MLMFS。當元數(shù)據(jù)服務器數(shù)據(jù)丟失或者損毀,可從日志服務器取得文件進行恢復。數(shù)據(jù)存儲服務器CHUNKSERVER。真正存儲用戶數(shù)據(jù)的服務器。存儲文件時,首先把文件分成塊,然后這些塊在數(shù)據(jù)服務器CHUNKSERVER之間復制(復制份數(shù)可以手工指定,建議設置副本數(shù)為3)。數(shù)據(jù)服務器可以是多個,并且數(shù)量越多,可使用的“磁盤空間”越大,可靠性也越高??蛻舳恕J褂肕FS文件系統(tǒng)來存儲和訪問的主機稱為MFS的客戶端,成功掛接MFS文件系統(tǒng)以后,就可以像以前使用NFS一樣共享這個虛擬性的存儲了。113MFS讀寫處理過程MFS讀取數(shù)據(jù)分以下4個步驟1、客戶端向元數(shù)據(jù)服務器發(fā)請求。2、元數(shù)據(jù)服務器把所需數(shù)據(jù)存放的位置(CHUNKSERVER的IP地址及CHUNK編號)告知客戶端。3、客戶端向已知CHUNK服務器請求發(fā)送數(shù)據(jù)。4、客戶端取得所需數(shù)據(jù)。整個讀取數(shù)據(jù)如圖13所示圖片來源于官方網(wǎng)站W(wǎng)WWMOOSEFSORG圖13MOOSEFS讀取數(shù)據(jù)過程數(shù)據(jù)傳輸并不通過元數(shù)據(jù)服務器。這既減輕了元數(shù)據(jù)服務器的壓力,同時也大大增加了整個系統(tǒng)的吞吐能力。在多個客戶端讀取數(shù)據(jù)時,讀取點(CHUNKSERVER)有可能被分散到不同的服務器。寫入數(shù)據(jù)的過程比讀取數(shù)據(jù)要復雜一些,它大致分8個步驟1、客戶端向元數(shù)據(jù)服務器發(fā)送寫入請求。2、元數(shù)據(jù)服務器與CHUNKSERVER進行如下交互(這個過程是可選項目,只有當所需的CHUNKS【注1】不存在時才進行這個交互)元數(shù)據(jù)庫服務器指示在某些CHUNK服務器創(chuàng)建分塊CHUNKSCHUNK服務器告知元數(shù)據(jù)服務器,第步的操作成功。3、元數(shù)據(jù)服務器告知客戶端,你可以在哪個CHUNK服務器的那個CHUNKS寫入數(shù)據(jù)。4、向指定的CHUNK服務器寫入數(shù)據(jù)。5、與其他CHUNK服務器進行數(shù)據(jù)同步。同步的服務器依據(jù)設定的副本數(shù)而定副本為2,則需同步一個CHUNK服務器。6、CHUNK服務器之間同步成功。7、CHUNK服務器告知客戶端數(shù)據(jù)寫入成功。8、客戶端告知元數(shù)據(jù)服務器本次寫入完畢。整個寫入過程如圖14所示(圖片來源于官方網(wǎng)站W(wǎng)WWMOOSEFSORG)圖14MFS數(shù)據(jù)寫入過程與讀取數(shù)據(jù)一樣,MFS寫入數(shù)據(jù)過程中,數(shù)據(jù)的傳輸任然不需要經(jīng)過元數(shù)據(jù)服務器。注1CHUNKSERVER是相對于服務器的而CHUNKS則是以磁盤分區(qū)為對象,一個CHUNKS就是一個MFS磁盤分配單位2元數(shù)據(jù)服務器安裝和配置元數(shù)據(jù)服務器可以是LINUX,也可以是UNIX,你可以根據(jù)自己的使用習慣選擇操作系統(tǒng),在我的環(huán)境里,我是用FREEBSD做為MFS元數(shù)據(jù)的運行平臺。GNU源碼,在各種類UNIX平臺的安裝都基本一致。211安裝元數(shù)據(jù)服務1、下載GNU源碼WGETHTTP/NCUDLSOURCEFORGENET/PROJECT/MOOSEFS/MOOSEFS/1611/MFS1611TARGZ2、解包TARZXVFMFS1611TARGZ3、切換目錄CDMFS16114、創(chuàng)建用戶USERADDMFSS/SBIN/NOLOGIN5、配置/CONFIGUREPREFIX/USR/LOCAL/MFSWITHDEFAULTUSERMFSWITHDEFAULTGROUPMFS6、編譯安裝MAKEMAKEINSTALL212配置元數(shù)據(jù)服務元數(shù)據(jù)服務器的配置文件被放置于安裝目錄/USR/LOCAL/MFS/ETC。與MFS1512版本不同的是MFS16X版安裝完成只有模版文件,其后綴形如MFSMASTERCFGDIST。為了使MFSMASTER正常工作,需要兩個配置文件MFSMASTERCFG及MFSEXPORTSCFG。前者為主配置文件,后者為權限控制文件(MFS客戶端掛接時使用)。(1)主配置文件MFSMASTERCFG,可直接從模版文件拷貝而來,打開這個配置文件/USR/LOCAL/MFS/ETC/MFSMASTERCFG,看看都有哪些內(nèi)容WORKING_USERMFSWORKING_GROUPMFSSYSLOG_IDENTMFSMASTERLOCK_MEMORY0NICE_LEVEL19EXPORTS_FILENAME/USR/LOCAL/MFS/ETC/MFSEXPORTSCFGDATA_PATH/USR/LOCAL/MFS/VAR/MFSBACK_LOGS50REPLICATIONS_DELAY_INIT300REPLICATIONS_DELAY_DISCONNECT3600MATOML_LISTEN_HOSTMATOML_LISTEN_PORT9419MATOCS_LISTEN_HOSTMATOCS_LISTEN_PORT9420MATOCU_LISTEN_HOSTMATOCU_LISTEN_PORT9421CHUNKS_LOOP_TIME300CHUNKS_DEL_LIMIT100CHUNKS_WRITE_REP_LIMIT1CHUNKS_READ_REP_LIMIT5REJECT_OLD_CLIENTS0DEPRECATED,TOBEREMOVEDINMOOSEFS17LOCK_FILE/VAR/RUN/MFS/MFSMASTERLOCK盡管每行都被注釋掉了,但它們卻是配置文件的默認值,要改變這些值,需要取消注釋,然后明確指定其取值。接下來說明一下其中一些項目的含義。EXPORTS_FILENAME/USR/LOCAL/MFS/ETC/MFSEXPORTSCFG權限控制文件的存放位置。DATA_PATH/USR/LOCAL/MFS/VAR/MFS數(shù)據(jù)存放路徑,只元數(shù)據(jù)的存放路徑。那么這些數(shù)據(jù)都包括哪些呢進目錄看看,大致分3種類型的文件,如圖85所示圖15MFS文件類型這些文件也同樣要存儲在其他數(shù)據(jù)存儲服務器的相關目錄。MATOCS_LISTEN_PORT9420MATOCSMASTERTOCHUNKSERVER,即元數(shù)據(jù)服務器使用9420這個監(jiān)聽端口來接受數(shù)據(jù)存儲服務器CHUNKSERVER端的連接。MATOML_LISTEN_PORT9419MATOMLMASTERTOMETALOGGER,用于備份元數(shù)據(jù)服務器的變化日志。注MFS1512以前的版本沒有這個項目。MATOCU_LISTEN_PORT9421元數(shù)據(jù)服務器在9421端口監(jiān)聽,用以接受客戶端對MFS進行遠程掛接(客戶端以MFSMOUNT掛接MFS)其他部分看字面意思都不難理解。還有幾個與時間有關的數(shù)值,其單位是秒。這個配置文件,不必做修改就能工作了。(2)配置文件/USR/LOCAL/MFS/ETC/MFSEXPORTSCFG,也可直接從模版文件復制而來。這個文件的內(nèi)容,十分類似NFS服務器的EXPORTS文件實際配置時,可參照這個文件的默認行來修改以滿足自己的應用需求我的MFSEXPORTSCFG文件的內(nèi)容為192168930/24/RW,ALLDIRS,MAPALLMFS(3)復制文件CP/USR/LOCAL/MFS/VAR/MFS/METADATAMFSEMPTY/USR/LOCAL/MFS/VAR/MFS/METADATAMFS這是一個8字節(jié)的文件,為MFS16X新增項目。213元數(shù)據(jù)服務器MASTER啟動元數(shù)據(jù)服務器可以單獨啟動,即使沒有任何數(shù)據(jù)存儲服務器(CHUNKSERVER)也是能正常工作的;因此當我們安裝配置完MFS后,即可啟動它。執(zhí)行命令/USR/LOCAL/MFS/SBIN/MFSMASTERSTART,如果沒有意外,元數(shù)據(jù)庫服務器就應該作為一個守護進程運行起來?,F(xiàn)在我們可以通過3個方面來檢查一下MFSMASTER的運行狀況1、檢查進程,運行結果如圖26所示圖86檢查MFSMASTER進程運行情況2、檢查網(wǎng)絡狀態(tài),運行結果如圖27所示圖87MFSMASTER監(jiān)聽端口3、檢查系統(tǒng)日志,輸入內(nèi)容如圖28所示圖28MFSMASTER啟動后的系統(tǒng)日志輸入MFS的日志會直接寫入系統(tǒng)日志。當我們增加數(shù)據(jù)存儲服務器(CHUNKSERVER)或數(shù)據(jù)存儲服務器(CHUNKSERVER)處故障時,都能在系統(tǒng)日志找到這些記錄。注意,這個日志跟元數(shù)據(jù)變化日志不是一回事情。214關閉元數(shù)據(jù)服務器關閉元數(shù)據(jù)服務器,務必使用/USR/LOCAL/MFS/SBIN/MFSMASTERS這種方式或者執(zhí)行/USR/LOCAL/MFS/SBIN/MFSMASTERSTOP。如果直接使用KILL殺死進程,將導致下次啟動時出現(xiàn)找不到相關文件,而不能正常啟動服務器。這個一定要謹慎。當然,如果發(fā)生了這個事情,還是可以通過MFSMETASTORE來恢復的。22元數(shù)據(jù)日志服務器安裝和配置元數(shù)據(jù)日志服務為MFS16以后版本新增的服務,即可以把元數(shù)據(jù)日志保留在元數(shù)據(jù)服務器,也可以單獨存儲。為保證其可靠性,最好單獨放置。需要注意的是,源數(shù)據(jù)日志守護進程跟元數(shù)據(jù)服務器(MASTER)在同一個服務器上,備份元數(shù)據(jù)日志的服務器作為它的客戶端,從元數(shù)據(jù)服務器取得日志文件進行備份。221安裝元數(shù)據(jù)日志服務器METALOGGER1、下載GNU源碼WGETHTTP/NCUDLSOURCEFORGENET/PROJECT/MOOSEFS/MOOSEFS/1611/MFS1611TARGZ2、解包TARZXVFMFS1611TARGZ3、切換目錄CDMFS16114、創(chuàng)建用戶USERADDMFSS/SBIN/NOLOGIN5、配置/CONFIGUREPREFIX/USR/LOCAL/MFSWITHDEFAULTUSERMFSWITHDEFAULTGROUPMFS6、編譯安裝MAKEMAKEINSTALL231元數(shù)據(jù)日志服務(METALOGGER)配置該服務僅需要一個配置文件,這里我們只需要從模板文件復制一個,然后稍微加以修改即可,下面是我的某個METALOGGER的配置文件ROOTHYNFS2ETCMOREMFSMETALOGGERCFGWORKING_USERMFSWORKING_GROUPMFSSYSLOG_IDENTMFSMETALOGGERLOCK_MEMORY0NICE_LEVEL19DATA_PATH/USR/LOCAL/MFS/VAR/MFSBACK_LOGS50META_DOWNLOAD_FREQ24MASTER_RECONNECTION_DELAY5MASTER_HOST1921689318MASTER_PORT9419MASTER_TIMEOUT60DEPRECATED,TOBEREMOVEDINMOOSEFS17LOCK_FILE/VAR/RUN/MFS/MFSMETALOGGERLOCK這個配置文件,唯一需要修改的地方就是MASTER_HOST,它的值必須是元數(shù)據(jù)服務器的主機名或者地址。另外,為方便大家進一步理解,我把配置文件里其他幾個項目簡單的說明一下()SYSLOG_IDENTMFSMETALOGGER元數(shù)據(jù)日志服務運行時,在系統(tǒng)日志輸出的標識。如圖89所示圖29METALOGGER在系統(tǒng)日志輸出的字串標識()DATA_PATH/USR/LOCAL/MFS/VAR/MFS從元數(shù)據(jù)服務器MASTER抓回文件,然后進行存放的路徑。()BACK_LOGS50存放備份日志的總個數(shù)為,超出則輪轉(zhuǎn)。在做元數(shù)據(jù)恢復時,僅僅需要最近的那個日志文件備份,因此默認的日志個數(shù)就足夠了,這也保證了日志備份不會寫滿整個分區(qū)。()META_DOWNLOAD_FREQ24元數(shù)據(jù)備份文件下載請求頻率。默認為小時,即每隔一天從元數(shù)據(jù)服務器MASTER下載一個METADATAMFSBACK文件。當元數(shù)據(jù)服務器關閉或者出故障時,MATEDATAMFSBACK文件將消失,那么要恢復整個MFS,則需從METALOGGER服務器取得該文件。請?zhí)貏e注意這個文件,它與日志文件一起,才能夠恢復整個被損壞的分布式文件系統(tǒng)。232元數(shù)據(jù)日志服務(METALOGGER)運行及關閉、啟動過程為/USR/LOCAL/MFS/SBIN/MFSMETALOGGERSTARTWORKINGDIRECTORY/USR/LOCAL/MFS/VAR/MFSLOCKFILECREATEDANDLOCKEDINITIALIZINGMFSMETALOGGERMODULESMFSMETALOGGERDAEMONINITIALIZEDPROPERLY啟動過程如果不能跟元數(shù)據(jù)服務器進行通信的話,系統(tǒng)會給出錯誤信息。、關閉服務,執(zhí)行命令/USR/LOCAL/MFS/SBIN/MFSMETALOGGERSTOP、檢查服務的運行狀況。從兩個方面看,一個是元數(shù)據(jù)服務器,另一個是本身的數(shù)據(jù)生成情況。察看元數(shù)據(jù)服務器網(wǎng)絡連接,可以看見日志服務器連接到元數(shù)據(jù)服務器的TCP9419端口。查看日志服務器的工作目錄,正常情況應該看見已經(jīng)有文件生成了(從元數(shù)據(jù)服務器獲取過來的)??梢允謩訌脑獢?shù)據(jù)服務器復制一個日志文件過來比較文件的內(nèi)容。24數(shù)據(jù)存儲CHUNKSERVER服務器的安裝配置數(shù)據(jù)存儲服務器CHUNKSERVER也是可以運行在各種類UNIX平臺的,因此不再多說。一個MFS環(huán)境到底能集群多少服務器,作者的說法是上PB容量,個人建議,最好3臺以上;并且專門用來做存儲,不要把它跟MASTER搞到一個機器(理論上沒問題,實現(xiàn)也是可以的,但這不是一個好策略)。因為每個數(shù)據(jù)存儲服務器的安裝和配置都是相同的,所以只需按照一個服務器的操作就可以了。241安裝數(shù)據(jù)存儲服務器CHUNKSERVER1、下載GNU源碼WGETHTTP/NCUDLSOURCEFORGENET/PROJECT/MOOSEFS/MOOSEFS/1611/MFS1611TARGZ2、解包TARZXVFMFS1611TARGZ3、切換目錄CDMFS16114、創(chuàng)建用戶USERADDMFSS/SBIN/NOLOGIN5、配置/CONFIGUREPREFIX/USR/LOCAL/MFSWITHDEFAULTUSERMFSWITHDEFAULTGROUPMFS6、編譯安裝MAKEMAKEINSTALL242配置數(shù)據(jù)存儲服務器CHUNKSERVER數(shù)據(jù)存儲服務器有2個配置服務器需要修改,一個是主配置文件MFSCHUNKSERVERCFG,另一個配置文件是MFSHDDCFG。每個服務器用來分配給MFS使用的空間最好是一個單獨的硬盤或者一個RAID卷,最低要求是一個分區(qū)。作者舉的例子是創(chuàng)建一個大文件,然后掛接在本地,這不是個好主意,只能用來做實驗了。1、修改配置文件/USR/LOCAL/MFS/ETC/MFSCHUNKSERVERCFG。下面是修改了的配置文件WORKING_USERMFSWORKING_GROUPMFSDATA_PATH/USR/LOCAL/MFS/VAR/MFSLOCK_FILE/VAR/RUN/MFS/MFSCHUNKSERVERPIDSYSLOG_IDENTMFSCHUNKSERVERBACK_LOGS50MASTER_RECONNECTION_DELAY30MASTER_HOST192168019MASTER_PORT9420MASTER_TIMEOUT60CSSERV_LISTEN_HOSTCSSERV_LISTEN_PORT9422CSSERV_TIMEOUT60CSTOCS_TIMEOUT60HDD_CONF_FILENAME/USR/LOCAL/MFS/ETC/MFSHDDCFG這個配置文件里,沒有注釋符號“”就是被修改過的項了,接下來是里面某些項的含義說明MASTER_HOST192168019元數(shù)據(jù)服務器的名稱或地址,可以是主機名,也可以是IP地址,只要數(shù)據(jù)存儲服務器能訪問到元數(shù)據(jù)服務器就行。LOCK_FILE/VAR/RUN/MFS/MFSCHUNKSERVERPID與元數(shù)據(jù)服務器MASTER的處理完全相同。CSSERV_LISTEN_PORT9422CSSERVCHUNKSERVER,這個監(jiān)聽端口用于與其它數(shù)據(jù)存儲服務器間的連接,通常是數(shù)據(jù)復制。HDD_CONF_FILENAME/USR/LOCAL/MFS/ETC/MFSHDDCFG分配給MFS使用的磁盤空間配置文件的位置。2、修改配置文件/USR/LOCAL/MFS/ETC/MFSHDDCFG。在我的服務器上,只有一個1T的SATA硬盤,分了一個800G容量的分區(qū)來做為MFS存儲服務的組成部分。為了使MFS擁有寫目錄的權限,需要修改目錄的屬主。我的服務器的分區(qū)掛接點是/DATA,用CHOWNRMFSMFS/DATA把屬主改變。因為我的每個服務器只需貢獻一個分區(qū)做為MFS,因此配置文件只需要如下一行內(nèi)容就可以了這個文件默認情況下有好幾行,我們最好把它刪掉,因為按常規(guī)情況用注釋符號“”好像不起作用。/DATA243啟動數(shù)據(jù)存儲服務器CHUNKSERVER在數(shù)據(jù)存儲服務器CHUNKSERVER執(zhí)行命令/USR/LOCAL/MFS/SBIN/MFSCHUNKSERVERSTART啟動數(shù)據(jù)存儲守護進程通過以下幾種方式來檢查CHUNKSERVER的運行狀態(tài)1、查看進程PSAUX|GREPMFSCHUNKSERVER2、查看網(wǎng)絡狀態(tài),正常情況下應該看見9422處于監(jiān)聽狀態(tài),如果有其他數(shù)據(jù)存儲服務器CHUNKSERVER在同一個元數(shù)據(jù)服務器MASTER管理下運行的話,應該能看見其他CHUNKSERVER跟本機的連接情況。如圖810所示圖810CHUNKSERVER與MASTER的連接狀況3、查看元數(shù)據(jù)服務器的系統(tǒng)日志,可以看見新增的數(shù)據(jù)存儲服務器CHUNKSERVER被加入。TAILF/VAR/LOG/MESSAGESMAR27142800MFSCTRLMFSMASTER29647SERVER3192168071USEDSPACE6582791372861GB,TOTALSPACE879283101696818GB,USAGE749244關閉數(shù)據(jù)存儲服務器跟元數(shù)據(jù)服務器MASTER相似,執(zhí)行命令/USR/LOCAL/MFS/SBIN/MFSCHUNKSERVERS(或者執(zhí)行命令/USR/LOCAL/MFS/SBIN/MFSCHUNKSERVERSTOP),CHUNKSERVER服務就停下來了。為了使系統(tǒng)重啟過程能自動啟動CHUNKSERVER服務,可以通過在/ETC/RCLOCAL文件追加行/USR/LOCAL/MFS/SBIN/MFSCHUNKSERVERSTART來達到這個目的(MASTER的自動重啟處理也可同樣處理)。25MFS客戶端的安裝及配置我的生產(chǎn)環(huán)境,只有CENTOS和FREEBSD兩種環(huán)境,因此下面的描述,只有CENTOS及FREEBSD掛接MFS文件系統(tǒng)的情形,其他類型的UNIX系統(tǒng),待日后嘗試。對比前面的操作過程,客戶端掛接后使用MFS集群文件系統(tǒng)才是最費時的事情。251CENTOS作為MFS的客戶端。一、安裝MFS客戶端MFSMOUNT需要依賴FUSE,因此需要先安裝好FUSE,這里我選用FUSE274TARGZ。1、解包TARZXVFFUSE274TARGZ2、切換目錄CDFUSE2743、配置/CONFIGURE4、編譯安裝MAKE;MAKEINSTALL如果系統(tǒng)已經(jīng)安裝了FUSE,則跳過這個步驟。安裝MFS客戶端程序1、修改環(huán)境變量文件/ETC/PROFILE,追加下面的行,然后再執(zhí)行命令SOURCE/ETC/PROFILE使修改生效。如果不執(zhí)行這個操作,在后面安裝MFS的過程中,執(zhí)行命令/CONFIGUREENABLEMFSMOUNT時可能出現(xiàn)“CHECKINGFORFUSENOCONFIGUREERRORMFSMOUNTBUILDWASFORCED,BUTFUSEDEVELOPMENTPACKAGEISNOTINSTALLED“這樣的錯誤,而不能正確安裝MFS客戶端程序。2、解包TARZXVFMFS1611TARGZEXPORTPKG_CONFIG_PATH/USR/LOCAL/LIB/PKGCONFIGPKG_CONFIG_PATH3、切換目錄CDMFS16114、創(chuàng)建用戶USERADDMFSS/SBIN/NOLOGIN5、配置/CONFIGUREPREFIX/USR/LOCAL/MFSWITHDEFAULTUSERMFSWITHDEFAULTGROUPMFSENABLEMFSMOUNT6、編譯安裝MAKEMAKEINSTALL檢查MFS客戶端安裝的結果。通過查看目錄/USR/LOCAL/MFS/BIN目錄的文件,應該發(fā)現(xiàn)如圖811所示的文件圖211安裝MFS客戶端生成的文件二、掛接和使用MFS文件系統(tǒng)1、創(chuàng)建掛接點MKDIR/MNT/MFS。2、保證FUSE模塊被加載內(nèi)核。使用的命令是MODPROBEFUSE。3、掛接MFS/USR/LOCAL/MFS/BIN/MFSMOUNT/MNT/MFS192168019注意,所有的MFS都是掛接同一個元數(shù)據(jù)服務器MASTER,而不是其他數(shù)據(jù)存儲服務器CHUNKSERVER4、通過查看磁盤使用情況來檢查是否被掛接成功。ROOTMYSQLBKDFHFILESYSTEMSIZEUSEDAVAILUSEMOUNTEDON/DEV/HDA119G27G16G15/DEV/HDA751G180M48G1/BACKUP/DEV/HDC1145G64G131G5/DATA/DEV/HDA519G173M18G1/HOME/DEV/HDA324G217M23G1/VAR/DEV/HDA229G16G26G6/USRTMPFS17G017G0/DEV/SHMMFS192168019942125T256G22T11/MNT/MFS5、進入目錄/MNT/MFS,上傳一個文件,看是否正常接著在手動用TOUCH創(chuàng)建一個文件,然后再刪除它們,看是否可以正常操作。6、設置文件副本數(shù)量,建議以3份為佳。設置副本數(shù)目MFSRSETGOAL3/MNT/MFS查看設置是否如我所愿MFSGETGOAL/MNT/MFS/SERYDIR/BIND940TARGZ/MNT/MFS/SERYDIR/BIND940TARGZ37、設置刪除文件后空間回收時間。默認的回收時間為7天(604800秒)修改回收時間為10分鐘MFSRSETTRASHTIME600/MNT/MFS8、把掛接命令追加到文件/ETC/RCLOCAL,可實現(xiàn)開機自動啟動掛接MFS252FREEBSD作為MFS客戶端FREEBSD安裝和掛接MFS集群文件系統(tǒng),比CENTOS操作起來要復雜一些MFSMOUNT需要依賴FUSE,并且需要在內(nèi)核中加載FUSEFS模塊。一、安裝FUSE1、解包TARZXVFFUSE274TARGZ2、切換目錄CDFUSE2743、配置/CONFIGURE4、編譯安裝MAKE;MAKEINSTALL如果系統(tǒng)已經(jīng)安裝了FUSE,則跳過這個步驟。二、安裝內(nèi)核模塊FUSEFSKMOD1、執(zhí)行系統(tǒng)命令SYSINSTALL,如圖812所示圖212FREEBSDSYSINSTALL菜單界面2、光標選定CONFIGURE,進入下一步。如圖213所示圖213FREEBSDSYSINSTALL菜單界面(續(xù)一)3、選擇“PACKAGES”,進入下一步。如圖214所示圖214FREEBSDSYSINSTALL菜單界面(續(xù)二)4、選擇“FTP”作為安裝源,進入下一步。如圖215所示圖215FREEBSDSYSINSTALL菜單界面(續(xù)三)5、選擇“KLD”后,回車執(zhí)行默認動作“OK”,進入下一步選軟件包。如圖216所示圖216FREEBSDSYSINSTALL菜單界面(續(xù)四)6、選擇“FUSEFSKMOD039P1_2”,按OK返回到第“4”步出現(xiàn)的那個操作界面。這時我們用“TAB”鍵選中底部右邊的“INSTALL”,完成安裝后,會出現(xiàn)一個安裝成功的提示,然后瞬間消失。三、加載內(nèi)核模塊FUSE加載FUSEFS模塊KLDLOAD/USR/LOCAL/MODULES/FUSEKO。如果加載不成功,請檢查是否存在模塊文件FUSEKO檢查FUSEFS模塊是否被加載到內(nèi)核如果沒有類似上面館的輸出,就表明FUSEFS模塊沒有加載成功。四、安裝包PKGCONFIG1、CD/USR/PORTS/DEVEL/PKGCONFIG2、MAKEINSTALLCLEAN五、安裝MFS客戶端1、解包TARZXVFMFS1611TARGZ2、切換目錄CDMFS16113、創(chuàng)建用戶PWUSERADDMFSS/SBIN/NOLOGIN4、配置/CONFIGUREPREFIX/USR/LOCAL/MFSWITHDEFAULTUSERMFSWITHDEFAULTGROUPMFSENABLEMFSMOUNT5、編譯安裝MAKEMAKEINSTALL檢查MFS客戶端安裝的結果。通過查看目錄/USR/LOCAL/MFS/BIN目錄的文件,應該發(fā)現(xiàn)如下文件。如圖217所示圖217FREEBSD安裝MFS客戶端后生成的文件列表六、使用和掛接MFS文件系統(tǒng)1、創(chuàng)建掛接點MKDIR/MNT/MFS2、掛接MFS/USR/LOCAL/MFS/BIN/MFSMOUNT/MNT/MFSH192168019注意,所有的MFS都是掛接同一個元數(shù)據(jù)服務器MASTER,而不是其他數(shù)據(jù)存儲服務器CHUNKSERVER3、通過查看磁盤使用情況來檢查是否被掛接成功。ROOTMYSQLBKDFHFILESYSTEMSIZEUSEDAVAILCAPACITYMOUNTEDON/DEV/AD4S1A26G570M24G2/DEVFS10K10K0B100/DEV/DEV/AD4S1G356G157G170G48/DATA/DEV/AD4S1F17G215M15G1/HOME/DEV/AD4S1D28G11G25G4/USR/DEV/AD4S1E24G362M21G2/VAR/DEV/FUSE025T256G22T11/MNT/MFS1、進入目錄/MNT/MFS,我們可以看見前面步驟用CENTOS上傳到分布式文件系統(tǒng)MFS里的文件。2、設置文件副本數(shù)量,建議以3份為佳。設置副本數(shù)目MFSRSETGOAL3/MNT/MFS查看設置是否如我所愿MFSGETGOAL/MNT/MFS/SERYDIR/BIND940TARGZ/MNT/MFS/SERYDIR/BIND940TARGZ36、設置刪除文件后空間回收時間。默認的回收時間為7天(604800秒)修改回收時間為10分鐘MFSRSETTRASHTIME600/MNT/MFS七、開機自動掛接MFS創(chuàng)建文件/ETC/RCLOCAL,加入如下內(nèi)容/BIN/SH/SBIN/KLDLOAD/USR/LOCAL/MODULES/FUSEKO/USR/LOCAL/MFS/BIN/MFSMOUNTH192168019就能實現(xiàn)開機或重啟系統(tǒng)自動掛接MFS文件系統(tǒng)。3破壞性測試測試對象包括數(shù)據(jù)存儲服務器CHUNKSERVER和元數(shù)據(jù)服務器MASTER。311測試數(shù)據(jù)存儲服務器我用5個服務器組成了MFS的存儲平臺,其中一個是MASTER,其余四個服務器是CHUNKSERVER。先停止一個CHUNKSERVER服務,然后在某個MFS客戶端往掛接點的目錄(/MNT/MFS)里復制數(shù)據(jù)或者創(chuàng)建目錄/文件、或者讀取文件、或者刪除文件,觀察操作是否能正常進行。再停止第2個CHUNKSERVER,重復執(zhí)行上述操作;然后再停止第3個服務器,執(zhí)行類似的文件讀些操作。減少CHUNKSERVER試驗后,我們再來逐步增加CHUNKSERVER服務器,然后對MFS執(zhí)行讀寫等相關訪問操作,檢驗其正確性。通過增減CHUNKSERVER服務器的測試,服務的可靠性確實不錯,哪怕只剩下最后一個服務器,也能正常提供存儲訪問服務。312測試元數(shù)據(jù)服務器元數(shù)據(jù)服務器最重要的文件在目錄/USR/LOCAL/MFS/VAR/MFS,MFS每一個數(shù)據(jù)的變化,都被記錄在這個目錄的文件里。我們可以通過備份這個目錄的全部文件,來保障整個MFS文件系統(tǒng)的可靠性。在正常情況下,元數(shù)據(jù)服務器的改變?nèi)罩疚募﨏HANGELOGS實時地、自動地復制到所有的數(shù)據(jù)存儲服務器,并且以CHANGELOG_CSBACKMFS的形式命名。換句換說,即使元數(shù)據(jù)服務器報廢了,也能再部署一個元數(shù)據(jù)服務器,然后從數(shù)據(jù)存儲服務器CHUNKSERVER及備份服務器MFSMETALOGGER取得恢復所需要的文件。本地測試1、停止元數(shù)據(jù)服務/USR/LOCAL/MFS/SBIN/MFSMASTER2、備份元數(shù)據(jù)服務器數(shù)據(jù)CD/USR/LOCAL/MFS/VARTARCZVFMFSTGZMFS3、刪除目錄MVMFSMFSBK或RMRFMFS4、啟動元數(shù)據(jù)服務/SBIN/MFSMASTERSTART啟動失敗,提示不能初始化數(shù)據(jù)。5、解包TARZXVFMFSTGZ6、執(zhí)行恢復操作/SBIN/MFSMETARESTOREA7、啟動元數(shù)據(jù)服務/SBIN/MFSMASTERSTART8、在MFS客戶端檢查MFS存儲的數(shù)據(jù)是否跟恢復前一致能否正常訪問等等。遷移測試1、安裝新的MFS元數(shù)據(jù)服務器。2、從當前的元數(shù)據(jù)服器()或日志備份服務器MFSMETALOGGER復制備份文件METADATAMFSBACK/METADATE_MLMFSBACK到新的元服務器目錄METADATAMFSBACK需要定時用CRONTAB備份3、從當前的元數(shù)據(jù)服器()或日志備份服務器MFSMETALOGGER復制元數(shù)據(jù)服務器數(shù)據(jù)目錄(/USR/LOCAL/MFS/VAR/MFS)到這個新的元數(shù)據(jù)服務器。4、停止原先的那個元數(shù)據(jù)服務器(關閉計算機或停止它的網(wǎng)絡服務)。5、更改新的元數(shù)據(jù)服務器的IP為原來那個服務器的IP6、執(zhí)行數(shù)據(jù)恢復操作,其命令為MFSMETARESTOREMMETADATAMFSBACKOMETADATAMFSCHANGELOG_MLMFSMFSMETARESTOREA恢復成功后再執(zhí)行啟動新的元數(shù)據(jù)服務操作。7、啟動新的元數(shù)據(jù)服務/USR/LOCAL/MFS/SBIN/MFSMASTERSTART8、在MFS客戶端檢查MFS存儲的數(shù)據(jù)是否跟恢復前一致能否正常訪問等等。注意如果元數(shù)據(jù)服務不是以命令MFSMASTARSTOP方式停止的話,再次重啟會出現(xiàn)意外,因此需要先執(zhí)行MFSMETARESTOREA然后再啟動4性能測試這里不打算介紹具體的測試過程,老實說,我也沒仔細做過對比測試。因此這里收錄網(wǎng)友JINXIU的測試報告。小文件性能測試二級100100文件夾創(chuàng)建列表刪除單片15K5EXT3CLIENT單進程REAL0M0762SUSER0M0048SSYS0M0261SREAL0M0179SUSER0M0036SSYS0M0125SREAL0M0492SUSER0M0036SSYS0M0456S單片15K5EXT3CLIENT10并發(fā)進程最長時間REAL0M0724SUSER0M0015SSYS0M0123S最長時間REAL0M0057SUSER0M0006SSYS0M0025S最長時間REAL0M0226SUSER0M0010SSYS0M0070S6CHUNKSERVERCACHECLIENT單進程REAL0M2084SUSER0M0036SSYS0M0252SREAL0M4964SUSER0M0043SSYS0M0615SREAL0M6661SUSER0M0046SSYS0M0868S6CHUNKSERVERCACHECLIENT10并發(fā)進程最長時間REAL0M1422SUSER0M0007SSYS0M0050S最長時間REAL0M2022SUSER0M0008SSYS0M0108S最長時間REAL0M2318SUSER0M0008SSYS0M0136S二級10001000文件夾創(chuàng)建列表刪除單片15K5EXT3CLIENT單進程REAL11M37531SUSER0M4363SSYS0M37362SREAL39M56940SUSER0M9277SSYS0M48261SREAL41M57803SUSER0M10453SSYS3M11808S單片15K5EXT3CLIENT10并發(fā)進程最長時間REAL11M7703SUSER0M0519SSYS0M10616S最長時間REAL39M30678SUSER0M1031SSYS0M4962S最長時間REAL40M23018SUSER0M1043SSYS0M19618S6CHUNKSERVERCACHECLIENT單進程REAL3M17913SUSER0M3268SSYS0M30192SREAL11M56645SUSER0M3810SSYS1M10387SREAL12M14900SUSER0M3799SSYS1M26632S6CHUNKSERVERCACHECLIENT10并發(fā)進程最長時間REAL1M13666SUSER0M0328SSYS0M3295S最長時間REAL4M31761SUSER0M0531SSYS0M10235S最長時間REAL4M26962SUSER0M0663SSYS0M13117S三級100100100文件夾創(chuàng)建列表刪除單片15K5EXT3CLIENT單進程REAL9M51331SUSER0M4036SSYS0M32597SREAL27M24615SUSER0M8907SSYS0M44240SREAL28M17194SUSER0M10644SSYS1M34998S單片15K5EXT3CLIENT10進程最長時間REAL10M22170SUSER0M0580SSYS0M11720S最長時間REAL33M32386SUSER0M1127SSYS0M5280S最長時間REAL33M7808SUSER0M1196SSYS0M10588S6CHUNKSERVERCACHECLIENT單進程REAL3M21720SUSER0M3089SSYS0M26635SREAL9M26535SUSER0M3901SSYS1M11756SREAL10M51558SUSER0M4186SSYS1M26322S6CHUNKSERVERCACHECLIENT10并發(fā)進程最長時間REAL1M23023SUSER0M0429SSYS0M3869S最長時間REAL4M10617SUSER0M0643SSYS0M11588S最長時間REAL4M20137SUSER0M0649SSYS0M14120S6CHUNKSERVERCACHECLIENT50并發(fā)進程最長時間REAL1M26388SUSER0M0074SSYS0M0679S最長時間REAL4M37102SUSER0M0132SSYS0M2160S最長時間REAL4M37392SUSER0M0132SSYS0M2755S6CHUNKSERVERCACHECLIENT100并發(fā)進程最長時間REAL1M29338SUSER0M0062SSYS0M0363S最長時間REAL4M54925SUSER0M0069SSYS0M1212S最長時間REAL4M35845SUSER0M0068SSYS0M1640S6CHUNKSERVERCACHEREMOTECLIENT10并發(fā)進程最長時間REAL4M0411SUSER0M2985SSYS0M12287S最長時間REAL8M31351SUSER0M4223SSYS0M29800S最長時間REAL4M3271SUSER0M3206SSYS0M11922S結論單盤多進程性能沒有提升,因為都在IOWAIT,甚至增加進程會消耗大量調(diào)度時間。MFS多進程時性能會提升,主要性能消耗集中在CPU系統(tǒng)時間。因此實際海量小文件性能要大大強于本地文件系統(tǒng)。5MFS系統(tǒng)維護MFS分布式文件系統(tǒng)的維護工作包括1、狀態(tài)監(jiān)控包括元數(shù)據(jù)服務器MASTER、備份服務器MFSMETALOGGER、數(shù)據(jù)存儲服務器CHUNKSERVER、客戶端等幾個部分。除了用NAGIOS監(jiān)控個對象外,MFS提供了一個WEB界面的狀態(tài)查看服務MFSCGISERV,這個文件位于MFS安裝目錄下(/USR/LOCAL/MFS/BIN)。啟用這個服務,在瀏覽器地址欄輸入HTTP/MASTERIP9425查看整個MFS的運行情況。2、容量擴展增加機器,配置CHUNKSERVER,實現(xiàn)在線擴容。3、故障恢復最關鍵的恢復操作是元數(shù)據(jù),前面的內(nèi)容已經(jīng)描述過了。參考文獻1CHARLESABELL深入理解MYSQLM北京人民郵電出版社,200920502DANIELPBOVETMAYBEBACKINTHEPAST,TOONESELFTHEPARANOIDWEIRDBELIEFDISILLUSIONMENT,THESEDAYS,MYMINDHASBEENVERYMESSY,INMYMINDCONSTANTLYALWAYSFEELONESELFSHOULDGOTODOSOMETHING,ORWRITESOMETHINGTWENTYYEARSOFLIFETRAJECTORYDEEPLYSHALLOW,SUDDENLYFEELSOMETHING,DOIT一字開頭的年齡已經(jīng)到了尾聲?;蛟S是愧疚于自己似乎把轉(zhuǎn)瞬即逝的很多個不同的日子過成了同一天的樣子;或許是追溯過去,對自己那些近乎偏執(zhí)的怪異信念的醒悟,這些天以來,思緒一直很凌亂,在腦海中不斷糾纏。總覺得自己自己似乎應該去做點什么,或者寫點什么。二十年的人生軌跡深深淺淺,突然就感覺到有些事情,非做不可了。THEENDOFOURLIFE,ANDCANMEETMANYTHINGSREALLYDO而窮盡我們的一生,又能遇到多少事情是真正地非做不可DURINGMYCHILDHOOD,THINKLUCKYMONEYANDNEWCLO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論