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

基于快照的復(fù)制的制作方法

文檔序號:6362388閱讀:166來源:國知局
專利名稱:基于快照的復(fù)制的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機系統(tǒng)環(huán)境中的數(shù)據(jù)存儲。更具體地說,本發(fā)明涉及文件系統(tǒng)中支持讀寫事務(wù)的數(shù)據(jù)復(fù)制和塊分配。
背景技術(shù)
數(shù)據(jù)存儲塊或存儲塊(下文稱為塊)指示存儲設(shè)備上特定的地址空間區(qū)域。例如,一個數(shù)據(jù)塊可以是磁盤空間區(qū)域中扇區(qū)或字節(jié)的集合。塊被作為單元進行處理。大塊分配允許通過單次I/o事務(wù)檢索大量數(shù)據(jù)。在一個實施例中,塊是共同傳輸?shù)墓潭ù笮〉臄?shù)據(jù)單元。文件系統(tǒng)是通過在文件和/或目錄層次結(jié)構(gòu)中存儲、組織、維護文件數(shù)據(jù)而實現(xiàn)維護的文件數(shù)據(jù)集合。文件系統(tǒng)采用借助塊分配技術(shù)將數(shù)據(jù)寫入存儲介質(zhì)的技術(shù)。一般而言,存儲系統(tǒng)允許訪問與存儲系統(tǒng)相連的一個或多個存儲器件中存儲的信息。對信息的訪問可通過將存儲器 件組織為卷來實現(xiàn),所述卷在邏輯上組織存儲器件中存儲的信息。存儲系統(tǒng)可被進一步配置為根據(jù)客戶機/服務(wù)器信息提供模型執(zhí)行操作,從而允許大量客戶機訪問系統(tǒng)上存儲的數(shù)據(jù)容器。在該模型中,客戶機可以采用應(yīng)用,例如在通過計算機網(wǎng)絡(luò)與存儲系統(tǒng)相連的計算機上執(zhí)行的數(shù)據(jù)庫應(yīng)用。每個客戶機可通過網(wǎng)絡(luò)將基于文件的消息發(fā)送到系統(tǒng)來請求存儲系統(tǒng)的服務(wù)。多個存儲系統(tǒng)可通過互連來提供存儲系統(tǒng)環(huán)境,該環(huán)境被配置用于為大量客戶機提供服務(wù)。每個存儲系統(tǒng)可被配置為服務(wù)于一個或多個卷,其中每個卷存儲一個或多個數(shù)據(jù)容器。已公開的編號為US2004-0267838A1的美國專利申請披露了拍攝活動文件系統(tǒng)的快照并跨文件系統(tǒng)的多個節(jié)點并行執(zhí)行備份操作。美國專利7,668,876披露了跨網(wǎng)絡(luò)中的多個節(jié)點復(fù)制數(shù)據(jù)以及并行地寫入對一組鏡像副本的更改以最小化輸入輸出延遲的方法。

發(fā)明內(nèi)容
本發(fā)明包括跨集群文件系統(tǒng)執(zhí)行管道式執(zhí)行數(shù)據(jù)復(fù)制的方法、系統(tǒng)和制品。在本發(fā)明的一方面,提供用于跨集群文件系統(tǒng)中的多個服務(wù)器寫入數(shù)據(jù)的多個副本的方法。首先,將數(shù)據(jù)的第一副本從客戶機寫入位于集群中第一服務(wù)器節(jié)點本地的第一數(shù)據(jù)存儲區(qū)。管道式執(zhí)行數(shù)據(jù)的所述第一副本從第一服務(wù)器節(jié)點到第二和第三服務(wù)器節(jié)點的復(fù)制。所述管道式執(zhí)行復(fù)制過程包括存儲空間的分配。更具體地說,在位于所述第二服務(wù)器節(jié)點本地的第二數(shù)據(jù)存儲區(qū)上分配用于所述數(shù)據(jù)的第二副本的存儲區(qū),以及在位于所述第三服務(wù)器節(jié)點本地的第三數(shù)據(jù)存儲區(qū)上分配用于所述數(shù)據(jù)的第三副本的存儲區(qū)。執(zhí)行完所述存儲區(qū)分配之后,根據(jù)網(wǎng)絡(luò)特性安排將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)和所述第三數(shù)據(jù)存儲區(qū)。在本發(fā)明的另一方面,提供帶有集群文件系統(tǒng)的計算機系統(tǒng),所述集群文件系統(tǒng)包括多個跨網(wǎng)絡(luò)通信的服務(wù)器節(jié)點。所述集群文件系統(tǒng)包括位于第一服務(wù)器節(jié)點本地的第一數(shù)據(jù)存儲區(qū)、位于第二服務(wù)器節(jié)點本地的第二數(shù)據(jù)存儲區(qū),以及位于第三服務(wù)器節(jié)點本地的第三數(shù)據(jù)存儲區(qū)。提供寫管理器以將數(shù)據(jù)的第一副本從客戶機寫入位于集群中所述第一服務(wù)器節(jié)點本地的所述第一數(shù)據(jù)存儲區(qū)。此外,提供與所述寫管理器和分配管理器通信的管道管理器。在復(fù)制之前,所述分配管理器在位于所述第二服務(wù)器節(jié)點本地的所述第二數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第二副本分配存儲區(qū),以及在位于所述第三服務(wù)器節(jié)點本地的所述第三數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第三副本分配存儲區(qū)。通過所述分配管理器執(zhí)行所述分配之后,所述管道管理器根據(jù)網(wǎng)絡(luò)特性安排將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)和所述第三數(shù)據(jù)存儲區(qū)。在本發(fā)明的又一方面,提供帶有計算機可讀存儲介質(zhì)的計算機程序產(chǎn)品,所述計算機可讀存儲介質(zhì)上面包含計算機可讀程序代碼。更具體地說,計算機可讀程序代碼用于在位于第一服務(wù)器節(jié)點本地的第一數(shù)據(jù)存儲區(qū)寫入數(shù)據(jù)的第一副本。此外,計算機可讀程序代碼用于提供管道式執(zhí)行數(shù)據(jù)的所述第一副本的復(fù)制。所述復(fù)制包括在位于第二服務(wù)器節(jié)點本地的第二數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第二副本分配存儲區(qū),以及在位于第三服務(wù)器節(jié)點本地的第三數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第三副本分配存儲區(qū)。計算機可讀程序代碼還用于安排將位于所述第一服務(wù)器節(jié)點本地的數(shù)據(jù)的所述第一副本填入所述第二和第三數(shù)據(jù)存儲區(qū)上的所述已分配存儲區(qū)。將數(shù)據(jù)填入所述已分配存儲區(qū)的方面根據(jù)網(wǎng)絡(luò)特性執(zhí)行。在進一步的方面,提供一種跨所述集群文件系統(tǒng)中的多個服務(wù)器寫入數(shù)據(jù)的多個副本的方法。在位于第一服務(wù)器本地的第一數(shù)據(jù)存儲區(qū)寫入數(shù)據(jù)第一副本。然后針對所述數(shù)據(jù)的第二副本和所述數(shù)據(jù)的第三副本在所述系統(tǒng)中分配存儲區(qū)。更具體地說,在位于第二服務(wù)器本地的數(shù)據(jù)存儲區(qū)上分配所述數(shù)據(jù)的所述第二副本,以及在位于第三服務(wù)器本地的所述數(shù)據(jù)存儲區(qū)上分配所述數(shù)據(jù)的所述第三副本。執(zhí)行所述數(shù)據(jù)分配之后,同時在所述第二和第三服務(wù)器上管道式執(zhí)行所述數(shù)據(jù)的所述第一副本的復(fù)制,根據(jù)網(wǎng)絡(luò)特性將所述數(shù)據(jù)的所述第一副本填入這兩個服務(wù)器。在更進一步的方面,提供一種方法,包括:在位于第一服務(wù)器節(jié)點本地的第一數(shù)據(jù)存儲區(qū)上寫入數(shù)據(jù)的第一 副本;在位于第二服務(wù)器節(jié)點本地的第二數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第二副本分配存儲區(qū),以及在位于第三服務(wù)器節(jié)點本地的第三數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第三副本分配存儲區(qū);執(zhí)行完所述存儲區(qū)的分配之后,在所述第二和第三服務(wù)器節(jié)點上管道式執(zhí)行數(shù)據(jù)的所述第一副本的復(fù)制;以及根據(jù)網(wǎng)絡(luò)特性將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)和所述第三數(shù)據(jù)存儲區(qū)。通過結(jié)合附圖閱讀下面對本發(fā)明的優(yōu)選實施例的詳細描述,本發(fā)明的其它特征和優(yōu)點將變得顯而易見。


此處參考的附圖構(gòu)成本說明書的一部分。附圖中示出的特征僅為說明本發(fā)明的某些實施例,并非說明本發(fā)明的所有實施例,除非另外明確地指出。另外不做相反的暗示。圖1是示出將數(shù)據(jù)寫入數(shù)據(jù)存儲區(qū)的一般過程的流程圖。圖2是示出使用在數(shù)據(jù)復(fù)制中采用的指針的流程圖。圖3是示出在數(shù)據(jù)復(fù)制站點接收讀取事務(wù)的流程圖。圖4是示出讀取事務(wù)及其重定向的處理的流程圖。
圖5是根據(jù)本發(fā)明的優(yōu)選實施例帶有支持集群文件系統(tǒng)中寫入事務(wù)復(fù)制的工具的計算機系統(tǒng)的框圖,建議打印在發(fā)布專利的首頁。圖6是示出用于實現(xiàn)本發(fā)明的實施例的系統(tǒng)的框圖。
具體實施例方式很容易理解,一般在此處的附圖中描述和示出的本發(fā)明的組件可通過各種不同的配置排列和設(shè)計。因此,下面對附圖中所示的本發(fā)明的裝置、系統(tǒng)和方法的實施例的詳細描述并非旨在限制所聲明的本發(fā)明的范圍,而是僅表示本發(fā)明的選定實施例。本說明書中描述的功能單元已被標示為管理器、服務(wù)器和客戶機。功能單元可以通過可編程硬件設(shè)備來實現(xiàn),例如現(xiàn)場可編程門陣列、可編程陣列邏輯、可編程邏輯設(shè)備或類似的裝置。功能單元還可以通過由各種類型的處理器處理的軟件來實現(xiàn)。已確定的可執(zhí)行代碼功能單元例如可以包括一個或多個計算機指令物理或邏輯塊,所述塊例如可以組織為對象、過程、功能或其它結(jié)構(gòu)。然而,已確定的功能單元的可執(zhí)行代碼無需在物理上位于同一處,但是可以包括存儲在不同位置上的不同指令,這些指令當(dāng)在邏輯上聯(lián)結(jié)在一起時,包括功能單元并實現(xiàn)功能單元所宣稱的作用。實際上,可執(zhí)行代碼功能單元可以是單個指令,也可以是多個指令,甚至可以跨多個不同的代碼段、在不同的應(yīng)用當(dāng)中,以及跨多個存儲設(shè)備分布。類似地,操作數(shù)據(jù)可以在此被確定和示出位于功能單元中,并且可以包含在任何適當(dāng)?shù)男问街胁⒃谌魏芜m當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)類型內(nèi)組織。操作數(shù)據(jù)可收集為數(shù)據(jù)集,也可分布在不同的位置上(包括分布在不同的存儲器件上),并且可以至少部分地作為電子信號位于系統(tǒng)或網(wǎng)絡(luò)上。本說明書通篇對“選定實施例”、“ 一個實施例”或“實施例”的提及均表示結(jié)合實施例描述的具體特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,在本說明書通篇各處出現(xiàn)的短語“選定實施例”、“在一個實施例中”或“在實施例中”并非一定指示同一實施例。

此外,在一個或 多個實施例中,所述特征、結(jié)構(gòu)或特性可以通過任何適當(dāng)?shù)姆绞竭M行組合。在下面的描述中,提供各種具體細節(jié),例如管理器(寫管理器、分配管理器、管道管理器等)實例,從而允許充分了解本發(fā)明的實施例。但是,所屬領(lǐng)域的技術(shù)人員將理解,可以在沒有一個或多個具體細節(jié)的情況下實現(xiàn)本發(fā)明,或者通過其它方法、組件、材料等實現(xiàn)本發(fā)明。在其它實例中,為了避免混淆本發(fā)明的各方面,并非詳細地示出或描述公知的結(jié)構(gòu)、材料或操作。通過參考附圖,可以最佳地理解本發(fā)明的所示實施例,其中在本文通篇當(dāng)中,相同的部件由相同的參考標號指示。下面的描述只是為了舉例,簡單地示出與此處聲明的發(fā)明一致的設(shè)備、系統(tǒng)和過程的某些選定實施例。集群文件系統(tǒng)是企業(yè)存儲文件系統(tǒng),可由多個計算機同時進行訪問來執(zhí)行讀寫操作。更具體地說,在此類文件系統(tǒng)中,計算機采取集群服務(wù)器的形式,這些服務(wù)器與底層存儲器件相連。存在多種共享磁盤文件系統(tǒng)的架構(gòu)方法,其中包括跨集群中的所有服務(wù)器分布文件信息,以便跨集群服務(wù)器提供一致的文件系統(tǒng)映像。存儲文件系統(tǒng)中的每個存儲器件包含多個塊;每個塊都是存儲器件上具有固定大小的數(shù)據(jù)單元。數(shù)據(jù)以塊組群的方式寫入存儲區(qū),并且類似地以塊組群的方式從存儲區(qū)讀取。在一個實施例中,文件系統(tǒng)地址塊中的數(shù)據(jù),這些塊包含特定數(shù)量的磁盤扇區(qū);所述扇區(qū)是可針對讀寫分配的最小數(shù)量的磁盤空間。通過商品組件配置的集群文件系統(tǒng)一般采用三重復(fù)制方案。盡管并未普通采用,也并非必須這樣做,但是該復(fù)制方案在集群中的一個或多個節(jié)點出現(xiàn)故障時,提供了一定的彈性。為支持此彈性,需要跨集群復(fù)制數(shù)據(jù)。同時,以減少或另外對網(wǎng)絡(luò)帶寬具有可忽略的影響的方式復(fù)制數(shù)據(jù)是有利的。將理解,在一個實施例中,數(shù)據(jù)復(fù)制次數(shù)可多于三次。圖1是示出在集群文件系統(tǒng)中將數(shù)據(jù)寫入數(shù)據(jù)存儲區(qū)以及分配數(shù)據(jù)塊,以支持跨集群復(fù)制數(shù)據(jù)的一般過程的流程圖(100)。最初,與集群文件系統(tǒng)通信的客戶機將數(shù)據(jù)寫入位于集群中第一服務(wù)器節(jié)點本地的第一數(shù)據(jù)存儲區(qū)(102)。一旦在步驟(102)完成數(shù)據(jù)寫入,集群文件系統(tǒng)中便存儲數(shù)據(jù)的初始副本。為了跨集群復(fù)制數(shù)據(jù),在位于第一服務(wù)器遠端的數(shù)據(jù)存儲區(qū)上分配存儲塊。更具體地說,在位于集群中第二服務(wù)器節(jié)點本地的第二數(shù)據(jù)存儲區(qū)上分配存儲塊(104)。在第二數(shù)據(jù)存儲區(qū)上分配塊的過程為數(shù)據(jù)復(fù)制保留了空間。完成步驟(104)之后,創(chuàng)建第二指針以將第二服務(wù)器所接收的數(shù)據(jù)的任何讀取請求定向到第一服務(wù)器(106)。第二指針的基礎(chǔ)是在數(shù)據(jù)復(fù)制完成之前,第二服務(wù)器無法處理讀取數(shù)據(jù)的任何請求。因此,所有讀取請求必須被定向到包含數(shù)據(jù)(而非僅包含已分配的數(shù)據(jù)塊)的數(shù)據(jù)存儲區(qū)本地的服務(wù)器節(jié)點。如上所述,此處采用的復(fù)制方案是三重復(fù)制方案,因此存儲塊在位于第三服務(wù)器節(jié)點本地,且位于第一和第二服務(wù)器節(jié)點遠端的第三數(shù)據(jù)存儲區(qū)上分配(108)。執(zhí)行完步驟(108)之后,創(chuàng)建第三指針以將第三服務(wù)器所接收的數(shù)據(jù)的任何讀取請求定向到第一服務(wù)器(110)。盡管服務(wù)器節(jié)點在此被稱為第一、第二和第三服務(wù)器節(jié)點,但是需要指出,集群文件系統(tǒng)可包括更多數(shù)量的服務(wù)器節(jié)點,不應(yīng)被限于此處所述的三個節(jié)點。需要進一步指出,對第一、第二和第三的標識指示確 定這些操作在集群文件系統(tǒng)中的三個單獨且獨立的服務(wù)器節(jié)點上執(zhí)行。在一個實施例中,復(fù)制系統(tǒng)可以擴展為包括大于或小于此處所述的三個數(shù)量。因此,對于托管數(shù)據(jù)復(fù)制的每個服務(wù)器節(jié)點,通過分配存儲塊來容納復(fù)制,創(chuàng)建指針以將所有讀取請求定向到第一服務(wù)器節(jié)點,直到各個輔助服務(wù)器節(jié)點上的復(fù)制完成。一旦數(shù)據(jù)復(fù)制完成,便可刪除重定向讀取請求的指針。圖2是示出刪除結(jié)合塊分配在輔助服務(wù)器節(jié)點本地創(chuàng)建的指針的過程的流程圖(200)。執(zhí)行測試以判定機會網(wǎng)絡(luò)可用性以便將數(shù)據(jù)從位于第一服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)復(fù)制到位于第二服務(wù)器本地的第二數(shù)據(jù)存儲區(qū)(202)。在一個實施例中,機會網(wǎng)絡(luò)可用性基于網(wǎng)絡(luò)帶寬。例如,當(dāng)網(wǎng)絡(luò)未充分利用時,一般需要針對每次的復(fù)制事務(wù)利用網(wǎng)絡(luò)帶寬。當(dāng)對步驟(202)上的判定做出肯定響應(yīng)時,在后臺將數(shù)據(jù)從位于第一服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)復(fù)制到位于第二服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)(204)。復(fù)制的完成時間根據(jù)網(wǎng)絡(luò)帶寬和事務(wù)大小而變化。執(zhí)行完步驟(204)之后,判定在步驟(202)開始的復(fù)制是否完成(206)。當(dāng)對步驟(206)上的判定做出肯定響應(yīng)時,刪除指針(208)。在完成從位于第一服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)復(fù)制數(shù)據(jù)之前,不會刪除從第二數(shù)據(jù)存儲區(qū)指向第一數(shù)據(jù)存儲區(qū)的指針。因此,當(dāng)對步驟(206)上的判定做出否定響應(yīng)時,在復(fù)制繼續(xù)時等待一段時間(210)。當(dāng)步驟(210)上的一段時間完成時,過程返回到步驟(206)。在一個實施例中,步驟
(210)上采用的時間段可以是固定時間段,也可以是可修改的時間段。類似地,在一個實施例中,數(shù)據(jù)存儲區(qū)中的指針被已分配存儲塊的元數(shù)據(jù)空間中的標志所替代。在一個實施例中,存在標志指示數(shù)據(jù)復(fù)制完成并且數(shù)據(jù)可用。備選地,在一個實施例中,可將標志配置為使得存在標志指示數(shù)據(jù)復(fù)制未完成,只能在第一數(shù)據(jù)存儲區(qū)上訪問數(shù)據(jù)。在一個實施例中,在集群文件系統(tǒng)中按順序執(zhí)行數(shù)據(jù)復(fù)制。更具體地說,一旦第二數(shù)據(jù)存儲區(qū)上的數(shù)據(jù)復(fù)制完成,便開始在第三數(shù)據(jù)存儲區(qū)上復(fù)制數(shù)據(jù)的第二副本。如圖所示,通過步驟(208)刪除指針之后,判定是否存在機會網(wǎng)絡(luò)可用性以便將數(shù)據(jù)從位于第一服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)復(fù)制到位于第三服務(wù)器本地的第三數(shù)據(jù)存儲區(qū)(212)。當(dāng)對步驟(212)上的判定做出肯定響應(yīng)時,在后臺將數(shù)據(jù)從位于第一節(jié)點本地的數(shù)據(jù)存儲區(qū)復(fù)制到位于第三服務(wù)器本地的數(shù)據(jù)存儲區(qū)(214)。在一個實施例中,步驟(214)上的復(fù)制可以是將第二服務(wù)器本地的數(shù)據(jù)的第一副本復(fù)制到位于第三服務(wù)器本地的數(shù)據(jù)存儲區(qū)。不考慮所采用的實施例,復(fù)制的完成時間均可根據(jù)網(wǎng)絡(luò)帶寬和事務(wù)大小而變化。執(zhí)行完步驟(214)之后,判定在步驟(212)開始的復(fù)制是否完成(216)。當(dāng)對步驟
(216)上的判定做出肯定響應(yīng)時,刪除指針(218)。在完成從位于第三數(shù)據(jù)存儲區(qū)本地的數(shù)據(jù)存儲區(qū)復(fù)制數(shù)據(jù)之前,不會刪除來自第三數(shù)據(jù)存儲區(qū)的指針。因此,當(dāng)對步驟(216)上的判定做出否定響應(yīng)時,在復(fù)制繼續(xù)時等待一段時間(220)。當(dāng)步驟(220)上的一段時間完成時,過程返回到步驟(216)。在一個實施例中,步驟(220)上采用的時間段可以是固定時間段,也可以是可修改的時間段。類似地,在一個實施例中,第三數(shù)據(jù)存儲區(qū)中的指針采取第三數(shù)據(jù)存儲區(qū)的已分配存儲塊的元數(shù)據(jù)中的標志的形式。在一個實施例中,存在標志指示數(shù)據(jù)復(fù)制完成并且數(shù)據(jù)可用。備選地,在一個實施例中,可將標志配置為使得存在標志指示數(shù)據(jù)復(fù)制未完成,只能在第一或第二數(shù)據(jù)存儲位置上訪問數(shù)據(jù)以支持讀取事務(wù)。因此,如圖2所示,分配存儲塊并采用一種工具作為在復(fù)制完成時向已分配的存儲塊做出指示的指示器。在步驟(202)和(212),顯示出復(fù)制不會按需發(fā)生,而是在網(wǎng)絡(luò)帶寬可用時發(fā)生。例如,復(fù)制過程可以被視為允許復(fù)制在網(wǎng)絡(luò)停用期間發(fā)生的延遲復(fù)制方案,以提高大型寫入事務(wù)的寫性能。這是一種數(shù)據(jù)可用性之間的折衷,用于減小網(wǎng)絡(luò)流量和寫入延遲。對步驟(202)和(212)上的判定做出否定響應(yīng)時,分別延遲時間間隔(222)和(224)。在一個實施例中,時間間隔可以反映 設(shè)定的時間間隔。但是,在一個實施例中,步驟(222 )和(224 )上的時間間隔反映動態(tài)方法,其中當(dāng)網(wǎng)絡(luò)帶寬可用時,復(fù)制過程繼續(xù)執(zhí)行??蛻魴C與服務(wù)器節(jié)點之間存在兩類事務(wù),其中包括寫入事務(wù)和讀取事務(wù)。在寫入事務(wù)中,數(shù)據(jù)可以寫入數(shù)據(jù)存儲區(qū),然后跨集群復(fù)制;在讀取事務(wù)中,可以從數(shù)據(jù)存儲區(qū)讀取已存儲區(qū)的數(shù)據(jù)。如上針對數(shù)據(jù)復(fù)制所述的那樣,存在與讀取數(shù)據(jù)關(guān)聯(lián)的限制,其中包括但不限于數(shù)據(jù)復(fù)制的完成、特定數(shù)據(jù)存儲區(qū)上的負載,以及網(wǎng)絡(luò)帶寬。圖3是示出被定向到位于第二服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)的讀取請求的流程圖(300)。如圖所示,第二服務(wù)器接收從客戶機定向到第二數(shù)據(jù)存儲區(qū)的讀取請求(302)。接收請求之后,判定是否針對第二數(shù)據(jù)存儲區(qū)存在指示到已分配存儲塊的數(shù)據(jù)復(fù)制已完成的指針或另一形式的指示器
(304)。當(dāng)對步驟(304)上的判定做出肯定響應(yīng)時,將請求重定向到位于第一服務(wù)器節(jié)點本地的數(shù)據(jù)存儲區(qū)(306)。相反地,當(dāng)對步驟(306)上的判定做出否定響應(yīng)時,第二服務(wù)器完成請求客戶機的讀取請求(308 )。如寫入事務(wù)所示,在集群中保持最少三個數(shù)據(jù)副本,從而需要兩次復(fù)制。圖4是示出當(dāng)集群中存在至少一次復(fù)制時,對接收自客戶機的讀取請求執(zhí)行處理的流程圖(400)。第三服務(wù)器接收定向到第三數(shù)據(jù)存儲區(qū)的讀取事務(wù)(402)。接收事務(wù)之后,判定是否針對第三數(shù)據(jù)存儲區(qū)存在指示到已分配存儲塊的數(shù)據(jù)復(fù)制已完成的指針或另一形式的指示器
(404)。如果在步驟(404)判定復(fù)制完成,即缺少指針,則第三服務(wù)器完成請求客戶機的讀取事務(wù)(406)。相反地,如果在步驟(404)判定復(fù)制未完成,S卩,存在指針時,可將讀取事務(wù)重定向到可以處理請求的第二服務(wù)器或第三服務(wù)器。需要指出,在一個實施例中,如果第二和第三服務(wù)器無法處理請求,則可能返回錯誤。可選地,在一個實施例中,將第一和第二服務(wù)器的負載進行比較以判定滿足讀取事務(wù)的最優(yōu)候選(408)。如果第一服務(wù)器的負載小于第二服務(wù)器的負載,則讀取請求被重定向到第一服務(wù)器以滿足讀取事務(wù)(410)。相反地,如果第二服務(wù)器的負載小于第一服務(wù)器的負載,則讀取事務(wù)被重定向到第二服務(wù)器以滿足讀取事務(wù)(412)。因此,在完成至少一次數(shù)據(jù)復(fù)制的集群中,這兩個服務(wù)器之一可用于滿足讀取事務(wù)并保持兩個可用服務(wù)器之間的負載平衡。

采用跨集群復(fù)制的數(shù)據(jù)是為了在保持可靠性的同時優(yōu)化性能。例如,在具有三次數(shù)據(jù)復(fù)制的實施例中,每個副本位于集群中不同服務(wù)器本地的不同數(shù)據(jù)存儲區(qū)上。針對第二或第三服務(wù)器節(jié)點的讀取事務(wù)請求各個復(fù)制的狀態(tài)和/或評估各個服務(wù)器上的負載,以評價在保持服務(wù)期間負載平衡的同時,應(yīng)該使用哪個服務(wù)器處理讀取事務(wù)。因此,根據(jù)一個或多個因素,讀取事務(wù)被定向到集群中最適合處理事務(wù)的服務(wù)器節(jié)點之一。如圖1-4中的流程圖所示,采用一種方法支持跨集群文件系統(tǒng)的多個服務(wù)器節(jié)點復(fù)制寫入事務(wù),以及支持從旨在存儲寫入事務(wù)數(shù)據(jù)的數(shù)據(jù)存儲區(qū)讀取事務(wù)。圖5是示出嵌入計算機系統(tǒng)以支持跨集群文件系統(tǒng)的一個或多個服務(wù)器節(jié)點復(fù)制寫入事務(wù)的工具的框圖(500 )。更具體地說,集群文件系統(tǒng)被示出安裝在多個服務(wù)器(510 )、( 530 )和(550 )上。集群文件系統(tǒng)是同時安裝在多個服務(wù)器上的文件系統(tǒng)。盡管此處的實例示出三個服務(wù)器,但是本發(fā)明的集群文件系統(tǒng)中并不限于此數(shù)量的服務(wù)器。類似地,盡管此處僅示出一個集群,但是在一個實施例中,可以提供多個集群,并且通過網(wǎng)絡(luò)連接支持跨集群通信。系統(tǒng)中的每個服務(wù)器都具有本地數(shù)據(jù)存儲區(qū),同時可以與集群內(nèi)或集群間的遠程存儲區(qū)進行通信。更具體地說,為第一服務(wù)器(510)提供處理單元(504),該處理單元跨總線(508)與存儲器(506)進行通信并與第一數(shù)據(jù)存儲區(qū)(512)進行通信;為第二服務(wù)器(530)提供處理單元(534),該處理單元跨總線(538)與存儲器(536)進行通信并與第二數(shù)據(jù)存儲區(qū)(542)進行通信;以及為第三服務(wù)器(550)提供處理單元(554),該處理單元跨總線(558)與存儲器(556)進行通信并與第三數(shù)據(jù)存儲區(qū)(562)進行通信。同時,第一服務(wù)器(510)可以跨網(wǎng)絡(luò)連接(505)與遠程數(shù)據(jù)存儲區(qū)(542)和(562)進行通信,第二服務(wù)器(530)可以跨網(wǎng)絡(luò)連接(505)與遠程數(shù)據(jù)存儲區(qū)(512)和(562)進行通信,以及第三服務(wù)器(550)可以跨網(wǎng)絡(luò)連接(505)與遠程數(shù)據(jù)存儲區(qū)(512)和(542)進行通信。在此處所示的實例中,每個數(shù)據(jù)存儲區(qū)(512)、(542)和(562)被配置為接收通過各個服務(wù)器(510)、(530)和(560)存儲數(shù)據(jù)的請求。更具體地說,提供與服務(wù)器節(jié)點(510)、(530)和(560)通信的客戶機(570)。為客戶機(570)提供處理單元(574),該處理單元跨總線(578)與存儲器(576)進行通信??蛻魴C(570)可以針對讀寫事務(wù)與服務(wù)器節(jié)點進行通信。盡管實例中僅示出一個客戶機(570)來支持與集群之間的讀寫事務(wù),但是本發(fā)明并不限于此處所示的數(shù)量。在一個實施例中,可以存在兩個或多個與集群通信的客戶機。類似地,本發(fā)明不應(yīng)被限于此處所示的服務(wù)器節(jié)點數(shù)量,跨集群的數(shù)據(jù)復(fù)制次數(shù),以及此處所示的集群數(shù)量。這些因素中的每一項都是可變的。在集群文件系統(tǒng)內(nèi),提供寫管理器以將接收自客戶機(570)的數(shù)據(jù)的副本寫入位于集群中服務(wù)器節(jié)點之一本地的數(shù)據(jù)存儲區(qū)。在此處所示的實例中,通過寫管理器(520)配置的服務(wù)器節(jié)點(510)是服務(wù)器(510)的存儲器(506)的本地服務(wù)器。類似地,通過寫管理器(540 )配置的服務(wù)器(530 )是存儲器(546 )的本地服務(wù)器,通過寫管理器(560 )配置的服務(wù)器(550)是存儲器(556)的本地服務(wù)器。每個寫管理器(520)、(540)和(560)都是各個服務(wù)器的本地管理器并被配置為與客戶機(570)進行通信以將接收自客戶機的數(shù)據(jù)的第一副本寫入各個服務(wù)器的本地數(shù)據(jù)存儲區(qū)。為了支持在集群文件系統(tǒng)中復(fù)制接收到的數(shù)據(jù),提供位于每個服務(wù)器節(jié)點本地的分配管理器。在此處所示的實例中,為服務(wù)器節(jié)點(510)提供與寫管理器(520)進行通信的分配管理器(524),以便在第一存儲器件(512)上分配存儲空間。類似地,提供與寫管理器(540)進行通信的分配管理器(544),以便在第二存儲器件(542)上分配存儲空間,以及提供與寫管理器(560)進行通信的分配管理器(564),以便在第三存儲器件(562)上分配存儲空間。因此,每個分配管理器都通過各個寫管理器執(zhí)行功能以支持并確保具有足夠的塊分配來支持寫入事務(wù)和復(fù)制。如上所述,分配管理器可以在每個服務(wù)器節(jié)點本地上分布以允許對數(shù)據(jù)塊分配進行本地管理。在一個實施例中,分配管理器可以是集群文件系統(tǒng)中一個服務(wù)器節(jié)點的本地管理器,被指定為管理數(shù)據(jù)塊的分配以支持跨集群的寫入事務(wù)復(fù)制。除了寫管理器和分配管理器,還提供與分配管理器進行通信的管道管理器,用于伺機安排已分配數(shù)據(jù)塊的填入來支持數(shù)據(jù)復(fù)制。更具體地說,管道管理器負責(zé)以利用可用網(wǎng)絡(luò)帶寬的方式,判定跨集群執(zhí)行復(fù)制過程的適當(dāng)時機。在一個實施例中,管道管理器調(diào)用一項技術(shù),在復(fù)制已分配數(shù)據(jù)塊的第一指令完成之前,開始執(zhí)行復(fù)制已分配數(shù)據(jù)塊的第二指令。對于該實施例,多個指令同時位于管道中,每個指令處于不同的處理階段。在不帶一組分布式分配管理器的實施例中,提供位于服務(wù)器節(jié)點(510)本地并與本地分配管理器(524)進行本地通信的管道管理器(526)。類似地,在帶有分布式分配管理器的實施例中,提供分別與每個分布式分配管理器(544)和(564)進行通信以便安排已分配存儲塊的填入的過程的管道管理器(546)和(566)。在執(zhí)行塊分配之后,將數(shù)據(jù)填入已分配塊之前,采用指針將讀取事務(wù)重定向到存儲區(qū)數(shù)據(jù)的位置。更具體地說,在數(shù)據(jù)復(fù)制完成之前,本地服務(wù)器節(jié)點不能處理和支持被定向到已復(fù)制數(shù)據(jù)的讀取事務(wù)。指針在每個帶有數(shù)據(jù)塊分配以支持數(shù)據(jù)復(fù)制的服務(wù)器節(jié)點本地創(chuàng)建。在一個實施例中,采用元數(shù)據(jù)標志替代指針。如圖所示,在圖5中,例如,服務(wù)器節(jié)點(530)和(550)各自被指定為接收已復(fù)制數(shù)據(jù)的副本。當(dāng)完成塊分配時,在服務(wù)器節(jié)點(530)上建立指針(548)。類似地,當(dāng)完成塊分配時,在服務(wù)器節(jié)點(550)上建立指針(568)。每個指針(548)和(568)通過執(zhí)行功能將對未復(fù)制數(shù)據(jù)的讀取重定向到源服務(wù)器節(jié)點(510)。當(dāng)已分配塊接收完已復(fù)制數(shù)據(jù)時,各個分配管理器刪除本地指針以便在本地處理讀取事務(wù)。更具體地說,當(dāng)數(shù)據(jù)存儲區(qū)(542)上的數(shù)據(jù)復(fù)制完成時,分配管理器(544)刪除指針(548),以及, 當(dāng)數(shù)據(jù)存儲區(qū)(562)上的數(shù)據(jù)復(fù)制完成時,分配管理器(564)刪除指針(568)。
為確保滿足讀取事務(wù)的正確方向,提供讀管理器以將讀取事務(wù)自定向到被配置為滿足請求的位置。如圖所示,讀管理器位于各個服務(wù)器節(jié)點的本地。更具體地說,在服務(wù)器節(jié)點(530)的本地提供讀管理器(580),在服務(wù)器節(jié)點(550)的本地提供讀管理器(582)。分配管理器(544)刪除指針(548)之后,讀管理器(580)將讀取請求自定向到服務(wù)器節(jié)點(530 )。類似地,分配管理器(564 )刪除指針(568 )之后,讀管理器(582 )將讀取請求自定向到服務(wù)器節(jié)點(550)。此處針對單個集群配置示出和展示的組件可以跨網(wǎng)絡(luò)中的每個集群外推。在多集群配置中,可采用工具選擇一個寫入數(shù)據(jù)復(fù)制的集群。例如,如果網(wǎng)絡(luò)中的集群之一具有表現(xiàn)出可能發(fā)生故障的特性,此工具可選擇其它集群來寫入數(shù)據(jù)的第二和/或第三副本。可用數(shù)據(jù)塊的選擇考慮了元數(shù)據(jù)事務(wù)和集群發(fā)生故障的可能性。通過將數(shù)據(jù)寫入其它更穩(wěn)定集群的數(shù)據(jù)存儲區(qū),可增加數(shù)據(jù)的訪問性和可靠性。如上所述,寫管理器(520 )、( 540 )和(560 );分配管理器(524 )、( 544 )和(564 );管道管理器(526 )、( 546 )和(566 ),以及讀管理器(580 )和(582 )通過執(zhí)行功能來管理集群文件系統(tǒng)中的數(shù)據(jù)復(fù)制,從而支持創(chuàng)建兩個或多個數(shù)據(jù)副本的寫入事務(wù)。所示的管理器駐留在服務(wù)器或客戶機本地的存儲器中。更具體地說,寫管理器(520)、分配管理器(524)以及管道管理器(526)各自駐留在服務(wù)器(510)的存儲器(506)中;寫管理器(540)、分配管理器(544)、管道管理器(546)以及讀管理器(580)各自駐留在服務(wù)器(530)的存儲器(536)中;以及寫管理器(560)、分配管理器(564)、管道管理器(566)以及讀管理器(582)各自駐留在服務(wù)器(550)的存儲器(556)中。在一個實施例中,寫管理器、分配管理器、管道管理器以及讀管理器可以作為硬件工具駐留在其各自服務(wù)器的存儲器外部,或者可以實現(xiàn)為硬件和軟件的組合。類似地,在一個實施例中,各個管理器可以組合為集成它們各自功能的單個功能裝置。如此出所示,每個管理器被示出為位于各個服務(wù)器本地。但是,在一個實施例中,它們可以跨網(wǎng)絡(luò)統(tǒng)一地或單獨地分布,并作為一個裝置執(zhí)行功能以管理塊分配和數(shù)據(jù)復(fù)制,從而支持寫入事務(wù)。因此,各個管理器可實現(xiàn)為軟件工具、硬件工具,或軟件和硬件工具的組合,用來收集和組織數(shù)據(jù)內(nèi)容。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各個方面還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子的非窮舉的列表包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀 存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它 可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機程序指令存儲在計算機可讀介質(zhì)中,這些指令使得計算機、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)0也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程?,F(xiàn)在參考圖6,該圖是示出實現(xiàn)本發(fā)明實施例的系統(tǒng)的框圖。計算機系統(tǒng)包括一個或多個處理器,例如處理器(602)。處理器(602)與通信基礎(chǔ)設(shè)施(604)(例如,通信總線、直連網(wǎng)線或網(wǎng)絡(luò))相連。計算機系統(tǒng)可以包括顯示接口(606),用于從通信基礎(chǔ)設(shè)施(604)(或者從幀緩沖器(未示出))轉(zhuǎn)發(fā)圖形、文本和其它數(shù)據(jù)以便在顯示單元(608)上顯示。計算機系統(tǒng)還包括主存儲器(610),優(yōu)選地為隨機存取存儲器(RAM),還可包括輔助存儲器(612)。輔助存儲器(612)例如可以包括硬盤驅(qū)動器(614)和/或可移動存儲驅(qū)動器(616)——例如表示軟盤驅(qū)動器、磁盤驅(qū)動器或光盤驅(qū)動器??梢苿哟鎯︱?qū)動器(616)通過本領(lǐng)域的技術(shù)人員公知的方式對可移動存儲單元(618)執(zhí)行讀寫操作??梢苿哟鎯卧?618)例如表示軟盤、光碟、磁盤或光盤等,它們由可移動存儲驅(qū)動器(616)進行讀寫。將理解,可移動存儲單元(618 )包括上面存儲計算機軟件和/或數(shù)據(jù)的計算機可讀介質(zhì)。在備選實施例中,輔助存儲器(612)可以包括其它類似的裝置,它們允許計算機程序或其它指令被加載到計算機系統(tǒng)。此類裝置例如可以包括可移動存儲單元(620)和接口(622)。此類裝置的例子可以包括程序封裝和封裝接口(例如在視頻游戲設(shè)備中找到的)、可移動存儲芯片(例如EPROM或PR0M)以及關(guān)聯(lián)的插座,以及其它允許軟件和數(shù)據(jù)從可移動存儲單元(620)傳輸?shù)接嬎銠C系統(tǒng)的可移動存儲單元(620)和接口(622)。計算機系統(tǒng)還可以包括通信接口(624)。通信接口(624)允許軟件和數(shù)據(jù)在計算機系統(tǒng)與外部設(shè)備之間傳輸。通信接口(624)的例子可以包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(例如以太網(wǎng)卡)、通信端口或PCMCIA插槽和卡等。通過通信接口(624)傳輸?shù)能浖蛿?shù)據(jù)采取信號的形式,所述信號例如可以是電、電磁、光信號,或者是能夠由通信接口(624)接收的其它信號。這些信號借助通信路徑(即,信道)(626)提供給通信接口(624)。該通信路徑(626)承載信號并可使用電線或電纜、光纖、電話線、移動電話鏈路、射頻(FR)鏈路和/或其它通信信號實現(xiàn)。在本文中,術(shù)語“計算機程序介質(zhì)”、“計算機可用介質(zhì)”和“計算機可讀介質(zhì)” 一般用于指示諸如主存儲器(610)和輔助存儲器(620)、可移動存儲驅(qū)動器(616)以及安裝在硬盤驅(qū)動器(614)中的硬盤之類的介質(zhì)。計算機程序(也稱為計算機控制邏輯)存儲在主存儲器(610)和輔助存儲器(620)中。計算機程序還可以通過通信接口(624)接收。當(dāng)運行時,此類計算機程序可使計算機系統(tǒng)執(zhí)行此處介紹的本發(fā)明的特征。具體而言,當(dāng)運行時,計算機程序可使處理器(602)執(zhí)行計算機系統(tǒng)的特征。因此,此類計算機程序表示計算機系統(tǒng)的控制器。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,在數(shù)據(jù)復(fù)制中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的集群文件系統(tǒng)方框?qū)嶋H上可以基本并行地 執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。此處使用的術(shù)語只是為了描述具體實施例,并非旨在限制本發(fā)明。如在此使用的那樣,單數(shù)形式“一”、“一個”和“所述”旨在同樣包括復(fù)數(shù)形式,除非上下文明確地另有所指。還將理解,當(dāng)在此說明書中使用時,根術(shù)語“包括”和/或“包含”指定存在聲明的特征、整數(shù)、步驟、操作、元素和/或組件,但是并不排除存在或增加其它特征、整數(shù)、步驟、操作、元素、組件和/或它們構(gòu)成的組。以下的權(quán)利要求中的對應(yīng)結(jié)構(gòu)、材料、操作以及所有功能性限定的裝置或步驟的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它單元相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。實施例的選擇和描述,旨在最好地解釋本發(fā)明的原理、實際應(yīng)用,當(dāng)適合于所構(gòu)想的特定應(yīng)用時,可使本技術(shù)領(lǐng)域的普通人員理解本發(fā)明帶有各種修改的各種實施例。備選實施例
將理解,盡管此處出于闡述的目的描述了本發(fā)明的特定實施例,但是可以做出各種修改。具體而言,可通過中央管理器或分布式管理器集合配置系統(tǒng)以引導(dǎo)集群內(nèi)的數(shù)據(jù)復(fù)制。類 似地,在一個實施例中,可存在多個集群文件系統(tǒng),其中數(shù)據(jù)復(fù)制在集群間進行。
權(quán)利要求
1.一種數(shù)據(jù)復(fù)制方法,包括: 在位于第一服務(wù)器節(jié)點(510)本地的第一數(shù)據(jù)存儲區(qū)(512)上寫入(102)數(shù)據(jù)的第一副本; 在所述第一數(shù)據(jù)存儲區(qū)上管道式執(zhí)行數(shù)據(jù)的所述第一副本的復(fù)制,所述管道式執(zhí)行復(fù)制包括在位于第二服務(wù)器節(jié)點(530)本地的第二數(shù)據(jù)存儲區(qū)(542)上為所述數(shù)據(jù)的第二副本分配(104)存儲區(qū)以及在位于第三服務(wù)器節(jié)點(550)本地的第三數(shù)據(jù)存儲區(qū)(562)上為所述數(shù)據(jù)的第三副本分配(108)存儲區(qū),以及根據(jù)網(wǎng)絡(luò)特性安排將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)和所述第三數(shù)據(jù)存儲區(qū)。
2.根據(jù)權(quán)利要求1的方法,其中分配存儲區(qū)進一步包括創(chuàng)建(106)從所述第二服務(wù)器節(jié)點的所述已分配存儲區(qū)指向數(shù)據(jù)的所述第一副本的第二指針(548)以及創(chuàng)建(110)從所述第三服務(wù)器節(jié)點的所述已分配存儲區(qū)指向數(shù)據(jù)的所述第一副本的第三指針(568)。
3.根據(jù)權(quán)利要求2的方法,進一步包括:在完成將所述數(shù)據(jù)的所述第一副本填入(204)位于所述第二服務(wù)器節(jié)點(530)本地的所述第二數(shù)據(jù)存儲區(qū)(542)的所述步驟之前,所述第二指針(548)將第二讀取請求從所述第二服務(wù)器節(jié)點重定向(306)到所述第一節(jié)點,以及,在完成將所述數(shù)據(jù)的所述第一副本填入(214)位于所述第二服務(wù)器節(jié)點(550)本地的所述第三數(shù)據(jù)存儲區(qū)(562)的所述步驟之前,所述第三指針(568)將第三讀取請求從所述第三服務(wù)器節(jié)點重定向(410)到所述第一服務(wù)器節(jié)點。
4.根據(jù)權(quán)利要求2的方法,進一步包括在完成將所述數(shù)據(jù)的所述第一副本填入(204)位于所述第二服務(wù)器節(jié)點(530)本地的所述第二數(shù)據(jù)存儲區(qū)(542)的所述步驟之后,刪除(208)所述第二指針(548),以及,在完成將所述數(shù)據(jù)的所述第一副本填入(214)位于所述第三服務(wù)器節(jié)點(550)本地的所述第三數(shù)據(jù)存儲區(qū)(562)的所述步驟之后,刪除(218)所述第三指針(568)。
5.根據(jù)權(quán)利要求4的方 法,進一步包括在刪除所述第二指針(548)之后,將讀取請求自定向(308)到所述第二服務(wù)器節(jié)點(530),以及在刪除所述第三指針(568)之后,將讀取請求自定向到所述第三服務(wù)器節(jié)點(550 )。
6.根據(jù)權(quán)利要求1的方法,其中所述安排步驟相對于網(wǎng)絡(luò)帶寬可用性而言是機會性的。
7.根據(jù)權(quán)利要求1的方法,進一步包括將標志嵌入所述已分配存儲區(qū)的元數(shù)據(jù)空間。
8.根據(jù)權(quán)利要求7的方法,其中存在所述標志指示所述數(shù)據(jù)復(fù)制完成。
9.根據(jù)權(quán)利要求7的方法,其中缺少所述標志指示所述數(shù)據(jù)復(fù)制完成。
10.根據(jù)權(quán)利要求7的方法,其中管道式執(zhí)行復(fù)制包括開始執(zhí)行第二指令,以便完成在所述第二服務(wù)器節(jié)點上復(fù)制數(shù)據(jù)的所述第一副本之前,在所述第三服務(wù)器節(jié)點上復(fù)制數(shù)據(jù)的所述第一副本。
11.一種數(shù)據(jù)復(fù)制系統(tǒng)(500),包括: 集群文件系統(tǒng),其中包括跨網(wǎng)絡(luò)(505)通信的服務(wù)器節(jié)點(510、530、550),所述集群包括位于第一服務(wù)器節(jié)點(510)本地的第一數(shù)據(jù)存儲區(qū)(512)、位于第二服務(wù)器節(jié)點(530)本地的第二數(shù)據(jù)存儲區(qū)(542),以及位于第三服務(wù)器節(jié)點(550)本地的第三數(shù)據(jù)存儲區(qū)(562); 寫管理器(520),用于將數(shù)據(jù)的第一副本從客戶機(570)寫入位于所述第一服務(wù)器節(jié)點本地的所述第一數(shù)據(jù)存儲區(qū); 與所述寫管理器通信的分配管理器(524),所述分配管理器響應(yīng)于管道管理器(526)復(fù)制數(shù)據(jù)的所述第一副本,在位于所述第二服務(wù)器節(jié)點本地的所述第二數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第二副本分配存儲區(qū)以及在位于所述第三服務(wù)器節(jié)點本地的所述第三數(shù)據(jù)存儲區(qū)上為所述數(shù)據(jù)的第三副本分配存儲區(qū);以及 與所述分配管理器通信的管道管理器,所述管道管理器根據(jù)網(wǎng)絡(luò)特性安排將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)和所述第三數(shù)據(jù)存儲區(qū)。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中所述分配管理器(524)創(chuàng)建從所述第二服務(wù)器節(jié)點(530)的所述已分配存儲區(qū)指向數(shù)據(jù)的所述第一副本的第二指針(548)以及創(chuàng)建從所述第三服務(wù)器節(jié)點(550)的所述已分配存儲區(qū)指向數(shù)據(jù)的所述第一副本的第三指針(568)。
13.根據(jù)權(quán)利要求12的系統(tǒng),進一步包括將第二讀取請求從所述第二服務(wù)器節(jié)點(530)重定向到所述第一節(jié)點(510)的所述第二指針(548),以及將第三讀取請求從所述第三服務(wù)器節(jié)點(550)重定向到所述第一服務(wù)器節(jié)點(510)的所述第三指針(568)。
14.根據(jù)權(quán)利要求12的系統(tǒng),進一步包括在完成將所述數(shù)據(jù)的所述第一副本填入位于所述第二服務(wù)器節(jié)點(530)本地的所述第二數(shù)據(jù)存儲區(qū)(542)之后,刪除所述第二指針(548),以及在完成將所述數(shù)據(jù)的所述第一副本填入位于所述第三服務(wù)器節(jié)點(550)本地的所述第三數(shù)據(jù)存儲區(qū)(562 )之后,刪除所述第三指針(568 )的所述分配管理器(524 )。
15.根據(jù)權(quán)利要求14的系統(tǒng),進一步包括在刪除所述第二指針(548)之后,將讀取請求自定向到所述第二節(jié)點(530),以及在刪除所述第三指針(568)之后,將讀取請求自定向到所述第三節(jié)點(550)的讀管理器(580、582)。
16.根據(jù)權(quán)利要求11的系統(tǒng),其中所述管道管理器(526)執(zhí)行的安排相對于網(wǎng)絡(luò)帶寬可用性而言是機會性的。
17.一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括上面包含計算機可讀程序代碼的計算機可讀存儲區(qū)介質(zhì),所述計算機可讀程序代碼包括: 被配置為在位于第一服務(wù)器節(jié)點(510)本地的第一數(shù)據(jù)存儲區(qū)(512)上寫入(102)數(shù)據(jù)的第一副本的計算機可讀程序代碼; 被配置為在所述第一服務(wù)器節(jié)點上管道式執(zhí)行數(shù)據(jù)的所述第一副本的復(fù)制的計算機可讀程序代碼,所述管道式執(zhí)行復(fù)制包括在位于第二服務(wù)器節(jié)點(530)本地的第二數(shù)據(jù)存儲區(qū)(542)上為所述數(shù)據(jù)的第二副本分配(104)存儲區(qū)以及在位于第三服務(wù)器節(jié)點(550)本地的第三數(shù)據(jù)存儲區(qū)(562)上為所述數(shù)據(jù)的第三副本分配(108)存儲區(qū); 被配置為根據(jù)網(wǎng)絡(luò)特性安排將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)上的所述已分配存儲區(qū)和所述第三數(shù)據(jù)存儲區(qū)上的所述已分配存儲區(qū)。
18.根據(jù)權(quán)利要求17的計算機程序產(chǎn)品,其中分配存儲區(qū)的所述計算機可讀程序代碼進一步包括被配置為創(chuàng)建(106)從所述第二服務(wù)器節(jié)點的所述已分配存儲區(qū)指向數(shù)據(jù)的所述第一副本的第二指針(548)以及創(chuàng)建(110)從所述第三服務(wù)器節(jié)點的所述已分配存儲區(qū)指向數(shù)據(jù)的所述第一副本的第三指針(568)的計算機可讀程序代碼。
19.根據(jù)權(quán)利要求18的計算機程序產(chǎn)品,進一步包括被配置為在完成將所述數(shù)據(jù)的所述第一副本填入(204)位于所述第二服務(wù)器節(jié)點(530)本地的所述第二數(shù)據(jù)存儲區(qū)(542)之前,利用所述第二指針將第二讀取 請求從所述第二服務(wù)器節(jié)點重定向到所述第一節(jié)點,以及在完成將所述數(shù)據(jù)的所述第一副本填入(214)位于所述第三服務(wù)器節(jié)點(550)本地的所述第三數(shù)據(jù)存儲區(qū)(562)的所述步驟之前,利用所述第三指針將第三讀取請求從所述第三服務(wù)器節(jié)點重定向到所述第一服務(wù)器節(jié)點的計算機可讀程序代碼。
20.根據(jù)權(quán)利要求18的計算機程序產(chǎn)品,進一步包括被配置為在完成將所述數(shù)據(jù)的所述第一副本填入(204)位于所述第二服務(wù)器節(jié)點(530)本地的所述第二數(shù)據(jù)存儲區(qū)(542)之后,刪除(208)所述第二指針(548)的計算機可讀程序代碼,以及被配置為在完成將所述數(shù)據(jù)的所述第一副本填入(214)位于所述第三服務(wù)器節(jié)點(550)本地的所述第三數(shù)據(jù)存儲區(qū)(562 )之后,刪除(218 )所述第三指針(568 )的計算機可讀程序代碼。
21.根據(jù)權(quán)利要求20的計算機程序產(chǎn)品,進一步包括被配置為在刪除所述第二指針(548)之后,將讀取請求自定向(308)到所述第二服務(wù)器節(jié)點(530),以及在刪除所述第三指針(568 )之后,將讀取請求自定向到所述第三服務(wù)器節(jié)點(550 )的計算機可讀程序代碼。
22.根據(jù)權(quán)利 要求17的計算機程序產(chǎn)品,其中所述計算機可讀程序代碼安排將所述數(shù)據(jù)的所述第一副本填入所述第二數(shù)據(jù)存儲區(qū)(542)和所述第三數(shù)據(jù)存儲區(qū)(562)相對于網(wǎng)絡(luò)帶寬可用性而言是機會性的。
全文摘要
本發(fā)明的實施例涉及文件系統(tǒng)中用于支持寫事務(wù)的數(shù)據(jù)復(fù)制和塊分配。集群文件系統(tǒng)中的區(qū)域被定義為支持塊分配。已定義區(qū)域中的塊通過分配來支持數(shù)據(jù)復(fù)制。管道管理器用于根據(jù)網(wǎng)絡(luò)特性安排將數(shù)據(jù)填入已分配區(qū)域中的塊。
文檔編號G06F17/30GK103229171SQ201180057332
公開日2013年7月31日 申請日期2011年11月16日 優(yōu)先權(quán)日2010年11月30日
發(fā)明者D·蘇布拉維提, P·薩卡爾, K·古普塔, R·L·哈斯金 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
友谊县| 广德县| 延津县| 瑞安市| 贵定县| 上思县| 平阴县| 丰宁| 台山市| 眉山市| 洛隆县| 宜良县| 阿图什市| 福安市| 克东县| 论坛| 类乌齐县| 锦州市| 涞源县| 科尔| 安国市| 都兰县| 锡林郭勒盟| 富锦市| 郁南县| 涞源县| 阿克| 平塘县| 桂阳县| 周宁县| 枣强县| 三亚市| 库伦旗| 文化| 合山市| 万源市| 红原县| 大田县| 平邑县| 莲花县| 长治县|