欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

通過(guò)條帶式文件系統(tǒng)中的容量平衡進(jìn)行數(shù)據(jù)分布的制作方法

文檔序號(hào):6349865閱讀:321來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):通過(guò)條帶式文件系統(tǒng)中的容量平衡進(jìn)行數(shù)據(jù)分布的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及條帶式文件系統(tǒng),尤其涉及跨條帶式文件系統(tǒng)的多個(gè)節(jié)點(diǎn)的容量平衡。
背景技術(shù)
存儲(chǔ)系統(tǒng)通常包括一個(gè)或多個(gè)存儲(chǔ)器件,根據(jù)需要,可向所述存儲(chǔ)器件中輸入信息并從其中獲得信息。存儲(chǔ)系統(tǒng)包括存儲(chǔ)操作系統(tǒng),該存儲(chǔ)操作系統(tǒng)通過(guò)尤其是調(diào)用存儲(chǔ)操作來(lái)功能性地組織該系統(tǒng)以支持該系統(tǒng)所實(shí)現(xiàn)的存儲(chǔ)服務(wù)。存儲(chǔ)系統(tǒng)可按照各種存儲(chǔ)架構(gòu)實(shí)現(xiàn),所述存儲(chǔ)架構(gòu)包括但不限于,網(wǎng)絡(luò)連接存儲(chǔ)(NAS)環(huán)境、存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)和直接連接到客戶(hù)機(jī)或主機(jī)計(jì)算機(jī)的磁盤(pán)組件。存儲(chǔ)器件通常是組織為磁盤(pán)陣列的磁盤(pán)驅(qū)動(dòng)器,其中術(shù)語(yǔ)“磁盤(pán)”通常描述自包含旋轉(zhuǎn)式磁介質(zhì)存儲(chǔ)器件。在本上下文中術(shù)語(yǔ)磁盤(pán)與硬盤(pán)驅(qū)動(dòng)器(HDD)或直接訪(fǎng)問(wèn)存儲(chǔ)器件(DASD)同義。應(yīng)當(dāng)注意,在替代實(shí)施例中,存儲(chǔ)器件可包括固態(tài)器件,例如閃存、電池備份非易失性隨機(jī)存取存儲(chǔ)器等。因此,盡管此描述按照磁盤(pán)來(lái)撰寫(xiě),然而那些實(shí)施例應(yīng)當(dāng)僅被視為示例性的。存儲(chǔ)系統(tǒng)的存儲(chǔ)操作系統(tǒng)可實(shí)現(xiàn)高級(jí)別模塊,諸如文件系統(tǒng),以將存儲(chǔ)在卷上的信息邏輯地管理為諸如文件和邏輯單元的數(shù)據(jù)容器的分層結(jié)構(gòu)。例如,每個(gè)“磁盤(pán)上”文件可被實(shí)現(xiàn)為被配置成存儲(chǔ)信息(諸如文件的實(shí)際數(shù)據(jù))的數(shù)據(jù)結(jié)構(gòu)(即,磁盤(pán)塊)的組。 這些數(shù)據(jù)塊被組織在由文件系統(tǒng)維護(hù)的卷塊號(hào)(vbn)空間中。文件系統(tǒng)還可向文件中的每個(gè)數(shù)據(jù)塊分配相應(yīng)的“文件偏移量”或文件塊號(hào)(fbn)。文件系統(tǒng)通常以每文件為基礎(chǔ)分配 fbn的序列,而vbn是在更大的卷地址空間上分配的。文件系統(tǒng)將vbn空間內(nèi)的數(shù)據(jù)塊組織為“邏輯卷”;每個(gè)邏輯卷可以與其自己的文件系統(tǒng)相關(guān)聯(lián),盡管不必然如此。已知的文件系統(tǒng)類(lèi)型是不復(fù)寫(xiě)磁盤(pán)上的數(shù)據(jù)的任意位置寫(xiě)入(write-anywhere) 文件系統(tǒng)。如果數(shù)據(jù)塊被從磁盤(pán)取回(讀取)到存儲(chǔ)系統(tǒng)的存儲(chǔ)器中并用新數(shù)據(jù)而“變無(wú)效”(即,更新或修改),則該數(shù)據(jù)塊此后被存儲(chǔ)(寫(xiě)入)到磁盤(pán)上的新位置以?xún)?yōu)化寫(xiě)入性能。任意位置寫(xiě)入文件系統(tǒng)在開(kāi)始時(shí)可假定一種最優(yōu)布局,使得數(shù)據(jù)被基本上連接地布置在磁盤(pán)上。該最優(yōu)磁盤(pán)布局帶來(lái)針對(duì)磁盤(pán)的高效的訪(fǎng)問(wèn)操作,尤其是對(duì)于順序讀取操作。被配置成在存儲(chǔ)系統(tǒng)上操作的任意位置寫(xiě)入文件系統(tǒng)的示例是可從加利福尼亞州桑尼維爾市的NetApp公司獲得的任意位置寫(xiě)入文件布局(WAFL )文件系統(tǒng)。該存儲(chǔ)系統(tǒng)還可被配置成根據(jù)客戶(hù)機(jī)/服務(wù)器信息傳遞模型來(lái)操作以由此允許許多客戶(hù)機(jī)訪(fǎng)問(wèn)存儲(chǔ)在該系統(tǒng)上的數(shù)據(jù)容器。在此模型中,客戶(hù)機(jī)可包括在通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)“連接”到該存儲(chǔ)系統(tǒng)的計(jì)算機(jī)上執(zhí)行的應(yīng)用(諸如數(shù)據(jù)庫(kù)應(yīng)用),該計(jì)算機(jī)網(wǎng)絡(luò)諸如是點(diǎn)到點(diǎn)鏈路、共享局域網(wǎng)(LAN)、廣域網(wǎng)、或在諸如因特網(wǎng)的公共網(wǎng)絡(luò)上實(shí)現(xiàn)的虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)。每個(gè)客戶(hù)機(jī)可通過(guò)經(jīng)由網(wǎng)絡(luò)向系統(tǒng)發(fā)出基于文件和基于塊的協(xié)議消息(以包的形式)來(lái)請(qǐng)求該存儲(chǔ)系統(tǒng)的服務(wù)。多個(gè)存儲(chǔ)系統(tǒng)可互連以提供被配置成服務(wù)許多客戶(hù)機(jī)的存儲(chǔ)系統(tǒng)環(huán)境。每個(gè)存儲(chǔ)系統(tǒng)可被配置成服務(wù)一個(gè)或多個(gè)卷,其中每個(gè)卷存儲(chǔ)一個(gè)或多個(gè)數(shù)據(jù)容器。然而通??蛻?hù)機(jī)所發(fā)出的大量的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求會(huì)被定向到由該環(huán)境的特定存儲(chǔ)系統(tǒng)服務(wù)的少量的數(shù)據(jù)服務(wù)。對(duì)這一問(wèn)題的一種解決方案是在環(huán)境的所有存儲(chǔ)系統(tǒng)之間分布由該特定存儲(chǔ)系統(tǒng)服務(wù)的卷。這進(jìn)而在所有存儲(chǔ)系統(tǒng)間分布了數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求以及服務(wù)這些請(qǐng)求所需的處理資源,從而減少了每個(gè)存儲(chǔ)系統(tǒng)上的各自的處理負(fù)載。然而,當(dāng)該存儲(chǔ)系統(tǒng)環(huán)境的客戶(hù)機(jī)重度訪(fǎng)問(wèn)僅單個(gè)數(shù)據(jù)容器(諸如文件)時(shí),出現(xiàn)顯著的不足。因此,視圖服務(wù)定向到該數(shù)據(jù)容器的請(qǐng)求的存儲(chǔ)系統(tǒng)可能超出其處理資源并變得負(fù)擔(dān)過(guò)重,并伴隨著速度和性能的降級(jí)。一種克服具有被重度利用的單個(gè)數(shù)據(jù)容器的不足的技術(shù)是跨被配置成條帶式卷集的多個(gè)卷來(lái)?xiàng)l帶化數(shù)據(jù)容器,其中每個(gè)卷由不同的存儲(chǔ)系統(tǒng)服務(wù),從而在多個(gè)存儲(chǔ)系統(tǒng)間分布單個(gè)數(shù)據(jù)容器的負(fù)載。在上面結(jié)合的標(biāo)題為“STORAGE SYSTEM ARCHITECTURE FOR STRIPING DATA CONTAINER CONTENT ACROSS VOLUMES OF A CLUSTER (用于跨集群的卷來(lái)?xiàng)l帶化數(shù)據(jù)容器內(nèi)容的存儲(chǔ)系統(tǒng)架構(gòu))”的公開(kāi)號(hào)為US2005-01i^932的美國(guó)專(zhuān)利申請(qǐng)中描述了一種用于數(shù)據(jù)容器條帶化的技術(shù)。通常,當(dāng)條帶式卷集被首次生成時(shí),服務(wù)該條帶式卷集的組成卷的組成節(jié)點(diǎn)中的每個(gè)組成節(jié)點(diǎn)利用相同的或類(lèi)似的生成技術(shù)。即,每個(gè)節(jié)點(diǎn)通常包括相同或基本相同的硬件和/或軟件配置。因此,節(jié)點(diǎn)可被視為同構(gòu)的,因?yàn)槊總€(gè)都彼此基本相同。當(dāng)在后來(lái)的時(shí)間點(diǎn)處擴(kuò)展條帶化卷集且針對(duì)新添加的節(jié)點(diǎn)顧客使用更晚(較新)產(chǎn)生的硬件和/或軟件時(shí),這樣的系統(tǒng)的顯著不足出現(xiàn)了。因?yàn)樾绿砑拥墓?jié)點(diǎn)利用最新的硬件和/或軟件,與集群的原始節(jié)點(diǎn)相比它們通常具有額外的計(jì)算能力。更一般地,當(dāng)形成任意異構(gòu)集群時(shí),即,當(dāng)集群的節(jié)點(diǎn)利用具有明顯不同的功能和/或處理器能力的系統(tǒng)時(shí),這個(gè)問(wèn)題會(huì)是明顯的。在這樣的異構(gòu)系統(tǒng)中,通常等量地利用每個(gè)節(jié)點(diǎn)來(lái)進(jìn)行條帶化操作。當(dāng)更晚生成的節(jié)點(diǎn)會(huì)有更多的處理器能力未被充分利用或未被利用時(shí),該明顯不足出現(xiàn)了。使用新的和/或更快的節(jié)點(diǎn)的優(yōu)點(diǎn)因此被浪費(fèi),因?yàn)樗鼈儗?shí)際上就像它們與集群的能力最差的節(jié)點(diǎn)(即,原始節(jié)點(diǎn))相似地被利用。為了避免處理能力的這種浪費(fèi),用戶(hù)必須確保所有節(jié)點(diǎn)是同構(gòu)型的。例如,這可以通過(guò)購(gòu)買(mǎi)較老的節(jié)點(diǎn)或用更新的型號(hào)取代較老的節(jié)點(diǎn)來(lái)實(shí)現(xiàn)。這兩種解決方案都不是最優(yōu)的,并且提高了集群式存儲(chǔ)器的總持有成本。

發(fā)明內(nèi)容
通過(guò)提供被配置成在條帶式文件系統(tǒng)中提供容量平衡的數(shù)據(jù)分布技術(shù),本發(fā)明克服了現(xiàn)有技術(shù)的不足。條帶式卷集與一組條帶化規(guī)則相關(guān)聯(lián),該條帶化規(guī)則包括可以被實(shí)現(xiàn)的條帶化數(shù)據(jù)結(jié)構(gòu),例如作為標(biāo)識(shí)卷的有序列表和數(shù)據(jù)被條帶化到其的相關(guān)聯(lián)的節(jié)點(diǎn)的條帶化表。集群的每個(gè)節(jié)點(diǎn)包括適于服務(wù)SVC的卷的磁盤(pán)元素和適于將數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求重定向到集群的任何解模塊(de-module)的網(wǎng)絡(luò)元素。將數(shù)據(jù)容器的內(nèi)容在SVS的卷間分配以由此提升由集群提供的存儲(chǔ)服務(wù)的效率。為該目的,該條帶化表指定數(shù)據(jù)容器內(nèi)容跨多個(gè)卷被分配為條帶的方式。在操作中,當(dāng)新節(jié)點(diǎn)被添加到條帶式卷集中時(shí),使條帶化表演進(jìn)以容納新添加的節(jié)點(diǎn)。在描述性實(shí)施例中,集群的每個(gè)節(jié)點(diǎn)與將例如,該節(jié)點(diǎn)可用的處理器速度、處理器數(shù)量、硬件配置和/或軟件納入考慮的容量值相關(guān)聯(lián)。在條帶化表的演進(jìn)過(guò)程中,該技術(shù)以如此方式在節(jié)點(diǎn)間分配該SVS的條帶使得根據(jù)每個(gè)節(jié)點(diǎn)的容量值將它們最優(yōu)地分配給節(jié)點(diǎn)。例如,在其中第一節(jié)點(diǎn)的容量值為100而第二節(jié)點(diǎn)的容量值為200的雙節(jié)點(diǎn)系統(tǒng)中,與第一節(jié)點(diǎn)相比第二節(jié)點(diǎn)應(yīng)當(dāng)服務(wù)兩倍的條帶以實(shí)現(xiàn)最佳性能。通過(guò)利用包括容量值的演進(jìn)式條帶化表,可在條帶式卷集中將異構(gòu)節(jié)點(diǎn)利用到其最大容量,由此減少未被充分利用的處理資源。


參考下面的描述,結(jié)合附圖,可以更好地理解本發(fā)明的上述和進(jìn)一步的優(yōu)點(diǎn),在附圖中類(lèi)似的參考標(biāo)號(hào)指示等同或功能上類(lèi)似的元件。圖1是根據(jù)本發(fā)明的描述性實(shí)施例的多個(gè)節(jié)點(diǎn)被互連為集群的示意框圖;圖2是根據(jù)本發(fā)明的描述性實(shí)施例的節(jié)點(diǎn)的示意框圖;圖3是可與本發(fā)明的描述性實(shí)施例一起有利地使用的存儲(chǔ)操作系統(tǒng)的示意框圖;圖4是示出根據(jù)本發(fā)明的描述性實(shí)施例的集群結(jié)構(gòu)(CF)消息的格式的示意框圖;圖5是示出根據(jù)本發(fā)明的描述性實(shí)施例的數(shù)據(jù)容器句柄的格式的示意框圖;圖6是根據(jù)本發(fā)明的描述性實(shí)施例的示例性inode的示意框圖;圖7是根據(jù)本發(fā)明的描述性實(shí)施例的示例性緩沖區(qū)樹(shù)的示意框圖;圖8是可與本發(fā)明一起有利地使用的文件的緩沖區(qū)樹(shù)的描述性實(shí)施例的示意框圖;圖9是根據(jù)本發(fā)明的描述性實(shí)施例的示例性聚集(aggregate)的示意框圖;圖10是根據(jù)本發(fā)明的描述性實(shí)施例的聚集的示例性磁盤(pán)上布局的示意框圖;圖11是示出根據(jù)本發(fā)明的描述性實(shí)施例的管理進(jìn)程的集合的示意框圖;圖12是根據(jù)本發(fā)明的描述性實(shí)施例的卷位置數(shù)據(jù)庫(kù)(VLDB)卷?xiàng)l目的示意框圖;圖13是根據(jù)本發(fā)明的描述性實(shí)施例的VLDB聚集條目的示意框圖;圖14是根據(jù)本發(fā)明的描述性實(shí)施例的條帶式卷集(SVS)的示意框圖;圖15是根據(jù)本發(fā)明的描述性實(shí)施例的VLDB SVS條目的示意框圖;圖16是示出根據(jù)本發(fā)明的描述性實(shí)施例的存儲(chǔ)在SVS的卷上的文件內(nèi)容的周期性稀疏的示意框圖;圖17是示出根據(jù)本發(fā)明的描述性實(shí)施例的數(shù)據(jù)容器跨SVS的條帶化的示意框圖;圖18是詳細(xì)示出根據(jù)本發(fā)明的描述性實(shí)施例的基于容量平衡執(zhí)行數(shù)據(jù)分布的過(guò)程的步驟的流程圖;以及圖19A-19D是示出根據(jù)本發(fā)明的描述性實(shí)施例的基于節(jié)點(diǎn)的添加而使條帶化表演進(jìn)的示意框圖。
具體實(shí)施方式
Α.集群環(huán)境圖1是根據(jù)本發(fā)明的描述性的實(shí)施例的多個(gè)節(jié)點(diǎn)200被互連為集群100并被配置成提供與信息在存儲(chǔ)器件上的組織有關(guān)的存儲(chǔ)服務(wù)的示意框圖。節(jié)點(diǎn)200包括各種功能部件,這些功能部件合作以提供集群100的分布式存儲(chǔ)系統(tǒng)架構(gòu)。為此,每個(gè)節(jié)點(diǎn)200被大體組織為網(wǎng)絡(luò)元件(N模塊310)和磁盤(pán)元件(D模塊350)。N模塊310包括使節(jié)點(diǎn)200能夠通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)140連接到客戶(hù)機(jī)180的功能,而每個(gè)D模塊350連接到一個(gè)或多個(gè)存儲(chǔ)器件,諸如磁盤(pán)陣列120的磁盤(pán)130。節(jié)點(diǎn)200通過(guò)集群交換結(jié)構(gòu)150互連,在該描述性的實(shí)施例中集群交換結(jié)構(gòu)150可體現(xiàn)為千兆以太網(wǎng)交換機(jī)。在2003年12月30日公告的、M. Kazar 等人的、標(biāo)題為“METHOD AND SYSTEM FOR RESPONDING TO FILE SYSTEM REQUESTS(用于響應(yīng)文件系統(tǒng)請(qǐng)求的方法和系統(tǒng))”的美國(guó)專(zhuān)利6,671,773中大體描述了一種示例性的分布式文件系統(tǒng)架構(gòu)。應(yīng)當(dāng)注意,盡管在描述性的集群100中示出了相等數(shù)量的N模塊和D模塊,然而根據(jù)本發(fā)明的各種實(shí)施例可存在不同數(shù)量的N模塊和/或D模塊。例如,可以存在多個(gè)N模塊和/或D模塊互連成不反應(yīng)N模塊和D模塊間的一一對(duì)應(yīng)的集群配置100。因此,節(jié)點(diǎn)200包括一個(gè)N模塊和一個(gè)D模塊的描述應(yīng)當(dāng)只被當(dāng)做描述性的??蛻?hù)機(jī)180可以是被配置成根據(jù)客戶(hù)機(jī)/服務(wù)器信息傳遞模型與節(jié)點(diǎn)200交互的通用計(jì)算機(jī)。即,每個(gè)客戶(hù)機(jī)可向節(jié)點(diǎn)請(qǐng)求服務(wù),而節(jié)點(diǎn)可通過(guò)經(jīng)由網(wǎng)絡(luò)140交換包,返回客戶(hù)機(jī)所請(qǐng)求的服務(wù)的結(jié)果??蛻?hù)機(jī)在訪(fǎng)問(wèn)文件和目錄形式的信息時(shí)可通過(guò)傳輸控制協(xié)議 /因特網(wǎng)協(xié)議(IP)發(fā)出包括基于文件的訪(fǎng)問(wèn)協(xié)議(諸如,公共因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議或網(wǎng)絡(luò)文件系統(tǒng)(NFS)協(xié)議)的包。替代地,客戶(hù)機(jī)在訪(fǎng)問(wèn)塊形式的信息時(shí)可發(fā)出包括基于塊的訪(fǎng)問(wèn)協(xié)議(諸如通過(guò)TCP封裝的小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議(iSCSI)和通過(guò)光纖信道(FCP)封裝的SCSI)的包。B.存儲(chǔ)系統(tǒng)節(jié)點(diǎn)圖2是描述性地體現(xiàn)為存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)200的示意框圖,該存儲(chǔ)系統(tǒng)包括由系統(tǒng)總線(xiàn)223互連的多個(gè)處理器222a,b、存儲(chǔ)器224、網(wǎng)絡(luò)適配器225、集群訪(fǎng)問(wèn)適配器226、存儲(chǔ)適配器2 和本地存儲(chǔ)器230。本地存儲(chǔ)器230包括由該節(jié)點(diǎn)用來(lái)本地存儲(chǔ)由作為用戶(hù)模式應(yīng)用1100(參見(jiàn)圖11)執(zhí)行的一個(gè)或多個(gè)管理進(jìn)程提供的配置信息(例如,在配置表 235中)的一個(gè)或多個(gè)存儲(chǔ)器件(諸如磁盤(pán))。集群訪(fǎng)問(wèn)適配器2 包括適用于將節(jié)點(diǎn)200 耦合到集群100的其他節(jié)點(diǎn)的多個(gè)端口。在描述性的實(shí)施例中,使用以太網(wǎng)作為集群化協(xié)議和互連介質(zhì),然而對(duì)本領(lǐng)域的技術(shù)人員而言,顯然,在本文所述的集群架構(gòu)內(nèi)可利用其他類(lèi)型的協(xié)議和互連。在其中N模塊和D模塊是在分開(kāi)的存儲(chǔ)系統(tǒng)或計(jì)算機(jī)上實(shí)現(xiàn)的替代實(shí)施例中,集群訪(fǎng)問(wèn)適配器2 被N模塊/D模塊用于與集群100中的其他N模塊/D模塊通
fn °每個(gè)節(jié)點(diǎn)200被描述性地體現(xiàn)為執(zhí)行存儲(chǔ)操作系統(tǒng)300的雙處理器存儲(chǔ)系統(tǒng),其優(yōu)選實(shí)現(xiàn)高級(jí)別模塊,諸如文件系統(tǒng),以將信息邏輯地組織為磁盤(pán)上的命名目錄、文件和叫做虛擬磁盤(pán)的特定類(lèi)型的文件(以下一般稱(chēng)為“塊”)的分層結(jié)構(gòu)。然而,對(duì)本領(lǐng)域的技術(shù)人員而言,顯然,節(jié)點(diǎn)200可替代地包括單個(gè)或多于兩個(gè)處理器系統(tǒng)。描述性地,一個(gè)處理器22 在該節(jié)點(diǎn)上執(zhí)行N模塊310的功能,而另一個(gè)處理器222b執(zhí)行D模塊350的功能。存儲(chǔ)器2M描述性地包括能由處理器和適配器尋址的存儲(chǔ)位置以用于存儲(chǔ)與本發(fā)明相關(guān)聯(lián)的軟件程序代碼和數(shù)據(jù)結(jié)構(gòu)。該處理器和適配器又可包括被配置成執(zhí)行該軟件代碼和操縱該數(shù)據(jù)結(jié)構(gòu)的處理元件和/或邏輯電路。存儲(chǔ)操作系統(tǒng)300(該系統(tǒng)的一部分通常駐留于存儲(chǔ)器中并由該處理元件執(zhí)行)尤其是通過(guò)調(diào)用存儲(chǔ)操作以支持由該節(jié)點(diǎn)實(shí)現(xiàn)的存儲(chǔ)服務(wù)來(lái)功能性地組織該節(jié)點(diǎn)200。對(duì)本領(lǐng)域的技術(shù)人員而言,顯然,可使用其他處理和存儲(chǔ)器裝置(包括各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括例如閃存、固態(tài)存儲(chǔ)器等)來(lái)存儲(chǔ)和執(zhí)行與本文所述的發(fā)明有關(guān)的程序指令。網(wǎng)絡(luò)適配器225包括適用于通過(guò)點(diǎn)到點(diǎn)鏈路、廣域網(wǎng)、通過(guò)公共網(wǎng)絡(luò)(因特網(wǎng))實(shí)現(xiàn)的虛擬專(zhuān)用網(wǎng)絡(luò)或共享局域網(wǎng)將節(jié)點(diǎn)200耦合到一個(gè)或多個(gè)客戶(hù)機(jī)180的多個(gè)端口。網(wǎng)絡(luò)適配器225因此可包括將節(jié)點(diǎn)連接到網(wǎng)絡(luò)所需的機(jī)械、電氣和信令電路。描述性地,計(jì)算機(jī)網(wǎng)絡(luò)140可被體現(xiàn)為以太網(wǎng)或光纖信道(FC)網(wǎng)絡(luò)。每個(gè)客戶(hù)機(jī)180可通過(guò)根據(jù)預(yù)定義協(xié)議(諸如TCP/IP)來(lái)交換分離的數(shù)據(jù)幀或包來(lái)通過(guò)網(wǎng)絡(luò)140與節(jié)點(diǎn)通信。存儲(chǔ)適配器2 與節(jié)點(diǎn)200上執(zhí)行的存儲(chǔ)操作系統(tǒng)300合作以訪(fǎng)問(wèn)客戶(hù)機(jī)所請(qǐng)求的信息。該信息可存儲(chǔ)在任何類(lèi)型的可寫(xiě)入存儲(chǔ)器件介質(zhì)附加陣列上,諸如錄像帶、光學(xué)、 DVD、磁帶、磁泡存儲(chǔ)器、電子隨機(jī)存取存儲(chǔ)器、微電子機(jī)械和適于存儲(chǔ)信息(包括數(shù)據(jù)和奇偶校驗(yàn)信息)的任何其他類(lèi)型的存儲(chǔ)器。然而,如本文描述性地描述的,該信息優(yōu)選存儲(chǔ)在陣列120的磁盤(pán)130上。該存儲(chǔ)適配器包括具有通過(guò)I/O互連布置(諸如傳統(tǒng)的高性能FC 鏈路拓?fù)浣Y(jié)構(gòu))耦合到磁盤(pán)的輸入/輸出(I/O)接口電路的多個(gè)端口。信息在每個(gè)陣列120上的存儲(chǔ)優(yōu)選地被實(shí)現(xiàn)為一個(gè)或多個(gè)存儲(chǔ)“卷”,所述卷包括物理存儲(chǔ)磁盤(pán)130的集合,這些物理存儲(chǔ)磁盤(pán)合作以限定卷(或多個(gè)卷)上的卷塊號(hào)(vbn) 空間的總的邏輯布置。每個(gè)邏輯卷通常(盡管非必然)與其自己的文件系統(tǒng)相關(guān)聯(lián)。邏輯卷/文件系統(tǒng)內(nèi)的磁盤(pán)通常被組織為一個(gè)或多個(gè)組,其中每個(gè)組可以作為獨(dú)立(或廉價(jià)) 冗余磁盤(pán)陣列(RAID)來(lái)操作。大多數(shù)RAID實(shí)現(xiàn)(諸如RAID-4級(jí)實(shí)現(xiàn))通過(guò)跨越RAID組中給定數(shù)量的物理磁盤(pán)的數(shù)據(jù)“條帶”的冗余寫(xiě)入以及與條帶式數(shù)據(jù)有關(guān)的等價(jià)信息的恰當(dāng)存儲(chǔ)增強(qiáng)了數(shù)據(jù)存儲(chǔ)的可靠性/完整性。RAID實(shí)現(xiàn)的一個(gè)描述性示例是RAID-4級(jí)實(shí)現(xiàn), 然而應(yīng)當(dāng)理解,根據(jù)本文所述的發(fā)明原理,可以使用其他類(lèi)型和級(jí)別的RAID實(shí)現(xiàn)。C.存儲(chǔ)操作系統(tǒng)為便于訪(fǎng)問(wèn)磁盤(pán)130,存儲(chǔ)操作系統(tǒng)300實(shí)現(xiàn)任意位置寫(xiě)入文件系統(tǒng),該任意位置寫(xiě)入文件系統(tǒng)與一個(gè)或多個(gè)虛擬化模塊合作以“虛擬化”磁盤(pán)130提供的存儲(chǔ)空間。該文件系統(tǒng)邏輯地將該信息組織為該磁盤(pán)上的命名目錄和文件上的分層結(jié)構(gòu)。每個(gè)“磁盤(pán)上” 文件可被實(shí)現(xiàn)為被配置成存儲(chǔ)諸如數(shù)據(jù)的信息的磁盤(pán)塊組,而目錄可被實(shí)現(xiàn)為特定格式化的文件,在該文件中存儲(chǔ)名稱(chēng)和到其他文件和目錄的鏈接。虛擬化模塊(或多個(gè)虛擬化模塊)允許文件系統(tǒng)進(jìn)一步邏輯地將信息組織為被輸出為命名邏輯單元號(hào)(Iun)的磁盤(pán)上的塊的分層結(jié)構(gòu)。在描述性實(shí)施例中,該存儲(chǔ)操作系統(tǒng)優(yōu)選為可從加利福尼亞州桑尼維爾市的 NetApp公司獲得的NetApp Data ONTAP 操作系統(tǒng),該操作系統(tǒng)實(shí)現(xiàn)了任意位置寫(xiě)入布局(WAFL )文件系統(tǒng)。然而,可以清楚地構(gòu)想,可增強(qiáng)任何合適的存儲(chǔ)操作系統(tǒng)以根據(jù)本文所述的發(fā)明原理使用。因此,當(dāng)采用術(shù)語(yǔ)“0ΝΤΑΡ”時(shí),應(yīng)當(dāng)將其寬泛地指的是指能以其他方式適用于本發(fā)明的教導(dǎo)的任何存儲(chǔ)操作系統(tǒng)。圖3是可與本發(fā)明一起有利地使用的存儲(chǔ)操作系統(tǒng)300的示意框圖。該存儲(chǔ)操作系統(tǒng)包括被組織為形成集成網(wǎng)絡(luò)協(xié)議棧或更一般地多協(xié)議引擎325的一系列軟件層,該集成網(wǎng)絡(luò)協(xié)議?;蚨鄥f(xié)議引擎為客戶(hù)機(jī)提供數(shù)據(jù)路徑以使用塊和文件訪(fǎng)問(wèn)協(xié)議來(lái)訪(fǎng)問(wèn)存儲(chǔ)在節(jié)點(diǎn)上的信息。該多協(xié)議引擎包括網(wǎng)絡(luò)驅(qū)動(dòng)器(例如,千兆級(jí)以太網(wǎng)驅(qū)動(dòng)器)的介質(zhì)訪(fǎng)問(wèn)層312、TCP層316和用戶(hù)數(shù)據(jù)報(bào)協(xié)議(UDP)層315,該介質(zhì)訪(fǎng)問(wèn)層312接口連接到網(wǎng)絡(luò)協(xié)議層,諸如IP層314及其支持傳送機(jī)制。文件系統(tǒng)協(xié)議層提供多協(xié)議文件訪(fǎng)問(wèn),并且為該目的,包括對(duì)直接訪(fǎng)問(wèn)文件系統(tǒng)(DAre)協(xié)議318、NFS協(xié)議320、CIFS協(xié)議322和超文本傳輸協(xié)議(HTTP)協(xié)議324的支持。VI層3 實(shí)現(xiàn)VI架構(gòu)以提供直接訪(fǎng)問(wèn)傳送(DAT)能力,諸如RDMA,如DAFS協(xié)議318所需的那樣。iSCSI驅(qū)動(dòng)器層3 通過(guò)TCP/IP網(wǎng)絡(luò)協(xié)議層提供塊協(xié)議訪(fǎng)問(wèn),而FC驅(qū)動(dòng)器層330接收并傳送去往和來(lái)自該節(jié)點(diǎn)的塊訪(fǎng)問(wèn)請(qǐng)求和響應(yīng)。 FC和iSCSI驅(qū)動(dòng)器提供FC專(zhuān)用的和iSCSI專(zhuān)用的對(duì)塊的訪(fǎng)問(wèn)控制,并因此管理在訪(fǎng)問(wèn)節(jié)點(diǎn) 200上的塊時(shí)Iun到iSCSI或FCP的輸出,或替代地到iSCSI和FCP兩者的輸出。此外,存儲(chǔ)操作系統(tǒng)包括被組織為形成存儲(chǔ)服務(wù)器365的一系列軟件模塊,該存儲(chǔ)服務(wù)器365提供用于訪(fǎng)問(wèn)存儲(chǔ)在節(jié)點(diǎn)200的磁盤(pán)130上的信息的數(shù)據(jù)路徑。為該目的, 存儲(chǔ)服務(wù)器365包括與卷?xiàng)l帶化模塊(VSM) 370具有合作關(guān)系的文件系統(tǒng)模塊360、RAID系統(tǒng)模塊380和磁盤(pán)驅(qū)動(dòng)器系統(tǒng)模塊390。RAID系統(tǒng)380根據(jù)I/O操作管理去往和來(lái)自卷/ 磁盤(pán)的信息存儲(chǔ)和取回,而磁盤(pán)驅(qū)動(dòng)器系統(tǒng)390實(shí)現(xiàn)磁盤(pán)訪(fǎng)問(wèn)協(xié)議,諸如例如SCSI協(xié)議。 VSM 370描述性地實(shí)現(xiàn)條帶式卷集(SVS)。如本文進(jìn)一步描述的,VSM與文件系統(tǒng)360合作以使存儲(chǔ)服務(wù)器365能夠服務(wù)該SVS的卷。具體而言,VSM 370實(shí)現(xiàn)LocateO函數(shù)375以計(jì)算數(shù)據(jù)容器內(nèi)容在SVS卷中的位置,從而確保由集群服務(wù)的這些內(nèi)容的一致性。文件系統(tǒng)360通過(guò)與被描述性地體現(xiàn)為例如虛擬磁盤(pán)(vdisk)模塊(未示出)和 SCSI目標(biāo)模塊335的一個(gè)或多個(gè)虛擬化模塊的交互來(lái)實(shí)現(xiàn)存儲(chǔ)操作系統(tǒng)300的虛擬化系統(tǒng)。響應(yīng)于用戶(hù)(系統(tǒng)管理員)向節(jié)點(diǎn)200發(fā)出命令,vdisk模塊允許通過(guò)管理接口的訪(fǎng)問(wèn),該管理接口諸如為管理框架1110的用戶(hù)接口(參見(jiàn)圖11)。SCSI目標(biāo)模塊335通常被布置在FC和iSCSI驅(qū)動(dòng)器3觀(guān)、330和文件系統(tǒng)360之間以提供塊(Iim)空間和文件系統(tǒng)空間之間的虛擬化系統(tǒng)的轉(zhuǎn)換層,其中Iim被表示為塊。描述性地,文件系統(tǒng)360是基于消息的系統(tǒng),該系統(tǒng)提供邏輯卷管理能力以在訪(fǎng)問(wèn)存儲(chǔ)在諸如磁盤(pán)的存儲(chǔ)器件上的信息時(shí)使用。即,除了提供文件系統(tǒng)語(yǔ)義外,文件系統(tǒng) 360提供通常與卷管理器相關(guān)聯(lián)的功能。這些功能包括(i)磁盤(pán)的聚集,(ii)磁盤(pán)的存儲(chǔ)帶寬的聚集,以及(iii)可靠性保證,諸如鏡像和/或奇偶校驗(yàn)(RAID)。描述性地,文件系統(tǒng)360實(shí)現(xiàn)具有磁盤(pán)上格式表示的WAFL文件系統(tǒng)(后文一般稱(chēng)為“任意位置寫(xiě)入文件系統(tǒng)”),該格式表示是使用例如4千字節(jié)(KB)塊和使用索引節(jié)點(diǎn)(“inode”)的基于塊的, 以標(biāo)識(shí)文件和文件屬性(諸如創(chuàng)建時(shí)間、訪(fǎng)問(wèn)許可、大小和塊位置)。該文件系統(tǒng)使用文件來(lái)存儲(chǔ)描述其文件系統(tǒng)的布局的元數(shù)據(jù);這些元數(shù)據(jù)文件尤其包括inode文件。使用文件句柄(即,包括inode號(hào)的標(biāo)識(shí)符)來(lái)從磁盤(pán)取回inode。泛言之,該任意位置寫(xiě)入文件系統(tǒng)的所有inode被組織成inode文件。文件系統(tǒng) (fs)信息塊指定信息在該文件系統(tǒng)中的布局并包括含有該文件系統(tǒng)的所有其他inode的文件的inode。每個(gè)邏輯卷(文件系統(tǒng))具有fsinfo塊,該fsinfo塊優(yōu)選存儲(chǔ)在固定位置處,例如在RAID組內(nèi)的固定位置處。inode文件的inode可直接引用(指向)該inode文件的數(shù)據(jù)塊或可引用該inode文件的間接塊,該間接塊又進(jìn)而引用該inode文件的數(shù)據(jù)塊。 在^iode被嵌入該inode文件的每個(gè)數(shù)據(jù)塊中,其中每個(gè)都可引用間接塊,該間接塊又引用
9文件的數(shù)據(jù)塊??刹僮鞯?,來(lái)自客戶(hù)機(jī)180的請(qǐng)求被作為包通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)140轉(zhuǎn)發(fā)并到達(dá)節(jié)點(diǎn) 200,在該處它在網(wǎng)絡(luò)適配器225處被接收。(層312或?qū)?30的)網(wǎng)絡(luò)驅(qū)動(dòng)器處理該包,并且如果恰當(dāng)?shù)脑?huà),則將其傳遞給網(wǎng)絡(luò)協(xié)議和文件訪(fǎng)問(wèn)層以在轉(zhuǎn)發(fā)到任意位置寫(xiě)入文件系統(tǒng) 360之前進(jìn)行進(jìn)一步處理。在此,如果所請(qǐng)求的數(shù)據(jù)沒(méi)有駐留于“核內(nèi)”,即存儲(chǔ)器224中, 則該文件系統(tǒng)生成操作以從磁盤(pán)130加載(取回)該數(shù)據(jù)。如果該信息不在存儲(chǔ)器中,則文件系統(tǒng)360使用inode號(hào)索引到inode文件中以訪(fǎng)問(wèn)恰當(dāng)?shù)臈l目并取回邏輯vbn。然后該文件系統(tǒng)將包括該邏輯vbn的消息結(jié)構(gòu)傳遞到RAID系統(tǒng)380 ;該邏輯vbn被映射到磁盤(pán)標(biāo)識(shí)符和磁盤(pán)塊號(hào)(磁盤(pán),dbn)并被發(fā)送至磁盤(pán)驅(qū)動(dòng)器系統(tǒng)390的適當(dāng)?shù)尿?qū)動(dòng)器(例如, SCSI)。該磁盤(pán)驅(qū)動(dòng)器從該指定的磁盤(pán)130訪(fǎng)問(wèn)該dbn并將所請(qǐng)求的數(shù)據(jù)塊(或多個(gè)數(shù)據(jù)塊)加載到存儲(chǔ)器中以由該節(jié)點(diǎn)處理。在完成該請(qǐng)求時(shí),節(jié)點(diǎn)(和操作系統(tǒng))通過(guò)網(wǎng)絡(luò)140 向客戶(hù)機(jī)180返回應(yīng)答。應(yīng)當(dāng)注意,上面描述的執(zhí)行對(duì)在該節(jié)點(diǎn)處接收的客戶(hù)機(jī)請(qǐng)求的數(shù)據(jù)存儲(chǔ)訪(fǎng)問(wèn)所需的通過(guò)存儲(chǔ)操作系統(tǒng)層的軟件“路徑”可替代地用硬件實(shí)現(xiàn)。即,在本發(fā)明的替代實(shí)施例中,可將存儲(chǔ)訪(fǎng)問(wèn)請(qǐng)求數(shù)據(jù)路徑實(shí)現(xiàn)為體現(xiàn)在現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或?qū)S眉呻娐?(ASIC)內(nèi)的邏輯電路。這類(lèi)硬件實(shí)現(xiàn)增加了節(jié)點(diǎn)200響應(yīng)于客戶(hù)機(jī)180發(fā)出的請(qǐng)求提供的存儲(chǔ)服務(wù)的性能。而且,在本發(fā)明的另一替代實(shí)施例中,適配器225、2觀(guān)的處理元件可被配置成分別從處理器222卸載包處理和存儲(chǔ)訪(fǎng)問(wèn)操作中的一些或全部,從而增加節(jié)點(diǎn)提供的存儲(chǔ)服務(wù)的性能。可以清楚地構(gòu)想,本文所述的各種進(jìn)程、架構(gòu)和過(guò)程可以用硬件、固件或軟件實(shí)現(xiàn)。如本文中所使用的那樣,術(shù)語(yǔ)“存儲(chǔ)操作系統(tǒng)” 一般指能在計(jì)算機(jī)上操作以執(zhí)行存儲(chǔ)功能的計(jì)算機(jī)可執(zhí)行代碼,該存儲(chǔ)功能管理數(shù)據(jù)訪(fǎng)問(wèn)并且在節(jié)點(diǎn)200的情況下可實(shí)現(xiàn)通用操作系統(tǒng)的數(shù)據(jù)訪(fǎng)問(wèn)語(yǔ)義。該存儲(chǔ)操作系統(tǒng)還可被實(shí)現(xiàn)為微內(nèi)核、在通用操作系統(tǒng)(諸如UNIX or Windows ΝΓ )上操作的應(yīng)用程序、或?yàn)榫哂锌膳渲霉δ艿耐ㄓ貌僮飨到y(tǒng), 其被配置成用于如本文所述的存儲(chǔ)應(yīng)用。此外,應(yīng)該理解,對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本文所述的發(fā)明可應(yīng)用于任何類(lèi)型的專(zhuān)用(例如,文件服務(wù)器、文件管理器或存儲(chǔ)服務(wù)設(shè)備)或通用計(jì)算機(jī),包括獨(dú)立計(jì)算機(jī)或其一部分,體現(xiàn)為存儲(chǔ)系統(tǒng)或包括存儲(chǔ)系統(tǒng)。而且,本發(fā)明的教導(dǎo)可適用于各種存儲(chǔ)系統(tǒng)架構(gòu),包括但不限于網(wǎng)絡(luò)連接存儲(chǔ)環(huán)境、存儲(chǔ)區(qū)域網(wǎng)絡(luò)和直接連接到客戶(hù)機(jī)或主機(jī)計(jì)算機(jī)的磁盤(pán)組件。術(shù)語(yǔ)“存儲(chǔ)系統(tǒng)”應(yīng)被寬泛地認(rèn)為除了被配置成執(zhí)行存儲(chǔ)功能并與其他設(shè)備或系統(tǒng)相關(guān)聯(lián)的任何子系統(tǒng)之外還包括這些布置。應(yīng)當(dāng)注意,盡管本描述是從任意位置寫(xiě)入文件系統(tǒng)方面來(lái)寫(xiě)的,然而本發(fā)明的教導(dǎo)可在任何合適的文件系統(tǒng)內(nèi)采用,包括原地寫(xiě)入文件系統(tǒng)。D. CF 協(xié)議在描述性實(shí)施例中,存儲(chǔ)服務(wù)器365被體現(xiàn)為存儲(chǔ)操作系統(tǒng)300的D模塊350以服務(wù)陣列120的一個(gè)或多個(gè)卷。此外,多協(xié)議引擎325被體現(xiàn)為N模塊310以(i)執(zhí)行關(guān)于客戶(hù)機(jī)經(jīng)由網(wǎng)絡(luò)140發(fā)出的輸入數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求包的協(xié)議終止,以及(ii)將那些數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求重定向到集群100的任何存儲(chǔ)服務(wù)器365。而且,N模塊310和D模塊350合作以提供集群100的高度可擴(kuò)展性、分布式存儲(chǔ)系統(tǒng)架構(gòu)。為該目的,每個(gè)模塊包括適于實(shí)現(xiàn)模塊間的集群內(nèi)通信的集群結(jié)構(gòu)(CF)接口模塊340a,b,集群內(nèi)通信包括用于本文所述的數(shù)據(jù)容器條帶化操作的D模塊到D模塊通信。N模塊310的協(xié)議層(例如,NFS/CIFS層和iSCSI/FC層)用作協(xié)議服務(wù)器,該協(xié)議服務(wù)器將來(lái)自客戶(hù)機(jī)的基于文件和基于塊的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)換為CF協(xié)議消息用于與D 模塊350進(jìn)行通信。即,N模塊服務(wù)器將輸入的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)換為被CF接口模塊340嵌入在CF消息內(nèi)的文件系統(tǒng)原語(yǔ)操作(命令)以傳輸?shù)郊?00的D模塊350。注意,CF接口模塊340合作以提供跨集群100內(nèi)的所有D模塊350的單一文件系統(tǒng)鏡像。因此,接收客戶(hù)機(jī)請(qǐng)求的N模塊的任何網(wǎng)絡(luò)端口可訪(fǎng)問(wèn)位于集群的任何D模塊350上的單個(gè)文件系統(tǒng)鏡像內(nèi)的任何數(shù)據(jù)容器。進(jìn)一步地參考描述性實(shí)施例,N模塊310和D模塊350被實(shí)現(xiàn)為存儲(chǔ)操作系統(tǒng)300 的分開(kāi)調(diào)度的進(jìn)程;然而,在替代實(shí)施例中,這些模塊可被實(shí)現(xiàn)為單個(gè)操作系統(tǒng)進(jìn)程內(nèi)的代碼段。描述性地,N模塊和D模塊之間的通信因此通過(guò)在模塊間傳遞的消息的使用而生效, 盡管在不同節(jié)點(diǎn)的N模塊和D模塊間的遠(yuǎn)程通信的情況下,這樣的消息傳遞在集群交換結(jié)構(gòu)150上發(fā)生。由存儲(chǔ)操作系統(tǒng)提供的用于在模塊(進(jìn)程)間傳輸消息的一種已知的消息傳遞機(jī)制是進(jìn)程間通信(IPC)機(jī)制。描述性地,與該IPC機(jī)制一起使用的協(xié)議是通用文件和/或基于塊的“不可知”CF協(xié)議,其包括構(gòu)成CF應(yīng)用編程接口(API)的方法/功能的集合。這樣的不可知協(xié)議的示例是可從NetApp公司獲得的SpinFS和SpinNP協(xié)議。CF接口模塊340實(shí)現(xiàn)用于在集群100的模塊間傳遞文件系統(tǒng)命令的CF協(xié)議。描述性地,通信通過(guò)D模塊將CF API暴露而被實(shí)現(xiàn),其中N模塊(或另一D模塊)發(fā)出調(diào)用到該CF API。為該目的,CF接口模塊340被組織為CF編碼器和CF解碼器。CF編碼器,例如 N模塊310上的CF接口 340a的CF編碼器,將CF消息封裝為(i)本地過(guò)程調(diào)用(LPC),當(dāng)向在同一節(jié)點(diǎn)200上駐留的D模塊350傳遞文件系統(tǒng)命令時(shí),或(ii)遠(yuǎn)程過(guò)程調(diào)用(RPC), 當(dāng)向在集群100的遠(yuǎn)程節(jié)點(diǎn)上駐留的D模塊傳遞命令時(shí)。在任一情況下,D模塊350上的 CF接口 340b的CF解碼器解封裝該CF消息并處理該文件系統(tǒng)命令。圖4是示出根據(jù)本發(fā)明的實(shí)施例的CF消息400的格式的示意框圖。CF消息400 被描述性地用于在集群100的遠(yuǎn)程模塊間通過(guò)交換結(jié)構(gòu)150進(jìn)行RPC通信;然而,應(yīng)當(dāng)理解,術(shù)語(yǔ)“CF消息”可通常用于指集群的模塊間的LPC和RPC通信。CF消息400包括介質(zhì)訪(fǎng)問(wèn)層402、IP層404、UPD層406、可靠連接(RC)層408和CF協(xié)議層410。如所指出的,該 CF協(xié)議是通用文件系統(tǒng)協(xié)議,其傳遞與客戶(hù)機(jī)訪(fǎng)問(wèn)存儲(chǔ)在集群100上的數(shù)據(jù)容器的請(qǐng)求內(nèi)包含的操作有關(guān)的文件系統(tǒng)命令;CF協(xié)議層410是承載該文件系統(tǒng)命令的消息400的一部分。描述性地,CF協(xié)議是基于數(shù)據(jù)報(bào)的,并且因此涉及消息或“信包”以可靠方式從源(例如,N模塊310)到目的地(例如,D模塊350)的傳輸。RC層408實(shí)現(xiàn)適于根據(jù)無(wú)連接協(xié)議 (諸如UDP 406)處理這些信包的可靠傳送協(xié)議。使用數(shù)據(jù)容器句柄在文件系統(tǒng)中訪(fǎng)問(wèn)數(shù)據(jù)容器(例如文件)。圖5是示出數(shù)據(jù)容器句柄500的格式的示意框圖,該數(shù)據(jù)容器句柄包括SVS ID字段502、inode號(hào)字段504、唯一標(biāo)識(shí)符(unique-ifier)字段506、條帶式標(biāo)志字段508和條帶化世代號(hào)(印och number) 字段510。SVS ID字段502包含數(shù)據(jù)容器所駐留的SVS(在集群100內(nèi))的全局標(biāo)識(shí)符。 Inode號(hào)字段504包含與該數(shù)據(jù)容器有關(guān)的(在inode文件內(nèi)的)inode的inode號(hào)。唯一標(biāo)識(shí)符字段506包含單調(diào)增加的號(hào),該號(hào)唯一標(biāo)識(shí)數(shù)據(jù)容器句柄500。唯一標(biāo)識(shí)符在inode號(hào)已被刪除、重用并重新分配給新數(shù)據(jù)容器的情況下特別有用。唯一標(biāo)識(shí)符將特定數(shù)據(jù)容器中的那個(gè)重新使用的inode號(hào)與那些字段的可能的以前使用區(qū)分開(kāi)。描述性地,條帶式標(biāo)志字段508是標(biāo)識(shí)該數(shù)據(jù)容器是否是條帶化的布爾值。條帶化世代號(hào)字段510指示對(duì)于其中該SVS對(duì)不同的數(shù)據(jù)容器采用不同的條帶化技術(shù)的實(shí)施例來(lái)說(shuō)供這個(gè)數(shù)據(jù)容器所使用的適當(dāng)?shù)臈l帶化技術(shù)。E.文件系統(tǒng)組織在描述性實(shí)施例中,數(shù)據(jù)容器在該任意位置寫(xiě)入文件系統(tǒng)中被表示為適合于在磁盤(pán)130上存儲(chǔ)的inode數(shù)據(jù)結(jié)構(gòu)。圖6是inode 600的示意框圖,該inode優(yōu)選包括元數(shù)據(jù)段605和數(shù)據(jù)段660。每個(gè)inodeeOO的元數(shù)據(jù)段605中存儲(chǔ)的信息描述該數(shù)據(jù)容器(例如,文件)并且因此包括文件的類(lèi)型(例如,正常、目錄、vdisk)610、其大小615、時(shí)間戳(例如,訪(fǎng)問(wèn)和/或修改時(shí)間)620和該文件的持有關(guān)系,即,用戶(hù)標(biāo)識(shí)符(UID 625)和組ID (GID 630)。每個(gè)inode的數(shù)據(jù)段660的內(nèi)容可被不同地解釋?zhuān)@取決于類(lèi)型字段610內(nèi)定義的文件類(lèi)型(inode)。例如,目錄inode的數(shù)據(jù)段660包含由該文件系統(tǒng)控制的元數(shù)據(jù),而正常inode的數(shù)據(jù)段包含文件系統(tǒng)數(shù)據(jù)。在后一種情況下,數(shù)據(jù)段660包括與該文件相關(guān)聯(lián)的數(shù)據(jù)的表示。具體而言,正常磁盤(pán)上的inode的數(shù)據(jù)段660可包括文件系統(tǒng)數(shù)據(jù)或指針,后者引用用于存儲(chǔ)該文件系統(tǒng)數(shù)據(jù)的磁盤(pán)上的4KB數(shù)據(jù)塊。每個(gè)指針優(yōu)選為邏輯vbn以利于在訪(fǎng)問(wèn)磁盤(pán)上的數(shù)據(jù)時(shí)該文件系統(tǒng)和RAID系統(tǒng)380間的效率。給定inode的受約束的大小(例如,128字節(jié)),大小小于或等于64字節(jié)的文件系統(tǒng)數(shù)據(jù)在該inode的數(shù)據(jù)段內(nèi)全部被表示。然而,如果該數(shù)據(jù)容器的內(nèi)容的長(zhǎng)度超出64字節(jié)但是小于或等于64KB,則該inode (例如,第一級(jí)inode)的數(shù)據(jù)段包括多達(dá)16個(gè)指針,每個(gè)指針引用磁盤(pán)上的4KB數(shù)據(jù)塊。而且,如果數(shù)據(jù)的大小大于64KB但是小于或等于64兆字節(jié)(MB),則inode (例如, 第二級(jí)inode)的數(shù)據(jù)段660中的每個(gè)指針引用包含10M個(gè)指針的間接塊(例如,第一級(jí) Ll塊),其中10M個(gè)指針中的每個(gè)指針引用磁盤(pán)上的4KB數(shù)據(jù)塊。對(duì)于大小大于64MB的文件系統(tǒng),inode(例如,第三級(jí)L3 inode)的數(shù)據(jù)塊660中的每個(gè)指針引用包含10M個(gè)指針的雙間接塊(例如,第二級(jí)L2塊),該10M個(gè)指針中的每個(gè)指針引用間接(例如,第一級(jí) Li)塊。該間接塊又包含10M個(gè)指針,該10M個(gè)指針中的每個(gè)指針引用磁盤(pán)上的4KB數(shù)據(jù)塊。當(dāng)訪(fǎng)問(wèn)文件時(shí),文件的每個(gè)塊可從磁盤(pán)130加載到存儲(chǔ)器224中。當(dāng)磁盤(pán)上inode (或塊)被從磁盤(pán)130加載到存儲(chǔ)器224中時(shí),其相應(yīng)核心內(nèi) (in-core)結(jié)構(gòu)嵌入磁盤(pán)上結(jié)構(gòu)。例如,圍繞inode 600的虛線(xiàn)指示該磁盤(pán)上inode結(jié)構(gòu)的核心內(nèi)表示。該核心內(nèi)結(jié)構(gòu)是存儲(chǔ)該磁盤(pán)上結(jié)構(gòu)加上管理該存儲(chǔ)器內(nèi)(但是不在磁盤(pán)上的)的數(shù)據(jù)所需的附加信息的存儲(chǔ)器塊。該附加信息可包括例如“無(wú)效(dirty)”位670。 在inode(或塊)中的數(shù)據(jù)被更新/修改之后,如由例如寫(xiě)入操作所指示的那樣,使用無(wú)效位670將該經(jīng)修改的數(shù)據(jù)標(biāo)記為“無(wú)效”以便該inode (塊)隨后可被“沖”(存儲(chǔ))到磁盤(pán)。圖7是可與本發(fā)明一起有利地使用的文件的緩沖區(qū)樹(shù)(buffer tree)的實(shí)施例的示意框圖。緩沖區(qū)樹(shù)是被加載到存儲(chǔ)器22M中的文件(例如,文件700)的塊的內(nèi)部表示并由任意位置寫(xiě)入文件系統(tǒng)360保持。根(頂級(jí))inode 702,如嵌入inode,引用間接(例如,第一級(jí))塊704。注意,可能存在附加的間接塊級(jí)別(例如,第二級(jí)和第三級(jí)),這取決于文件的大小。這些間接塊(和inode)包含指針705,指針705最終引用用于存儲(chǔ)該文件的實(shí)際數(shù)據(jù)的數(shù)據(jù)塊706。S卩,文件700的數(shù)據(jù)被包含在數(shù)據(jù)塊中并且這些塊的位置被存儲(chǔ)在文件的間接塊中。每個(gè)第一級(jí)間接塊704可包含指向與IOM個(gè)數(shù)據(jù)塊一樣多的指針。 根據(jù)文件系統(tǒng)的“任意位置寫(xiě)入”性質(zhì),這些塊可位于磁盤(pán)130上的任意位置。提供將底層物理卷分配為諸如節(jié)點(diǎn)200的存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)虛擬卷(或靈活 (flexible)卷)的文件系統(tǒng)布局。在John K. Edwards等人的、轉(zhuǎn)讓給NetApp公司的、已于 2008 年 8 月 5 日公告的、標(biāo)題為“EXTENSION OF WRITE ANYWHERE FILE SYSTEM LAYOUT (任意位置寫(xiě)入文件系統(tǒng)布局的擴(kuò)展),,的美國(guó)專(zhuān)利7,409,494中描述了這種文件系統(tǒng)布局的一個(gè)示例。底層物理卷是包括該節(jié)點(diǎn)的一個(gè)或多個(gè)磁盤(pán)組(如RAID組)的聚集。該聚集有其自己的物理卷塊號(hào)(pvbn)空間并在該pvbn空間內(nèi)保持元數(shù)據(jù),如塊分配結(jié)構(gòu)。每個(gè)靈活卷有其自己的虛擬卷塊號(hào)(vvbn)空間并在該wbn空間內(nèi)保持元數(shù)據(jù),如塊分配結(jié)構(gòu)。 每個(gè)靈活卷是與容器文件相關(guān)聯(lián)的文件系統(tǒng),該容器文件是該聚集中包含由該靈活卷使用的所有塊的文件。而且,每個(gè)靈活卷包括包含指向其他間接塊或數(shù)據(jù)塊的塊指針的數(shù)據(jù)塊和間接塊。在一個(gè)實(shí)施例中,pvbn被用作存儲(chǔ)在靈活卷中的文件(諸如文件700)的緩沖區(qū)樹(shù)內(nèi)的塊指針。該“混合”靈活塊實(shí)施例涉及在父間接塊(例如,inode或間接塊)中只插入pvbn。在邏輯卷的讀取路徑上,“邏輯”卷(vol)信息塊具有引用一個(gè)或多個(gè)fsinfo塊的一個(gè)或多個(gè)指針,每個(gè)fsinfo塊又指向inode文件及其相應(yīng)的inode緩沖區(qū)樹(shù)。靈活卷上的讀取路徑通常相同,沿著pvbn(而不是vvbn)來(lái)找到塊的適當(dāng)位置;在此情況中,靈活卷的讀取路徑(及其相應(yīng)的讀取性能)與物理卷的讀取路徑(及其相應(yīng)的讀取性能)基本類(lèi)似。從pvbn到磁盤(pán),dbn的轉(zhuǎn)換發(fā)生在存儲(chǔ)操作系統(tǒng)300的文件系統(tǒng)/RAID系統(tǒng)邊界處。在一個(gè)雙vbn混合靈活卷實(shí)施例中,pvbn及其相應(yīng)的wbn兩者都被插入到文件的緩沖區(qū)樹(shù)中的父間接塊中。即,pvbn和wbn作為每個(gè)塊指針的對(duì)被存儲(chǔ)在具有指向其他塊(例如,第一級(jí)(Li)塊、inode文件第0級(jí)(LO)塊)的指針的大多數(shù)緩沖區(qū)樹(shù)結(jié)構(gòu)中。 圖8是可與本發(fā)明一起有利地使用的文件800的緩沖區(qū)樹(shù)的描述性實(shí)施例的示意框圖。根 (頂級(jí))in0de 802,如嵌入inode,引用間接(例如,第一級(jí))塊804。注意,可能存在附加的間接塊級(jí)別(例如,第二級(jí)、第三級(jí)),這取決于文件的大小。這些間接塊(和inode)包含 pvbn/vvbn指針對(duì)結(jié)構(gòu)808,該結(jié)構(gòu)808最終引用用于存儲(chǔ)文件的實(shí)際數(shù)據(jù)的數(shù)據(jù)塊806。pvbn引用聚集的磁盤(pán)上的位置,而wbn引用靈活卷的文件內(nèi)的位置。使用pvbn 作為間接塊804中的塊指針808提供讀取路徑方面的效率,而是用wbn塊指針提供訪(fǎng)問(wèn)所需元數(shù)據(jù)的高效訪(fǎng)問(wèn)。即,當(dāng)清空文件的塊時(shí),文件中的父間接塊包含容易得到的vvbn塊指針,這避免了與訪(fǎng)問(wèn)擁有者映射以執(zhí)行pvbn到wbn轉(zhuǎn)換相關(guān)聯(lián)的等待時(shí)間;而在讀取路徑上,該pvbn可用。圖9是可與本發(fā)明一起有利地使用的聚集900的實(shí)施例的示意框圖。 Lun(塊)902、目錄904、qtree 906和文件908可被包含在諸如雙vbn靈活卷的靈活卷910 內(nèi),該靈活卷又被包含在聚集900內(nèi)。描述性地,聚集900被加層在RAID系統(tǒng)上,RAID系統(tǒng)由至少一個(gè)RAID叢950表示(取決于該存儲(chǔ)配置是否被鏡像),其中每個(gè)叢950包括至少一個(gè)RAID組960。每個(gè)RAID組還包括多個(gè)磁盤(pán)930,例如,一個(gè)或多個(gè)數(shù)據(jù)(D)磁盤(pán)和至少以一個(gè)(P)奇偶校驗(yàn)磁盤(pán)。而聚集900類(lèi)似于傳統(tǒng)存儲(chǔ)系統(tǒng)的物理卷,靈活卷類(lèi)似于該物理卷內(nèi)的文件。艮口,CN 102460439 A說(shuō)明 書(shū)11/17 頁(yè)
聚集900可包括一個(gè)或多個(gè)文件,其中每個(gè)文件包含靈活卷910且其中被靈活卷消耗的存儲(chǔ)空間的總和在物理上小于(或等于)總物理卷的大小。聚集利用定義由物理卷的磁盤(pán)所提供的塊的存儲(chǔ)空間的物理pvpn空間,而(在文件內(nèi)的)每個(gè)嵌入的靈活卷利用邏輯wbn 空間來(lái)組織那些塊,例如,作為文件。每個(gè)vvbn空間是與文件內(nèi)的位置相對(duì)應(yīng)的號(hào)的獨(dú)立集合,然后將這些位置轉(zhuǎn)換為磁盤(pán)上的dbn。因?yàn)殪`活卷910還是邏輯卷,它有其自己在其 vvbn空間中的塊分配結(jié)構(gòu)(例如,有效、空間和總結(jié)映射)。容器文件是該聚集中包含被靈活卷使用的所有塊的文件。容器文件是支持靈活卷的內(nèi)部(對(duì)該聚集而言)特征;描述性地,每個(gè)靈活卷存在一個(gè)容器文件。類(lèi)似于文件方法中的純邏輯卷,該容器文件是該聚集中保持被該靈活卷所用的每一個(gè)塊的隱藏文件(對(duì)用戶(hù)來(lái)說(shuō)不能訪(fǎng)問(wèn))。該聚集包括包含靈活卷的子目錄的描述性隱藏元數(shù)據(jù)根目錄WAFL/fsid/filesystem file, storage label file具體而言,物理文件系統(tǒng)(WAFL)目錄包括用于該聚集中每個(gè)靈活卷的子目錄,其中子目錄的名稱(chēng)是該靈活卷的文件系統(tǒng)標(biāo)識(shí)符(fsid)。每個(gè)fsid子目錄(靈活卷)包含至少兩個(gè)文件,filesystem文件和存儲(chǔ)標(biāo)簽文件。描述性地,該存儲(chǔ)標(biāo)簽文件是包含類(lèi)似于傳統(tǒng)raid標(biāo)簽中所存儲(chǔ)的元數(shù)據(jù)的元數(shù)據(jù)的4KB文件。換言之,該存儲(chǔ)標(biāo)簽文件類(lèi)似于 raid標(biāo)簽,并且因此包含有關(guān)該靈活卷的狀態(tài)的信息,諸如,例如該靈活卷的名稱(chēng)、該靈活卷的通用唯一標(biāo)識(shí)符(imid)和fsid、其是否在線(xiàn)、正在被創(chuàng)造或正在被損壞等。圖10是聚集1000的磁盤(pán)上表示的示意框圖。存儲(chǔ)操作系統(tǒng)300(例如,RAID系統(tǒng) 380)組合pvbn的物理卷以創(chuàng)建聚集1000,其中pbvnl和2包括該聚集的“物理” volinfo 塊1002。Volinfo塊1002包含指向fsinfo塊1004的指針,每個(gè)fsinfo塊可表示該聚集的瞬像(snapshot)。每個(gè)fsinfo塊1004包括指向包含多個(gè)文件的inode的inode文件 1006的塊指針,該多個(gè)文件包括擁有者映射1010、有效映射1012、總結(jié)映射1014和空間映射1016以及其他特殊元數(shù)據(jù)文件。Inode文件1006還包括根目錄1020和“隱藏”元數(shù)據(jù)根目錄1030,后者包括具有與在其中用戶(hù)不能“看到”的文件的靈活卷相關(guān)的文件的名稱(chēng)空間。隱藏元數(shù)據(jù)根目錄包括WAFL/fsia/目錄結(jié)構(gòu),該目錄結(jié)構(gòu)包含filesystem文件1040 和存儲(chǔ)標(biāo)簽文件1090。注意,該聚集中的根目錄1020為空;與該聚集相關(guān)的所有文件被組織在該隱藏元數(shù)據(jù)根目錄1030內(nèi)。除了被體現(xiàn)為具有被組織成容器映射的第一級(jí)塊的容器文件之外,filesystem文件1040還包括引用被體現(xiàn)為靈活卷1050的各種文件系統(tǒng)的塊指針。聚集1000在專(zhuān)門(mén)保留的inode號(hào)處保持這些靈活卷1050。每個(gè)靈活卷1050還在其靈活卷空間內(nèi)具有專(zhuān)門(mén)保留的inode號(hào),這些inode號(hào)尤其用于塊分配位圖結(jié)構(gòu)。如上所述,塊分配位圖結(jié)構(gòu)(例如, 有效映射1062、總結(jié)映射1064和空間映射1066)位于每個(gè)靈活卷內(nèi)。具體而言,每個(gè)靈活卷1050具有與該聚集的inode文件結(jié)構(gòu)/內(nèi)容相同的inode 文件結(jié)構(gòu)/內(nèi)容,除了在隱藏元數(shù)據(jù)根目錄1080中不存在擁有者映射并且沒(méi)有WAFL/fsid/ filesystem file,storage Iabelfile目錄結(jié)構(gòu)。為該目的,每個(gè)靈活卷1050具有指向一個(gè)或多個(gè)fsinfo塊10M的vol info塊1052,每個(gè)fsinfo塊可表示瞬像,以及該靈活卷的有效文件系統(tǒng)。每個(gè)fsinfo塊又指向inode文件1060,如上所述,該inode文件具有與該聚集的inode結(jié)構(gòu)/內(nèi)容相同的inode結(jié)構(gòu)/內(nèi)容,除了上述不同之外。每個(gè)靈活卷1050有其自己的inode文件1060和具有相應(yīng)inode號(hào)的不同inode空間,以及其自己的根(fsid)目錄1070和可與其他靈活卷分開(kāi)地導(dǎo)出的文件的子目錄。聚集的隱藏元數(shù)據(jù)目錄1030內(nèi)包含的存儲(chǔ)標(biāo)簽文件1090是如傳統(tǒng)raid標(biāo)簽的類(lèi)似工作的小文件。Raid標(biāo)簽包括有關(guān)該存儲(chǔ)系統(tǒng)的物理信息,諸如卷名;該信息被加載到存儲(chǔ)標(biāo)簽文件1090中。描述性地,存儲(chǔ)標(biāo)簽文件1090包括相關(guān)聯(lián)靈活卷1050的名稱(chēng)1092、該靈活卷的在線(xiàn)/離線(xiàn)狀況1094、以及相關(guān)聯(lián)的靈活卷的其他標(biāo)識(shí)和狀態(tài)信息 1096(其是否在正在被創(chuàng)建或損壞的過(guò)程中)。F. VLDB圖11是描繪管理進(jìn)程的集合的示意框圖,管理進(jìn)程作為用戶(hù)模式應(yīng)用1100在存儲(chǔ)操作系統(tǒng)300上執(zhí)行以為集群的節(jié)點(diǎn)提供配置信息(即,管理數(shù)據(jù))的管理。為該目的, 該管理進(jìn)程包括管理框架進(jìn)程1110和卷位置數(shù)據(jù)庫(kù)(VLDB)進(jìn)程1130,每個(gè)進(jìn)程利用鏈接為庫(kù)的數(shù)據(jù)復(fù)制服務(wù)(RDB 1150)。管理框架1110經(jīng)由命令行界面(CLI)和/或基于web 的圖形用戶(hù)界面(GUI)將用戶(hù)提供給管理員1170界面。描述性地,該管理框架基于傳統(tǒng)通用界面模型(CIM)對(duì)象管理器,該對(duì)象管理器將該實(shí)體提供給與節(jié)點(diǎn)200交互的用戶(hù)/系統(tǒng)管理員以管理該集群100。VLDB 1130是跟蹤集群100內(nèi)的各種存儲(chǔ)元件(例如,SVS、靈活卷、聚集等)的位置從而便于貫穿該集群路由請(qǐng)求的數(shù)據(jù)庫(kù)進(jìn)程。在描述性實(shí)施例中,每個(gè)節(jié)點(diǎn)的N模塊310 訪(fǎng)問(wèn)配置表235,該配置表將數(shù)據(jù)容器句柄500的SVD ID 502映射到該集群內(nèi)“擁有”(服務(wù))該數(shù)據(jù)容器的D模塊350。該VLDB包括多個(gè)條目,該多個(gè)條目又提供配置表235中的條目的內(nèi)容;這些VLDB條目尤其跟蹤靈活卷(下文一般稱(chēng)為“卷910”)和聚集900在該集群內(nèi)的位置。這樣的VLDB條目的示例包括VLDB卷?xiàng)l目1200和VLDB聚集條目1300。圖12是示例VLDB卷?xiàng)l目1200的示意框圖。條目1200包括卷ID字段1205、聚集 ID字段1210,并且在替代實(shí)施例中還包括附加字段1215。卷ID字段1205包含標(biāo)識(shí)在卷位置進(jìn)程中使用的卷910的ID。聚集ID字段1210標(biāo)識(shí)包含由卷ID字段1205標(biāo)識(shí)的卷的聚集900。同樣,圖13是示例性VLDB聚集條目1300的示意框圖。條目1300包括聚集ID 字段1305、D模塊ID字段1310,并且在替代實(shí)施例中還包括附加字段1315。聚集ID字段 1305包含集群100中的特定聚集900的ID。D模塊ID字段1310包含服務(wù)(host)由聚集 ID字段1305所標(biāo)識(shí)的特定聚集的D模塊的ID。描述性地,VLDB實(shí)現(xiàn)了 RPD接口,例如,Sun RPC接口,該接口允許N模塊310查詢(xún) VLDB 1130。當(dāng)遇到未存儲(chǔ)在其配置表中的數(shù)據(jù)容器句柄500的內(nèi)容時(shí),N模塊向VLDB進(jìn)程發(fā)送RPC。作為響應(yīng),VLDB1130將適當(dāng)?shù)挠成湫畔⒎祷氐皆揘模塊,該映射信息包括擁有該數(shù)據(jù)容器的D模塊的ID。該N模塊高速緩存在其配置表235中的信息并使用該D模塊 ID來(lái)將輸入請(qǐng)求轉(zhuǎn)發(fā)到適當(dāng)?shù)臄?shù)據(jù)容器。通過(guò)管理進(jìn)程和RDB庫(kù)用戶(hù)模式應(yīng)用1100的集合在集群范圍基礎(chǔ)上協(xié)調(diào)N模塊310和D模塊350之間的所有功能和交互。為該目的,該管理進(jìn)程具有到RDB 1150的接口(與其緊密耦合)。該RDB包含為由該管理進(jìn)程處理的管理數(shù)據(jù)提供持久對(duì)象存儲(chǔ)(對(duì)象的存儲(chǔ))的庫(kù)。值得注意,RDB 1150 跨集群100的所有節(jié)點(diǎn)200復(fù)制并同步該管理數(shù)據(jù)對(duì)象存儲(chǔ)訪(fǎng)問(wèn)從而確保該RDB數(shù)據(jù)庫(kù)圖像在所有節(jié)點(diǎn)200上相同。在系統(tǒng)啟動(dòng)時(shí),每個(gè)節(jié)點(diǎn)200將其接口和IP地址(它“擁有”的那些IP地址)的狀況/狀態(tài)記錄到RDB數(shù)據(jù)庫(kù)中。G.存儲(chǔ)系統(tǒng)架構(gòu)
15
提供描述性地包括跨集群100的多個(gè)節(jié)點(diǎn)200分布的兩個(gè)或更多個(gè)卷910的存儲(chǔ)系統(tǒng)架構(gòu)。這些卷被組織成SVS并被配置為存儲(chǔ)響應(yīng)于由客戶(hù)機(jī)180發(fā)出的多協(xié)議數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求而由該集群所服務(wù)的數(shù)據(jù)容器(如文件和Iun)的內(nèi)容。值得注意,將每個(gè)數(shù)據(jù)容器的內(nèi)容在SVS的卷之間分配以由此提升該集群提供的存儲(chǔ)服務(wù)的效率。為便于描述和理解本發(fā)明,以下將數(shù)據(jù)容器一般稱(chēng)為“文件”。SVS包含元數(shù)據(jù)卷(MDV)和一個(gè)或多個(gè)數(shù)據(jù)卷(DV)。MDV被配置成存儲(chǔ)與存儲(chǔ)在該SVS上的所有文件相關(guān)聯(lián)的元數(shù)據(jù)(包括訪(fǎng)問(wèn)控制列表(ACL)和目錄)的規(guī)范副本,而每個(gè)DV被配置成至少存儲(chǔ)那些文件的數(shù)據(jù)內(nèi)容。對(duì)于存儲(chǔ)在該SVS上的每個(gè)文件,一個(gè)卷被指定CAV,并且為該目的,被配置成存儲(chǔ)(“高速緩存”)與該文件相關(guān)聯(lián)的某些、快速改變屬性的元數(shù)據(jù)以由此卸載否則會(huì)被定向到MDV的訪(fǎng)問(wèn)請(qǐng)求。在本文描述的一個(gè)實(shí)施例中, 文件的CAV的確定基于一個(gè)簡(jiǎn)單規(guī)則將保持該文件的內(nèi)容(數(shù)據(jù))的第一條帶的卷指定為該文件的CAV。這個(gè)簡(jiǎn)單的規(guī)則不僅方便,而且還提供了對(duì)小文件的最優(yōu)化。即,如果該文件足夠小到適合在所指定的條帶寬度內(nèi),則CAV可以能夠執(zhí)行某些操作而不必必須與該 SVS的其他卷通信。在理想情況下,文件的數(shù)據(jù)的第一條帶在該SVS的DV間分布以由此便于CAV指定在該SVS的卷間的均勻分布。在替代實(shí)施例中,跨越MDV和DV條帶化文件的數(shù)據(jù)。在進(jìn)一步替代實(shí)施例中,MDV可被消除,其中通常包含在MDV上的數(shù)據(jù)被分布在SVS的 DV間。圖14是根據(jù)本發(fā)明的描述性實(shí)施例的SVS 1400的示意框圖。SVS1400描述性地包括三個(gè)卷,即MDV 1405和兩個(gè)DV 1410、1415。應(yīng)當(dāng)注意,在替代實(shí)施例中,根據(jù)本發(fā)明可利用附加和/或不同數(shù)量的卷。描述性地,MDV 1405存儲(chǔ)多個(gè)inode,包括根目錄(RD) inode 1420、目錄(DIR) inode 1430、文件(F) inode 1425、1435、1445 和 ACLinode 1440。描述性地,這些inode中的每一個(gè)包括與inode相關(guān)聯(lián)的元數(shù)據(jù)(M)。在該描述性實(shí)施例中, MDV 1405上的每個(gè)inode不包括數(shù)據(jù)⑶;然而,在替代實(shí)施例中,MDV可包括用戶(hù)數(shù)據(jù)。相反,每個(gè)DV 1410,1415 只存儲(chǔ)文件(F) inode 1425,1435,1445 禾Π ACL inodel440o注意,DV不存儲(chǔ)目錄或其他器件inode/構(gòu)造,如符號(hào)鏈接;然而,每個(gè)DV的確存儲(chǔ)F inode,且可存儲(chǔ)ACL inode的高速緩存副本,所述高速緩存副本被布置在與它們的相應(yīng)的inode在MDV 1405中的位置相同的位置。特定DV可不存儲(chǔ)inode的副本,直到與該 inode相關(guān)聯(lián)的數(shù)據(jù)容器的1/0請(qǐng)求被服務(wù)特定DV的D模塊接收。而且,如同本文進(jìn)一步描述的,根據(jù)SVS條帶化規(guī)則周期性地稀疏這些F inode所表示的文件的內(nèi)容。此外,因?yàn)閷?duì)存儲(chǔ)在SVS1400上的每個(gè)文件,一個(gè)卷被指定CAV,所以DV 1415被指定作為inode1425 所表示的文件的CAV,且DV 1410是由inode 1435、1445所標(biāo)識(shí)的文件的CAV。因此,這些 CAV高速緩存與那些文件相關(guān)聯(lián)的某些、快速改變屬性的元數(shù)據(jù),諸如,例如文件大小615, 以及訪(fǎng)問(wèn)和/或修改時(shí)間戳620。描述性地,該SVS與定義條帶算法、條帶寬度和SVS內(nèi)的卷的有序列表(被描述性地實(shí)現(xiàn)為條帶化表的條帶化數(shù)據(jù)結(jié)構(gòu))的一組條帶化規(guī)則相關(guān)聯(lián)。應(yīng)當(dāng)注意,盡管本文使用術(shù)語(yǔ)條帶化表,然而其應(yīng)當(dāng)被視為意味著使VSM能夠標(biāo)識(shí)數(shù)據(jù)將要在SVS上被條帶化的次序的任何形式的數(shù)據(jù)結(jié)構(gòu)。每個(gè)SVS的條帶化規(guī)則被描述性地存儲(chǔ)為VLDB1130的條目并通過(guò)SVS ID訪(fǎng)問(wèn)。圖15是根據(jù)本發(fā)明的實(shí)施例的示例性VLDB SVS條目1500的示意框圖。VLDB條目1500包括SVS ID字段1505和一組或多組條帶化規(guī)則1530。在替代實(shí)施例
16中,可包括附加字段1535。SVS ID字段1505包含在操作中被指定在數(shù)據(jù)容器句柄500中的SVS的ID。每組條帶化規(guī)則1530描述性地包括條帶寬度字段1510、條帶算法ID字段1515、 卷有序列表字段1520,并且在替代實(shí)施例中還包括附加字段1525。條帶化規(guī)則1530包含用于標(biāo)識(shí)SVS的組織的信息。例如,條帶算法ID字段1515標(biāo)識(shí)與SVS —起使用的條帶化算法。在一個(gè)實(shí)施例中,多個(gè)條帶化算法可與SVS —起使用;因此,需要條帶算法ID來(lái)標(biāo)識(shí)利用了哪個(gè)特定算法。每個(gè)條帶化算法又指定文件內(nèi)容被作為條帶跨SVS的多個(gè)卷分配的方式。條帶寬度字段1510指定每個(gè)條帶的大小/寬度。卷有序列表字段1520包含包括SVS的卷的ID并充當(dāng)條帶化表來(lái)根據(jù)本發(fā)明的描述性實(shí)施例以容量平衡的方式確定數(shù)據(jù)布局。在描述性實(shí)施例中,卷的有序列表包括多個(gè)包括靈活卷ID和存儲(chǔ)該靈活卷的聚集ID的元組。而且,卷的有序列表可指定SVS的條帶化規(guī)則和各種卷的功能和實(shí)現(xiàn)。例如,該有序列表中的第一個(gè)卷可表示該SVS的MDV,而卷在該列表中的排序可表示實(shí)現(xiàn)特定條帶化算法的方式,例如,循環(huán)法。在操作中,條帶化規(guī)則組有效定義標(biāo)識(shí)要被用來(lái)存儲(chǔ)SVS的塊的D模塊的有序集合的條帶化表。通過(guò)在這些各種D模塊間分配SVS,單個(gè)模塊的總處理消耗是有限的并因此減少了特定模塊可能例如通過(guò)變成熱點(diǎn)而生成積壓的機(jī)會(huì)。提供Locate ()函數(shù)375,該函數(shù)使VSM 370和其他模塊(如N模塊310的那些) 能夠定位D模塊350及其相關(guān)聯(lián)的SVS 1400的卷以服務(wù)對(duì)文件的訪(fǎng)問(wèn)請(qǐng)求。LocateO函數(shù)至少取(i)SVS ID 1505、(ii)文件內(nèi)的偏移、(iii)文件的inode號(hào)和(iv) 一組條帶化規(guī)則1530作為參數(shù)并返回SVS 1400內(nèi)該偏移在其上開(kāi)始的卷910。例如,假定定向到文件的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求由客戶(hù)機(jī)180發(fā)出并在節(jié)點(diǎn)200的N模塊310處被接收,在該處通過(guò)多協(xié)議引擎325將其解析到N模塊310的適當(dāng)?shù)膮f(xié)議服務(wù)器。為了確定要將CF消息400傳送到其的D模塊350的位置,N模塊310可首先取回 SVS條目1500以獲取與該SVS相關(guān)聯(lián)的條帶化規(guī)則1530 (即卷的列表1520)。然后N模塊 310執(zhí)行LocateO函數(shù)375來(lái)標(biāo)識(shí)要將操作定向到其的適當(dāng)?shù)木?。然后,N模塊可取回適當(dāng)?shù)腣LDB卷?xiàng)l目1200來(lái)標(biāo)識(shí)包含該卷的聚集以及取回適當(dāng)?shù)腣LDB聚集條目1300來(lái)最終標(biāo)識(shí)適當(dāng)?shù)腄模塊350。然后N模塊310的協(xié)議服務(wù)器將CF消息400傳送到D模塊350。圖16是示出根據(jù)本發(fā)明的描述性實(shí)施例的存儲(chǔ)在SVS 1600的卷A 1605,B 1610 和C 1615上的文件內(nèi)容的周期性稀疏的示意框圖。如上所述,根據(jù)SVS條帶化規(guī)則來(lái)周期性地稀疏文件內(nèi)容,該SVS條帶化規(guī)則指定了條帶化算法(如由條帶算法ID字段1515所指示)和每個(gè)條帶的大小/寬度(如由條帶寬度字段1510所指示)。注意,在一個(gè)實(shí)施例中,條帶寬度被選擇為確保每個(gè)條帶可容納由文件的間接塊(例如,第一級(jí)塊804)所引用的實(shí)際數(shù)據(jù)(例如,存儲(chǔ)在數(shù)據(jù)塊806中的實(shí)際數(shù)據(jù))。根據(jù)描述性的循環(huán)條帶化算法,卷A 1605包含文件內(nèi)容或數(shù)據(jù)條帶(D) 1620, 接下來(lái)按順序是兩個(gè)稀疏條帶(幻1622、1624、另一數(shù)據(jù)條帶(D) 1626以及兩個(gè)稀疏條帶 (S) 1628,1630.另一方面,卷B 1610包含稀疏條帶(S) 1632,接下來(lái)按順序是數(shù)據(jù)條帶 (D) 1634、兩個(gè)稀疏條帶(S) 1636、1638、另一數(shù)據(jù)條帶(D) 1640和稀疏條帶(S) 1642。卷C 1615繼續(xù)循環(huán)條帶化模式,并且為該目的,包含兩個(gè)稀疏條帶( 1644、1646,接下來(lái)按順序是數(shù)據(jù)條帶(D) 1648、兩個(gè)稀疏條帶(S) 1650、1652和另一數(shù)據(jù)條帶(D) 1654。
H.容量平衡本發(fā)明提供被配置成在條帶式文件系統(tǒng)中提供容量平衡的數(shù)據(jù)分布技術(shù)。條帶式卷集與一組條帶化規(guī)則相關(guān)聯(lián),該條帶化規(guī)則包括例如標(biāo)識(shí)卷的有序列表和數(shù)據(jù)被條帶化到其的相關(guān)聯(lián)的節(jié)點(diǎn)的條帶化表1500。集群的每個(gè)節(jié)點(diǎn)包括適于服務(wù)SVC的卷的磁盤(pán)元素和適于將數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求重定向到集群的任何解模塊(de-module)的網(wǎng)絡(luò)元素。將數(shù)據(jù)容器的內(nèi)容在SVS的卷間分配以由此提升該集群提供的存儲(chǔ)服務(wù)的效率。為該目的,該條帶化表指定數(shù)據(jù)容器內(nèi)容作為條帶跨多個(gè)卷被分配的方式。在操作中,當(dāng)新節(jié)點(diǎn)被添加到條帶式卷集中時(shí),演進(jìn)(即,迭代更新)條帶化表以容納新添加的節(jié)點(diǎn)。在一個(gè)實(shí)施例中,集群的每個(gè)節(jié)點(diǎn)與將例如,該節(jié)點(diǎn)可用的處理器速度、處理器數(shù)量、硬件配置和/或軟件納入考慮的容量值相關(guān)聯(lián)。在條帶化表的演進(jìn)過(guò)程中,該技術(shù)如此在節(jié)點(diǎn)間分配該SVS的條帶使得根據(jù)每個(gè)節(jié)點(diǎn)的容量值將它們最優(yōu)地分配給節(jié)點(diǎn)。例如,在其中第一節(jié)點(diǎn)的容量值為100 而第二節(jié)點(diǎn)的容量值為200的雙節(jié)點(diǎn)系統(tǒng)中,與第一節(jié)點(diǎn)相比第二節(jié)點(diǎn)應(yīng)當(dāng)服務(wù)兩倍的條帶以實(shí)現(xiàn)最佳性能。通過(guò)利用本文所述的包括容量值的條帶化表,可在條帶式卷集中更好地利用異構(gòu)節(jié)點(diǎn)(即,具有不同容量值的節(jié)點(diǎn)),由此減少未充分利用的處理資源。即,可利用節(jié)點(diǎn)而不需要較高容量節(jié)點(diǎn)將其性能遏制于集群中能力最小的節(jié)點(diǎn)。圖17是示出根據(jù)本發(fā)明的描述性實(shí)施例的圖16中示出的數(shù)據(jù)容器示例性條帶化表的示意框圖。描述性地,條帶化表1700指示該數(shù)據(jù)容器的第一塊被存儲(chǔ)在第一節(jié)點(diǎn)的卷 A上,第二塊被存儲(chǔ)在第二節(jié)點(diǎn)的卷B上等。根據(jù)本發(fā)明的描述性實(shí)施例,以循環(huán)方式通過(guò)例如VSM375來(lái)生成條帶化表1700。如本領(lǐng)域技術(shù)人員將會(huì)領(lǐng)會(huì)的那樣,條帶化表通常會(huì)比示例性條帶化表1700大得多。類(lèi)似地,將節(jié)點(diǎn)的布置示出為循環(huán)僅是為示例目的。圖18是詳細(xì)示出根據(jù)本發(fā)明的描述性實(shí)施例的用于演進(jìn)條帶化表以執(zhí)行容量平衡的過(guò)程1800的步驟的流程圖。過(guò)程1800開(kāi)始于步驟1805并繼續(xù)到步驟1810,在步驟 1810處新節(jié)點(diǎn)被添加到集群。新節(jié)點(diǎn)可通過(guò)例如管理員和/或其他用戶(hù)物理地將該新節(jié)點(diǎn)連接到集群交換結(jié)構(gòu)150、配置在該新節(jié)點(diǎn)的N/D模塊上執(zhí)行的存儲(chǔ)操作系統(tǒng)和/或其他軟件等而被添加到該集群。此外,根據(jù)本發(fā)明的一個(gè)實(shí)施例,集群的每個(gè)新添加的節(jié)點(diǎn)被分配容量值,通常是由該節(jié)點(diǎn)的供應(yīng)商分配,例如制造商。然而,在替代實(shí)施例中,容量值可由管理員和/或通過(guò)自動(dòng)進(jìn)程分配。該容量值可被提供給該集群的節(jié)點(diǎn)的卷?xiàng)l帶化模塊370以開(kāi)始下面進(jìn)一步描述的條帶化表演進(jìn)技術(shù)。在步驟1815中,響應(yīng)于新節(jié)點(diǎn)的添加,演進(jìn)該條帶化表以容納該新節(jié)點(diǎn)。通常,本文所述的技術(shù)演進(jìn)該條帶化表使得每個(gè)節(jié)點(diǎn)與該節(jié)點(diǎn)的容量值除以該集群中節(jié)點(diǎn)(包括新節(jié)點(diǎn))的所有總?cè)萘恐荡笾鲁杀壤爻霈F(xiàn)。即,節(jié)點(diǎn)X的大致比例等于節(jié)點(diǎn)X的容量值除以該集群的所有節(jié)點(diǎn)的所有容量值的和。下面參考圖19進(jìn)一步描述條帶化表的演進(jìn)。一旦新的條帶化表已被演進(jìn)(即,迭代更新),則然后在步驟1820中將該新的條帶化表與SVS相關(guān)聯(lián)。描述性地,然后在步驟1825中執(zhí)行重新條帶化操作。重新條帶化操作一般致使SVS內(nèi)的所有數(shù)據(jù)被重新分配使得根據(jù)演進(jìn)后的條帶化表來(lái)?xiàng)l帶化數(shù)據(jù),即,使得根據(jù)從本發(fā)明的實(shí)施例獲得的容量平衡來(lái)分布數(shù)據(jù)。應(yīng)當(dāng)注意,執(zhí)行重新條帶化操作是可選的。在某些替代實(shí)施例中,數(shù)據(jù)可在被寫(xiě)入到條帶式卷集中時(shí)被重新條帶化。過(guò)程1800完成于步驟1830。
圖19A-19D是根據(jù)本發(fā)明的描述性實(shí)施例的演進(jìn)條帶化表的示意圖。為了解釋的目的,參考圖19,假定管理員想要建立異構(gòu)節(jié)點(diǎn)的四個(gè)節(jié)點(diǎn)集群。這三個(gè)節(jié)點(diǎn)具有如下容量額定值節(jié)點(diǎn)A 100節(jié)點(diǎn)B 200節(jié)點(diǎn)C 50節(jié)點(diǎn)D 50如本領(lǐng)域技術(shù)人員將會(huì)領(lǐng)會(huì)的,在描述性實(shí)施例中描述的原理可與具有任意數(shù)量的不同和/或相同容量值的任意數(shù)量的節(jié)點(diǎn)一起使用。因此,本文對(duì)條帶化表1900的演進(jìn)的描述應(yīng)當(dāng)被認(rèn)為僅是示例性的。在操作中,條帶化表最初作為單條目表生成,如圖19A中所示的。在單節(jié)點(diǎn)集群中,每個(gè)數(shù)據(jù)條帶被存儲(chǔ)在集群的單個(gè)節(jié)點(diǎn)上,即,在本示例中是節(jié)點(diǎn)A。描述性地,管理員已配置卷?xiàng)l帶化模塊以指示將添加三個(gè)附加節(jié)點(diǎn),以在該集群中共有四個(gè)節(jié)點(diǎn)。然后該卷?xiàng)l帶化模塊可開(kāi)始迭代添加對(duì)每個(gè)條目的支持。通過(guò)首先添加用于新節(jié)點(diǎn)的條目,卷?xiàng)l帶化模塊370不僅為新添加的條目而且還為將要在該條帶化表中所表示的其他所有其他條目考慮容量值。通過(guò)將此納入考量,節(jié)點(diǎn)A在該條帶化表中出現(xiàn)的正確數(shù)量將產(chǎn)生,這避免了在進(jìn)一步迭代期間替換節(jié)點(diǎn)A的實(shí)例的需要。在一個(gè)實(shí)施例中,每個(gè)節(jié)點(diǎn)將與其容量值除以該集群中的節(jié)點(diǎn)的所有容量值的和大致成比例地出現(xiàn)在該條帶化表中。給定上述描述性容量值,所需表示等于A(yíng)的容量額定值處以總?cè)萘款~定值,S卩,A 除以A+B+C+D。描述性地,這等于100除以400(100+200+50+50)。因此,卷?xiàng)l帶化模塊將條目數(shù)替換為B+C+D(即,稍后要被添加的節(jié)點(diǎn)的總?cè)萘恐?除以A+B+C+D的額定值(S卩,所有容量值的總和),即,在第一次迭代中每400個(gè)條目中的300個(gè)。通過(guò)執(zhí)行數(shù)學(xué)簡(jiǎn)化,卷?xiàng)l帶化模塊確定在該條帶化表中用B替代每四個(gè)條目中的三個(gè)。在該組內(nèi)的替代應(yīng)當(dāng)通過(guò)用B的新值替代A的條目來(lái)進(jìn)行。描述性地,通過(guò)半靜態(tài)技術(shù)來(lái)執(zhí)行對(duì)確切地要替代哪些條目的選擇,半靜態(tài)技術(shù)諸如描述在標(biāo)題為“半靜態(tài)分布技術(shù)(SEMI-STATIC DISTRIBUTION TECHNIQUE),,的美國(guó)專(zhuān)利7,185,144中,通過(guò)引用將其內(nèi)容結(jié)合于此。然后VSM 370通過(guò)添加下一條目(即,條目C)來(lái)重復(fù)此迭代過(guò)程。繼續(xù)此示例, 卷?xiàng)l帶化模塊確定要在該條帶化表中替代足夠數(shù)量的B同時(shí)留下適當(dāng)總數(shù)量的B。再說(shuō)一次,這可以通過(guò)用將要被留下來(lái)的那些的額定值除以總的額定值來(lái)確定。這會(huì)等于C+D的額定值處于B+C+D的額定值,其等于100/300。通過(guò)減少這個(gè)分?jǐn)?shù),條帶化模塊已標(biāo)識(shí)出每三個(gè)B中的一個(gè)應(yīng)當(dāng)用C來(lái)替代。然后最終迭代用D替代足夠數(shù)量的C。該數(shù)量可以通過(guò)用D的容量值除以C+D的額定值來(lái)計(jì)算,其等于每隔一個(gè)C( BP, 1/2)。如可從圖19D領(lǐng)會(huì)的那樣,這導(dǎo)致具有8個(gè)對(duì)節(jié)點(diǎn)A的引用、16個(gè)對(duì)節(jié)點(diǎn)B的引用、4個(gè)對(duì)節(jié)點(diǎn)C的引用和4 個(gè)對(duì)節(jié)點(diǎn)D的引用的示例性條帶化表。如將領(lǐng)會(huì)的,這導(dǎo)致每個(gè)節(jié)點(diǎn)基于其容量額定值被適當(dāng)分配。使用節(jié)點(diǎn)A作為參考,節(jié)點(diǎn)D出現(xiàn)的頻率為其兩倍,因?yàn)樗哂惺枪?jié)點(diǎn)A的兩倍的容量額定值,等。通過(guò)執(zhí)行本文所述的迭代技術(shù),可實(shí)現(xiàn)容量平衡以允許對(duì)集群內(nèi)的異構(gòu)計(jì)算機(jī)的最佳使用。前面的描述已經(jīng)針對(duì)本發(fā)明的特定實(shí)施例。然而,顯然,可對(duì)所述實(shí)施例作出其他變化和修改,同時(shí)保留它們的某些或全部?jī)?yōu)點(diǎn)。具體而言,應(yīng)當(dāng)注意,本文所述的原理可以在非分布式文件系統(tǒng)中實(shí)現(xiàn)。而且,盡管已經(jīng)從N模塊和D模塊方面來(lái)撰寫(xiě)本描述,然而本文的教導(dǎo)同樣適用于N模塊和D模塊的功能是在單個(gè)系統(tǒng)中實(shí)現(xiàn)的系統(tǒng)。替代地,N模塊和D模塊的功能可在任意數(shù)量的分開(kāi)的系統(tǒng)間分布,其中每個(gè)系統(tǒng)執(zhí)行這些功能中的一個(gè)或多個(gè)。此外,本文描述的過(guò)程、進(jìn)程和/或模塊可以用硬件、軟件實(shí)現(xiàn)、體現(xiàn)為具有程序指令的計(jì)算機(jī)可讀介質(zhì)、固件或其組合。因此,所附權(quán)利要求的目標(biāo)是涵蓋所有這些落入本發(fā)明的真實(shí)精神和范圍的變化和修改。
權(quán)利要求
1.一種用于在支持條帶式文件系統(tǒng)的集群化計(jì)算機(jī)系統(tǒng)中進(jìn)行容量平衡的方法,包括分配與被組織成所述集群化計(jì)算機(jī)系統(tǒng)的多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的容量值以支持所述條帶式文件系統(tǒng);通過(guò)在所述多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)的處理器上執(zhí)行的卷?xiàng)l帶化模塊,迭代調(diào)整節(jié)點(diǎn)在條帶化數(shù)據(jù)結(jié)構(gòu)內(nèi)的出現(xiàn)數(shù)量,以基于與每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的容量值來(lái)生成經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu);以及響應(yīng)于數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求,利用所述經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)來(lái)在所述條帶式文件系統(tǒng)中執(zhí)行數(shù)據(jù)分配。
2.如權(quán)利要求1所述的方法,其中每個(gè)節(jié)點(diǎn)與其容量值除以所述多個(gè)節(jié)點(diǎn)的所有容量值的和大致成比例地出現(xiàn)在所述條帶化數(shù)據(jù)結(jié)構(gòu)中。
3.如權(quán)利要求1所述的方法,還包括利用半靜態(tài)分布技術(shù)來(lái)迭代調(diào)整節(jié)點(diǎn)在所述條帶化數(shù)據(jù)結(jié)構(gòu)內(nèi)出現(xiàn)的數(shù)量。
4.如權(quán)利要求1所述的方法,還包括在所述條帶式文件系統(tǒng)上執(zhí)行重新條帶化操作以利用所述經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)。
5.如權(quán)利要求1所述的方法,還包括使用所述節(jié)點(diǎn)的處理器速度來(lái)確定節(jié)點(diǎn)的容量值。
6.如權(quán)利要求1所述的方法,其中所述多個(gè)節(jié)點(diǎn)與不同容量值相關(guān)聯(lián)。
7.如權(quán)利要求1所述的方法,還包括實(shí)現(xiàn)所述條帶式文件系統(tǒng)的條帶式卷集,其中所述條帶式卷集包括每個(gè)卷被存儲(chǔ)在所述多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)上的多個(gè)卷。
8.如權(quán)利要求1所述的方法,還包括將演進(jìn)后的條帶化數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)到卷位置數(shù)據(jù)庫(kù)中,所述卷位置數(shù)據(jù)庫(kù)能夠從所述多個(gè)節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn)訪(fǎng)問(wèn)。
9.如權(quán)利要求1所述的方法,其中數(shù)據(jù)分配包括根據(jù)所述經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)來(lái)跨所述多個(gè)節(jié)點(diǎn)分布數(shù)據(jù)。
10.一種用于生成經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)以在支持條帶式文件系統(tǒng)的集群化計(jì)算機(jī)系統(tǒng)中使用的方法,包括分配與被組織成所述集群化計(jì)算機(jī)系統(tǒng)的多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的容量值以支持所述條帶式文件系統(tǒng),其中所述容量值反映與所述多個(gè)節(jié)點(diǎn)中的其他節(jié)點(diǎn)相比與節(jié)點(diǎn)相關(guān)聯(lián)的處理速度的確定;通過(guò)在所述多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)的處理器上執(zhí)行的卷?xiàng)l帶化模塊,迭代調(diào)整節(jié)點(diǎn)在條帶化數(shù)據(jù)結(jié)構(gòu)中的出現(xiàn)的數(shù)量以基于與每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的容量值生成所述經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu),其中所述經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)與所述節(jié)點(diǎn)的容量值除以所述集群化計(jì)算機(jī)系統(tǒng)中的所有節(jié)點(diǎn)的容量值的和成比例地包含每個(gè)節(jié)點(diǎn);以及通過(guò)所述卷?xiàng)l帶化模塊,利用所述經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)來(lái)在所述集群化計(jì)算機(jī)系統(tǒng)的節(jié)點(diǎn)間分配數(shù)據(jù)。
11.一種系統(tǒng),包括節(jié)點(diǎn)組,每個(gè)節(jié)點(diǎn)包括處理器,所述節(jié)點(diǎn)被組織成被配置成支持條帶式文件系統(tǒng)的集群,所述條帶式文件系統(tǒng)包括在存儲(chǔ)在所述節(jié)點(diǎn)組上的卷間分配的條帶式卷集,其中所述節(jié)點(diǎn)組中的每個(gè)節(jié)點(diǎn)與容量值相關(guān)聯(lián);以及在所述處理器中的一個(gè)處理器上執(zhí)行的卷?xiàng)l帶化模塊,所述條帶化模塊被配置成在存儲(chǔ)在所述節(jié)點(diǎn)組上的卷之間分配所述條帶式卷集的條帶,使得每個(gè)節(jié)點(diǎn)與所述節(jié)點(diǎn)的容量值除以所述節(jié)點(diǎn)組的所有容量值的總和大致成比例地出現(xiàn)在條帶化數(shù)據(jù)結(jié)構(gòu)中,其中所述條帶式文件系統(tǒng)還被配置成響應(yīng)于數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求而利用所述條帶化數(shù)據(jù)結(jié)構(gòu)來(lái)在所述條帶式文件系統(tǒng)上執(zhí)行數(shù)據(jù)分配。
12.如權(quán)利要求11所述的系統(tǒng),其中所述條帶化數(shù)據(jù)結(jié)構(gòu)被存儲(chǔ)在能夠由所述節(jié)點(diǎn)組中的每個(gè)節(jié)點(diǎn)訪(fǎng)問(wèn)的卷位置數(shù)據(jù)庫(kù)中。
13.如權(quán)利要求11所述的系統(tǒng),其中向所述節(jié)點(diǎn)組中的每個(gè)節(jié)點(diǎn)分配不同的容量值。
14.如權(quán)利要求11所述的系統(tǒng),其中所述卷?xiàng)l帶化模塊還被配置成響應(yīng)于向所述節(jié)點(diǎn)組添加新節(jié)點(diǎn)而演進(jìn)所述條帶化數(shù)據(jù)結(jié)構(gòu),其中所述條帶化數(shù)據(jù)結(jié)構(gòu)與每個(gè)節(jié)點(diǎn)的容量值除以所述節(jié)點(diǎn)組和所述新節(jié)點(diǎn)的所有容量值的總和大致成比例地包括針對(duì)所述節(jié)點(diǎn)組中的每個(gè)節(jié)點(diǎn)和所述新節(jié)點(diǎn)的條目。
15.如權(quán)利要求14所述的系統(tǒng),其中所述卷?xiàng)l帶化模塊還被配置成使用所述條帶化結(jié)構(gòu)在所述條帶式卷集上執(zhí)行重新條帶化操作。
16.如權(quán)利要求14所述的系統(tǒng),其中所述卷?xiàng)l帶化模塊還被配置成通過(guò)使用半靜態(tài)分布技術(shù)迭代調(diào)整節(jié)點(diǎn)在所述條帶化結(jié)構(gòu)中的出現(xiàn)的數(shù)量來(lái)演進(jìn)所述條帶化數(shù)據(jù)結(jié)構(gòu)。
17.一種方法,包括向被配置成集群以支持存儲(chǔ)系統(tǒng)的條帶式文件系統(tǒng)的節(jié)點(diǎn)組添加新節(jié)點(diǎn);演進(jìn)與所述條帶式文件系統(tǒng)相關(guān)聯(lián)的條帶化數(shù)據(jù)結(jié)構(gòu)以包括所述新節(jié)點(diǎn),其中演進(jìn)后的條帶化數(shù)據(jù)結(jié)構(gòu)與和所述節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的容量值除以所述節(jié)點(diǎn)組和所述新節(jié)點(diǎn)的所有容量值的總和大致成比例地包括針對(duì)所述節(jié)點(diǎn)組中的每個(gè)節(jié)點(diǎn)和所述新節(jié)點(diǎn)的條目;以及響應(yīng)于數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求,利用經(jīng)容量平衡的條帶化數(shù)據(jù)結(jié)構(gòu)來(lái)在所述條帶式文件系統(tǒng)上執(zhí)行數(shù)據(jù)分配。
18.如權(quán)利要求17所述的方法,還包括使用所述演進(jìn)后的條帶化數(shù)據(jù)結(jié)構(gòu)來(lái)在所述條帶式文件系統(tǒng)上執(zhí)行重新條帶化操作。
19.如權(quán)利要求17所述的方法,還包括在所述節(jié)點(diǎn)組中的每個(gè)節(jié)點(diǎn)和所述新節(jié)點(diǎn)能夠訪(fǎng)問(wèn)的卷位置數(shù)據(jù)庫(kù)中存儲(chǔ)所述條帶化數(shù)據(jù)結(jié)構(gòu)。
20.如權(quán)利要求17所述的方法,其中演進(jìn)所述條帶化數(shù)據(jù)結(jié)構(gòu)利用半靜態(tài)分布技術(shù)。
21.如權(quán)利要求17所述的方法,其中演進(jìn)條帶化數(shù)據(jù)結(jié)構(gòu)包括標(biāo)識(shí)將要被添加的節(jié)點(diǎn)的容量值并且將所標(biāo)識(shí)的容量值除以要被添加的節(jié)點(diǎn)和要被添加到所述條帶化數(shù)據(jù)結(jié)構(gòu)的所有附加節(jié)點(diǎn)的總?cè)萘恐怠?br> 全文摘要
一種數(shù)據(jù)分布技術(shù)被配置成在條帶式文件系統(tǒng)中提供容量平衡。當(dāng)新節(jié)點(diǎn)被添加到條帶式卷集中時(shí),演進(jìn)條帶化表以容納新添加的節(jié)點(diǎn)。描述性地,集群的每個(gè)節(jié)點(diǎn)與將例如,該節(jié)點(diǎn)可用的處理器速度、處理器數(shù)量、硬件配置和/或軟件納入考慮的容量值相關(guān)聯(lián)。在條帶化表的演進(jìn)過(guò)程中,該技術(shù)如此在節(jié)點(diǎn)間分配SVS的條帶使得根據(jù)每個(gè)節(jié)點(diǎn)的容量值將它們最優(yōu)地分配給各節(jié)點(diǎn)。通過(guò)利用包括容量值的演進(jìn)式條帶化表,可在條帶式卷集中將異構(gòu)節(jié)點(diǎn)利用到最大容量,由此減少未被充分利用的處理資源。
文檔編號(hào)G06F17/30GK102460439SQ201080030330
公開(kāi)日2012年5月16日 申請(qǐng)日期2010年4月29日 優(yōu)先權(quán)日2009年4月30日
發(fā)明者R·P·杰爾尼根四世 申請(qǐng)人:網(wǎng)絡(luò)存儲(chǔ)技術(shù)公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
潮州市| 琼海市| 尚义县| 五河县| 石楼县| 黑水县| 东辽县| 科技| 志丹县| 沈阳市| 休宁县| 九寨沟县| 常山县| 望谟县| 新余市| 襄樊市| 凤凰县| 思茅市| 芦山县| 洞头县| 克什克腾旗| 福安市| 屏东县| 东莞市| 凌源市| 乌什县| 百色市| 商南县| 白玉县| 龙游县| 漳州市| 澜沧| 仪征市| 永昌县| 马关县| 资溪县| 花莲县| 革吉县| 马山县| 清水河县| 北辰区|