存儲用於數據恢復的奇偶校驗信息的製作方法
2023-06-11 00:23:51 2
專利名稱:存儲用於數據恢復的奇偶校驗信息的製作方法
存儲用於數據恢復的奇偶校驗信息技術領域本公開涉及一種用於存儲用於數據恢復的奇偶校驗信息的方法、系統和製品。
背景技術:
包括存儲系統的信息技術系統可能需要保護以免於站點災難或者損害(outage),其中,損害可能是計劃的或者未計劃的。而且,信息技術系統可能 需要用於數據遷移、數據備份或者數據複製的特徵。災難或者損害恢復、數 據遷移、數據備份和數據複製的實現可能包括存儲系統中的數據的鏡象或者 複製。這樣的數據鏡象或者複製可能涉及在信息技術系統的主機、存儲系統 和4關網部件之間的交互。可以通過將數據從第一站點複製到第二站點來保護信息技術系統免於站 點損害。第一站點可以稱為應用站點、本地站點、主站點或者生產站點。第 二站點可以被稱為恢復站點、遠程站點、輔助站點或者備份站點。獨立磁碟冗餘陣列(RAID)是盤存儲系統中使得盤容錯以從突難恢復的機 制。RAID可以使用稱為奇偶校驗的糾錯碼來從單點故障錯誤、即單個盤的故 障中恢復。RAID可以跨越多個盤條帶化(stripe)數據和奇偶校驗信息,以改善 數據檢索的速度,並且同時允許容錯。存在多個不同的RAID級,諸如RAID 級0、 1、 2、 3、 4、 5。例如,RAID級5提供了字節級的數據條帶化,並且 還提供條帶化糾錯信息。在RAID級5中,可以計算對應於多個盤上的數據 的奇偶校驗信息,並且可以使用該奇偶校驗信息來從盤故障恢復而不丟失任 何數據。發明內容本發明提供了一種方法、系統和製品,其中,在第一站點的第一存儲單 元耦接到在第二站點的第二存儲單元和在第三站點的第三存儲單元。在第一存儲單元接收數據。把所接收的數據劃分為第一部分和第二部分。將數據的 第 一部分存儲在第 一站點的第 一存儲單元中。將數據的第二部分分布到在第二站點的第二存儲單元以存儲。計算對應於該數據的第 一部分和該數據的第 二部分的奇偶校驗數據。把該奇偶校驗數據分布到在第三站點的第三存儲單 元以存儲。在其他的實施例中,響應於在第一站點的數據丟失,從在第二站點存儲 的該數據的第二部分和在第三站點存儲的該奇偶校驗數據來恢復該數據的第 一部分。在其他的實施例中,數據的第一部分、數據的第二部分和奇偶校驗 數據的大小之和小於所接收的數據大小的兩倍。在其他的實施例中,數據的 第一部分、數據的第二部分和奇偶校驗數據的大小之和是所接收的數據大小的1.5倍。在其他的實施例中,第一站點、第二站點和第三站點彼此相隔超過10英 裡的距離,並且其中,第一部分、第二部分和第三部分被存儲在不同的存儲 盤系統中。在其他的實施例中,第一站點和第三站點之間的距離小於第一站點和第 二站點之間的距離。在其他的實施例中,第一存儲單元包括高速緩衝存儲器。將所接收的數 據存儲在第一存儲單元中的高速緩衝存儲器中,在劃分所接收的數據之前, 接收對高速緩沖存儲器中所存儲的數據的更新。使用所接收的更新來更新所 述高速緩衝存儲器,其中,分布所述數據的第二部分和奇偶校驗數據是異步 地執行的,以及其中,把數據的第一部分、數據的第二部分和奇偶校驗數據 打上時間戳。在其他的實施例中,第 一存儲單元耦接到向第一存儲單元發送輸入/輸出 請求的主機,其中,從該主機到第一存儲單元的更新被異步地反映在第二存 儲單元處,並且被異步地反映在第三存儲單元處。本發明還提供了一種方法、系統和製品,其中,在第一站點的第一存儲 單元耦接到在第二站點的第二存儲單元和在第三站點的第三存儲單元。產生 第一信息單元、第二信息單元和第三信息單元,其中,所述第一信息單元、第二信息單元和第三信息單元每個包括所接收的數據和所計算的奇偶校驗數 據的一部分。將第一信息單元存儲在第一站點的第一存儲單元中。將第二信 息單元分布到在第二站點的第二存儲單元以存儲。將第三信息單元分布到在第三站點的第三存儲單元以存儲。在其他的實施例中,響應於在第一站點的數據丟失,從第二信息單元和 第三信息單元恢復所接收的數據。在其他的實施例中,第一信息單元、第二信息單元和第三信息單元的大小之和小於所接收的數據大小的兩倍。在其他的實施例中,第一站點、第二站點和第三站點彼此相隔超過10英 裡,其中,第一信息單元、第二信息單元和第三信息單元被存儲在不同的存 儲盤系統中。在其他的實施例中,奇偶校驗數據的大部分被存儲在第一存儲單元中, 其中,相比於第二和第三存儲單元可更快地訪問第 一存儲單元。在其他的實施例中,在第一存儲單元從主機接收數據,其中,使用多路 徑硬體來將主機連接到第一、第二和第三存儲單元。在其他的實施例中,分布第二和第三信息單元是經由從第一存儲單元向 第二和第三存儲單元的寫入操作的,其中,從第一存儲單元向第二和第三存 儲單元的寫入操作是被並行地寫入到第二和第三存儲單元的全步幅的寫入。
現在參見附圖,其中,在全部附圖中,類似的標號表示對應的部分。圖la圖解了從主存儲系統向輔助存儲系統複製數據的系統的方框圖;圖lb圖解按照某些實施例的、用於在三個存儲系統之間分布數據和奇偶 校驗信息的系統的方框圖;圖2圖解了按照某些實施例的、用於在三個存儲系統之間分布數據和奇 偶校驗信息的第一計算環境的方框圖;圖3圖解了對應於第一計算環境的、按照某些實施例的、用於分布數據 和奇偶校驗信息的操作;圖4圖解了按照某些實施例的、用於在三個存儲系統之間分布數據和奇 偶校驗信息的第二計算環境的方框圖;圖5圖解了對應於第二計算環境的、按照某些實施例的、用於分布數據 和奇偶校驗信息的操作;圖6圖解了按照某些實施例的、用於在三個存儲系統之間分布數據和奇 偶校驗信息的第三計算環境的方框圖;圖7圖解了對應於第三計算環境的、按照某些實施例的、用於分布數據和奇偶校驗信息的操作;圖8圖解了其中實現某些實施例的系統。
具體實施方式
在下面的描述中,參考了附圖,所述附圖形成說明書的一部分並且圖解 了幾個實施例。可以明白,可以使用其他的實施例,並且可以進行結構改變 和操作改變。圖1圖解了從一個存儲系統向另一個複製數據以供故障恢復的系統的方 框圖。諸如主機100的伺服器可以發送要寫入到主存儲系統102的數據,該 主存儲系統102耦接到輔助存儲系統104。由主機IOO寫入到主存儲系統102 的數據可以稱為原始數據106。例如,原始數據106的大小可以是一百萬億 字節(terabyte)。為了維持允許從主存儲系統102中的數據丟失恢復的系統, 主存儲系統102可以將原始數據106複製108到輔助存儲系統104。複製到 輔助存儲系統104的數據可以稱為複製數據110。在原始數據106的任何部 分丟失的情況下,可以使用複製數據110來從所述丟失恢復。如果原始數據 106的大小是一百萬億字節,則複製數據110的大小可以也是一百萬億字節, 從而圖1中所示的系統可以使用二百萬億字節的存儲來從原始數據106中的 數據丟失恢復。在圖1中所示的系統中,從數據丟失恢復所需的存儲量是原 始數據106的大小的兩倍。在從主存儲系統102向輔助存儲系統104初始復 制原始數據106後,也可以複製隨後的寫入。當主機100向主存儲系統102 上的巻(volume)寫入時,主存儲系統102向與主存儲系統102相關聯的本地存 儲器諸如盤寫入相應的數據,並且將所述數據轉發到輔助存儲系統104。輔 助存儲系統104向與輔助存儲系統104相關聯的本地存儲器寫入所轉發的數 據。 一旦輔助存儲系統104向主存儲系統102確認寫入成功,則主存儲系統 102向主才幾100響應寫入成功。圖lb圖解了按照某些實施例的、用於在三個存儲系統之間分布數據和奇 偶校驗信息的系統的方框圖。第一存儲系統112、第二存儲系統114和第三存儲系統116分別耦接到 第一伺服器118、第二伺服器120和第三伺服器122。第一伺服器118可以向 第一存儲系統112寫入數據。可能必須保護所述數據以免於站點損害。在某 些實施例中,數據和相關聯的奇偶校驗可以被存儲在第一、第二、和第三存儲系統112、 114、 116的一個或多個中。在圖2-8中描述了用於在第一、第 二、和第三存儲系統112、 114、 116的一個或多個中存儲數據和相關聯的奇 偶校驗信息的某些實施例的進一 步的細節。圖2圖解了按照某些實施例的、用於在三個存儲系統之間分布數據和奇 偶校驗信息的第一計算環境200的方框圖。第一存儲系統202、第二存儲系統204、和第三存儲系統206分別耦接到 第一伺服器208、第二伺服器210、和第三伺服器212。另外,第一存儲系統 202耦接到第二存儲系統204和第三存儲系統206。存儲系統202、 204、 206 可以包括任何存儲系統或者存儲子系統,其中包括存儲控制器、基於盤的存 儲器和基於磁帶的存儲器等。伺服器208、 210、 212可以包括任何類型的計 算設備,諸如工作站、臺式計算機、膝上型電腦、大型計算機、電話設備、 手提計算機等。當執行寫入操作時,第一伺服器208可以向第一存儲系統202發送數據 214。可能必須保護數據214以免於站點損害。第一存儲系統202在第一存儲 系統202中存儲數據214的第一部分216,並且向第二存儲系統204發送數 據214的第二部分218以存儲。第一存儲系統202從第一部分216和第二部 分218計算奇偶校驗數據220,並且向第三存儲系統206發送奇偶校驗數據 220以存儲。在某些實施例中,在從第一存儲系統202發送數據後,第一存 儲系統202等待來自遠程的、即第二或者第三存儲系統204、 206之一的確認。 當對應的確認從第二存儲系統204或者第三存儲系統206返回時,所述數據 被保護,並且第一存儲系統202向第一伺服器208返回關於寫入成功的指示。 以這種方式,也可以自動地對所述寫入進行負載平衡。如果到第二存儲系統 206的存儲網絡忙,則它可能不會對第一計算環境200的性能產生不利影響, 這是因為第一伺服器208僅僅必須等待要被確認的寫入之一。在某些實施例中,如果數據214在大小上是一百萬億字節,則數據的第 一部分216可以是50萬億字節,數據的第二部分218可以是50萬億字節, 以及奇偶校驗數據220可以是50萬億字節。與圖1 — 一其中需要兩倍的存儲 量來存儲原始數據106以從事故恢復——相比較,在圖2中圖解的實施例可 以需要數據214的大小的1.5倍的存儲量,以從導致存儲系統202、 204、 206 的任何一個中的丟失的故障中恢復。在某些實施例中,第一存儲系統202、第二存儲系統204和第三存儲系統206可以在不同的站點。在某些實施例中,第一存儲系統202位於第一站 點,第二存儲系統204位於第二站點,第三存儲系統206位於第三站點,其 中,第一站點、第二站點和第三站點在地理上彼此分離,並且可以在不同的 城市。例如,第一、第二和第三站點可以每個彼此相隔超過IO英裡的距離。 因為存儲系統202、 204、 206位於不同的站點,因此,數據214的第一部分 216、數據214的第二部分218和奇偶校驗數據220被存儲在不同的盤存儲系 統中。在某些實施例中,用戶可以選擇分離存儲系統202、 204、 206以保護 免於站點的故障,諸如自然災難,但是,存儲系統202、 204、 206可以總是 在地理上散布。例如,存^(諸系統202、 204、 206可以在同一房間內,通過防 火實牆分離,並且連接到不同的電力網和自動噴水滅火系統。在一個示例實施例中,包括本地站點和遠程站點的兩個站點可以相隔100 km的距離。通過光纖的光的速度是大約200,000 km/s。假定100 km的距離, 在兩個站點之間的往返延遲是1微秒。示例硬碟驅動器的延遲可以是大約5 毫秒。如果從/向遠程站點的遠程存儲子系統的高速緩衝存儲器讀取/寫入數 據,則該設置的訪問時間可以是所述示例硬碟驅動器的訪問時間的1/5。但是, 如果所述數據不在所述遠程高速緩衝存儲器中,則所述操作花費6毫秒而不 是5毫秒,這引起20%的性能損失。在其中向第二和第三存儲子系統204、 206的寫入並行發生的示例實施例中,寫入性能可以與所述兩個站點設置相 同,並且讀取性能可以不差於20%。在某些的替代實施例中,寫入操作不是 全步幅(follstride)的寫入。在這種情況下,存儲子系統需要讀取當前數據,增 加工作複製(working-copy)數據,並且在寫入之前計算新的奇偶校驗。在某些 實施例中,可以把奇偶校驗數據存儲在最快訪問時間的存儲系統中,這是因 為奇偶校驗數據可能比其他數據更頻繁地被訪問。在另一實施例中,奇偶校 驗數據可以被分布在存儲系統202、 204、 206之間。分布奇偶校驗數據可以 在三個存儲系統之間更均等地平衡工作負載,並且可以引起在計算環境200 的整體性能上的改進。圖3圖解了對應於第一計算環境200的、按照某些實施例的用於分布數 據和奇偶校驗信息的操作。可以在第一存儲系統202中實現圖3中所圖解的 操作。控制在塊300開始,其中,第一存儲系統202接收來自第一伺服器208 的寫入數據214的請求。第一存儲系統202(在塊302)將所述數據劃分為第一部分216和第二部分218。第一存儲系統202從數據的第一部分216和數據的第二部分218計算(在 塊304)奇偶校驗數據220。例如,數據的第一部分216和數據的第二部分218 的字節的逐位異或運算可以提供奇偶校驗數據。在某些實施例中,可以以與 在RAID級4中的奇偶校-瞼數據的計算類似的方式來計算奇偶校驗數據220。 在替代實施例中,可以以與RAID級4中的奇偶校驗數據的計算不同的方式 來計算奇偶校驗數據220。控制可以從塊304同時前進到塊306a、 306b和206c,即,可以並行執行 塊306a、 306b、 306c中所述的操作。第一存儲系統202向第一存儲系統202 寫入(在塊306a)數據214的第一部分216。第一存儲系統202向第二存儲系統 218分布(在塊306b)數據214的第二部分218以存儲。第二存儲系統204可以 接收和存儲數據的第二部分218。另外,第一存儲系統202向第三存儲系統 206分布(在塊306c)奇偶校驗數據220。第三存儲系統206可以接收和存儲奇 偶校驗數據220。圖3圖解了其中在第一站點的第一存儲單元202耦接到在第二站點的第 二存儲單元206和在第三站點的第三存儲單元206的實施例。第一存儲單元 202接收數據214,並且將所接收的數據劃分為第一部分216和第二部分218。 第一存儲單元202在第一站點的第一存儲單元202中存儲數據214的第一部 分216。第一存儲單元202向在第二站點的第二存儲單元204分布所述數據 的第二部分218以存儲。第一存儲單元202計算對應於數據214的第一部分 216和數據214的第二部分218的奇偶^f文驗數據220。第一存儲單元202向在 第三站點的第三存儲單元204分布奇偶校驗數據220以存儲。在某些實施例中,響應於在第一站點的第一存儲系統202處的數據丟失, 可以從存儲在第二存儲系統204的數據的第二部分218和存儲在第三存儲系 統206的奇偶校驗數據220恢復數據214的第一部分216。在某些實施例中, 因為與其他數據相比,可能更頻繁地來訪問和寫入奇偶校驗數據220,所以 第一站點和第三站點之間的距離小於第一站點和第三站點之間的距離。在某些實施例中,凝:據214的第一部分216、 #:據214的第二部分218、 和奇偶校驗數據220的大小之和小於所接收的數據214的大小的兩倍。在某 些實施例中,數據214的第一部分216、數據214的第二部分218、奇偶校驗 數據220的大小之和是所接收的數據214的大小的1.5倍。在某些的替代實施例中,可以把奇偶校驗數據存儲在可最快訪問的存儲系統諸如第一存儲系統202中。圖4圖解了按照某些實施例的、用於在三個存儲系統之間分布教:據和奇 偶校驗信息的第二計算環境的方框圖。第一存儲系統402、第二存儲系統404和第三存儲系統406分別耦接到 第一伺服器408、第二伺服器410和第三伺服器412。另外,第一存儲系統 402耦接到第二存儲系統404和第三存儲系統406 。第一伺服器408可以經由寫入請求向第一存儲系統402發送數據414。 可能必須保護數據414以免於站點損害。在某些實施例中,第一存儲系統402 從第一伺服器408接收數據414,其中,數據414可以與來自第一伺服器408 的寫入請求相關聯。第一存儲系統402產生第一信息單元416、第二信息單元418和第三信 息單元420,其中,第一信息單元416、第二信息單元418和第三信息單元 420每個包括所接收的數據414和所計算的奇偶校驗數據的一部分。每個信 息單元416、 418、 420由一個或多個字節構成。第一存儲單元402在第一站 點的第一存儲系統402存儲第一信息單元416。第一存儲單元408向在第二 站點的第二存儲系統204分布第二信息單元418以存儲,以及也向第三存儲 系統406分布第三信息單元420以存儲。在某些實施例中,如果數據414在大小上是一百萬億字節,則第一信息 單元416可以是50萬億字節,第二信息單元418可以是50萬億字節,第三 信息單元420可以是50萬億字節。與圖1一一其中需要兩倍的存儲量來存儲 原始數據106以從故障恢復——相比較,計算環境400中所圖解的實施例可 以需要數據414的大小的存儲量的1.5倍,以從引起存儲系統402、 404、 406 的任何一個中的丟失的故障中恢復。在某些實施例中,第一存儲系統402位於第一站點,第二存儲系統404 位於第二站點,第三存儲系統406位於第三站點,其中,第一站點、第二站 點和第三站點在地理上彼此分隔,並且可以在不同的城市。第一信息單元416、 第二信息單元418和第三信息單元420可以被存儲在不同的盤系統中。圖5圖解了對應於第二計算環境400的、按照某些實施例的用於分布數 據和奇偶校驗信息的操作。可以在第一存儲系統402中實現圖5中所圖解的 操作。控制在塊500開始,其中,第一存儲系統402接收來自第一伺服器408 的寫入數據414的請求。第一存儲系統402在第一信息單元416、第二信息 單元418和第三信息單元420之間分配(在塊502)數據414。第一存儲系統402計算和添加(在塊504)奇偶校驗數據到第一信息單元 416、第二信息單元418、和第三信息單元420。在某些實施例中,第一存儲 系統402可以以與RAID級5類似的方式來計算奇偶校驗信息,其中,三個 信息單元416、 418、 420的每個包括所接收的數據414的一部分和至少一些 奇偶校驗數據。可以通過使用與RAID級5中所使用的那些不同的算法來執 行奇偶校驗數據的分配和增加。控制可以從塊504同時進行到塊506a、 506b和506c,即可以並行地執行 塊506a、 506b、 506c中所述的操作。第一存儲系統向第一存儲系統416寫入 (在塊506a)包括對應的奇偶校驗數據的第一信息單元416。同時,第一存儲系 統402向第二存儲系統404分布(在塊506b)包括對應的奇偶校驗數據的第二 信息單元418。另外,第一存儲系統402向第三存儲系統406寫入包括對應 的奇偶校驗數據的第三信息單元420。在提供容錯的某些實施例中,與存儲系統中所存儲的數據對應的奇偶校 驗數據被存儲在其他的存儲系統中。例如,針對第一存儲系統402中所存儲 的數據的奇偶校驗數據被存儲在第二存儲系統404和第三存儲系統406中, 針對第二存儲系統404中所存儲的數據的奇偶校驗數據被存儲在第一存儲系 統402和第三存儲系統406中,以及針對第三存儲系統406中所存儲的數據 的奇偶校驗數據被存儲在第一存儲系統402和第二存儲系統404中。在某些實施例中,在第一站點數據丟失的情況下,從第二信息單元418 和第三信息單元420恢復所接收的數據414。在某些實施例中,第一信息單 元416、第二信息單元418和第三信息單元420的大小之和小於所接收的數 據414的大小的兩倍。在某些實施例中,第一信息單元416、第二信息單元 418和第三信息單元420被存儲在不同的盤存儲系統中。圖6圖解了按照某些實施例的、用於在三個存儲系統之間分布數據和奇 偶才交驗信息的第三計算環境的方框圖。包括高速緩衝存儲器603的第一存儲系統602、第二存儲系統604和第 三存儲系統606分別耦接到第一伺服器608、第二伺服器610和第三伺服器 612。另外,第一存儲系統602耦接到第二存儲系統604和第三存儲系統606。在某些實施例中,第一存儲系統602、第二存儲系統606和第三存儲系統606 可以處於地理上散布的不同站點。第一伺服器608可以經由寫入請求向第一存儲系統602發送數據614。 數據614可能必須保護以免於站點損害。第一存儲系統602接收數據614, 並且向高速緩衝存儲器603中寫入所接收的數據以暫時存儲。第一存儲系統 602可以產生第一信息單元616、第二信息單元618和第三信息單元620,其 中,第一信息單元616、第二信息單元618和第三信息單元620每個包括在 高速緩沖存儲器603中暫時存儲的所接收的數據614和所計算的奇偶校^r數 據的一部分。第一存儲系統602在第一站點的第一存儲系統602中存儲第一 信息單元616。第一存儲系統602經由異步傳送620向在第二站點的第二存 儲系統604分布第二信息單元418以存儲,並且也經由異步傳送622向在第 三站點的第三存儲系統606分布第三信息單元620以存儲。所述分布是異步 的,因為所接收的數據614並不立即用於計算和分布信息單元618、 620到第 二存儲系統604、第三存儲系統606,即可以在不在三個存儲單元602、 604、 606之間分布對應的數據的情況下完成從第 一伺服器608向第 一存儲系統602 的寫入操作。圖7圖解了對應於第三計算環境600的、按照某些實施例的用於分布數 據和奇偶校驗信息的操作。可以在第一存儲系統602中實現圖7中所圖解的操作。控制在塊700開始,其中,第一存儲系統602接收來自第一伺服器608 的寫入數據的請求。第一存儲系統602向第一存儲系統602的高速緩衝存儲 器603中寫入(在塊702)數據614。第一存儲系統602接收對於所寫入到高速 緩衝存儲器603的數據614的另外的更新,並且更新(在塊704)所寫入到高速 緩衝存儲器603的數據。第一存儲系統602使用高速緩衝存儲器603中所存儲的數據來計算(在塊 706)第一、第二和第三信息單元616、 618、 620,以在存儲系統602、 604、 606之間分布,其中,第一、第二和第三信息單元616、 618、 620的每個可 以包括所接收的數據614的部分、另外的更新的部分和所計算的奇偶校驗數 據。控制可以從塊706同時前進到塊710a、 710b和710c,即可以並行地執行 在塊710a、 710b和710c中所述的操作。在從塊706向710a、 710b和710c控制的轉移期間,第一存儲系統602異步地啟動數據傳送操作,並且可以對 相關聯的數據打上時間戳(附圖標號708)。第一存儲系統602向第一存儲系統602寫入(在塊710a)寫入包括對應的 奇偶校驗數據的第一信息單元616。同時,第一存儲系統602向第二存儲系 統604異步地分布(在塊710b)包括對應的奇偶校驗數據的第二信息單元618 以存儲。另外,第一存儲系統602向第三存儲系統606分布包括對應的奇偶 校驗數據的第三信息單元620以存儲。通過異步地向存儲系統分布數據和奇偶校驗信息,所有的寫入最初被寫 入到諸如存儲系統602的本地存儲系統的高速緩衝存儲器。然後,當時間允 許時,向其他兩個存儲系統分布數據。如果在把數據分布到其他兩個存儲子 系統之前相同的數據塊被更新,則僅需要發送最新的改變。不需要分布較早 的改變,從而節省了帶寬。而且,通過對所分布的寫入打上時間戳,即使本 地系統602出故障,兩個遠程系統604、 606也一致。本地系統602可以具有 與非分布式存儲子系統類似的性能特性,並且同時提供了故障恢復保護。在某些實施例中,第一伺服器608可以是主計算機,並且從主機608到 第一存儲單元602的更新被異步地反映在第二存儲單元604處,以及被異步 地反映在第三存儲單元606處。在某些實施例中,其中第一存儲單元602包括高速緩衝存儲器603,第 一存儲單元602可以在第一存儲單元602的高速緩衝存儲器603中存儲所接 收的數據614。在將所接收的數據614劃分為信息單元之前,第一存儲單元 602可以接收對於高速緩衝存儲器603中所存儲的數據的更新。第一存儲單 元602可以使用所接收的更新來更新高速緩沖存儲器603,其中,分布第二 信息單元618和第三信息單元620是被異步地執行的,並且其中,把第一信 息單元616、第二信息單元616和第三信息單元620打上時間戳。在某些實 施例中,可以在三個信息單元616、 618、 620之間分布奇偶校驗數據,而在 其他實施例中,奇偶校驗數據可以駐留在單個信息單元諸如第三信息單元620 中。在某些實施例中,奇偶校驗數據的大部分被存儲在第 一存儲單元602中, 其中,相比第二和第三存儲單元604、 606可更快地訪問第一存儲單元602。 在某些其他實施例中,在第一存儲單元從主機608接收數據614,其中,使 用多路徑硬體來將主機608連接到第一、第二、第三存儲單元602、 604、 606。所有的存儲單元602、 604、 606可以向主機608提供相同的巻。如果存儲單 元602、 604、 606之一出故障,則其他存儲單元之一可以動態地重建和繼續 向主機提供所述該巻。結果,存儲系統故障可以不破壞計算環境600的操作。在某些實施例中,分布第二和第三信息單元618、 620是經由從第一存儲 單元602向第二和第三存儲單元604、 606的寫入操作進行的,並且其中,從 第一存儲單元602向第二和第三存儲單元604、 606的寫入搡作是被並行地寫 入到第二和第三存儲單元604、 606的全步幅的寫入。在某些實施例中,計算環境600中所執行的操作也可以在計算環境200 或者400中被執行。例如,可以在計算環境200或者400中執行全步幅寫入。 另外,可以在計算環境200、 400、 600的一個或多個中執行上述的某些操作。圖lb、 2-7中所述的某些實施例與其中在故障恢復站點104保持原始數 據106的完全拷貝的實施例相比,降低了故障恢復所需的存儲量。在某些實 施例中,故障恢復所需要的存儲量小於原始數據(由附圖標號106、 214、 414 表示)的大小的兩倍。在某些實施例中,故障恢復所需的存儲量是原始數據 106、 214、 414的大小的1.5倍。在替代實施例中,可以在附加的站點處添加附加的存儲單元。在某些實 施例中,主機208、 408、 608可以使用多徑硬體而具有到所有的存儲系統即 第一、第二和第三存儲系統的路徑。所有的存儲系統可以向主機208、 408、 608提供相同的巻。如果存儲系統之一出故障,則沒有出故障的其它存儲系 統之一能夠動態地重建和繼續向主機系統208、 408、 608提供相同的巻。結 果,某些實施例可以從系統故障中非破壞性地(non-disruptively)恢復。在某些實施例中,所有的寫入可以是不引起RAID-5寫入代價的全步幅 的寫入。在某些實施例中,備份和故障恢復兩者都可以由所述實施例來執行。 可以使用異步遠程鏡像來增強某些實施例的性能。所述實施例以三站點解決 方案來在一個或多個地理上散布的站點中存儲奇偶校驗信息,以執行故障恢 復。另外的實施例細節所述技術可以被實現為涉及軟體、固件、微碼、硬體和/或者其任何組合 的方法、裝置或者製品。這裡所使用的術語"製品"指的是在電路(例如集成 電路晶片、可編程門陣列(PGA)、 ASIC等)和/或計算機可讀介質(例如石茲存儲 介質,諸如硬碟驅動器、軟盤、磁帶)、光學存儲器(例如CD-ROM、 DVD-ROM、光碟等)、易失性和非易失性存儲器件(例如,電可擦除可編程只讀存儲器(EEPROM)、只讀存儲器(ROM)、可編程只讀存儲器(PROM)、隨機存取存儲 器(RAM)、動態隨機存取存儲器(DRAM)、靜態隨機存取存儲器(SRAM)、快 快閃記憶體儲器、固件、可編程邏輯等)中實現地程序指令、代碼和/或邏輯。計算機 可讀介質中的代碼可以由諸如處理器的機器訪問和執行。在某些實施例中, 還可以通過傳輸介質或者經由網絡從文件伺服器訪問其中建立實施例的代 碼。在這種情況下,其中實現所述代碼的製品可以包括傳輸介質,諸如網絡 傳輸線、無線傳輸媒體、通過空間傳播的信號、無線電波、紅外線信號等。 當然,本領域內的技術人員可以認識到,可以在不脫離所述實施例的範圍的 情況下進行許多修改,並且製品可以包括本領域公知的任何信息承載介質。 例如,製品包括其中存儲了指令的存儲介質,當機器執行所述指令時使得執 行操作。圖8圖解了其中可以實現了某些實施例的系統800的方框圖。在某些實 施例中,可以按照系統800來實現存儲系統202、 402、 602。系統800可以 包括電路802,其在某些實施例中可以包括處理器804。系統800也可以包括 存儲器806(例如易失性存儲器)和存儲器808。系統800的某些元件可能或可 能不在存儲系統202、 402、 602中找到。存儲器808可以包括非易失性存儲 器(例如,EEPROM、 ROM、 PROM、 RAM、 DRAM、 SRAM、快閃記憶體、 固件、可編程邏輯等)、磁碟驅動器、光碟驅動器、磁帶驅動器等。存儲器808 可以包括內部存儲器、附接的存儲器和/或者網絡可訪問的存儲器。系統800 可以包括包含代碼812的程序邏輯810,代碼812可以安裝到存儲器806中 和由處理器804或者電路802執行。在某些實施例中,包括代碼812的程序 邏輯810可以存儲在存儲器808中。在某些其他實施例中,可以在電路802 中實現程序邏輯810。因此,雖然圖8與其他元件分離地示出了程序邏輯810, 但是可以在存儲器806和/或802中實現所述程序邏輯810。圖3、 5、 7的至少某些操作可以並行以及順序執行。在替代實施例中, 可以以不同的順序執行、修改和去除某些操作。此外,為了說明以分離的模塊描述了許多軟體和硬體部件。這樣的部件 可以被集成到更少數量的組件中,或者被劃分為更大數量的部件。另外,被 描述為由特定部件執行的某些操作可以由其他部件執行。在圖la、 lb、 2-8中示出或者引用的數據結構和部件被描述為具有特定類型的信息。在替代實施例中,與附圖中示出或者引用的相比,所述數據結 構和部件可以被不同地構造,並且具有更少、更多或者不同的欄位或者不同 的功能。因此,出於說明和描述的目的給出了上述的實施例的說明。其並不旨在 是窮盡性的或者將所述實施例限定到所公開的精確形式。根據上述的教導, 許多修改和改變是可能的。
權利要求
1.一種方法,包括在第一存儲單元接收數據;將所接收的數據劃分為第一部分和第二部分;將所述數據的第一部分存儲在第一站點的第一存儲單元中;將所述數據的第二部分分布到第二站點的第二存儲單元以存儲;計算對應於該數據的第一部分和該數據的第二部分的奇偶校驗數據;並且,將該奇偶校驗數據分布到第三站點的第三存儲單元以存儲。
2. 按照權利要求l的方法,還包括響應於在第一站點的數據丟失,從 在第二站點存儲的該數據的第二部分和在第三站點存儲的該奇偶校驗數據來 恢復該數據的第一部分。
3. 按照權利要求l或者2的方法,其中,所述數據的第一部分、數據的 第二部分和奇偶校驗數據的大小之和小於所接收的數據大小的兩倍。
4. 按照權利要求3的方法,其中,所述數據的第一部分、數據的第二部 分和奇偶校驗數據的大小之和是所接收的數據大小的1.5倍。
5. 按照權利要求l、 2、 3或者4的方法,其中,所述第一站點、第二站 點和第三站點彼此相隔超過IO英裡的距離,以及其中,所述第一部分、第二 部分和第三部分被存儲在不同的存儲盤系統中。
6. 按照權利要求1-5的任何一個的方法,其中,所述第一站點和第三站 點之間的距離小於第一站點和第二站點之間的距離。
7. 按照權利要求1-6的任何一個的方法,其中,所述第一存儲單元包括 高速緩沖存儲器,所述方法還包括將所接收的數據存儲在第一存儲單元中 的高速緩衝存儲器中;在劃分所接收的數據之前,接收對高速緩衝存儲器中 所存儲的數據的更新;使用所接收的更新來更新該高速緩沖存儲器,其中, 分布所述數據的第二部分和奇偶校驗數據是異步地執行的,以及其中,把該 數據的第 一部分、數據的第二部分和奇偶校驗數據打上時間戳。
8. 按照權利要求l-7的任何一個的方法,其中,所述第一存儲單元耦接 到向第一存儲單元發送輸入/輸出請求的主機,其中,從該主機到第一存儲單 元的更新被異步地反映在第二存儲單元處,並且被異步地反映在第三存儲單 元處。
9. 一種方法,包括在第一存儲單元接收數據;產生第一信息單元、第 二信息單元、和第三信息單元,其中,所述第一信息單元、第二信息單元、和第三信息單元每個包括所接收的數據和所計算的奇偶校驗數據的一部分; 將第一信息單元存儲在第一站點的第一存儲單元中;將第二信息單元分布到 第二站點的第二存儲單元以存儲;以及,將第三信息單元分布到第三站點的 第三存儲單元以存儲。
10. 按照權利要求9的方法,其中,所述奇偶校驗數據的大部分被存儲 在該第一存儲單元中,以及其中,相比於第二和第三存儲單元可更快地訪問 第一存儲單元。
11. 按照權利要求9或者IO的方法,其中,在所述第一存儲單元從主機 接收數據,以及其中,使用多路徑硬體來將該主機連接到該第一、第二和第 三存儲單元。
12. 按照權利要求9、 10或者11的方法,其中,分布所述第二和第三信 息單元是經由從該第一存儲單元向該第二和第三存儲單元的寫入操作的,其 中,所述從該第一存儲單元向該第二和第三存儲單元的寫入操作是被並行地 寫入到該第二和第三存儲單元的全步幅的寫入。
13. —種系統,其中,在第一站點的第一存儲單元耦接到在第二站點的 第二存儲單元和在第三站點的第三存儲單元,所述系統包括存儲器;耦接到所述存儲器的電路,其中,所述電路可操作來(i)在該第一存儲單元接收 數據;(ii)將所接收的數據劃分為第一部分和第二部分;(iii)將所述數據的第 一部分存儲在第一站點的第一存儲單元中;(iv)將所述數據的第二部分分布到 在第二站點的第二存儲單元以存儲;(v)計算對應於該數據的第 一部分和該數 據的第二部分的奇偶校驗數據;並且,(vi)將該奇偶校驗數據分布到第三站點 的第三存儲單元以存儲。
14. 一種製品,其中,在第一站點的第一存儲單元耦接到在第二站點的 第二存儲單元和在第三站點的第三存儲單元,其中,所述製品能夠引起操作,所述操作包括在該第一存儲單元接收數據;將所接收的數據劃分為第一部 分和第二部分;將所述數據的第一部分存儲在第一站點的第一存儲單元中;將所述數據的第二部分分布到第二站點的第二存儲單元以存儲;計算對應於 該數據的第一部分和該數據的第二部分的奇偶校驗數據;並且,將奇偶校驗 數據分布到第三站點的第三存儲單元以存儲。
全文摘要
本發明提供了一種方法、系統和製品,其中,在第一站點的第一存儲單元耦接到在第二站點的第二存儲單元和在第三站點的第三存儲單元。在第一存儲單元接收數據。所接收的數據被劃分為第一部分和第二部分。數據的第一部分被存儲在第一站點的第一存儲單元中。數據的第二部分被分布到在第二站點的第二存儲單元以存儲。對應於數據的第一部分和數據的第二部分的奇偶校驗數據被計算。該奇偶校驗數據被分布到在第三站點的第三存儲單元以存儲。另外,本發明還提供了一種方法、系統和製品,其中,在第一站點的第一存儲單元耦接到在第二站點的第二存儲單元和在第三站點的第三存儲單元。第一信息單元、第二信息單元和第三信息單元被產生,其中,所述第一信息單元、第二信息單元和第三信息單元每個包括所接收的數據和所計算的奇偶校驗數據的一部分。第一信息單元被存儲在第一站點的第一存儲單元中。第二信息單元被分布到在第二站點的第二存儲單元以存儲。第三信息單元被分布到在第三站點的第三存儲單元以存儲。
文檔編號G06F11/00GK101288052SQ200580028262
公開日2008年10月15日 申請日期2005年7月21日 優先權日2004年8月25日
發明者盧·古延, 尼娜·徹裡安 申請人:國際商業機器公司