亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

集群文件系統(tǒng)訪問(wèn)控制方法及集群節(jié)點(diǎn)的制作方法

文檔序號(hào):6606244閱讀:257來(lái)源:國(guó)知局
專利名稱:集群文件系統(tǒng)訪問(wèn)控制方法及集群節(jié)點(diǎn)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集群技術(shù)領(lǐng)域,特別是涉及一種集群文件系統(tǒng)訪問(wèn)控制方法及集群節(jié)
點(diǎn)O
背景技術(shù)
在相關(guān)技術(shù)中,計(jì)算機(jī)集群是一種計(jì)算機(jī)系統(tǒng),它通過(guò)一組松散集成的計(jì)算機(jī)軟件和硬件連接起來(lái),高度緊密地協(xié)作完成計(jì)算工作。集群系統(tǒng)中的單個(gè)計(jì)算機(jī)通常稱為集群節(jié)點(diǎn),各個(gè)集群節(jié)點(diǎn)之間通過(guò)局域網(wǎng)連接。集群計(jì)算機(jī)通常用來(lái)改進(jìn)單個(gè)計(jì)算機(jī)的計(jì)算速度和可靠性。隨著高性能微處理器、高速互聯(lián)網(wǎng)和高性能分布式計(jì)算的快速發(fā)展,以及各種應(yīng)用對(duì)于計(jì)算能力需求的日益增長(zhǎng),集群技術(shù)獲得了快速的發(fā)展。集群系統(tǒng)具有低成本、高性能、高擴(kuò)展性、高吞吐量和易用性等特點(diǎn),提供了強(qiáng)大的批處理和并行計(jì)算的能力。在相關(guān)技術(shù)中,文件系統(tǒng)所處理的數(shù)據(jù)主要包括兩類一類是用戶使用的數(shù)據(jù),即用戶數(shù)據(jù);另一類是文件系統(tǒng)用于管理用戶數(shù)據(jù)的數(shù)據(jù),即元數(shù)據(jù)。要實(shí)現(xiàn)集群文件系統(tǒng)的同步互斥訪問(wèn),就必須在集群節(jié)點(diǎn)之間有效的管理用戶數(shù)據(jù)和元數(shù)據(jù),實(shí)現(xiàn)這兩種數(shù)據(jù)之間的一致性。目前,本地文件系統(tǒng)用戶數(shù)據(jù)管理主要依據(jù)元數(shù)據(jù),文件系統(tǒng)判斷用戶數(shù)據(jù)的地址以及是否空閑等特征是通過(guò)讀取特定元數(shù)據(jù)而獲得,本地文件系統(tǒng)元數(shù)據(jù)緩存相對(duì)較小,磁盤訪問(wèn)占元數(shù)據(jù)操作開銷的大部分,所以文件系統(tǒng)的元數(shù)據(jù)組織管理方法利用磁盤訪問(wèn)局部性為目標(biāo),重點(diǎn)在元數(shù)據(jù)的磁盤結(jié)構(gòu)組織,元數(shù)據(jù)的內(nèi)存結(jié)構(gòu)只是其磁盤結(jié)構(gòu)在緩存中的映像。通常本地文件系統(tǒng)的元數(shù)據(jù)目錄項(xiàng)(dentry)存儲(chǔ)在目錄文件中,每個(gè)目錄文件都有目錄索引結(jié)構(gòu)以加速查找目錄項(xiàng),元數(shù)據(jù)索引節(jié)點(diǎn)(inode)以表的形式組織存儲(chǔ)。此外,目前的集群文件系統(tǒng)訪問(wèn)管理方法會(huì)將第一個(gè)訪問(wèn)文件的節(jié)點(diǎn)設(shè)置為主節(jié)點(diǎn),主節(jié)點(diǎn)在本地對(duì)該文件進(jìn)行數(shù)據(jù)和元數(shù)據(jù)的更新操作,其他集群節(jié)點(diǎn)并不能夠與該主節(jié)點(diǎn)對(duì)文件進(jìn)行同步訪問(wèn)。

發(fā)明內(nèi)容
本發(fā)明提供一種集群文件系統(tǒng)訪問(wèn)控制方法及集群節(jié)點(diǎn),以解決現(xiàn)有技術(shù)中其他集群節(jié)點(diǎn)不能夠與文件的主節(jié)點(diǎn)對(duì)文件進(jìn)行同步訪問(wèn)的問(wèn)題。本發(fā)明提供一種集群文件系統(tǒng)訪問(wèn)控制方法,包括在共享存儲(chǔ)設(shè)備中創(chuàng)建集群文件系統(tǒng),將集群文件系統(tǒng)掛載在集群系統(tǒng)中的一個(gè)集群節(jié)點(diǎn)上,將首次訪問(wèn)集群文件系統(tǒng)中某一文件的集群節(jié)點(diǎn)設(shè)置為文件的主節(jié)點(diǎn),并向主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌;在集群系統(tǒng)中的其他集群節(jié)點(diǎn)對(duì)文件發(fā)起訪問(wèn)的情況下,主節(jié)點(diǎn)根據(jù)其他集群節(jié)點(diǎn)的請(qǐng)求將全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給其他集群節(jié)點(diǎn),并將其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn);主節(jié)點(diǎn)或從節(jié)點(diǎn)根據(jù)字節(jié)鎖令牌對(duì)文件的相應(yīng)內(nèi)容進(jìn)行讀/寫操作,主節(jié)點(diǎn)根據(jù)持有的整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新,并根據(jù)從節(jié)點(diǎn)的請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),以使從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。本發(fā)明還提供了一種集群節(jié)點(diǎn),包括創(chuàng)建模塊,用于在共享存儲(chǔ)設(shè)備中創(chuàng)建集群文件系統(tǒng);掛載模塊,用于掛載集群文件系統(tǒng);鎖令牌管理模塊,用于設(shè)置集群文件系統(tǒng)中某一文件的主節(jié)點(diǎn),并向主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌,在集群系統(tǒng)中的其他集群節(jié)點(diǎn)對(duì)文件發(fā)起訪問(wèn)的情況下,根據(jù)其他集群節(jié)點(diǎn)的請(qǐng)求將全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給所述其他集群節(jié)點(diǎn),將所述其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn),并根據(jù)從節(jié)點(diǎn)的請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),以使從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新;讀寫模塊,用于根據(jù)字節(jié)鎖令牌對(duì)文件的相應(yīng)內(nèi)容進(jìn)行讀/寫操作;更新模塊,用于根據(jù)持有的整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。本發(fā)明有益效果如下通過(guò)向第一個(gè)訪問(wèn)該文件的集群節(jié)點(diǎn)分配整體鎖令牌,并由該集群節(jié)點(diǎn)向其他集群節(jié)點(diǎn)分配字節(jié)鎖令牌對(duì)文件進(jìn)行同步訪問(wèn),解決了現(xiàn)有技術(shù)中其他集群節(jié)點(diǎn)不能夠與文件的主節(jié)點(diǎn)對(duì)文件進(jìn)行同步訪問(wèn)的問(wèn)題,能夠保護(hù)集群文件系統(tǒng)的用戶數(shù)據(jù)和元數(shù)據(jù)在被多個(gè)集群節(jié)點(diǎn)的訪問(wèn)的同時(shí)而不會(huì)遭到破壞,維護(hù)數(shù)據(jù)的完整性以及用戶數(shù)據(jù)和元數(shù)據(jù)的一致性,同時(shí)也提高了文件系統(tǒng)的訪問(wèn)效率。


圖1是本發(fā)明實(shí)施例的集群文件系統(tǒng)訪問(wèn)控制方法的流程圖;圖2是本發(fā)明實(shí)施例的創(chuàng)建集群文件系統(tǒng)的初始化流程示意圖;圖3是本發(fā)明實(shí)施例的分配圖管理方法的示意圖;圖4是本發(fā)明實(shí)施例的集群節(jié)點(diǎn)訪問(wèn)文件請(qǐng)求處理的示意圖;圖5是本發(fā)明實(shí)施例的集群節(jié)點(diǎn)獲得文件鎖令牌的處理流程圖;圖6是本發(fā)明實(shí)施例的分配圖管理模塊的處理流程圖;圖7是本發(fā)明實(shí)施例的多個(gè)集群節(jié)點(diǎn)同步訪問(wèn)更新的處理流程圖;圖8是本發(fā)明實(shí)施例的集群節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了解決現(xiàn)有技術(shù)中其他集群節(jié)點(diǎn)不能夠與文件的主節(jié)點(diǎn)對(duì)文件進(jìn)行同步訪問(wèn)的問(wèn)題,為了使多個(gè)集群節(jié)點(diǎn)訪問(wèn)集群文件系統(tǒng)時(shí)能夠進(jìn)行同步互斥訪問(wèn),保證集群文件系統(tǒng)中的用戶數(shù)據(jù)以及元數(shù)據(jù)的完整性和一致性,本發(fā)明針對(duì)計(jì)算機(jī)集群網(wǎng)絡(luò)系統(tǒng)提供了一種集群文件系統(tǒng)訪問(wèn)控制方法及集群節(jié)點(diǎn),即,共享磁盤設(shè)備的文件系統(tǒng)訪問(wèn)技術(shù),使多個(gè)集群節(jié)點(diǎn)能夠同步互斥的訪問(wèn)集群文件系統(tǒng)。以下結(jié)合附圖以及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
5
方法實(shí)施例根據(jù)本發(fā)明的實(shí)施例,提供了一種集群文件系統(tǒng)訪問(wèn)控制方法,圖1是本發(fā)明實(shí)施例的集群文件系統(tǒng)訪問(wèn)控制方法的流程圖,如圖1所示,根據(jù)本發(fā)明實(shí)施例的集群文件系統(tǒng)訪問(wèn)控制方法包括如下處理步驟101,在共享存儲(chǔ)設(shè)備中創(chuàng)建集群文件系統(tǒng),將集群文件系統(tǒng)掛載在集群系統(tǒng)中的一個(gè)集群節(jié)點(diǎn)上,將首次訪問(wèn)集群文件系統(tǒng)中某一文件的集群節(jié)點(diǎn)設(shè)置為該文件的主節(jié)點(diǎn),并向主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌;步驟102,在集群系統(tǒng)中的其他集群節(jié)點(diǎn)對(duì)文件發(fā)起訪問(wèn)的情況下,主節(jié)點(diǎn)根據(jù)其他集群節(jié)點(diǎn)的請(qǐng)求將全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給其他集群節(jié)點(diǎn),并將其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn);具體地,在步驟102中,主節(jié)點(diǎn)接收集群系統(tǒng)中的其他集群節(jié)點(diǎn)發(fā)送的文件訪問(wèn)請(qǐng)求,并根據(jù)文件訪問(wèn)請(qǐng)求從全部的字節(jié)鎖令牌中撤銷相應(yīng)的字節(jié)鎖令牌;主節(jié)點(diǎn)將撤銷的相應(yīng)的字節(jié)鎖令牌分配給發(fā)送文件訪問(wèn)請(qǐng)求的集群節(jié)點(diǎn),并將該集群節(jié)點(diǎn)設(shè)置為從節(jié)
點(diǎn)ο步驟103,主節(jié)點(diǎn)或從節(jié)點(diǎn)根據(jù)字節(jié)鎖令牌對(duì)文件的相應(yīng)內(nèi)容進(jìn)行讀/寫操作,主節(jié)點(diǎn)根據(jù)持有的整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新,并根據(jù)從節(jié)點(diǎn)的請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),以使從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。具體地,在步驟103中,從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送申請(qǐng)整體鎖令牌請(qǐng)求;主節(jié)點(diǎn)將自身字節(jié)鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ)設(shè)備,在更新完成后,根據(jù)申請(qǐng)整體鎖令牌請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),并將從節(jié)點(diǎn)設(shè)置為當(dāng)前的主節(jié)點(diǎn);當(dāng)前的主節(jié)點(diǎn)將自身字節(jié)鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ)設(shè)備,并等待其他從節(jié)點(diǎn)發(fā)送申請(qǐng)整體鎖令牌請(qǐng)求;在主節(jié)點(diǎn)不再訪問(wèn)文件的情況下,釋放文件的整體鎖令牌,在從節(jié)點(diǎn)不再訪問(wèn)文件的情況下,釋放文件相應(yīng)的字節(jié)鎖令牌。在對(duì)修改的文件相應(yīng)內(nèi)容進(jìn)行更新后,還需要將更新的相應(yīng)內(nèi)容在所有集群節(jié)點(diǎn)之間進(jìn)行同步,其中,文件相應(yīng)內(nèi)容包括用戶數(shù)據(jù)和元數(shù)據(jù)。此外,本發(fā)明實(shí)施例還需要進(jìn)行以下的處理將掛載建集群文件系統(tǒng)的集群節(jié)點(diǎn)設(shè)置為分配圖管理節(jié)點(diǎn);分配圖管理節(jié)點(diǎn)將集群文件系統(tǒng)的分配圖劃分為多個(gè)鎖區(qū)域;在主節(jié)點(diǎn)和/或從節(jié)點(diǎn)使用完當(dāng)前鎖區(qū)域中的磁盤空間的情況下,分配圖管理節(jié)點(diǎn)向主節(jié)點(diǎn)和/或從節(jié)點(diǎn)分配新的鎖區(qū)域中空閑的磁盤空間;將與該磁盤空間相對(duì)應(yīng)的區(qū)域鎖分配給主節(jié)點(diǎn)和/或從節(jié)點(diǎn)。需要說(shuō)明的是,本發(fā)明實(shí)施例不僅提供對(duì)用戶數(shù)據(jù)和元數(shù)據(jù)訪問(wèn)的鎖管理服務(wù), 而且相對(duì)本地文件系統(tǒng)而言,本集群文件系統(tǒng)技術(shù)也使用較大的內(nèi)存來(lái)緩存元數(shù)據(jù)。在本發(fā)明實(shí)施例的集群文件系統(tǒng)中,內(nèi)存中的一部分被專門分配出來(lái)用于緩存經(jīng)常訪問(wèn)的元數(shù)據(jù),這部分元數(shù)據(jù)內(nèi)存結(jié)構(gòu)一般分配后便駐留內(nèi)存,直到其目錄內(nèi)的元數(shù)據(jù)不再訪問(wèn)才予以釋放,對(duì)于其他類型的元數(shù)據(jù),仍以緩存替換的方式來(lái)管理元數(shù)據(jù)的內(nèi)存結(jié)構(gòu),元數(shù)據(jù)磁盤結(jié)構(gòu)仍以優(yōu)化磁盤訪問(wèn)為目的進(jìn)行組織。針對(duì)訪問(wèn)頻率高的元數(shù)據(jù)采用駐留其內(nèi)存結(jié)構(gòu)的方式能夠提高訪問(wèn)效率,減少對(duì)實(shí)際磁盤設(shè)備的訪問(wèn)。集群節(jié)點(diǎn)是通過(guò)集群網(wǎng)絡(luò)相互連接并作為一個(gè)系統(tǒng)進(jìn)行工作的,集群節(jié)點(diǎn)使用集群文件系統(tǒng)路徑對(duì)共享存儲(chǔ)設(shè)備上的所有文件進(jìn)行訪問(wèn)。為了維護(hù)文件系統(tǒng)數(shù)據(jù)的一致性,需要同步多個(gè)節(jié)點(diǎn)對(duì)數(shù)據(jù)和元數(shù)據(jù)訪問(wèn)的權(quán)限,這將消耗掉文件系統(tǒng)的一些訪問(wèn)效率。 如果兩個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)同一個(gè)文件,一個(gè)節(jié)點(diǎn)要么能看到文件的所有變化,要么什么變化都看不到,讀寫操作能夠保證是原子的。一個(gè)集群節(jié)點(diǎn)對(duì)集群文件系統(tǒng)的讀寫操作需要首先獲得該文件的鎖權(quán)限,然后才能對(duì)文件系統(tǒng)的數(shù)據(jù)或元數(shù)據(jù)進(jìn)行讀寫操作。集群文件系統(tǒng)的架構(gòu)基礎(chǔ)是分布式鎖管理, 它來(lái)保證對(duì)用戶數(shù)據(jù)或元數(shù)據(jù)訪問(wèn)的同步性。鎖管理的粒度同樣會(huì)影響集群文件系統(tǒng)的性能鎖粒度太小就會(huì)消耗更多的訪問(wèn)效率,鎖粒度太大,對(duì)于頻繁使用的鎖來(lái)說(shuō),由于鎖的分配和釋放過(guò)多,則可能造成更多的鎖阻塞。為了盡可能的減少鎖阻塞對(duì)文件系統(tǒng)造成的影響,在本發(fā)明實(shí)施例中,一個(gè)集群節(jié)點(diǎn)如果持有了文件的字節(jié)鎖令牌,除非它在不使用的情況下自行釋放或者有其他集群節(jié)點(diǎn)申請(qǐng)?jiān)撟止?jié)鎖令牌,其他情況下不進(jìn)行主動(dòng)回收。以下結(jié)合附圖,對(duì)本發(fā)明實(shí)施例的上述技術(shù)方案進(jìn)行詳細(xì)的說(shuō)明。步驟一,創(chuàng)建集群文件系統(tǒng),將共享存儲(chǔ)設(shè)備(例如,磁陣或SAN等)格式化為集群文件系統(tǒng),并將該集群文件系統(tǒng)掛載在某一集群節(jié)點(diǎn)上。具體地,圖2是本發(fā)明實(shí)施例的創(chuàng)建集群文件系統(tǒng)的初始化流程示意圖,如圖2所示,在加載集群文件系統(tǒng)時(shí),需要向磁盤共享設(shè)備(上述共享存儲(chǔ)設(shè)備)寫入集群文件系統(tǒng)的元數(shù)據(jù),完成集群文件系統(tǒng)的格式化,并將將該集群文件系統(tǒng)掛載在一個(gè)集群節(jié)點(diǎn)上。在節(jié)點(diǎn)掛接集群文件系統(tǒng)之后,需要加載分配圖管理模塊,分配圖管理模塊主要管理集群文件系統(tǒng)的邏輯數(shù)據(jù)塊分配狀態(tài),在對(duì)文件進(jìn)行寫操作的時(shí)候,需要該模塊來(lái)控制數(shù)據(jù)塊的狀態(tài)(例如,數(shù)據(jù)塊為空閑或者被使用),以便對(duì)于文件系統(tǒng)數(shù)據(jù)塊的使用有一個(gè)整體的掌握。分配圖管理模塊判斷是否已經(jīng)設(shè)置了分配圖的管理節(jié)點(diǎn),如果沒(méi)有設(shè)置, 該分配圖管理模塊把首次掛載集群文件系統(tǒng)的節(jié)點(diǎn)設(shè)置為分配圖的管理節(jié)點(diǎn),需要說(shuō)明的是,一個(gè)集群文件系統(tǒng)只能有一個(gè)分配圖管理節(jié)點(diǎn),其它集群節(jié)點(diǎn)對(duì)文件中空閑數(shù)據(jù)塊的申請(qǐng)都要由分配圖管理節(jié)點(diǎn)來(lái)處理。分配圖管理節(jié)點(diǎn)主要負(fù)責(zé)維護(hù)集群文件系統(tǒng)所有分配區(qū)的狀態(tài)表。圖3是本發(fā)明實(shí)施例的分配圖管理方法的示意圖,如圖3所示,分配圖管理模塊將集群文件系統(tǒng)的分配圖劃分為若干部分,每一部分包含一組獨(dú)立的鎖區(qū)域,鎖區(qū)域有一個(gè)對(duì)應(yīng)的鎖來(lái)標(biāo)識(shí)該鎖區(qū)域是否被被占用,每個(gè)鎖區(qū)域又包含該區(qū)域內(nèi)的磁盤塊(上述數(shù)據(jù)塊)的分配狀態(tài),即鎖區(qū)域狀態(tài)表。需要說(shuō)明的是,鎖區(qū)域的數(shù)量是由集群節(jié)點(diǎn)的數(shù)量在集群文件系統(tǒng)創(chuàng)建的時(shí)候決定的,它能夠最大程度的減少鎖沖突。在分配圖管理模塊分配了分配圖的管理節(jié)點(diǎn)后,該分配圖的管理節(jié)點(diǎn)等待其他節(jié)點(diǎn)申請(qǐng)磁盤空間的請(qǐng)求。在加載分配圖管理模塊后,還需要加載鎖令牌管理模塊,集群節(jié)點(diǎn)對(duì)文件鎖令牌的處理都由該模塊來(lái)實(shí)現(xiàn)。鎖令牌管理模塊主要負(fù)責(zé)控制集群節(jié)點(diǎn)對(duì)文件的訪問(wèn)的權(quán)限, 其中,鎖令牌分為整體鎖令牌和字節(jié)(局部)鎖令牌,只有在集群節(jié)點(diǎn)持有鎖令牌的時(shí)候才能對(duì)文件的特定區(qū)域進(jìn)行訪問(wèn),鎖令牌模塊同樣保證寫操作的原子性,使集群文件系統(tǒng)更加有效的支持各種文件操作,對(duì)于文件的訪問(wèn)權(quán)限需要根據(jù)文件的工作量來(lái)分配不同權(quán)限特性。具體地,鎖令牌管理模塊需要把文件的整體鎖令牌派發(fā)給第一個(gè)訪問(wèn)文件的節(jié)點(diǎn),獲得文件整體鎖令牌的節(jié)點(diǎn)會(huì)被設(shè)置為文件的主節(jié)點(diǎn),其它后面訪問(wèn)文件的集群節(jié)點(diǎn)設(shè)置為文件的從節(jié)點(diǎn),主節(jié)點(diǎn)和從節(jié)點(diǎn)只是針對(duì)某一個(gè)特定文件而言的,一個(gè)文件只有一個(gè)主節(jié)點(diǎn),可以有多個(gè)從節(jié)點(diǎn)或沒(méi)有從節(jié)點(diǎn)。在對(duì)文件的訪問(wèn)過(guò)程中,鎖令牌管理模塊會(huì)將文件的整體鎖令牌在訪問(wèn)文件的集群節(jié)點(diǎn)間進(jìn)行傳遞,以便所有訪問(wèn)文件的集群節(jié)點(diǎn)都能把自己對(duì)文件寫入的緩沖內(nèi)容更新到共享磁盤設(shè)備。步驟二,集群節(jié)點(diǎn)對(duì)集群文件系統(tǒng)的某一文件第一個(gè)進(jìn)行訪問(wèn)。具體地,如圖2所示,如上所述,鎖令牌管理模塊需要首先判斷該文件的主節(jié)點(diǎn)是否已經(jīng)被設(shè)置,如果未設(shè)置,鎖令牌管理模塊將首次訪問(wèn)某一文件的節(jié)點(diǎn)設(shè)置為該文件的主節(jié)點(diǎn),并將整體鎖令牌和全部的字節(jié)鎖令牌分配給該主節(jié)點(diǎn)。隨后,主節(jié)點(diǎn)需要等待其他集群節(jié)點(diǎn)的申請(qǐng)字節(jié)鎖令牌的請(qǐng)求,主節(jié)點(diǎn)具有分發(fā)文件字節(jié)鎖令牌給從節(jié)點(diǎn)的權(quán)限以及更新文件的權(quán)限,持有字節(jié)鎖令牌的從節(jié)點(diǎn)具有文件部分訪問(wèn)的權(quán)限。也就是說(shuō),主節(jié)點(diǎn)主要負(fù)責(zé)處理從節(jié)點(diǎn)對(duì)文件字節(jié)鎖令牌的請(qǐng)求,并具有刷新文件的內(nèi)存緩沖到共享磁盤的權(quán)限。步驟三,其它集群節(jié)點(diǎn)對(duì)集群文件系統(tǒng)的文件發(fā)起訪問(wèn),向主節(jié)點(diǎn)請(qǐng)求字節(jié)鎖令牌,該文件的主節(jié)點(diǎn)處理該請(qǐng)求。首先,主節(jié)點(diǎn)在接收到其它節(jié)點(diǎn)對(duì)文件的訪問(wèn)請(qǐng)求后,主節(jié)點(diǎn)會(huì)分配字節(jié)鎖令牌給其它節(jié)點(diǎn),并將該節(jié)點(diǎn)設(shè)置為文件的從節(jié)點(diǎn),使得從節(jié)點(diǎn)即使在沒(méi)有獲得文件整體鎖令牌的前提下,也能對(duì)文件的部分區(qū)域進(jìn)行訪問(wèn)。如果集群節(jié)點(diǎn)訪問(wèn)使用完了它的鎖區(qū)域的磁盤空間,它會(huì)向分配圖管理節(jié)點(diǎn)發(fā)送請(qǐng)求分配新的空閑磁盤空間。分配圖管理節(jié)點(diǎn)接收到該請(qǐng)求,查詢分配圖的狀態(tài)表,將標(biāo)識(shí)為空閑的分配圖區(qū)域以及控制訪問(wèn)該區(qū)域的區(qū)域鎖分配給該集群節(jié)點(diǎn)。圖4是本發(fā)明實(shí)施例的集群節(jié)點(diǎn)訪問(wèn)文件請(qǐng)求處理的示意圖,如圖4所示,從上述處理可以看出,第一個(gè)訪問(wèn)文件的集群節(jié)點(diǎn)持有文件的整體鎖令牌,它會(huì)首先被鎖令牌管理模塊設(shè)置為該文件的主節(jié)點(diǎn),并且它同時(shí)持有文件的全部的字節(jié)鎖令牌。其它節(jié)點(diǎn)要訪問(wèn)文件需要向該文件的主節(jié)點(diǎn)發(fā)送請(qǐng)求,主節(jié)點(diǎn)接收到該請(qǐng)求以后,根據(jù)節(jié)點(diǎn)請(qǐng)求撤銷部分字節(jié)鎖令牌,然后將令牌再分配給其它節(jié)點(diǎn),其它節(jié)點(diǎn)獲得文件的字節(jié)鎖令牌以后便能對(duì)文件的部分區(qū)域進(jìn)行正常的訪問(wèn)操作了。例如,如果第一集群節(jié)點(diǎn)連續(xù)向文件偏移01處寫數(shù)據(jù),第二集群節(jié)點(diǎn)連續(xù)向文件偏移02處寫數(shù)據(jù),第一集群節(jié)點(diǎn)會(huì)交出它的字節(jié)鎖令牌。如果02大于01,交出的鎖令牌范圍02到無(wú)窮,如果02小于01,交出的鎖令牌范圍為0到01,這樣保證兩個(gè)集群節(jié)點(diǎn)都能對(duì)文件同時(shí)寫入而不會(huì)造成鎖沖突。對(duì)于整體鎖令牌而言,字節(jié)鎖令牌使得多集群節(jié)點(diǎn)對(duì)同一文件數(shù)據(jù)的同步寫操作變得更加有效,因?yàn)閮H僅通過(guò)不斷地單個(gè)字節(jié)鎖令牌的交換,就能訪問(wèn)到整個(gè)文件了。在令牌交換的過(guò)程中,需要指定以偏移為基礎(chǔ)寫入的期望范圍,如果集群節(jié)點(diǎn)的字節(jié)鎖令牌范圍期望方位相沖突,則將會(huì)撤銷字節(jié)令牌鎖的范圍,將期望范圍的一個(gè)子集賦給它,這樣就不會(huì)與其它持有字節(jié)令牌鎖的集群節(jié)點(diǎn)在該范圍的造成沖突。需要說(shuō)明的是,鎖令牌不僅支持正向連續(xù)訪問(wèn)文件數(shù)據(jù),也支持反向連續(xù)訪問(wèn)文件數(shù)據(jù)的方式,減小了分割字節(jié)令牌鎖范圍的沖突。圖5是本發(fā)明實(shí)施例的集群節(jié)點(diǎn)獲得文件鎖令牌的處理流程圖,如圖5所示,第一個(gè)寫入文件的集群節(jié)點(diǎn)申請(qǐng)獲取文件的整體鎖令牌,鎖令牌管理模塊處理該申請(qǐng),將整體鎖令牌分配給該集群節(jié)點(diǎn)。需要說(shuō)明的是,只要沒(méi)有其它的節(jié)點(diǎn)訪問(wèn)同一個(gè)文件,所有的讀寫操作都在本地進(jìn)行,不需要節(jié)點(diǎn)之間進(jìn)行交互。如果文件被關(guān)閉了,第一個(gè)集群節(jié)點(diǎn)會(huì)釋放該文件整體鎖令牌,于是第二個(gè)集群節(jié)點(diǎn)就能獲取該文件的整體鎖令牌,對(duì)整個(gè)文件也就有了訪問(wèn)權(quán)限。如果第一個(gè)集群節(jié)點(diǎn)仍然要對(duì)文件數(shù)據(jù)進(jìn)行訪問(wèn),還沒(méi)有交出整體鎖令牌,而這時(shí)第二個(gè)集群節(jié)點(diǎn)開始向同一文件寫入數(shù)據(jù),第二個(gè)集群節(jié)點(diǎn)需要撤銷至少一部分被第一個(gè)集群節(jié)點(diǎn)持有的字節(jié)鎖令牌。第一個(gè)集群節(jié)點(diǎn)(主節(jié)點(diǎn))先檢查從節(jié)點(diǎn)申請(qǐng)的鎖區(qū)域是否被使用(即,相應(yīng)的字節(jié)鎖令牌是否被分配),如果沒(méi)有被使用,則分配相應(yīng)的字節(jié)鎖令牌,從節(jié)點(diǎn)便可以對(duì)文件數(shù)據(jù)進(jìn)行訪問(wèn)。集群節(jié)點(diǎn)持有的文件鎖區(qū)域的空間是有限的,在鎖區(qū)域的數(shù)據(jù)塊都被分配了以后,需要給它分配新的空閑鎖區(qū)域,圖6是本發(fā)明實(shí)施例的分配圖管理模塊的處理流程圖, 如圖6所示,持有字節(jié)鎖的集群節(jié)點(diǎn)對(duì)文件的局部鎖區(qū)域持續(xù)寫入會(huì)造成鎖區(qū)域的越界, 在鎖區(qū)域的數(shù)據(jù)塊被寫滿的情況下,集群節(jié)點(diǎn)需要向分配圖管理節(jié)點(diǎn)請(qǐng)求分配新的空閑鎖區(qū)域。分配圖管理節(jié)點(diǎn)接收到節(jié)點(diǎn)的請(qǐng)求,查詢文件系統(tǒng)的分配圖的狀態(tài)表,將空閑的鎖區(qū)域和區(qū)域鎖分配給發(fā)送請(qǐng)求的集群節(jié)點(diǎn),并將該鎖區(qū)域進(jìn)行標(biāo)記,便于下次查詢分配圖的狀態(tài)表時(shí)能夠正確獲取該鎖區(qū)域的狀態(tài)。集群節(jié)點(diǎn)接收到分配圖管理節(jié)點(diǎn)返回的信息,繼續(xù)對(duì)新分配的鎖區(qū)域進(jìn)行寫操作,如果寫操作再次越界,重復(fù)執(zhí)行上述操作。此外,需要說(shuō)明的是,同一集群節(jié)點(diǎn)對(duì)集群文件系統(tǒng)的同一文件數(shù)據(jù)的重復(fù)訪問(wèn)只需要申請(qǐng)一次鎖令牌,一旦它從主節(jié)點(diǎn)那里得到鎖令牌,它對(duì)文件數(shù)據(jù)接下來(lái)的操作就不要再發(fā)消息來(lái)申請(qǐng)文件鎖令牌。只有當(dāng)其它從節(jié)點(diǎn)對(duì)同一文件數(shù)據(jù)申請(qǐng)鎖令牌,該從節(jié)點(diǎn)的鎖令牌可能被撤銷。鎖令牌同樣也維護(hù)節(jié)點(diǎn)之間的緩沖一致性。一個(gè)從節(jié)點(diǎn)持有令牌后,該鎖令牌對(duì)應(yīng)的從磁盤讀取的緩沖數(shù)據(jù)在撤消令牌之前不能被其它節(jié)點(diǎn)(包括主節(jié)點(diǎn))修改。步驟四,集群節(jié)點(diǎn)對(duì)文件的修改在所有集群節(jié)點(diǎn)之間進(jìn)行同步,只有文件的主節(jié)點(diǎn)才能更新文件的元數(shù)據(jù)和用戶數(shù)據(jù)的內(nèi)存副本到共享磁盤。具體地,首先,文件的從節(jié)點(diǎn)發(fā)送要更新文件的請(qǐng)求給文件的主節(jié)點(diǎn)。文件的主節(jié)點(diǎn)將自己鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ),更新完成后,交出文件的整體鎖令牌,并調(diào)用鎖令牌管理模塊將一個(gè)其它持有文件字節(jié)鎖令牌的從節(jié)點(diǎn)設(shè)置為該文件的主節(jié)點(diǎn)。新的主節(jié)點(diǎn)又將自己鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ),并等待其它集群節(jié)點(diǎn)申請(qǐng)文件整體鎖令牌的請(qǐng)求。如果主節(jié)點(diǎn)也不再訪問(wèn)文件的時(shí)候,會(huì)釋放文件的整體鎖令牌。集群節(jié)點(diǎn)寫入同一個(gè)文件數(shù)據(jù)導(dǎo)致對(duì)索引節(jié)點(diǎn)和間接尋址塊的同步更新。第一個(gè)訪問(wèn)文件的集群節(jié)點(diǎn)會(huì)被鎖管理模塊分配文件的整體鎖令牌,指派為文件的主節(jié)點(diǎn),只有主節(jié)點(diǎn)能夠?qū)Υ疟P上的索引節(jié)點(diǎn)進(jìn)行讀寫。當(dāng)一個(gè)集群節(jié)點(diǎn)的整體鎖令牌被鎖令牌管理模塊撤銷時(shí),該集群節(jié)點(diǎn)會(huì)把它對(duì)文件用戶數(shù)據(jù)以及元數(shù)據(jù)更新的內(nèi)存副本更新至磁盤。對(duì)于間接尋址塊的同步也采用類似的方式。在寫入一個(gè)文件的時(shí)候,每個(gè)集群節(jié)點(diǎn)都會(huì)被分配一個(gè)獨(dú)立的磁盤空間來(lái)寫入數(shù)據(jù)塊。字節(jié)鎖令牌來(lái)保證只有一個(gè)節(jié)點(diǎn)會(huì)被分配對(duì)于某個(gè)特定數(shù)據(jù)塊的空間。新的數(shù)據(jù)塊地址會(huì)被發(fā)到主節(jié)點(diǎn),再由主節(jié)點(diǎn)來(lái)更新間接尋址塊,該方法保證多個(gè)節(jié)點(diǎn)對(duì)于同一文件的同步寫入不會(huì)造成對(duì)文件系統(tǒng)的元數(shù)據(jù)更新的鎖沖突。一個(gè)文件的主節(jié)點(diǎn)是由令牌鎖管理模塊動(dòng)態(tài)選擇的,主節(jié)點(diǎn)不再訪問(wèn)文件的時(shí)候會(huì)釋放文件的整體鎖令牌,或者當(dāng)它連續(xù)收到從節(jié)點(diǎn)請(qǐng)求文件整體鎖令牌時(shí),它會(huì)更新本地的文件內(nèi)存副本到共享存儲(chǔ)設(shè)備,完成后再交出文件的整體鎖令牌。因此,一個(gè)文件的主節(jié)點(diǎn)令牌會(huì)在訪問(wèn)文件的節(jié)點(diǎn)間不斷傳遞,這樣保證了每個(gè)持有文件字節(jié)鎖令牌的節(jié)點(diǎn)能對(duì)文件進(jìn)行同步更新。圖7是本發(fā)明實(shí)施例的多個(gè)集群節(jié)點(diǎn)同步訪問(wèn)更新的處理流程圖,如圖7所示,主節(jié)點(diǎn)更新同步該文件的元數(shù)據(jù)以及用戶數(shù)據(jù),此時(shí),如果有其他集群節(jié)點(diǎn)申請(qǐng)同步,需要向主節(jié)點(diǎn)申請(qǐng)整體鎖令牌,主節(jié)點(diǎn)的鎖令牌模塊動(dòng)態(tài)選擇一個(gè)新的主節(jié)點(diǎn),新的主節(jié)點(diǎn)更新同步該文件的元數(shù)據(jù)以及用戶數(shù)據(jù)。從上述處理看出,本發(fā)明實(shí)施例的集群文件系統(tǒng)使用字節(jié)鎖來(lái)同步對(duì)文件數(shù)據(jù)的訪問(wèn)操作,獲取字節(jié)鎖令牌訪問(wèn)文件,對(duì)文件進(jìn)行讀寫操作,訪問(wèn)完成后釋放令牌,使用字節(jié)鎖來(lái)控制同步訪問(wèn),此外,本發(fā)明實(shí)施例降低了鎖申請(qǐng)與釋放的過(guò)程中可能的阻塞,在對(duì)集群節(jié)點(diǎn)提供同步互斥訪問(wèn)的同時(shí),也提高文件系統(tǒng)的訪問(wèn)效率。裝置實(shí)施例根據(jù)本發(fā)明的實(shí)施例,提供了一種集群節(jié)點(diǎn),圖8是本發(fā)明實(shí)施例的集群節(jié)點(diǎn)的結(jié)構(gòu)示意圖,如圖8所示,根據(jù)本發(fā)明實(shí)施例的集群節(jié)點(diǎn)包括創(chuàng)建模塊80、掛載模塊81、鎖令牌管理模塊82、讀寫模塊83、以及更新模塊84,以下對(duì)本發(fā)明實(shí)施例的各個(gè)模塊進(jìn)行詳細(xì)的說(shuō)明。具體地,創(chuàng)建模塊80用于在共享存儲(chǔ)設(shè)備中創(chuàng)建集群文件系統(tǒng);具體地,創(chuàng)建模塊80在加載集群文件系統(tǒng)時(shí),需要向磁盤共享設(shè)備(上述共享存儲(chǔ)設(shè)備)寫入集群文件系統(tǒng)的元數(shù)據(jù),完成集群文件系統(tǒng)的格式化。掛載模塊81用于掛載集群文件系統(tǒng);在掛載模塊81掛接集群文件系統(tǒng)時(shí),需要加載分配圖管理模塊,分配圖管理模塊主要管理集群文件系統(tǒng)的邏輯數(shù)據(jù)塊分配狀態(tài),在對(duì)文件進(jìn)行寫操作的時(shí)候,需要該模塊來(lái)控制數(shù)據(jù)塊的狀態(tài),以便對(duì)于文件系統(tǒng)數(shù)據(jù)塊的使用有一個(gè)整體的掌握。具體地,分配圖管理模塊用于將掛載建集群文件系統(tǒng)的集群節(jié)點(diǎn)設(shè)置為分配圖管理節(jié)點(diǎn),并將集群文件系統(tǒng)的分配圖劃分為多個(gè)鎖區(qū)域,在集群節(jié)點(diǎn)使用完當(dāng)前鎖區(qū)域中的磁盤空間的情況下,為集群節(jié)點(diǎn)分配新的鎖區(qū)域中空閑的磁盤空間。需要說(shuō)明的是,一個(gè)集群文件系統(tǒng)只能有一個(gè)分配圖管理節(jié)點(diǎn),其它集群節(jié)點(diǎn)對(duì)文件中空閑數(shù)據(jù)塊的申請(qǐng)都要由分配圖管理節(jié)點(diǎn)來(lái)處理。分配圖管理節(jié)點(diǎn)主要負(fù)責(zé)維護(hù)集群文件系統(tǒng)所有分配區(qū)的狀態(tài)表。如圖3所示, 分配圖管理模塊將集群文件系統(tǒng)的分配圖劃分為若干部分,每一部分包含一組獨(dú)立的鎖區(qū)域,鎖區(qū)域有一個(gè)對(duì)應(yīng)的鎖來(lái)標(biāo)識(shí)該鎖區(qū)域是否被被占用,每個(gè)鎖區(qū)域又包含該區(qū)域內(nèi)的磁盤塊(上述數(shù)據(jù)塊)的分配狀態(tài),即鎖區(qū)域狀態(tài)表。需要說(shuō)明的是,鎖區(qū)域的數(shù)量是由集群節(jié)點(diǎn)的數(shù)量在集群文件系統(tǒng)創(chuàng)建的時(shí)候決定的,它能夠最大程度的減少鎖沖突。在分配圖管理模塊分配了分配圖的管理節(jié)點(diǎn)后,該分配圖的管理節(jié)點(diǎn)等待其他節(jié)點(diǎn)申請(qǐng)磁盤空間的請(qǐng)求。集群節(jié)點(diǎn)持有的文件鎖區(qū)域的空間是有限的,在鎖區(qū)域的數(shù)據(jù)塊都被分配了以后,需要給它分配新的空閑鎖區(qū)域,如圖6所示,持有字節(jié)鎖的集群節(jié)點(diǎn)對(duì)文件的局部鎖區(qū)域持續(xù)寫入會(huì)造成鎖區(qū)域的越界,在鎖區(qū)域的數(shù)據(jù)塊被寫滿的情況下,集群節(jié)點(diǎn)需要向分配圖管理節(jié)點(diǎn)請(qǐng)求分配新的空閑鎖區(qū)域。分配圖管理節(jié)點(diǎn)接收到節(jié)點(diǎn)的請(qǐng)求,查詢文件系統(tǒng)的分配圖的狀態(tài)表,將空閑的鎖區(qū)域和區(qū)域鎖分配給發(fā)送請(qǐng)求的集群節(jié)點(diǎn),并將該鎖區(qū)域進(jìn)行標(biāo)記,便于下次查詢分配圖的狀態(tài)表時(shí)能夠正確獲取該鎖區(qū)域的狀態(tài)。集群節(jié)點(diǎn)接收到分配圖管理節(jié)點(diǎn)返回的信息,繼續(xù)對(duì)新分配的鎖區(qū)域進(jìn)行寫操作,如果寫操作再次越界,重復(fù)執(zhí)行上述操作。在加載分配圖管理模塊后,還需要加載鎖令牌管理模塊82,集群節(jié)點(diǎn)對(duì)文件鎖令牌的處理都由該模塊來(lái)實(shí)現(xiàn)。鎖令牌管理模塊82主要負(fù)責(zé)控制集群節(jié)點(diǎn)對(duì)文件的訪問(wèn)的權(quán)限,其中,鎖令牌分為整體鎖令牌和字節(jié)(局部)鎖令牌,只有在集群節(jié)點(diǎn)持有鎖令牌的時(shí)候才能對(duì)文件的特定區(qū)域進(jìn)行訪問(wèn),鎖令牌模塊同樣保證寫操作的原子性,使集群文件系統(tǒng)更加有效的支持各種文件操作,對(duì)于文件的訪問(wèn)權(quán)限需要根據(jù)文件的工作量來(lái)分配不同權(quán)限特性。具體地,鎖令牌管理模塊82用于設(shè)置集群文件系統(tǒng)中某一文件的主節(jié)點(diǎn),并向主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌,在集群系統(tǒng)中的其他集群節(jié)點(diǎn)對(duì)文件發(fā)起訪問(wèn)的情況下,根據(jù)其他集群節(jié)點(diǎn)的請(qǐng)求將全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給所述其他集群節(jié)點(diǎn),將所述其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn),并根據(jù)從節(jié)點(diǎn)的請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),以使從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新;需要說(shuō)明的是,主節(jié)點(diǎn)和從節(jié)點(diǎn)只是針對(duì)某一個(gè)特定文件而言的,一個(gè)文件只有一個(gè)主節(jié)點(diǎn),可以有多個(gè)從節(jié)點(diǎn)或沒(méi)有從節(jié)點(diǎn)。在對(duì)文件的訪問(wèn)過(guò)程中,鎖令牌管理模塊82 會(huì)將文件的整體鎖令牌在訪問(wèn)文件的集群節(jié)點(diǎn)間進(jìn)行傳遞,以便所有訪問(wèn)文件的集群節(jié)點(diǎn)都能把自己對(duì)文件寫入的緩沖內(nèi)容更新到共享磁盤設(shè)備。優(yōu)選地,鎖令牌管理模塊82具體包括接收模塊,用于接收集群系統(tǒng)中的其他集群節(jié)點(diǎn)發(fā)送的文件訪問(wèn)請(qǐng)求,并根據(jù)文件訪問(wèn)請(qǐng)求從全部的字節(jié)鎖令牌中撤銷相應(yīng)的字節(jié)鎖令牌;分配模塊,用于將撤銷的相應(yīng)的字節(jié)鎖令牌分配給發(fā)送文件訪問(wèn)請(qǐng)求的集群節(jié)點(diǎn),并將該集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn);傳遞模塊,用于在更新完成后,根據(jù)從節(jié)點(diǎn)發(fā)送的申請(qǐng)整體鎖令牌請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),并將從節(jié)點(diǎn)設(shè)置為當(dāng)前的主節(jié)點(diǎn)。此外,鎖令牌管理模塊82還用于在集群節(jié)點(diǎn)不再訪問(wèn)文件的情況下,釋放文件的整體鎖令牌或文件相應(yīng)的字節(jié)鎖令牌。鎖令牌管理模塊82的具體操作可以參照方法實(shí)施例的相應(yīng)部分和圖2-圖5進(jìn)行理解,在此不再贅述。讀寫模塊83用于根據(jù)字節(jié)鎖令牌對(duì)文件的相應(yīng)內(nèi)容進(jìn)行讀寫操作;更新模塊84用于根據(jù)持有的整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新,隨后調(diào)用鎖令牌管理模塊82,鎖令牌管理模塊82根據(jù)所述從節(jié)點(diǎn)的請(qǐng)求,將整體鎖令牌傳遞給所述從節(jié)點(diǎn),以使從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。此外,根據(jù)本發(fā)明實(shí)施例的集群節(jié)點(diǎn)還包括同步模塊,用于在對(duì)文件的相應(yīng)內(nèi)容進(jìn)行更新后,將更新的相應(yīng)內(nèi)容在所有集群節(jié)點(diǎn)之間進(jìn)行同步,其中,文件相應(yīng)內(nèi)容包括用戶數(shù)據(jù)和元數(shù)據(jù)。具體地,首先,文件的從節(jié)點(diǎn)發(fā)送要更新文件的請(qǐng)求給文件的主節(jié)點(diǎn)。文件的主節(jié)點(diǎn)的更新模塊84將自己鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ),更新完成后,交出文件的整體鎖令牌,并調(diào)用鎖令牌管理模塊82將一個(gè)其它持有文件字節(jié)鎖令牌的從節(jié)點(diǎn)設(shè)置為該文件的主節(jié)點(diǎn)。新的主節(jié)點(diǎn)的更新模塊84又將自己鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ),并等待其它集群節(jié)點(diǎn)申請(qǐng)文件整體鎖令牌的請(qǐng)求。如果主節(jié)點(diǎn)也不再訪問(wèn)文件的時(shí)候,會(huì)釋放文件的整體鎖令牌。集群節(jié)點(diǎn)寫入同一個(gè)文件數(shù)據(jù)導(dǎo)致對(duì)索引節(jié)點(diǎn)和間接尋址塊的同步更新。第一個(gè)訪問(wèn)文件的集群節(jié)點(diǎn)會(huì)被鎖管理模塊分配文件的整體鎖令牌,指派為文件的主節(jié)點(diǎn),只有主節(jié)點(diǎn)能夠?qū)Υ疟P上的索引節(jié)點(diǎn)進(jìn)行讀寫。當(dāng)一個(gè)集群節(jié)點(diǎn)的整體鎖令牌被鎖令牌管理模塊撤銷時(shí),該集群節(jié)點(diǎn)會(huì)把它對(duì)文件用戶數(shù)據(jù)以及元數(shù)據(jù)更新的內(nèi)存副本更新至磁盤。對(duì)于間接尋址塊的同步也采用類似的方式。在寫入一個(gè)文件的時(shí)候,每個(gè)集群節(jié)點(diǎn)都會(huì)被分配一個(gè)獨(dú)立的磁盤空間來(lái)寫入數(shù)據(jù)塊。字節(jié)鎖令牌來(lái)保證只有一個(gè)節(jié)點(diǎn)會(huì)被分配對(duì)于某個(gè)特定數(shù)據(jù)塊的空間。新的數(shù)據(jù)塊地址會(huì)被發(fā)到主節(jié)點(diǎn),再由主節(jié)點(diǎn)來(lái)更新間接尋址塊,該方法保證多個(gè)節(jié)點(diǎn)對(duì)于同一文件的同步寫入不會(huì)造成對(duì)文件系統(tǒng)的元數(shù)據(jù)更新的鎖沖突。一個(gè)文件的主節(jié)點(diǎn)是由令牌鎖管理模塊動(dòng)態(tài)選擇的,主節(jié)點(diǎn)不再訪問(wèn)文件的時(shí)候會(huì)釋放文件的整體鎖令牌,或者當(dāng)它連續(xù)收到從節(jié)點(diǎn)請(qǐng)求文件整體鎖令牌時(shí),它會(huì)更新本地的文件內(nèi)存副本到共享存儲(chǔ)設(shè)備,完成后再交出文件的整體鎖令牌。因此,一個(gè)文件的主節(jié)點(diǎn)令牌會(huì)在訪問(wèn)文件的節(jié)點(diǎn)間不斷傳遞,這樣保證了每個(gè)持有文件字節(jié)鎖令牌的節(jié)點(diǎn)能對(duì)文件進(jìn)行同步更新。從上述處理可以看出,本發(fā)明實(shí)施例的集群文件系統(tǒng)中的鎖令牌管理模塊82處理文件鎖令牌的分配與釋放,一個(gè)集群節(jié)點(diǎn)只有持有鎖令牌的時(shí)候,才能對(duì)文件的特定區(qū)域進(jìn)行更新,鎖令牌管理模塊82是本集群文件系統(tǒng)同步互斥訪問(wèn)控制技術(shù)實(shí)現(xiàn)的關(guān)鍵。綜上所述,本發(fā)明實(shí)施例通過(guò)向第一個(gè)訪問(wèn)該文件的集群節(jié)點(diǎn)分配整體鎖令牌, 并由該集群節(jié)點(diǎn)向其他集群節(jié)點(diǎn)分配字節(jié)鎖令牌對(duì)文件進(jìn)行同步訪問(wèn),解決了現(xiàn)有技術(shù)中其他集群節(jié)點(diǎn)不能夠與文件的主節(jié)點(diǎn)對(duì)文件進(jìn)行同步訪問(wèn)的問(wèn)題,能夠保護(hù)集群文件系統(tǒng)的用戶數(shù)據(jù)和元數(shù)據(jù)在被多個(gè)集群節(jié)點(diǎn)的訪問(wèn)的同時(shí)而不會(huì)遭到破壞,維護(hù)數(shù)據(jù)的完整性以及用戶數(shù)據(jù)和元數(shù)據(jù)的一致性,同時(shí)也提高了文件系統(tǒng)的訪問(wèn)效率。盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域的技術(shù)人員將意識(shí)到各種改進(jìn)、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當(dāng)不限于上述實(shí)施例。
1權(quán)利要求
1.一種集群文件系統(tǒng)訪問(wèn)控制方法,其特征在于,包括在共享存儲(chǔ)設(shè)備中創(chuàng)建集群文件系統(tǒng),將所述集群文件系統(tǒng)掛載在集群系統(tǒng)中的一個(gè)集群節(jié)點(diǎn)上,將首次訪問(wèn)所述集群文件系統(tǒng)中某一文件的集群節(jié)點(diǎn)設(shè)置為所述文件的主節(jié)點(diǎn),并向所述主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌;在所述集群系統(tǒng)中的其他集群節(jié)點(diǎn)對(duì)所述文件發(fā)起訪問(wèn)的情況下,所述主節(jié)點(diǎn)根據(jù)所述其他集群節(jié)點(diǎn)的請(qǐng)求將所述全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給所述其他集群節(jié)點(diǎn),并將所述其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn);所述主節(jié)點(diǎn)或所述從節(jié)點(diǎn)根據(jù)所述字節(jié)鎖令牌對(duì)所述文件的相應(yīng)內(nèi)容進(jìn)行讀/寫操作,所述主節(jié)點(diǎn)根據(jù)持有的所述整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新,并根據(jù)所述從節(jié)點(diǎn)的請(qǐng)求,將所述整體鎖令牌傳遞給所述從節(jié)點(diǎn),以使所述從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括 將掛載所述建集群文件系統(tǒng)的集群節(jié)點(diǎn)設(shè)置為分配圖管理節(jié)點(diǎn);所述分配圖管理節(jié)點(diǎn)將所述集群文件系統(tǒng)的分配圖劃分為多個(gè)鎖區(qū)域; 在所述主節(jié)點(diǎn)和/或所述從節(jié)點(diǎn)使用完當(dāng)前鎖區(qū)域中的磁盤空間的情況下,所述分配圖管理節(jié)點(diǎn)向所述主節(jié)點(diǎn)和/或所述從節(jié)點(diǎn)分配新的鎖區(qū)域中空閑的磁盤空間; 將與該磁盤空間相對(duì)應(yīng)的區(qū)域鎖分配給所述主節(jié)點(diǎn)和/或所述從節(jié)點(diǎn)。
3.如權(quán)利要求1所述的方法,其特征在于,所述主節(jié)點(diǎn)根據(jù)所述其他集群節(jié)點(diǎn)的請(qǐng)求將所述全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給所述其他集群節(jié)點(diǎn),并將所述其他集群節(jié)設(shè)置為從節(jié)點(diǎn)具體包括所述主節(jié)點(diǎn)接收所述集群系統(tǒng)中的其他集群節(jié)點(diǎn)發(fā)送的文件訪問(wèn)請(qǐng)求,并根據(jù)所述文件訪問(wèn)請(qǐng)求從所述全部的字節(jié)鎖令牌中撤銷相應(yīng)的字節(jié)鎖令牌;所述主節(jié)點(diǎn)將撤銷的相應(yīng)的字節(jié)鎖令牌分配給發(fā)送所述文件訪問(wèn)請(qǐng)求的集群節(jié)點(diǎn),并將該集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn)。
4.如權(quán)利要求1所述的方法,其特征在于,所述主節(jié)點(diǎn)根據(jù)持有的所述整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新,并根據(jù)所述從節(jié)點(diǎn)的請(qǐng)求,將所述整體鎖令牌傳遞給所述從節(jié)點(diǎn),以使所述從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新具體包括所述從節(jié)點(diǎn)向所述主節(jié)點(diǎn)發(fā)送申請(qǐng)整體鎖令牌請(qǐng)求;所述主節(jié)點(diǎn)將自身字節(jié)鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到共享存儲(chǔ)設(shè)備,在更新完成后,根據(jù)所述申請(qǐng)整體鎖令牌請(qǐng)求,將所述整體鎖令牌傳遞給所述從節(jié)點(diǎn),并將所述從節(jié)點(diǎn)設(shè)置為當(dāng)前的主節(jié)點(diǎn);所述當(dāng)前的主節(jié)點(diǎn)將自身字節(jié)鎖令牌范圍內(nèi)的文件內(nèi)存副本更新到所述共享存儲(chǔ)設(shè)備,并等待其他從節(jié)點(diǎn)發(fā)送所述申請(qǐng)整體鎖令牌請(qǐng)求。
5.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括在對(duì)修改的文件相應(yīng)內(nèi)容進(jìn)行更新后,將更新的相應(yīng)內(nèi)容在所有集群節(jié)點(diǎn)之間進(jìn)行同步,其中,所述文件相應(yīng)內(nèi)容包括用戶數(shù)據(jù)和元數(shù)據(jù)。
6.一種集群節(jié)點(diǎn),其特征在于,包括創(chuàng)建模塊,用于在共享存儲(chǔ)設(shè)備中創(chuàng)建集群文件系統(tǒng); 掛載模塊,用于掛載所述集群文件系統(tǒng);鎖令牌管理模塊,用于設(shè)置所述集群文件系統(tǒng)中某一文件的主節(jié)點(diǎn),并向所述主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌,在所述集群系統(tǒng)中的其他集群節(jié)點(diǎn)對(duì)所述文件發(fā)起訪問(wèn)的情況下,根據(jù)所述其他集群節(jié)點(diǎn)的請(qǐng)求將所述全部的字節(jié)鎖令牌中相應(yīng)的字節(jié)鎖令牌分配給所述其他集群節(jié)點(diǎn),將所述其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn),并根據(jù)所述從節(jié)點(diǎn)的請(qǐng)求,將所述整體鎖令牌傳遞給所述從節(jié)點(diǎn),以使所述從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新;讀寫模塊,用于根據(jù)所述字節(jié)鎖令牌對(duì)所述文件的相應(yīng)內(nèi)容進(jìn)行讀/寫操作;更新模塊,用于根據(jù)持有的所述整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。
7.如權(quán)利要求6所述的集群節(jié)點(diǎn),其特征在于,所述集群節(jié)點(diǎn)還包括分配圖管理模塊,用于將掛載所述建集群文件系統(tǒng)的集群節(jié)點(diǎn)設(shè)置為分配圖管理節(jié)點(diǎn),并將所述集群文件系統(tǒng)的分配圖劃分為多個(gè)鎖區(qū)域,在所述集群節(jié)點(diǎn)使用完當(dāng)前鎖區(qū)域中的磁盤空間的情況下,為所述集群節(jié)點(diǎn)分配新的鎖區(qū)域中空閑的磁盤空間。
8.如權(quán)利要求6所述的集群節(jié)點(diǎn),其特征在于,所述鎖令牌管理模塊具體包括接收模塊,用于接收所述集群系統(tǒng)中的其他集群節(jié)點(diǎn)發(fā)送的文件訪問(wèn)請(qǐng)求,并根據(jù)所述文件訪問(wèn)請(qǐng)求從所述全部的字節(jié)鎖令牌中撤銷相應(yīng)的字節(jié)鎖令牌;分配模塊,用于將撤銷的相應(yīng)的字節(jié)鎖令牌分配給發(fā)送所述文件訪問(wèn)請(qǐng)求的集群節(jié)點(diǎn),并將該集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn);傳遞模塊,用于在更新完成后,根據(jù)所述從節(jié)點(diǎn)發(fā)送的申請(qǐng)整體鎖令牌請(qǐng)求,將所述整體鎖令牌傳遞給所述從節(jié)點(diǎn),并將所述從節(jié)點(diǎn)設(shè)置為當(dāng)前的主節(jié)點(diǎn)。
9.如權(quán)利要求6所述的集群節(jié)點(diǎn),其特征在于,所述鎖令牌管理模塊還用于在所述集群節(jié)點(diǎn)不再訪問(wèn)所述文件的情況下,釋放所述文件的所述整體鎖令牌或所述文件相應(yīng)的字節(jié)鎖令牌。
10.如權(quán)利要求6所述的集群節(jié)點(diǎn),其特征在于,所述集群節(jié)點(diǎn)還包括同步模塊,用于在對(duì)所述文件的相應(yīng)內(nèi)容進(jìn)行更新后,將更新的相應(yīng)內(nèi)容在所有集群節(jié)點(diǎn)之間進(jìn)行同步,其中,所述文件相應(yīng)內(nèi)容包括用戶數(shù)據(jù)和元數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種集群文件系統(tǒng)訪問(wèn)控制方法及集群節(jié)點(diǎn)。該方法包括創(chuàng)建集群文件系統(tǒng),將集群文件系統(tǒng)掛載在集群系統(tǒng)中的一個(gè)集群節(jié)點(diǎn)上,將首次訪問(wèn)集群文件系統(tǒng)中某一文件的集群節(jié)點(diǎn)設(shè)置為文件的主節(jié)點(diǎn),并向主節(jié)點(diǎn)分配整體鎖令牌和全部的字節(jié)鎖令牌;在其他集群節(jié)點(diǎn)對(duì)文件發(fā)起訪問(wèn)的情況下,主節(jié)點(diǎn)根據(jù)其他集群節(jié)點(diǎn)的請(qǐng)求將相應(yīng)的字節(jié)鎖令牌分配給其他集群節(jié)點(diǎn),并將其他集群節(jié)點(diǎn)設(shè)置為從節(jié)點(diǎn);主節(jié)點(diǎn)或從節(jié)點(diǎn)根據(jù)字節(jié)鎖令牌對(duì)文件的相應(yīng)內(nèi)容進(jìn)行讀/寫操作,主節(jié)點(diǎn)根據(jù)持有的整體鎖令牌對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新,并根據(jù)從節(jié)點(diǎn)的請(qǐng)求,將整體鎖令牌傳遞給從節(jié)點(diǎn),以使從節(jié)點(diǎn)對(duì)其修改的文件相應(yīng)內(nèi)容進(jìn)行更新。
文檔編號(hào)G06F17/30GK102339283SQ201010231138
公開日2012年2月1日 申請(qǐng)日期2010年7月20日 優(yōu)先權(quán)日2010年7月20日
發(fā)明者歐陽(yáng)茂春 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1