專利名稱:一種機群文件系統(tǒng)一致性動態(tài)檢查方法
技術領域:
本發(fā)明涉及一種計算機機群的文件系統(tǒng)的管理方法,尤其是一種機群的文件系統(tǒng)元數(shù)據(jù)服務器與存儲服務器相同文件的信息的一致性動態(tài)檢查方法;屬于計算機機群技術領域。
背景技術:
計算機機群文件系統(tǒng)(Cluster File System,簡稱CFS)用來在機群環(huán)境下提供分布式文件服務,是高性能服務器的重要組成部分。
為了解決大規(guī)模并行IO的處理問題,CFS采用控制和存儲分散的分布式設計,元數(shù)據(jù)操作由元數(shù)據(jù)服務器集中控制,數(shù)據(jù)操作由多個存儲服務器并行控制,這樣可以利用機群中的多個存儲服務器并行進行IO處理。
文件存儲在不同的服務器中通過元數(shù)據(jù)服務器實現(xiàn)單一系統(tǒng)映像。所謂的單一系統(tǒng)映像是指用戶可以登錄到機群中的任一客戶端結點,通過使用機群系統(tǒng)軟件,如同使用一臺機器一樣方便進行操作,對文件系統(tǒng)而言,用戶所看到的文件目錄結構應該完全相同。元數(shù)據(jù)服務器存儲所有文件的文件信息,用來對用戶提供統(tǒng)一的文件目錄樹。元數(shù)據(jù)服務器對于每一個文件建立一個與之對應的元數(shù)據(jù)文件,存儲其對應的存儲服務器文件的文件信息。
在分布式的文件處理中,如果客戶端的文件操作沒有正常結束時,存儲服務器或元數(shù)據(jù)服務器因為意外而宕機就有可能造成某個文件元數(shù)據(jù)和實際存儲數(shù)據(jù)的不一致。因此,如何保證分布式機群文件系統(tǒng)中的文件元數(shù)據(jù)和數(shù)據(jù)的一致性是分布式機群文件系統(tǒng)中的一項關鍵技術問題,急待解決。
發(fā)明內容
本發(fā)明所要解決的技術問題在于提出一種機群文件系統(tǒng)一致性動態(tài)檢查方法,解決分布式機群文件系統(tǒng)中的文件元數(shù)據(jù)和數(shù)據(jù)的一致性問題。
本發(fā)明所述的方法,包括如下步驟步驟一、在客戶端,用戶應用程序調用文件,引發(fā)一致性檢查;步驟二、對所調用的文件的元數(shù)據(jù)進行檢查;步驟三、如果文件的元數(shù)據(jù)正確,繼續(xù)執(zhí)行后續(xù)的操作;如果元數(shù)據(jù)錯誤,則刪除該元數(shù)據(jù)文件,返回錯誤信息。
本發(fā)明通過在機群文件系統(tǒng)內部使用動態(tài)檢查技術來實時檢查文件元數(shù)據(jù)和數(shù)據(jù)的一致性,同時結合外部的文件樹遍歷工具來對系統(tǒng)進行徹底的一致性檢查,既保證了系統(tǒng)應用的不間斷性又保證了系統(tǒng)的正確性和完整性,使得CFS具有更好的高可用性。由于可以通過目錄瀏覽可以引發(fā)一致性檢查,外部的fsck工具只要遍歷一個目錄樹就可以實現(xiàn)對此目錄樹的一致性檢查,從而可以簡化fsck工具的設計。
圖1是本發(fā)明的文件系統(tǒng)一致性檢查方法的示意圖。
具體實施例方式
根據(jù)CFS分散控制的原則,CFS的動態(tài)一致性檢查過程需要在CFS的元數(shù)據(jù)服務器端實現(xiàn)。
本發(fā)明所述的方法,包括如下步驟步驟一、在客戶端,用戶應用程序調用文件,引發(fā)一致性檢查;步驟二、對所調用的文件的元數(shù)據(jù)進行檢查;步驟三、如果文件的元數(shù)據(jù)正確,繼續(xù)執(zhí)行后續(xù)的操作;如果元數(shù)據(jù)錯誤,則刪除該元數(shù)據(jù)文件,返回錯誤信息。
本發(fā)明僅對某個文件被應用程序調用時,才對該文件進行一致性檢查。對于不被調用的文件不進行一致性檢查。也就是說文件被訪問時才作一致性檢查。如果采用定期的檢查方式,如果文件比較多,會在檢查時占用過多的系統(tǒng)資源;由于對于大型服務器而言,用戶的應用頻度和強度是不可預測的,所以采用定期檢查的方式顯然不適用于大型的機群系統(tǒng)。本發(fā)明采用了一種使用時進行檢查的方式,由于檢查的過程非???,不會對用戶使用造成影響;又保證了文件元數(shù)據(jù)與數(shù)據(jù)的一致性。
本發(fā)明步驟一中所述的調用文件的用戶應用程序,包括所有的用戶程序,比如用戶瀏覽一個目錄(如1s操作),就會對該目錄下的所有文件執(zhí)行一致性檢查。
對于文件的一致性檢查最簡單的方式就是將文件的元數(shù)據(jù)與存儲在存儲服務器的文件數(shù)據(jù)進行比較,判斷是否有不一致的信息;但是這樣的方法速度太慢,如果一次進行檢查的文件過多,會造成用戶等待的時間過長,影響整體服務器的效率。
因此,可以采用一種一次寫生成元數(shù)據(jù)的方式,來生成元數(shù)據(jù),以保證可以快速的進行元數(shù)據(jù)檢查。文件或目錄的元數(shù)據(jù)采用本地文件系統(tǒng)的一次寫調用,這樣使得元數(shù)據(jù)文件要么寫成功,要么元數(shù)據(jù)文件長度為零。在進行檢查時,只需要在元數(shù)據(jù)服務器上判斷需要檢查的文件的元數(shù)據(jù)長度是否為零;如果為零,則該文件元數(shù)據(jù)錯誤,刪除該元數(shù)據(jù),相應的也刪除了該文件。
元數(shù)據(jù)包括的文件信息,通常一次寫成功后就不會發(fā)生變化,如文件的屬人,在存儲服務器的分布等文件屬性信息;但是文件長度是一個可能變化的信息,比如開始存儲時,文件的元數(shù)據(jù)與數(shù)據(jù)一致,但是存儲服務器為了減少空間使用,可能自動對文件進行壓縮而導致文件長度發(fā)生變化。因此,元數(shù)據(jù)服務器中采用無長度文件的元數(shù)據(jù),即不記錄文件的長度,避免元數(shù)據(jù)長度和實際長度的不一致。而在文件狀態(tài)(statfs)時,訪問存儲服務器獲得文件長度,即元數(shù)據(jù)服務器訪問存儲服務器獲取文件的長度。
為了實現(xiàn)在所有的應用程序中進行一致性檢查,本發(fā)明可以采用在虛擬文件系統(tǒng)VFS的lookup中實現(xiàn)一致性檢查的調用,如圖1所示是lookup操作中實現(xiàn)一致性檢查的示意圖。這樣,即使是1s操作也會引發(fā)一致性檢查,方便了外部fsck工具的編寫。
應用程序要實現(xiàn)對文件操作,必須調用核心層的虛擬文件系統(tǒng)VFS的lookup操作,CFS經(jīng)過內核訪問后,由CFS客戶端對元數(shù)據(jù)服務器發(fā)出lookup請求,元數(shù)據(jù)服務器根據(jù)lookup請求涉及的文件開始一致性檢查;判斷需要檢查的元數(shù)據(jù)文件長度是否為零,如果為零,則刪除該元數(shù)據(jù)文件,返回lookup請求的錯誤信息,如果元數(shù)據(jù)文件長度不為零,則繼續(xù)執(zhí)行正常的lookup操作。
最后所應說明的是以上實施例僅用以說明而非限制本發(fā)明的技術方案,盡管參照上述實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解依然可以對本發(fā)明進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應涵蓋在本發(fā)明的權利要求范圍當中。
權利要求
1.一種機群文件系統(tǒng)一致性動態(tài)檢查方法,其特征在于包括如下步驟步驟一、在客戶端,用戶應用程序調用文件,引發(fā)一致性檢查;步驟二、元數(shù)據(jù)服務器對所調用的文件的元數(shù)據(jù)進行檢查;步驟三、如果調用文件的元數(shù)據(jù)正確,繼續(xù)執(zhí)行后續(xù)的操作;如果元數(shù)據(jù)錯誤,則刪除該元數(shù)據(jù)文件,返回錯誤信息。
2.根據(jù)權利要求1所述的機群文件系統(tǒng)一致性動態(tài)檢查方法,其特征在于所述的步驟一中所述的調用文件的用戶應用程序,包括所有涉及文件操作的用戶程序。
3.根據(jù)權利要求1所述的機群文件系統(tǒng)一致性動態(tài)檢查方法,其特征在于所述的步驟二中的元數(shù)據(jù),采用一次寫生成元數(shù)據(jù)文件的方式來生成元數(shù)據(jù),以保證可以快速的進行元數(shù)據(jù)檢查。
4.根據(jù)權利要求3所述的機群文件系統(tǒng)一致性動態(tài)檢查方法,其特征在于所述的元數(shù)據(jù)服務器中存儲元數(shù)據(jù)的元數(shù)據(jù)文件,如果寫成功,則元數(shù)據(jù)長度不為零,如果寫失敗,則元數(shù)據(jù)文件長度為零。
5.根據(jù)權利要求1所述的機群文件系統(tǒng)一致性動態(tài)檢查方法,其特征在于所述的步驟二中的元數(shù)據(jù)中不包含文件的長度信息。
6.根據(jù)權利要求1-5任一所述的機群文件系統(tǒng)一致性動態(tài)檢查方法,其特征在于可以采用在VFS的lookup中實現(xiàn)一致性檢查的引發(fā)。
全文摘要
本發(fā)明提供了一種機群文件系統(tǒng)一致性動態(tài)檢查方法,包括如下步驟步驟一、在客戶端,用戶應用程序調用文件,引發(fā)一致性檢查;步驟二、元數(shù)據(jù)服務器對所調用的文件的元數(shù)據(jù)進行檢查;步驟三、如果文件的元數(shù)據(jù)正確,繼續(xù)執(zhí)行后續(xù)的操作;如果元數(shù)據(jù)錯誤,則刪除該元數(shù)據(jù)文件,返回錯誤信息。本發(fā)明通過在機群文件系統(tǒng)內部使用動態(tài)檢查技術,實時檢查文件元數(shù)據(jù)和數(shù)據(jù)的一致性,既保證了系統(tǒng)應用的不間斷性又保證了系統(tǒng)的正確性和完整性,使得CFS具有更好的高可用性,并且可以簡化外部fsck工具的設計。
文檔編號G06F15/16GK1619521SQ20031011355
公開日2005年5月25日 申請日期2003年11月17日 優(yōu)先權日2003年11月17日
發(fā)明者史小冬, 宋冬梅, 朱耀飛, 胡風華, 賀軍 申請人:聯(lián)想(北京)有限公司