本專利文獻(xiàn)的公開(kāi)內(nèi)容的部分可以包含都受到版權(quán)保護(hù)的命令格式和其它計(jì)算機(jī)語(yǔ)言清單。版權(quán)所有者不反對(duì)由任何人影印復(fù)制如在專利和商標(biāo)局專利文件或者記錄中出現(xiàn)的那樣的專利文獻(xiàn)或者專利公開(kāi)內(nèi)容、但是除此之外保留所有無(wú)論任何版權(quán)權(quán)利。
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)在速度、可靠性和處理能力方面不斷地改進(jìn)。如在本領(lǐng)域中所知的,處理和存儲(chǔ)大量數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)通常包括與其中存儲(chǔ)了數(shù)據(jù)的共享數(shù)據(jù)存儲(chǔ)系統(tǒng)通信的一個(gè)或者多個(gè)處理器。數(shù)據(jù)存儲(chǔ)系統(tǒng)可以包括通常具有相當(dāng)?shù)聂敯钚再|(zhì)并且可用于跨越各種時(shí)間要求的存儲(chǔ)的一個(gè)或者多個(gè)存儲(chǔ)設(shè)備、例如盤驅(qū)動(dòng)。一個(gè)或者多個(gè)處理器使用存儲(chǔ)系統(tǒng)來(lái)執(zhí)行它們的相應(yīng)操作。海量存儲(chǔ)系統(tǒng)(mss)通常包括多個(gè)盤的陣列,這些盤具有用于使得盤上的數(shù)據(jù)可用的板上智能和通信電子裝置以及軟件。
銷售數(shù)據(jù)存儲(chǔ)系統(tǒng)之類的公司非常關(guān)注于向客戶提供一種最小化成本同時(shí)滿足客戶數(shù)據(jù)存儲(chǔ)需要的高效數(shù)據(jù)存儲(chǔ)解決方案。對(duì)于這樣的公司將有益的是具有一種用于減少實(shí)施數(shù)據(jù)存儲(chǔ)的復(fù)雜性的方式。
技術(shù)實(shí)現(xiàn)要素:
一種將在包括生產(chǎn)地點(diǎn)和復(fù)制地點(diǎn)的數(shù)據(jù)存儲(chǔ)系統(tǒng)上的復(fù)制從異步復(fù)制轉(zhuǎn)變成同步復(fù)制的系統(tǒng)、計(jì)算機(jī)程序產(chǎn)品和計(jì)算機(jī)可執(zhí)行 的方法,該系統(tǒng)、計(jì)算機(jī)程序產(chǎn)品和計(jì)算機(jī)可執(zhí)行的方法包括接收對(duì)從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變的請(qǐng)求并且將數(shù)據(jù)存儲(chǔ)系統(tǒng)改變到轉(zhuǎn)變模式,其中數(shù)據(jù)存儲(chǔ)系統(tǒng)將數(shù)據(jù)存儲(chǔ)系統(tǒng)從使用異步復(fù)制轉(zhuǎn)變成同步復(fù)制。
附圖說(shuō)明
可以通過(guò)參照結(jié)合附圖的以下描述更好地理解在本文中公開(kāi)的實(shí)施例的目的、特征和優(yōu)點(diǎn)。附圖不是為了限制在本文中包括的權(quán)利要求的范圍。為了清楚,可能沒(méi)有在每幅圖中標(biāo)注每個(gè)單元。附圖未必按比例,待之以著重于圖示實(shí)施例、原理和概念。因此,本公開(kāi)內(nèi)容的特征和優(yōu)點(diǎn)將從結(jié)合附圖進(jìn)行的對(duì)示例實(shí)施例的以下具體描述而變得清楚,在附圖中:
圖1是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的從生產(chǎn)地點(diǎn)向遠(yuǎn)程地點(diǎn)進(jìn)行復(fù)制的數(shù)據(jù)存儲(chǔ)系統(tǒng)的簡(jiǎn)化圖示;
圖2是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的從異步復(fù)制轉(zhuǎn)變成同步復(fù)制的數(shù)據(jù)存儲(chǔ)系統(tǒng)(即如圖1中所示)的時(shí)間線的簡(jiǎn)化圖示;
圖3a-3f是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的在從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變期間數(shù)據(jù)存儲(chǔ)系統(tǒng)(如圖1中所示)的狀態(tài)圖的簡(jiǎn)化圖示;
圖4是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的使用圖1中所示數(shù)據(jù)存儲(chǔ)系統(tǒng)從異步復(fù)制轉(zhuǎn)變成同步復(fù)制的方法的簡(jiǎn)化流程圖;
圖5是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例可以利用本文中所描述的技術(shù)的裝置的一個(gè)實(shí)施例的示例;以及
圖6是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的在可以利用本文中所描述的技術(shù)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上體現(xiàn)的方法的示例。
各種附圖中的相似標(biāo)號(hào)指示相似要素。
具體實(shí)施方式
傳統(tǒng)地,許多分布式系統(tǒng)使用一致快照機(jī)制來(lái)在源地點(diǎn)與遠(yuǎn)程 地點(diǎn)之間復(fù)制數(shù)據(jù)。典型地,分布式系統(tǒng)處理同步或者異步復(fù)制。常規(guī)地,盡管一些分布式系統(tǒng)可以從異步切換成同步復(fù)制,但是當(dāng)前技術(shù)在切換之時(shí)導(dǎo)致較長(zhǎng)的轉(zhuǎn)變時(shí)間。一般地,分布式系統(tǒng)在分布式系統(tǒng)在從同步轉(zhuǎn)換成異步復(fù)制或者相反之的時(shí)候停止或者保持傳入i/o。常規(guī)地,對(duì)當(dāng)前復(fù)制技術(shù)的改進(jìn)將有益于數(shù)據(jù)存儲(chǔ)行業(yè)。
在許多實(shí)施例中,本公開(kāi)內(nèi)容可以使得復(fù)制到遠(yuǎn)程地點(diǎn)的生產(chǎn)系統(tǒng)從異步復(fù)制轉(zhuǎn)變成同步復(fù)制。在各種實(shí)施例中,本公開(kāi)實(shí)現(xiàn)了例如在異步復(fù)制與同步復(fù)制之間的轉(zhuǎn)變而不需要完全重新同步,該完全重新同步將是非常冗長(zhǎng)的、即使僅改變數(shù)據(jù)的微小比例也仍然需要復(fù)制全部卷。在多數(shù)實(shí)施例中,本公開(kāi)內(nèi)容可以實(shí)現(xiàn)復(fù)制類型的非破壞轉(zhuǎn)變,同時(shí)可以使得用戶能夠在遠(yuǎn)程地點(diǎn)上連續(xù)地具有一致的副本。在各種實(shí)施例中,本公開(kāi)內(nèi)容可以提供從異步復(fù)制到同步復(fù)制的平滑性能轉(zhuǎn)變而不是一次性大量性能沖擊。在某些實(shí)施例中,本公開(kāi)內(nèi)容可以潛在地在數(shù)分鐘或者數(shù)小時(shí)內(nèi)實(shí)現(xiàn)逐步性能懲罰,直至可以實(shí)現(xiàn)完全同步復(fù)制。
快照機(jī)制
本實(shí)施例在一個(gè)方面中涉及瘦供應(yīng)卷(thinlyprovisionedvolume)或者其它邏輯數(shù)據(jù)構(gòu)造的快照,該快照包括與地址范圍的僅與前代(ancestor)有關(guān)的被改變的部分有關(guān)的元數(shù)據(jù)、因此本身僅被瘦供應(yīng)。該快照可以是快照分級(jí)的部分,其中用于給定位置的元數(shù)據(jù)可以被放置在它在分級(jí)中首次出現(xiàn)的點(diǎn)處,并且由稍后的快照指向該元數(shù)據(jù)。
根據(jù)本發(fā)明的一些實(shí)施例的一個(gè)方面,提供一種用于存儲(chǔ)器卷的存儲(chǔ)器管理系統(tǒng),該系統(tǒng)包括被配置為拍攝存儲(chǔ)器卷在給定時(shí)間處的給定快照的快照供應(yīng)單元,該快照包括該卷的映射表和存儲(chǔ)器值,該映射表和存儲(chǔ)器值包括用于包含數(shù)據(jù)的物理存儲(chǔ)器的地址的條目,所錄入的值不同于快照的前代。
在一個(gè)實(shí)施例中,該卷是瘦供應(yīng)的存儲(chǔ)器卷,在該存儲(chǔ)器卷中虛擬地址塊的相對(duì)較大的虛擬地址范圍經(jīng)由映射表而被映射到包括 物理存儲(chǔ)器塊的相對(duì)較小的物理存儲(chǔ)器,該映射表包含僅用于包含數(shù)據(jù)的物理存儲(chǔ)器塊的地址的條目。
在一個(gè)實(shí)施例中,給定的快照是在相繼時(shí)間處拍攝的快照的分級(jí)的部分,以及其中快照供應(yīng)單元被配置為向給定的快照提供用于物理存儲(chǔ)器的如下地址的條目,數(shù)據(jù)在拍攝該分級(jí)中的最新近的先前快照之后被錄入到這些地址,以及被配置為向給定的快照提供指向該分級(jí)中的先前快照的指針,這些先前快照用于在拍攝最新近先前快照之前錄入的數(shù)據(jù)。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置為創(chuàng)建瘦供應(yīng)的存儲(chǔ)器卷的只讀版本,以提供用于分級(jí)的固定基礎(chǔ)。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置為提供該分級(jí)的第一樹(shù)結(jié)構(gòu)以針對(duì)每個(gè)被寫入的存儲(chǔ)器塊指示所查詢的包含相應(yīng)條目的快照的最新近的前代快照。
在一個(gè)實(shí)施例中,快照供應(yīng)單元包括遍歷第一樹(shù)結(jié)構(gòu)以讀取給定的塊的值的讀取功能和向該分級(jí)中的最新近快照寫入塊值的寫入功能。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置為提供第二樹(shù)結(jié)構(gòu),第二樹(shù)結(jié)構(gòu)針對(duì)每個(gè)寫入的存儲(chǔ)器塊指示該分級(jí)的哪一級(jí)別包含針對(duì)該塊的值。
在一個(gè)實(shí)施例中,快照供應(yīng)單元包括讀取功能,該讀取功能被配置為遍歷第二存儲(chǔ)器結(jié)構(gòu)以發(fā)現(xiàn)該分級(jí)的如下級(jí)別,該級(jí)別包含用于所請(qǐng)求的塊的值,然后使用第一存儲(chǔ)器結(jié)構(gòu)以確定包含該值的該級(jí)別是否為該分級(jí)中具有從其請(qǐng)求該塊的級(jí)別的前代。
在一個(gè)實(shí)施例中,快照供應(yīng)單元進(jìn)一步包括用于刪除快照的刪除功能,其中對(duì)于具有單個(gè)后代的待刪除的快照,后代和父代節(jié)點(diǎn)的值被合并成單個(gè)節(jié)點(diǎn)。
在一個(gè)實(shí)施例中,物理存儲(chǔ)器包括隨機(jī)存取存儲(chǔ)器盤。
在一個(gè)實(shí)施例中,這些塊具有包括如下成員的組中的一個(gè)成員的粒度:少于100k、少于10k和4k。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置為將相應(yīng)快照的映射數(shù)據(jù)對(duì)準(zhǔn)到存儲(chǔ)器的頁(yè)面。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置為提供第三樹(shù)結(jié)構(gòu),第三樹(shù)結(jié)構(gòu)返回該分級(jí)的相應(yīng)快照的深度優(yōu)先搜索排序,從而每個(gè)快照的葉子被連續(xù)地排序并且,如果快照a是快照b的前代,則a的葉子的排序完全地重疊b的葉子的排序。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置有讀取功能,該讀取功能配置為使用第三樹(shù)結(jié)構(gòu)以獲得具有在所請(qǐng)求的存儲(chǔ)器地址處的值的快照的列表,以及通過(guò)遍歷該列表的快照并且返回進(jìn)行請(qǐng)求的快照的列表中的相應(yīng)快照來(lái)發(fā)現(xiàn)該列表中的最接近的前代,該相應(yīng)快照是進(jìn)行請(qǐng)求的快照的前代并且具有最小數(shù)目的葉子。
在一個(gè)實(shí)施例中,快照供應(yīng)單元被配置為提供間接層或者后備(look-aside)表以提供數(shù)據(jù)去重復(fù)。
根據(jù)本發(fā)明的第二方面,提供一種存儲(chǔ)器管理方法,該方法包括:拍攝存儲(chǔ)器卷在給定時(shí)間處的給定快照,向該快照提供卷的映射表和存儲(chǔ)器值,該映射表和存儲(chǔ)器值包括用于包含數(shù)據(jù)的物理存儲(chǔ)器的地址的條目,并且其中這些值不同于前代中的數(shù)據(jù)。
除非另有定義,本文中使用的所有技術(shù)和/或科學(xué)術(shù)語(yǔ)具有與在本發(fā)明涉及的領(lǐng)域中的普通技術(shù)人員普遍地理解的含義相同的含義。雖然可以在實(shí)踐或者測(cè)試本發(fā)明的實(shí)施例時(shí)使用與本文中描述的方法和材料相似或者等效的方法和材料,但是以下描述示例性方法和/或材料。在沖突的情況下,將以專利說(shuō)明書(shū)(包括定義)為主。此外,材料、方法和示例僅為示例而未旨在于必然地限制。
本發(fā)明的實(shí)施例的方法和/或系統(tǒng)的實(shí)現(xiàn)方式可以涉及到人工地、自動(dòng)地或者其組合執(zhí)行或者完成選擇的任務(wù)。另外,根據(jù)本發(fā)明的方法和/或系統(tǒng)的實(shí)施例的實(shí)際工具和裝備,若干選擇的任務(wù)可以由硬件、由軟件或者由固件或者由其組合使用操作系統(tǒng)來(lái)實(shí)施。
例如可以實(shí)施用于根據(jù)本發(fā)明的實(shí)施例執(zhí)行選擇的任務(wù)的硬件作片或者電路。作為軟件,可以實(shí)施根據(jù)本發(fā)明的實(shí)施例的選擇的 任務(wù)作為由計(jì)算機(jī)使用任何適當(dāng)操作系統(tǒng)來(lái)執(zhí)行的多個(gè)軟件指令。在本發(fā)明的一個(gè)示例實(shí)施例中,根據(jù)本文中所描述的方法和/或系統(tǒng)的示例實(shí)施例的一個(gè)或者多個(gè)任務(wù)由數(shù)據(jù)處理器、比如用于執(zhí)行多個(gè)指令的計(jì)算平臺(tái)執(zhí)行??蛇x地,數(shù)據(jù)處理器包括用于存儲(chǔ)指令和/或數(shù)據(jù)的一些易失性存儲(chǔ)裝置,和/或用于存儲(chǔ)指令和/或數(shù)據(jù)的非易失性存儲(chǔ)裝置、例如磁硬盤和/或可拆卸介質(zhì)??蛇x地,也可選地提供網(wǎng)絡(luò)連接。也可以可選地提供顯示器和/或用戶輸入設(shè)備、比如鍵盤或者鼠標(biāo)。
可以在與本申請(qǐng)共同地轉(zhuǎn)讓并且通過(guò)本文中引用而結(jié)合的、標(biāo)題為“snapshotmechanism”的第13/470,317號(hào)美國(guó)專利申請(qǐng)中可以找到關(guān)于快照機(jī)制的更多信息。
基于哈希的復(fù)制
在內(nèi)容可尋址存儲(chǔ)(cas)陣列中,在例如4kb的塊中存儲(chǔ)數(shù)據(jù),其中每個(gè)塊具有在閃存上保存的例如20字節(jié)的唯一大哈希簽名。如本文中描述的那樣,哈希簽名由例如5字節(jié)的小存儲(chǔ)器內(nèi)句柄(handle)(本文中稱為短哈希句柄)訪問(wèn)。這些句柄對(duì)于每個(gè)陣列是唯一的、但是跨陣列未必是唯一的。在兩個(gè)cas陣列之間復(fù)制時(shí),使用哈希簽名而不是發(fā)送整個(gè)塊是高效得多的。如果目標(biāo)已經(jīng)具有與哈希簽名對(duì)應(yīng)的數(shù)據(jù)塊,則無(wú)需發(fā)送對(duì)應(yīng)數(shù)據(jù)。然而,讀取哈希簽名可能是高代價(jià)的并且如果目標(biāo)沒(méi)有數(shù)據(jù)則還是浪費(fèi)的(在這一情況下,發(fā)送數(shù)據(jù)而無(wú)哈希簽名并且讓目標(biāo)計(jì)算哈希簽名是更快的)。盡管短哈希句柄容易地可用而無(wú)需從閃存讀取,但是由于短哈希句柄不是世界范圍唯一的,所以它們不能被簡(jiǎn)單地用來(lái)檢查目標(biāo)是否包含哈希簽名。在一些實(shí)現(xiàn)方式中,短哈希句柄是用于哈希簽名的快捷方式并且可以給出在陣列中存在哈希簽名的可靠提示。盡管說(shuō)明書(shū)描述與去重復(fù)存儲(chǔ)設(shè)備使用這一方式,但是本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)本文中描述的方式可以與任何類型的存儲(chǔ)設(shè)備、包括未使用去重復(fù)的存儲(chǔ)設(shè)備使用。
本文中描述的示例包括聯(lián)網(wǎng)存儲(chǔ)器系統(tǒng)。聯(lián)網(wǎng)存儲(chǔ)器系統(tǒng)包括 為數(shù)據(jù)的內(nèi)容可尋址存儲(chǔ)而布置的多個(gè)存儲(chǔ)器存儲(chǔ)單元。使用分離數(shù)據(jù)和控制平面來(lái)向存儲(chǔ)單元傳送數(shù)據(jù)和從存儲(chǔ)單元傳送數(shù)據(jù)。哈希處理用于內(nèi)容尋址,并且哈希處理在允許的輸入范圍內(nèi)產(chǎn)生均勻地分布的結(jié)果。哈希處理定義物理地址,從而數(shù)據(jù)存儲(chǔ)進(jìn)行對(duì)系統(tǒng)資源的均勻使用。
相對(duì)小的粒度可以例如與4kb的頁(yè)面大小一起使用,但是可以由本領(lǐng)域技術(shù)人員判斷選擇更小或者更大塊大小。這使得設(shè)備能夠?qū)魅胗脩粼L問(wèn)模式與從內(nèi)部訪問(wèn)模式分離開(kāi)。也就是說(shuō),傳入用戶訪問(wèn)模式可以大于4kb或者其它系統(tǒng)確定的頁(yè)面大小、并且因此可以被轉(zhuǎn)換成系統(tǒng)內(nèi)的多個(gè)寫入操作,每個(gè)寫入操作被分離地哈希處理和分離地存儲(chǔ)。
內(nèi)容可尋址數(shù)據(jù)存儲(chǔ)可以用來(lái)確保出現(xiàn)兩次的數(shù)據(jù)被存儲(chǔ)在相同位置。因此可以標(biāo)識(shí)和避免不必要的重復(fù)寫入操作??梢栽诒鞠到y(tǒng)中包括這樣的特征以作為數(shù)據(jù)去重復(fù)。它也增加受寫入/擦除操作的數(shù)目限制的那些存儲(chǔ)單元的壽命以及使得系統(tǒng)總體更高效。
控制和數(shù)據(jù)的分離可以實(shí)現(xiàn)基本上無(wú)限可縮放水平,因?yàn)榭梢栽谌魏螖?shù)目的處理單元內(nèi)拆分控制操作,并且可以在任何數(shù)目的數(shù)據(jù)存儲(chǔ)單元內(nèi)拆分?jǐn)?shù)據(jù)操作。這允許容量和性能二者的可縮放、并且因此可以允許在不同模塊和節(jié)點(diǎn)之間有效地平衡操作。
分離也可以幫助加速系統(tǒng)的操作。也就是說(shuō),它可以加速寫入和讀取。這可以歸因于:
(a)在多個(gè)節(jié)點(diǎn)/模塊之上的某些控制和數(shù)據(jù)動(dòng)作的并行操作。
(b)按操作類型(控制或者數(shù)據(jù))使用最優(yōu)內(nèi)部通信/聯(lián)網(wǎng)技術(shù),這些技術(shù)被設(shè)計(jì)為最小化延時(shí)(延遲)而最大化每個(gè)操作類型的吞吐量。
控制和數(shù)據(jù)路徑的分離也可以允許每個(gè)控制或者數(shù)據(jù)信息單元以最優(yōu)方式在節(jié)點(diǎn)或者模塊之間在系統(tǒng)內(nèi)行進(jìn),這僅意味著在何處需要它和/或如果需要它/在需要它時(shí)。最優(yōu)的地方和時(shí)間坐標(biāo)的集合對(duì)于控制和數(shù)據(jù)單元不是相同的,并且因此路徑的分離以在別的情 況下不可能的方式來(lái)確保這樣的數(shù)據(jù)和控制移動(dòng)的優(yōu)化。分離在保持工作負(fù)荷和內(nèi)部通信處于最小必需時(shí)是重要的并且可以轉(zhuǎn)化成增加的性能優(yōu)化。
數(shù)據(jù)去重復(fù)——意味著確保不在不同地方存儲(chǔ)相同數(shù)據(jù)兩次——是使用數(shù)據(jù)到d模塊和在d模塊內(nèi)的基于內(nèi)容的映射的固有效果。
可縮放是架構(gòu)固有的。在架構(gòu)中沒(méi)有限制本文中進(jìn)一步描述的不同r、c、d和h模塊的數(shù)目。因此可以組裝任何數(shù)目的這樣的模塊。添加越多模塊,系統(tǒng)的性能就變得越高而它可以處理的容量就越大。因此,實(shí)現(xiàn)了性能和容量的可縮放。
可以在與本申請(qǐng)共同地轉(zhuǎn)讓并且通過(guò)本文中引用而結(jié)合的、標(biāo)題為“hash-basedreplication”的第14/037,577號(hào)美國(guó)專利申請(qǐng)中可以找到關(guān)于基于哈希的復(fù)制的更多信息。
從異步到同步復(fù)制的轉(zhuǎn)變
在許多實(shí)施例中,本公開(kāi)內(nèi)容可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠從異步復(fù)制轉(zhuǎn)變成同步復(fù)制。在各種實(shí)施例中,本公開(kāi)內(nèi)容可以實(shí)現(xiàn)在復(fù)制類型之間的轉(zhuǎn)變而對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)的影響最小。在某些實(shí)施例中,本公開(kāi)內(nèi)容可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠根據(jù)配置而在數(shù)分鐘、數(shù)小時(shí)和/或數(shù)天內(nèi)展開(kāi)轉(zhuǎn)變復(fù)制類型的影響。
在多數(shù)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以包括生產(chǎn)地點(diǎn)和遠(yuǎn)程地點(diǎn)。在各種實(shí)施例中,生產(chǎn)地點(diǎn)和遠(yuǎn)程地點(diǎn)可以是內(nèi)容可尋址存儲(chǔ)(cas)。在某些實(shí)施例中,在cas中可以存儲(chǔ)卷數(shù)據(jù)作為地址到哈希元數(shù)據(jù)表(a2h)和后端哈希編索引盤存儲(chǔ)的組合。在一些實(shí)施例中,本公開(kāi)內(nèi)容可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠在三(3)個(gè)循環(huán)內(nèi)完成從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變,同時(shí)保持遠(yuǎn)程地點(diǎn)的一致和最小化對(duì)主機(jī)向生產(chǎn)地點(diǎn)的寫入的影響。
在許多實(shí)施例中,在開(kāi)始異步到同步的轉(zhuǎn)變時(shí),起點(diǎn)可以是在異步復(fù)制模式中的穩(wěn)定系統(tǒng)。在各種實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理周期性地創(chuàng)建快照并且向遠(yuǎn)程地點(diǎn)異步地復(fù)制在最新近的快 照與先前的快照之間的差異。
在多數(shù)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)接收對(duì)從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變的請(qǐng)求。在各種實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以等待直至新快照可以被創(chuàng)建并且被從生產(chǎn)地點(diǎn)向遠(yuǎn)程地點(diǎn)異步地復(fù)制。在這些實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以被置于轉(zhuǎn)變模式中,其中可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠發(fā)起從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變。在某些實(shí)施例中,在轉(zhuǎn)變模式期間,可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠同時(shí)地執(zhí)行同步復(fù)制命令和異步命令。
在多數(shù)實(shí)施例中,在轉(zhuǎn)變模式中的數(shù)據(jù)存儲(chǔ)系統(tǒng)可以使用掃描過(guò)程以比較生產(chǎn)地點(diǎn)的a2h表與新近創(chuàng)建的快照的a2h表。在各種實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以從開(kāi)始到結(jié)束地掃描a2h表。在一些實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以一次一個(gè)條目地掃描a2h表。在其它實(shí)施例中,可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠在進(jìn)行處理之前掃描a2h表的多個(gè)條目。在一些實(shí)施例中,如果掃描過(guò)程確定在生產(chǎn)a2h表與快照a2h表之間存在差異,則掃描過(guò)程可以鎖定生產(chǎn)a2h表的條目并且將該條目放置到準(zhǔn)備好要向遠(yuǎn)程地點(diǎn)復(fù)制的緩沖器中。在各種實(shí)施例中,可以鎖定a2h表的條目以防止主機(jī)更新該條目。在一些實(shí)施例中,掃描過(guò)程可以鎖定和復(fù)制個(gè)體條目。在其它實(shí)施例中,掃描過(guò)程可以立刻鎖定和復(fù)制多個(gè)條目。在一些實(shí)施例中,掃描過(guò)程可以立即地向遠(yuǎn)程地點(diǎn)復(fù)制條目。在某些實(shí)施例中,遠(yuǎn)程地點(diǎn)可以包括用于接收所復(fù)制的數(shù)據(jù)的緩沖器。在其它實(shí)施例中,可以使遠(yuǎn)程地點(diǎn)能夠立即地處理接收到的所復(fù)制的數(shù)據(jù)。在多數(shù)實(shí)施例中,在完成復(fù)制鎖定的條目時(shí),掃描過(guò)程可以解鎖該條目并且繼續(xù)掃描生產(chǎn)a2h表。
在各種實(shí)施例中,在正在執(zhí)行掃描過(guò)程之時(shí),可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠?qū)εc生產(chǎn)a2h表相關(guān)聯(lián)的數(shù)據(jù)執(zhí)行異步和同步復(fù)制。在多數(shù)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以允許異步地更新在生產(chǎn)a2h表內(nèi)的可能尚未被掃描過(guò)程掃描的條目。在那些實(shí)施例中,可以在掃描過(guò)程處理經(jīng)更新的a2h表?xiàng)l目時(shí)異步地復(fù)制這些條目。在某些實(shí)施 例中,可以使得尚未被掃描過(guò)程處理的生產(chǎn)a2h表?xiàng)l目能夠在被掃描過(guò)程異步地復(fù)制之前被多次更新。在各種實(shí)施例中,用于已經(jīng)被掃描過(guò)程掃描的生產(chǎn)a2h表?xiàng)l目的數(shù)據(jù)更新可以立即同步地被復(fù)制到遠(yuǎn)程地點(diǎn)。在多數(shù)實(shí)施例中,在掃描過(guò)程在生產(chǎn)a2h表內(nèi)進(jìn)展時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)緩慢地從異步復(fù)制轉(zhuǎn)變成同步復(fù)制。在各種實(shí)施例中,一旦掃描過(guò)程完成,可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠從轉(zhuǎn)變模式改變到同步復(fù)制模式。
參照?qǐng)D1的示例實(shí)施例,圖1是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的從生產(chǎn)地點(diǎn)復(fù)制到遠(yuǎn)程地點(diǎn)的數(shù)據(jù)存儲(chǔ)系統(tǒng)的簡(jiǎn)化圖示。數(shù)據(jù)存儲(chǔ)系統(tǒng)100包括生產(chǎn)地點(diǎn)105和遠(yuǎn)程地點(diǎn)125。在許多實(shí)施例中,生產(chǎn)地點(diǎn)和/或遠(yuǎn)程地點(diǎn)可以是可以能夠存儲(chǔ)一個(gè)或者多個(gè)卷的數(shù)據(jù)存儲(chǔ)陣列和/或數(shù)據(jù)存儲(chǔ)設(shè)備。在各種實(shí)施例中,可以使得生產(chǎn)地點(diǎn)和/或遠(yuǎn)程地點(diǎn)能夠異步地和/或同步地復(fù)制到輔助地點(diǎn)。生產(chǎn)地點(diǎn)105包括能夠存儲(chǔ)來(lái)自利用生產(chǎn)地點(diǎn)105的應(yīng)用、主機(jī)和/或用戶的數(shù)據(jù)的卷110。生產(chǎn)地點(diǎn)105包括生產(chǎn)a2h表115,該生產(chǎn)a2h表115能夠?qū)⒌刂酚成涞接糜谏a(chǎn)地點(diǎn)105上的卷100的哈希值。使得生產(chǎn)地點(diǎn)105能夠包括快照a2h表120,該快照a2h表120能夠?qū)⒌刂酚成涞綇木?10創(chuàng)建的快照的哈希值。
在這個(gè)實(shí)施例中,遠(yuǎn)程地點(diǎn)125包括存儲(chǔ)來(lái)自生產(chǎn)地點(diǎn)105的所復(fù)制的數(shù)據(jù)的卷130。遠(yuǎn)程地點(diǎn)125包括a2h表135,該a2h表135包含地址到在卷130內(nèi)存儲(chǔ)的哈希的映射。如圖所示,使得數(shù)據(jù)存儲(chǔ)系統(tǒng)100能夠使用消息140將數(shù)據(jù)從生產(chǎn)地點(diǎn)105復(fù)制到遠(yuǎn)程地點(diǎn)125。使得消息140能夠包含復(fù)制數(shù)據(jù),該復(fù)制數(shù)據(jù)可以包括在快照和/或快照數(shù)據(jù)整體之間的差異。使得數(shù)據(jù)存儲(chǔ)系統(tǒng)100能夠最小化使用消息140而傳送的數(shù)據(jù)量。
參照?qǐng)D2的示例實(shí)施例。圖2是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的從異步復(fù)制轉(zhuǎn)變成同步復(fù)制的數(shù)據(jù)存儲(chǔ)系統(tǒng)(即如圖1中所示)的時(shí)間線的簡(jiǎn)化圖示。如圖所示,時(shí)間線包括三個(gè)循環(huán)。在第一循環(huán)期間,在t(0)與t(1)之間,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)正在同步模 式中復(fù)制數(shù)據(jù)。在這一模式中,生產(chǎn)地點(diǎn)105(圖1)異步地復(fù)制到遠(yuǎn)程地點(diǎn)125(圖1)。在第二循環(huán)期間,在t(1)與t(2)之間,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)改變到能夠在轉(zhuǎn)變到完全地在同步模式中復(fù)制之時(shí)同時(shí)地處理異步復(fù)制和同步復(fù)制的轉(zhuǎn)變模式。在第三循環(huán)期間,在t(2)與t(3)之間,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)已經(jīng)完全地轉(zhuǎn)變成同步復(fù)制模式并且在同步復(fù)制模式中繼續(xù)。
參照?qǐng)D3a-3f的示例實(shí)施例。圖3a-3f是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的在從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變期間的數(shù)據(jù)存儲(chǔ)系統(tǒng)(如圖1中所示)的狀態(tài)圖的簡(jiǎn)化圖示。圖3a示出數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)的第一狀態(tài),其中數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)正在異步模式中進(jìn)行復(fù)制。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)處于t(0)與t(1)之間的循環(huán)一(1)。表305示出用于生產(chǎn)地點(diǎn)105(圖1)的a2h表。如圖所示,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)異步地將數(shù)據(jù)從生產(chǎn)地點(diǎn)105(圖1)復(fù)制到遠(yuǎn)程地點(diǎn)125(圖1)。
圖3b示出數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)的第二狀態(tài)。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)已經(jīng)接收對(duì)從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變的請(qǐng)求。在許多實(shí)施例中,對(duì)轉(zhuǎn)變的請(qǐng)求可以來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)的應(yīng)用、主機(jī)機(jī)器、用戶和/或管理員。數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)等待要被創(chuàng)建的快照和相關(guān)聯(lián)的a2h表310。使得數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)能夠移入轉(zhuǎn)變模式中并且發(fā)起從異步復(fù)制到同步復(fù)制的改變。
圖3c示出數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)的第三狀態(tài)。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)在時(shí)間t(1)與t(2)之間處于轉(zhuǎn)變模式并且能夠掃描生產(chǎn)a2h305和快照a2h310二者,以確定是否在a2h310與a2h305之間存在差異。掃描過(guò)程確定生產(chǎn)地點(diǎn)105(圖1)自從創(chuàng)建與a2h305相關(guān)聯(lián)的快照起是否已經(jīng)接收任何更新。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)在地址“0001”遞增地開(kāi)始掃描a2h305和a2h310。在發(fā)現(xiàn)差異時(shí),使得數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)能夠在a2h表305中鎖定相關(guān)聯(lián)條目并且異步地將條目復(fù) 制到遠(yuǎn)程地點(diǎn)125(圖1)。一旦被掃描和異步地復(fù)制,如需要的的話,使得數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)能夠解鎖先前被鎖定的條目并且繼續(xù)比較a2h305和a2h310。在一些實(shí)施例中,在可以未使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠在a2h表內(nèi)鎖定條目時(shí),可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠即刻地將差異復(fù)制到遠(yuǎn)程地點(diǎn)并且移向下一條目。在某些實(shí)施例中,在可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠鎖定a2h表的條目時(shí),可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠鎖定和擱置一個(gè)或者多個(gè)條目用于在以后時(shí)間、比如在可以達(dá)到緩沖器和/或大小限制時(shí)的異步復(fù)制。
圖3d示出數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)的第四狀態(tài)。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)當(dāng)前在轉(zhuǎn)變模式中并且在掃描生產(chǎn)a2h305和快照a2h310的過(guò)程中。掃描指針當(dāng)前處理地址“0003”而同時(shí)更新315正在數(shù)據(jù)存儲(chǔ)系統(tǒng)100上的遠(yuǎn)程地點(diǎn)105處被接收。如圖所示,更新315涉及數(shù)據(jù)存儲(chǔ)系統(tǒng)100已經(jīng)掃描的地址“0001”。這樣,數(shù)據(jù)存儲(chǔ)系統(tǒng)100通過(guò)同步復(fù)制到遠(yuǎn)程地點(diǎn)125來(lái)處理更新315。
圖3e示出數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)的第五狀態(tài)。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)當(dāng)前處于轉(zhuǎn)變模式并且仍然處于掃描生產(chǎn)a2h表305和快照a2h表310的過(guò)程中。數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)當(dāng)前正掃描處于地址“0003”的條目。如圖所示,數(shù)據(jù)存儲(chǔ)系統(tǒng)100已經(jīng)接收到針對(duì)在生產(chǎn)地點(diǎn)105(圖1)上存儲(chǔ)的數(shù)據(jù)的更新320。更新320包含對(duì)與地址“0004”相關(guān)聯(lián)的數(shù)據(jù)的更新。在數(shù)據(jù)存儲(chǔ)系統(tǒng)100尚未掃描針對(duì)地址“0004”的條目時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)100更新針對(duì)地址“0004”的條目并且對(duì)更新請(qǐng)求做出響應(yīng)更新請(qǐng)求完成。在數(shù)據(jù)存儲(chǔ)系統(tǒng)100尚未掃描在地址“0004”的條目時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)100等待復(fù)制處于地址“0004”的條目,直至已經(jīng)掃描該條目。在被數(shù)據(jù)存儲(chǔ)系統(tǒng)100掃描時(shí),針對(duì)地址“0004”的條目變成異步地被復(fù)制到遠(yuǎn)程地點(diǎn)125。在許多實(shí)施例中,對(duì)處于轉(zhuǎn)變模式的生產(chǎn)a2h表中的條目的更新可以發(fā)生多次。在各種實(shí)施例中,如果在被掃描之前對(duì)條目做出多個(gè)更新,則數(shù)據(jù)存儲(chǔ)系統(tǒng)可以等待異步地進(jìn) 行復(fù)制,直至可以掃描該條目。在某些實(shí)施例中,在被掃描之后對(duì)條目的每個(gè)更新可以從生產(chǎn)地點(diǎn)被同步地復(fù)制到遠(yuǎn)程地點(diǎn)。
圖3f示出數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)的第六狀態(tài)。在這個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)已經(jīng)完成掃描生產(chǎn)a2h305和快照a2h310。在完成時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)100(圖1)刪除快照a2h310并且改變到同步復(fù)制模式。在改變到同步復(fù)制模式之后接收到的更新將僅使用同步復(fù)制來(lái)管理,除非產(chǎn)生用于轉(zhuǎn)變成另一模式的請(qǐng)求、即回到異步復(fù)制模式和/或停止復(fù)制的請(qǐng)求。
參照?qǐng)D1和4的示例實(shí)施例。圖4是根據(jù)本公開(kāi)內(nèi)容的一個(gè)實(shí)施例的使用圖1中所示數(shù)據(jù)存儲(chǔ)系統(tǒng)從異步復(fù)制轉(zhuǎn)變成同步復(fù)制的方法的簡(jiǎn)化流程圖。數(shù)據(jù)存儲(chǔ)系統(tǒng)100包括生產(chǎn)地點(diǎn)105和遠(yuǎn)程地點(diǎn)125。主機(jī)150將卷110用于生產(chǎn)地點(diǎn)105內(nèi)的數(shù)據(jù)存儲(chǔ)。在數(shù)據(jù)存儲(chǔ)系統(tǒng)100內(nèi)當(dāng)前存儲(chǔ)的數(shù)據(jù)正在異步地從生產(chǎn)地點(diǎn)105被復(fù)制到遠(yuǎn)程地點(diǎn)125。生產(chǎn)地點(diǎn)105在消息145中接收對(duì)從異步復(fù)制到同步復(fù)制的轉(zhuǎn)變的請(qǐng)求(步驟400)。數(shù)據(jù)存儲(chǔ)系統(tǒng)100創(chuàng)建和復(fù)制生產(chǎn)地點(diǎn)105的快照(步驟410)。數(shù)據(jù)存儲(chǔ)系統(tǒng)100改變到轉(zhuǎn)變模式(步驟420)。數(shù)據(jù)存儲(chǔ)系統(tǒng)100初始化用于掃描尋找在生產(chǎn)數(shù)據(jù)與快照之間的差異的掃描過(guò)程(步驟430)。掃描尋找差異包括確定在生產(chǎn)a2h115與快照a2h120之間的差異以確定自從創(chuàng)建與快照a2h120相關(guān)聯(lián)的快照起是否已經(jīng)接收到更新。在生產(chǎn)a2h115和快照a2h120正被掃描時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)緩慢地從異步復(fù)制轉(zhuǎn)變成同步復(fù)制并且基于在掃描期間使用的掃描指針的位置處理接收到的數(shù)據(jù)更新(步驟440)。如果接收到的更新與生產(chǎn)a2h115的已經(jīng)被掃描的部分相關(guān)聯(lián),則數(shù)據(jù)存儲(chǔ)系統(tǒng)100將同步地將接收到的更新復(fù)制到遠(yuǎn)程地點(diǎn)125。如果接收到的更新與生產(chǎn)a2h115的未被掃描的部分相關(guān)聯(lián),則數(shù)據(jù)存儲(chǔ)系統(tǒng)100將更新生產(chǎn)a2h115表并且在掃描生產(chǎn)a2h115表的更新的條目時(shí)異步地復(fù)制數(shù)據(jù)。
概述
本發(fā)明的方法和裝置可以采用至少部分為在有形非瞬態(tài)介質(zhì)、 比如軟盤、cd-rom、硬驅(qū)動(dòng)、隨機(jī)存取或者只讀存儲(chǔ)器或者任何其它機(jī)器可讀存儲(chǔ)介質(zhì)中體現(xiàn)的程序代碼(即指令)的形式。
圖5是根據(jù)本發(fā)明的一個(gè)示例實(shí)施例的可以利用本文中描述的技術(shù)的裝置、比如在網(wǎng)絡(luò)500中的計(jì)算機(jī)510。計(jì)算機(jī)510可以包括都可以由互連525、比如總線連接的一個(gè)或者多個(gè)i/o端口502、處理器503和存儲(chǔ)器504。處理器503可以包括程序邏輯505。i/o端口502可以提供與存儲(chǔ)器介質(zhì)583、i/o設(shè)備585和驅(qū)動(dòng)587、比如磁驅(qū)動(dòng)、光驅(qū)動(dòng)或者固態(tài)驅(qū)動(dòng)(ssd)的連通。在程序代碼被加載到存儲(chǔ)器504中并且由計(jì)算機(jī)510執(zhí)行時(shí),機(jī)器變成用于實(shí)現(xiàn)本發(fā)明的裝置。在一個(gè)或者多個(gè)通用處理器503上實(shí)施時(shí),程序代碼與這樣的處理器組合以提供與具體邏輯電路類似地操作的獨(dú)特裝置。這樣,通用數(shù)字機(jī)器可以被變換成專用數(shù)字機(jī)器。
圖6是圖示根據(jù)本發(fā)明的一個(gè)示例實(shí)施例的可以利用本文中描述的技術(shù)的在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)660上體現(xiàn)的方法的框圖。圖6示出如圖所示在計(jì)算機(jī)可讀介質(zhì)660上體現(xiàn)的程序邏輯655,并且其中該邏輯被編碼在計(jì)算機(jī)可執(zhí)行代碼中,該計(jì)算機(jī)可執(zhí)行代碼被配置用于執(zhí)行本發(fā)明的方法、并且由此形成計(jì)算機(jī)程序產(chǎn)品600。程序邏輯655可以是在存儲(chǔ)器504上的在圖5中的處理器503上加載的相同邏輯505??梢詫⒊绦蜻壿嬻w現(xiàn)在軟件模塊中、體現(xiàn)為模塊、體現(xiàn)為硬件模塊或者體現(xiàn)在虛擬機(jī)上。
可以體現(xiàn)用于實(shí)現(xiàn)該方法的邏輯為前述系統(tǒng)的部分,該部分用于實(shí)現(xiàn)參照例如圖1-6中所示實(shí)施例描述的方法。為了舉例說(shuō)明本發(fā)明,將本發(fā)明描述為體現(xiàn)在具體配置中并且使用特殊邏輯布置,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)該設(shè)備不限于該具體配置、但是實(shí)際上僅由在本說(shuō)明書(shū)中包括的權(quán)利要求限制。
雖然為了理解清楚而已經(jīng)用一些細(xì)節(jié)描述前述發(fā)明,但是將認(rèn)識(shí)可以在所附權(quán)利要求的范圍內(nèi)實(shí)現(xiàn)某些改變和修改。因而,本實(shí)現(xiàn)方式將視為示例而非限制,并且本發(fā)明將不限于本文中給出的細(xì)節(jié)、但是可以在所附權(quán)利要求的范圍和等效含義內(nèi)加以修改。