專利名稱:用于改進(jìn)的同步數(shù)據(jù)鏡像交換的裝置、系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及同步數(shù)據(jù)鏡像,具體地說,涉及在包括異步數(shù)據(jù)鏡像的系 統(tǒng)中有效地從主存儲巻交換到同步數(shù)據(jù)鏡像。
背景技術(shù):
數(shù)據(jù)存儲系統(tǒng)用戶可能需要高度可靠性以及從故障快速恢復(fù)。有些數(shù) 據(jù)存儲系統(tǒng)用戶可能需要保護(hù)數(shù)據(jù)以免由于自然災(zāi)害而丟失。例如,諸如 金融機(jī)構(gòu)、零售商之類的數(shù)據(jù)存儲系統(tǒng)用戶可能針對金融交易、庫存控制
等需要高度可靠性。金融機(jī)構(gòu)和其他機(jī)構(gòu)可以使用諸如IBM⑧提供的 TotalStorage Enterprise Storage Server⑧之類的企業(yè)存儲系統(tǒng)("ESS") 來存儲可靠性非常重要的數(shù)據(jù)。此類系統(tǒng)可以包括被組織為數(shù)據(jù)存儲巻的 高度可伸縮數(shù)據(jù)存儲設(shè)備,例如廉價(jià)/獨(dú)立磁盤冗余陣列("RAID")。
數(shù)據(jù)存儲系統(tǒng)可以包括連接數(shù)據(jù)存儲巻的存儲區(qū)域網(wǎng)絡(luò)("SAN")。 通常,存儲控制器用于通過SAN訪問數(shù)據(jù)存儲巻。主機(jī)通常將寫入請求發(fā) 送到將數(shù)據(jù)存儲在本地的主存儲巻上的存儲控制器。在級聯(lián)數(shù)據(jù)系統(tǒng)布置 中,存儲控制器還將存儲在主存儲巻上的數(shù)據(jù)發(fā)送到輔助數(shù)據(jù)存儲巻的存 儲控制器。數(shù)據(jù)存儲巻還可以位于主存儲巻和關(guān)聯(lián)存儲控制器的遠(yuǎn)程,以 便允許在影響主存儲巻的自然災(zāi)害之后恢復(fù)。數(shù)據(jù)存儲巻還可以相對接近 主存儲巻,這降低了數(shù)據(jù)訪問率。
為了最小化故障之后的恢復(fù)時(shí)間,輔助存儲巻可以是主數(shù)據(jù)巻的鏡像。 可以使用同步寫入操作將數(shù)據(jù)寫入鏡像數(shù)據(jù)巻。通常,同步寫入操作需要 在將成功消息返回到請求寫入操作的主機(jī)之前將數(shù)據(jù)寫入主存儲巻和鏡像 數(shù)據(jù)巻。同步寫入操作需要更多的開銷,這是成功地將數(shù)據(jù)寫入主存儲巻和鏡^^儲巻需要的時(shí)間所致。
通常,主存儲巻和鏡像數(shù)據(jù)巻之間的距離會(huì)影響性能,使得位于主存 儲巻和關(guān)聯(lián)存儲控制器遠(yuǎn)程的數(shù)據(jù)存儲巻可能將性能降低到使同步寫入操 作無法實(shí)行。可以使用異步寫入操作將數(shù)據(jù)寫入遠(yuǎn)程數(shù)據(jù)巻。異步寫入操 作通常允許在成功地將數(shù)據(jù)寫入所述寫入操作被導(dǎo)向的存儲巻之后返回針 對所述寫入操作的成功消息。然后,在完成將數(shù)據(jù)寫入所述寫入操作被導(dǎo) 向的存儲巻存儲裝置之后,將所述數(shù)據(jù)寫入遠(yuǎn)程存儲巻。
在級聯(lián)存儲系統(tǒng)中,可以將數(shù)據(jù)寫入主存儲巻并且同步寫入鏡像數(shù)據(jù) 巻。然后,將數(shù)據(jù)從鏡像數(shù)據(jù)巻異步復(fù)制到遠(yuǎn)程數(shù)據(jù)巻。遠(yuǎn)程存儲巻中將 要存儲的數(shù)據(jù)通常被存儲在非易失性存儲器或?qū)懭敫咚倬彺嬉约按鎯刂?器的常規(guī)高速緩存中,以便如果在可以將數(shù)據(jù)異步寫入遠(yuǎn)程存儲巻之前發(fā) 生4昔誤,數(shù)據(jù)將不會(huì)丟失。
通常使用 一個(gè)或多個(gè)位圖來跟蹤要異步寫入遠(yuǎn)程存儲巻的數(shù)據(jù)。通常,
使用位陣列(通常稱為活動(dòng)磁道陣列、更改的磁道陣列或更改記錄("CR") 位圖),按照自上次同步、或自上次啟動(dòng)異步傳輸?shù)拇鎯喤c遠(yuǎn)程存儲巻 是一致的以來,啟動(dòng)所做更改的異步傳輸?shù)拇鎯喩系拇诺赖刂穪肀3謱?shí) 時(shí)記錄。使用第二位圖(有時(shí)稱為恢復(fù)磁道陣列、復(fù)制磁道陣列或不同步 "OOS,,位圖)指定哪些磁道已作為異步寫入操作的一部分被寫入主存儲 巻并且仍需要被復(fù)制到遠(yuǎn)程存儲巻。
通常,當(dāng)更新成功地被寫入遠(yuǎn)程存儲巻時(shí),OOS位圖的相應(yīng)位將被清 除。在一個(gè)實(shí)施例中,將CR位圖的內(nèi)容定期與OOS位圖合并。在另一個(gè) 實(shí)施例中,通常當(dāng)OOS位圖指示沒有更多要寫入遠(yuǎn)程存儲巻的更新時(shí), CR位圖的內(nèi)容將定期改寫OOS位圖。
圖1A中示出了常用數(shù)據(jù)存儲系統(tǒng)體系結(jié)構(gòu)100。數(shù)據(jù)存儲系統(tǒng)100包 括在將數(shù)據(jù)發(fā)送到第一存儲巻106的第一存儲控制器104的主機(jī)102中。 第一存儲巻106初始^皮指定為主存儲巻,并且通過本地連接108從第一存 儲控制器104接收數(shù)據(jù)。第二存儲巻110是主存儲巻的鏡像數(shù)據(jù)巻,并且 借助同步連接112通過關(guān)聯(lián)的第二存儲控制器111接收數(shù)據(jù)。在一個(gè)實(shí)施例中,同步連接112是城域鏡像(Metro Mirror )連接。通常第一存儲控 制器104和第一存儲巻106位于本地位置,并且還可以相隔某一距離。
第二存儲巻110接收的更新還被寫入通常位于第一和第二存儲巻106、 110遠(yuǎn)程的第三存儲巻114。更新被異步發(fā)送到第三存儲巻114。第二和第 三存儲巻110、 114通過可以包括光纖電纜、銅質(zhì)電纜、無線連接等的連接 116通信。在一個(gè)實(shí)施例中,異步連接116是全球鏡像(Global Mirror) 連接。在一個(gè)實(shí)施例中,第四存儲巻118與第三存儲巻114位于一起。第 三存儲控制器120便于將數(shù)據(jù)復(fù)制到第三存儲巻114以及從第三存儲巻 114復(fù)制到第四存儲巻118。通常,第三存儲控制器120使用閃速復(fù)制過程 122將更新復(fù)制到第四存儲巻118,并且在第四存儲巻118上按時(shí)間順序匯 集更新。
通常,如果數(shù)據(jù)丟失、損壞或不可訪問,則使用第四存儲巻118 (如 果在存儲系統(tǒng)100中存在)將數(shù)據(jù)恢復(fù)到第一或第二存儲巻106、 110。在 一個(gè)實(shí)施例中,使用第四存儲巻118的內(nèi)容使第三巻與第三存儲巻114變 為同步狀態(tài),并且使用第三存儲巻114重新初始化第一和/或第二存儲巻 106、 110。由于復(fù)制過程需要的時(shí)間以及主機(jī)102不可訪問存儲巻106、 110、 118的時(shí)間,替換第一或第二存儲巻106、 110上的數(shù)據(jù)(而不是增 量地同步存儲巻106、 110、 118)是所不期望的。
第二存儲巻110可以具有關(guān)聯(lián)的CR位圖124,以便跟蹤當(dāng)?shù)谝缓偷?二存儲巻106、 110—致之后發(fā)生的更新。第二存儲巻110還可以具有關(guān)聯(lián) 的OOS位圖,以便跟蹤將要異步復(fù)制到第三存儲巻114的更新何時(shí)被成 功復(fù)制。OOS位圖通常跟蹤通過接收CR位圖內(nèi)容的更新或第二存儲巻110 接收的更新。
圖1B示出了第一存儲巻106上出現(xiàn)故障的情況。主機(jī)102通常交換 主存儲巻,使得在修復(fù)第一存儲巻106之前第二存儲巻110是主存儲巻。 主機(jī)102通常建立與第二存儲巻110的連接128。當(dāng)修復(fù)第一存儲巻106 時(shí),如圖1C中所示,第二存儲巻110的第二存儲控制器111通常暫停到 第三存儲巻114的更新并且建立與第一存儲巻106的連接130以重新同步。在一個(gè)實(shí)施例中,建立連接130以將數(shù)據(jù)從第二存儲巻110發(fā)送到第一存 儲巻106是故障轉(zhuǎn)移連接。
一旦第一存儲巻106與第二存儲巻110 —致,如圖ID中所示,主機(jī) 102就將主存儲巻交換為第一存儲巻106,并且第一存儲巻106重新建立與 第二存儲巻110的同步連接112。在一個(gè)實(shí)施例中,將數(shù)據(jù)從第一存儲巻 106發(fā)送到第二存儲巻110的重新建立是故障回復(fù)(fallback)連接。第二 存儲巻110再次開始將更新異步發(fā)送到第三存儲巻114,第三存儲巻114 開始更新第四存儲巻118。故障轉(zhuǎn)移和故障回復(fù)連接需要第一存儲巻106 和第二存儲巻110之間預(yù)先存在的關(guān)系,例如存儲關(guān)系。
在第二存儲巻110與第一存儲巻106同步并且已暫停到第三存儲巻 114的更新(參見圖1C)期間,第三和第四存儲巻114、 118開始變舊。 如果第一存儲巻106長時(shí)間無法運(yùn)行,則第三和第四存儲巻114、 118將需 要4艮長時(shí)間才能變?yōu)榕c第一和第二存儲巻106、 IIO—致的狀態(tài)。重新同步 第一、第三和第四存儲巻106、 114、 118的過程可能花費(fèi)數(shù)小時(shí)或甚至數(shù) 天。任何需要在第三存儲巻114變?yōu)閹缀跻恢碌臓顟B(tài)之前將第三存儲巻114 的內(nèi)容重新加載到第 一或第二存儲巻106、110的災(zāi)害都將由于第三存儲巻 114未接近于一致有問題。
從以上討論,應(yīng)顯而易見的是需要一種有效地交換同步鏡像巻的裝置、 系統(tǒng)和方法。有利的是,此類裝置、系統(tǒng)和方法在將第二、第三和第四存 儲巻110、 114、 118維持在幾乎同步的狀態(tài)的同時(shí)重新同步第一存儲巻106, 并且將減少重新同步系統(tǒng)100需要的時(shí)間。所述裝置、系統(tǒng)和方法將在先 前不存在預(yù)先存在的存儲關(guān)系的存儲巻之間強(qiáng)制故障轉(zhuǎn)移。
發(fā)明內(nèi)容
提供了本發(fā)明的一種用于激活同步鏡像作為主存儲巻的方法。所披露 的實(shí)施例中的方法主要包括針對所述裝置和系統(tǒng)的操作執(zhí)行以下提供的功 能所需的步驟。在一個(gè)實(shí)施例中,所述方法包括引導(dǎo)第三存儲巻將從第二 存儲巻發(fā)送到所述第三存儲巻的更新存儲在第 一存儲巻上以響應(yīng)所述第一存儲巻在故障之后變得可運(yùn)行。所述方法包括終止將更新從所述第二存儲 巻發(fā)送到所述第三存儲巻以響應(yīng)所述第 一存儲巻變得與所述第三存儲巻基 本一致。所述方法包括將所述第二存儲巻接收的更新同步地存儲在所述第 一存儲巻上,并且將所述第 一存儲巻接收的更新異步地存儲在所述第三存 儲巻上,以響應(yīng)在所述第 一和第三存儲巻基本一致之后終止將更新從所述 第二存儲巻發(fā)送到所述第三存儲巻。
所述方法還可以包括指定所述第二存儲巻作為主存儲巻以響應(yīng)在所述 笫一存儲巻處檢測到故障。所述第一存儲巻被指定為主存儲巻,所述第二 存儲巻包括所述第一存儲巻的數(shù)據(jù)的同步鏡像副本,并且所述第三存儲巻 包括所述故障之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本。在另一個(gè)實(shí) 施例中,所述方法包括終止所述第二存儲巻上的存儲關(guān)系。所述存儲關(guān)系 包括所述第二存儲巻用于同步地存儲來自所述第一存儲巻的數(shù)據(jù)的信息。
在備選實(shí)施例中,所述方法包括指定所述第一存儲巻作為主存儲巻以 響應(yīng)將所述第二存儲巻接收的更新同步地存儲在所述第一存儲巻上以及將 所述第 一存儲巻接收的更新異步地存儲在所述第三存儲巻上。所述備選實(shí) 施例的方法包括引導(dǎo)所述第三存儲巻將從所述第 一存儲巻發(fā)送到所述第三 存儲巻的更新存儲在所述第二存儲巻上以響應(yīng)所述第 一存儲巻^皮指定為主 存儲巻。所述備選實(shí)施例的方法包括終止將更新從所述第 一存儲巻發(fā)送到 所述第三存儲巻以響應(yīng)所述第二存儲巻變得與所述第三存儲巻基本一致。 所述備選實(shí)施例的方法包括將所述第 一存儲巻接收的更新同步地存儲在所 述第二存儲巻上并且將所述第二存儲巻接收的更新異步地存儲在所述第三 存儲巻上,以響應(yīng)終止將更新從所述第 一存儲巻發(fā)送到所述第三存儲巻。
在一個(gè)實(shí)施例中,引導(dǎo)所述第三存儲巻將從所述第二存儲巻發(fā)送到所 述第三存儲巻的更新存儲在所述第 一存儲巻上還包括引導(dǎo)所述第三存儲巻 創(chuàng)建存儲關(guān)系并且跟蹤所述第三存儲巻后續(xù)接收的更新。所述存儲關(guān)系包 括所述第三存儲巻用于將更新異步地存儲在所述第一存儲巻上的信息。在 另 一個(gè)實(shí)施例中,終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻還 包括從所述第二存儲巻和所述第三存儲巻刪除存儲關(guān)系。所述存儲關(guān)系包括所述第二存儲巻用于將數(shù)據(jù)存儲在所述第三存儲巻上的信息。在另 一個(gè) 實(shí)施例中,終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻還包括跟 蹤在終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻之后所述第二存 儲巻接收的更新。
在一個(gè)實(shí)施例中,將更新異步地存儲在所述第三存儲巻上還包括使用 閃速復(fù)制過程更新所述第三存儲巻的第四存儲巻,其中在所述第四存儲巻 上按時(shí)間順序組織更新。通常,所述第四存儲巻包括適于重新初始化主存 儲巻或恢復(fù)所述第三巻的數(shù)據(jù)。在一個(gè)實(shí)施例中,終止將更新從所述第二 存儲巻發(fā)送到所述第三存儲巻還包括終止到所述第四存儲巻的更新。在另 一個(gè)實(shí)施例中,將所述第一存儲巻接收的更新異步地存儲在所述第三存儲 巻上還包括重新啟動(dòng)到所述第四存儲巻的更新。
在一個(gè)實(shí)施例中,將所述第一存儲巻接收的更新異步地存儲在所述第 三存儲巻上還包括跟蹤所述第 一存儲巻接收的要復(fù)制到所述第三存儲巻的 更新。所述存儲關(guān)系包括所述第一存儲巻用于將更新異步地存儲在所述第 三存儲巻上的信息。在另一個(gè)實(shí)施例中,將所述第二存儲巻接收的更新同 步地存儲在所述第一存儲巻上還包括引導(dǎo)所述第二存儲巻在所述第二存儲 巻上創(chuàng)建存儲關(guān)系。所述存儲關(guān)系包括所述第二存儲巻用于將數(shù)據(jù)同步地 存儲在所述第 一存儲巻上的信息。
還提供了 一種用于激活同步鏡《象作為主存儲巻的裝置,所述裝置具有 多個(gè)模塊,所i^t塊被配置為在功能上執(zhí)行在維持到第二和第三存儲巻的 更新的同時(shí),從第三存儲巻同步已修復(fù)的第一存儲巻所需的步驟。所述實(shí) 施例中的這些模塊包括指定第二存儲巻作為主存儲巻以響應(yīng)在所述第一存 儲巻處檢測到故障的主交換模塊。所述第一存儲巻被指定為主存儲巻,所 述第二存儲巻包括所述第 一存儲巻的數(shù)據(jù)的同步鏡像副本,并且所述第三 存儲巻包括所述故障之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本。
所述裝置包括引導(dǎo)所述第三存儲巻將從所述第二存儲巻發(fā)送到所述第 三存儲巻的更新存儲在所述第 一存儲巻上以響應(yīng)所述第 一存儲巻在故障之
后變得可運(yùn)行的C-A故障回復(fù)模塊。所述裝置包括終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻以響應(yīng)所述第 一存儲巻變得與所述第三存儲
巻基本一致的B-C終止模塊。所述裝置包括將所述第二存儲巻接收的更新 同步地存儲在所述第 一存儲巻上并且將所述第 一存儲巻接收的更新異步地 存儲在所述第三存儲巻上,以響應(yīng)所述B-C終止模塊終止將更新從所述第 二存儲巻發(fā)送到所述第三存儲巻的B-A-C存儲模塊。
在一個(gè)實(shí)施例中,所述裝置被配置為包括引導(dǎo)所述第三存儲巻創(chuàng)建存 儲關(guān)系并且跟蹤在創(chuàng)建所述存儲關(guān)系之后所述第三存儲巻接收的更新的 C-A強(qiáng)制故障轉(zhuǎn)移模塊。所述存儲關(guān)系包括所述第三存儲巻用于將更新異 步地存儲在所述第一存儲巻上的信息。在另一個(gè)實(shí)施例中,所述主交換模 塊還包括被配置為終止所述第二存儲巻和所述第三存儲巻上的存儲關(guān)系以 響應(yīng)在所述第一存儲巻處檢測到故障并且使所述第二存儲巻成為主存儲巻 的A-B終止模塊。所述存儲關(guān)系包括所述第二存儲巻用于同步地存儲來自 所述第一存儲巻的數(shù)據(jù)的信息。
在一個(gè)實(shí)施例中,所述B-C終止模塊還被配置為從所述第二存儲巻刪 除存儲關(guān)系。所i^存儲關(guān)系包括所述第二存儲巻用于將數(shù)據(jù)存儲在所述第 三存儲巻上的信息。在另一個(gè)實(shí)施例中,所述B-C終止模塊還包括被配置 為跟蹤在終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻之后所述第 二存儲巻接收的更新的跟蹤更改模塊。
在一個(gè)實(shí)施例中,所述裝置包括第四存儲巻,并且所述第三存儲巻凈皮 配置為使用閃速復(fù)制過程將更新存儲到所述第四存儲巻。在所述第四存儲 巻上按時(shí)間順序組織更新。在一個(gè)實(shí)施例中,所述B-C終止模塊還被配置 為終止到所述第四存儲巻的更新。在另一個(gè)實(shí)施例中,所述B-A-C存儲才莫 塊還^皮配置為重新啟動(dòng)到所述第四存儲巻的更新。
在一個(gè)實(shí)施例中,所述B-A-C存儲模塊還包括引導(dǎo)所述第一存儲巻跟 蹤所述第一存儲巻接收的要復(fù)制到所述第三存儲巻的更新的A-C跟蹤模 塊。在另一個(gè)實(shí)施例中,所述B-A-C存儲模塊還包括引導(dǎo)所述第二存儲巻 在所述第二存儲巻上創(chuàng)建存儲關(guān)系的B-A增量重新同步模塊。所述存儲關(guān) 系包括所述第二存儲巻用于將數(shù)據(jù)同步地存儲在所述第一存儲巻上的信息。
還提供了本發(fā)明的一種用于激活同步鏡像作為主存儲巻的系統(tǒng)。所述 系統(tǒng)可以體現(xiàn)為在第 一存儲巻出現(xiàn)故障之前被指定為主存儲巻的第 一存儲 巻、包括故障之前的所述第一存儲巻的數(shù)據(jù)的同步鏡像副本的第二存儲巻、 包括故障之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本的第三存儲巻,以 及被配置為將更新存儲到所述第 一存儲巻和所述第二存儲巻的主機(jī)。具體 地說,在一個(gè)實(shí)施例中,所述主機(jī)包括指定所述第二存儲巻作為主存儲巻 以響應(yīng)在所述第 一存儲巻處檢測到故障的主交換模塊。所述主機(jī)包括引導(dǎo) 所述第三存儲巻將從所述第二存儲巻發(fā)送到所述第三存儲巻的更新存儲在
所述第一存儲巻上以響應(yīng)所述第一存儲巻在故障之后變得可運(yùn)行的C-A故 障回復(fù)模塊。
所述主4幾包括終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻以 響應(yīng)所述第一存儲巻變得與所述第三存儲巻幾乎一致的B-C終止模塊。所 述主機(jī)包括將所述第二存儲巻接收的更新同步地存儲在所述第 一存儲巻上 并且將所述第 一存儲巻接收的更新異步地存儲在所述第三存儲巻上,以響 應(yīng)終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻的B-A-C存儲模 塊。所述系統(tǒng)還可以包括與所述第三存儲巻位于一起的第四存儲巻,其中 所述第三存儲巻被配置為使用閃速復(fù)制過程將更新存儲到所述第四存儲 巻,并且在所述第四存儲巻上按時(shí)間順序組織更新。
提供了本發(fā)明的一種用于在存儲巻上創(chuàng)建新的存儲關(guān)系的方法。所披 露的實(shí)施例中的方法主要包括針對所述裝置和系統(tǒng)的操作執(zhí)行以上提供的 功能所需的步驟。在一個(gè)實(shí)施例中,所述方法包括在第一存儲巻上創(chuàng)建存 儲關(guān)系。所述存儲關(guān)系包括所述第 一存儲巻用于將所述第 一存儲巻接收的 更新存儲到第二存儲巻的信息,并且所述第 一存儲巻與所述第二存儲巻沒 有已有的存儲關(guān)系。所述方法包括跟蹤從創(chuàng)建所述存儲關(guān)系以來到數(shù)據(jù)結(jié) 構(gòu)中的第一存儲巻的更新。更新將要被復(fù)制到所述第二存儲巻。所述方法 包括根據(jù)所述數(shù)據(jù)結(jié)構(gòu)中的所跟蹤更新將更新從所述第 一存儲巻復(fù)制到所 述第二存儲巻。在一個(gè)實(shí)施例中,存儲關(guān)系是第一存儲關(guān)系,并且所述第一存儲巻與所述第三存儲巻具有已有的第二存儲關(guān)系。在另 一個(gè)實(shí)施例中, 在不重新初始化所述第 一存儲巻的情況下創(chuàng)建所述存儲關(guān)系。
提供了本發(fā)明的一種用于部署軟件以激活同步鏡像作為主存儲巻的方 法。所披露的實(shí)施例中的方法主要包括針對所述裝置和系統(tǒng)的操作執(zhí)行以 下提供的功能所需的步驟。在一個(gè)實(shí)施例中,所述方法包括確定客戶同步 鏡像和異步鏡像配置以及可靠性要求,并且執(zhí)行同步鏡像激活計(jì)算機(jī)代碼。 所述計(jì)算機(jī)代碼被配置為指定第二存儲巻作為主存儲巻以響應(yīng)在第 一存儲 巻處檢測到故障。所述第一存儲巻被指定為主存儲巻,所述第二存儲巻包 括所述第一存儲巻的數(shù)據(jù)的同步鏡像副本,并且第三存儲巻包括所述故障 之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本。
所述計(jì)算機(jī)代碼被配置為引導(dǎo)所述第三存儲巻將從所述第二存儲巻發(fā) 送到所述第三存儲巻的更新存儲在所述第 一存儲巻上以響應(yīng)所述第 一存儲 巻在故障之后變得可運(yùn)行。所述計(jì)算機(jī)代碼被配置為終止將更新從所述第 二存儲巻發(fā)送到所述第三存儲巻以響應(yīng)所述第 一存儲巻變得與所述第三存 儲巻基本一致。所述計(jì)算機(jī)代碼被配置為將所述第二存儲巻接收的更新同 步地存儲在所述第一存儲巻上并且將所述第一存儲巻接收的更新異步地存 儲在所述第三存儲巻上,以響應(yīng)在所述第 一和第三存儲巻基本一致之后終 止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻。
本說明書中對功能、優(yōu)點(diǎn)的參考或類似語言并非暗示可以與本發(fā)明一 起實(shí)現(xiàn)的所有功能和優(yōu)點(diǎn)應(yīng)在本發(fā)明的任何單個(gè)實(shí)施例中。相反,應(yīng)當(dāng)理 解,引用所述功能和優(yōu)點(diǎn)的語言指與實(shí)施例一起描述的特定功能、優(yōu)點(diǎn)或
特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,本^L明書中對功能、優(yōu)點(diǎn) 的討論和類似語言可以(但并不一定)指相同的實(shí)施例。
此外,所述功能、優(yōu)點(diǎn)和特性可以以任何適當(dāng)?shù)姆绞浇M合在一個(gè)或多 個(gè)實(shí)施例中。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,可以在沒有特定實(shí)施例的一 個(gè)或多個(gè)特定功能或優(yōu)點(diǎn)的情況下實(shí)現(xiàn)本發(fā)明。在其他情況下,可以在特 定實(shí)施例中認(rèn)識到可能不存在于本發(fā)明的所有實(shí)施例中的其他功能和優(yōu) 點(diǎn)。
將僅通過實(shí)例的方式參考以下附圖描述本發(fā)明的優(yōu)選實(shí)施例,這些附
圖是
圖1A是示出主存儲巻出現(xiàn)故障之前的典型三位置數(shù)據(jù)存儲系統(tǒng)的一 個(gè)實(shí)施例的示意性方塊圖IB是示出主存儲巻出現(xiàn)故障之后的其中第二存儲巻成為主存儲巻 的典型三位置數(shù)據(jù)存儲系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖1C是示出重新同步第一存儲巻同時(shí)暫停到第三存儲巻的更新的典 型三位置數(shù)據(jù)存儲系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖ID是示出重新建立第一存儲巻作為主存儲巻、重新建立到第二存 儲巻的同步更新以及到第三存儲巻的異步更新之后的典型三位置數(shù)據(jù)存儲 系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖2是示出主存儲巻出現(xiàn)故障之前的根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于 改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖3是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的裝 置的一個(gè)實(shí)施例的示意性方塊圖4是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的裝 置的備選實(shí)施例的示意性方塊圖5是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的方 法的一個(gè)實(shí)施例的示意性流程圖6是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的方 法的備選實(shí)施例的示意性流程圖7A是示出主存儲巻出現(xiàn)故障之后的根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用 于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖7B是示出其中第二存儲巻成為主存儲巻的才艮據(jù)本發(fā)明的優(yōu)選實(shí)施 例的用于改進(jìn)的同步鏡^^交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖7C是示出具有為了將更新從第三存儲巻發(fā)送到第一存儲巻而建立的鏈接的根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)
的一個(gè)實(shí)施例的示意性方塊圖7D是示出根據(jù)顯示增量重新同步更改記錄位圖的本發(fā)明的優(yōu)選實(shí) 施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示意性方塊 圖7E是示出根據(jù)顯示終止到第四存儲巻的更新的本發(fā)明的優(yōu)選實(shí)施 例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖7F是示出根據(jù)顯示終止從第二存儲巻到第三存儲巻的更新的本發(fā) 明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示 意性方塊圖7G是示出根據(jù)顯示終止從第三存儲巻到第一存儲巻的更新的本發(fā) 明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的 一個(gè)實(shí)施例的示 意性方塊圖7H是示出根據(jù)顯示用于將更新從第一存儲巻發(fā)送到第三存儲巻的 連接的本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè) 實(shí)施例的示意性方塊圖71是示出根據(jù)顯示用于將更新從第二存儲巻發(fā)送到第三存儲巻的 同步連接的本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的 一個(gè)實(shí)施例的示意性方塊圖7J是示出才艮據(jù)顯示等待巻變得同步的本發(fā)明的優(yōu)選實(shí)施例的用于 改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的一個(gè)實(shí)施例的示意性方塊圖;以及
圖7K是示出根據(jù)顯示在第一、第三和第四巻之間重新建立異步寫入 操作的本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)的 一個(gè) 實(shí)施例的示意性方塊圖。
具體實(shí)施例方式
將本說明書中描述的多個(gè)功能單元標(biāo)記為模塊,以便更具體地強(qiáng)調(diào)它 們的實(shí)現(xiàn)無關(guān)性。例如,模塊可以被實(shí)現(xiàn)為包括定制VLSI電路或門陣列、諸如邏輯芯片、晶體管或其他分離組件之類的現(xiàn)用半導(dǎo)體的石更件電路。模 塊還可以在諸如現(xiàn)場可編程門陣列、可編程陣列邏輯、可編程邏輯器件之 類的可編程硬件設(shè)備中實(shí)現(xiàn)。
模塊還可以在軟件中實(shí)現(xiàn),以便由各種類型的處理器執(zhí)行。例如,標(biāo) 識的可執(zhí)行代碼的模塊可以包括一個(gè)或多個(gè)物理或邏輯的計(jì)算機(jī)指令塊, 所述塊可以例如組織為對象、過程或功能。然而,標(biāo)識的模塊的可執(zhí)行代 碼不需要在物理上位于一起,但是可以包括存儲在不同位置的不同指令, 當(dāng)所述指令被邏輯地結(jié)合時(shí),將包括所述模塊并實(shí)現(xiàn)才莫塊的所述目的。
實(shí)際上,可執(zhí)行代碼的模塊可以是單個(gè)指令或多個(gè)指令,并且甚至可 以分布在數(shù)個(gè)不同的代碼段上、不同的程序中,以及跨數(shù)個(gè)存儲設(shè)備。同 樣,操作數(shù)據(jù)可以在模塊中被標(biāo)識和在此示出,并且可以包括在任何適當(dāng) 的形式中并組織在任何適當(dāng)類型的數(shù)據(jù)結(jié)構(gòu)中。操作數(shù)據(jù)可以被收集為單 個(gè)數(shù)據(jù)集,或可以分布在包括不同存儲設(shè)備的不同位置上,并且可以至少 部分地僅作為電子信號存在于系統(tǒng)或網(wǎng)絡(luò)中。
對信號承載介質(zhì)的引用可以采取任何能夠生成信號、導(dǎo)致信號生成或 導(dǎo)致在數(shù)字處理裝置上執(zhí)行機(jī)器可讀指令的程序的形式。信號承載介質(zhì)可 以體現(xiàn)為傳輸線路、光盤、數(shù)字視盤、磁帶、伯努利驅(qū)動(dòng)器、磁盤、穿孔 卡、閃存、集成電路或其他數(shù)字處理裝置存儲器件。
本發(fā)明的實(shí)施例的所述功能、結(jié)構(gòu)或特性可以以任何適當(dāng)?shù)男问浇M合 在一個(gè)或多個(gè)實(shí)施例中。在以下說明中,提供了大量特定的詳細(xì)信息,如 編程、軟件模塊、用戶選擇、網(wǎng)絡(luò)事務(wù)、數(shù)據(jù)庫查詢、數(shù)據(jù)庫結(jié)構(gòu)、硬件 模塊、硬件電路、硬件芯片等的實(shí)例,以便徹底理解本發(fā)明的實(shí)施例。但 是,相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,可以在沒有一個(gè)或多個(gè)特定的細(xì)節(jié)的 情況下實(shí)現(xiàn)本發(fā)明,或者可以通過其他方法、組件、材料等實(shí)現(xiàn)本發(fā)明。
通常作為邏輯流程圖說明在此包括的示意性流程圖。因此,所示順序 和標(biāo)記的步驟指示所提供方法的一個(gè)實(shí)施例。可以構(gòu)想其他步驟和方法, 它們在功能、邏輯或效果上與所示方法的一個(gè)或多個(gè)步驟或其各部分等效。 另外,提供所使用的格式和符號以說明所述方法的邏輯步驟,并且應(yīng)理解它們并非限制所述方法的范圍。盡管可以在流程圖中使用不同的箭頭類型 和線條類型,但是應(yīng)理解,它們并非限制相應(yīng)方法的范圍。實(shí)際上,某些 箭頭或其他連接符可用來僅指示所述方法的邏輯流。例如,箭頭可以指示 所示方法的列舉步驟之間的未指定持續(xù)時(shí)間的等待或監(jiān)視周期。另外,出
圖2是示出主存儲巻出現(xiàn)故障之前的根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于 改進(jìn)的同步鏡像交換的數(shù)據(jù)系統(tǒng)200的一個(gè)實(shí)施例的示意性方塊圖。數(shù)據(jù) 系統(tǒng)200包括主機(jī)202、第一存儲控制器204、第一存儲巻206、主機(jī)202 和第一存儲控制器204之間的連接208、第二存儲巻210、第二存儲控制器 211、第一和第二存儲巻206、 210之間的同步連接212、第三存儲巻214、 第二和第三存儲巻210、 214之間的異步連接216、第四存儲巻218、第三 存儲控制器220、第三和第四存儲巻214、 218之間的連接222,以及與第 二存儲巻210關(guān)聯(lián)的CR位圖224和OOS位圖226,其將在下面描述。在 一個(gè)實(shí)施例中,除了數(shù)據(jù)系統(tǒng)200包括根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改 進(jìn)的同步鏡像交換的模塊、組件、連接等之外,數(shù)據(jù)系統(tǒng)200的組件類似 于針對圖IA描述的數(shù)據(jù)存儲系統(tǒng)IOO。
數(shù)據(jù)系統(tǒng)200包括一個(gè)或多個(gè)將寫入請求發(fā)送到存儲控制器204、211 、 220的主機(jī)202。主機(jī)202通常^IJ良務(wù)器,但可以是工作站、個(gè)人計(jì)算機(jī)、 4更攜式計(jì)算機(jī)等。在一個(gè)實(shí)施例中,主機(jī)202包括計(jì)算機(jī)、服務(wù)器、打印 機(jī)、路由器等的網(wǎng)絡(luò)。在另一個(gè)實(shí)施例中,主機(jī)202與第一存儲控制器204 結(jié)合。主機(jī)202通常通過SAN與存儲控制器204、 211、 220通信,但可以 通it^;域網(wǎng)、廣域網(wǎng)、因特網(wǎng)、無線網(wǎng)絡(luò)等通信。主機(jī)202還可以被配置 為將讀取請求、復(fù)制請求或其他數(shù)據(jù)相關(guān)的請求發(fā)送到存儲控制器204、 211、 220。本領(lǐng)域的技術(shù)人員將認(rèn)識到能夠?qū)?shù)據(jù)寫入請求發(fā)送到存儲控 制器204、 211、 220的主機(jī)202的其他實(shí)施例。
數(shù)據(jù)系統(tǒng)200包括被配置為從主機(jī)202接收寫入請求并且將文件、文 件更新、文件信息等(此后稱為"更新")存儲到一個(gè)或多個(gè)存儲巻206、 210、 214、 218的第一存儲控制器204。在一個(gè)實(shí)施例中,第一存儲控制器
21204是企業(yè)存儲系統(tǒng)("ESS")控制器。在另一個(gè)實(shí)施例中,第一存儲控 制器204是IBM System Storage DS8000⑧存儲服務(wù)器。第 一存儲控制器 204可以是服務(wù)器、工作站、數(shù)據(jù)移動(dòng)器,或具有多個(gè)組件和計(jì)算機(jī)的系 統(tǒng)。通常,第一存儲控制器204包括非易失性存儲器或?qū)懭敫咚倬彺嬉约?用于暫時(shí)存儲更新的易失性存儲器或高速緩存。本領(lǐng)域的技術(shù)人員將認(rèn)識 到能夠從主機(jī)202接收寫入請求并且將與寫入請求相關(guān)的更新存儲在存儲 巻206、 210、 214、 218上的其他第一存儲控制器204配置。
系統(tǒng)200包括存儲從第一存儲控制器204接收的更新的第一存儲巻 206。通常,在正常運(yùn)行條件下,第一存儲巻206被指定為主存儲巻并且直 接從第 一存儲控制器204接收更新。第 一存儲巻206包括至少 一個(gè)硬盤驅(qū) 動(dòng)器("HDD"),但是還可以包括一起形成巻的盤陣列。第一存儲巻206 可以包括RAID陣列、簡單磁盤捆綁("JBOD")等。第一存儲巻206 可以包括磁帶驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器等。在一個(gè)實(shí)施例中,第一存儲巻206 包括形成一個(gè)巻的一個(gè)盤或盤陣列。在另一個(gè)實(shí)施例中,第一存儲巻206 包括多個(gè)存儲巻。
通常,第一存儲控制器204可訪問第一存儲巻206的一個(gè)或多個(gè)存儲 巻。在一個(gè)實(shí)施例中,第一存儲巻206包括數(shù)據(jù)移動(dòng)器、控制器或其他具 有處理器和存儲器的設(shè)備,以便控制第一存儲巻206的一個(gè)或多個(gè)存儲巻 并且從第一存儲控制器204或其他存儲控制器接收更新。本領(lǐng)域的技術(shù)人 員將認(rèn)識到能夠從第一存儲控制器204接收更新的其他第 一存儲巻206。
系統(tǒng)200包括從主機(jī)202到第一存儲控制器204的數(shù)據(jù)連接208。主 機(jī)202通過連接208與存儲控制器204、 211、 220通信,連接208通常包 括SAN,但可以包括光纖連接、小型計(jì)算機(jī)系統(tǒng)接口 ( "SCSI")、局域 網(wǎng)、路由器、交換機(jī)等。在級聯(lián)數(shù)據(jù)存儲系統(tǒng)200中,通常當(dāng)?shù)谝淮鎯?206被指定為主存儲巻時(shí),第 一存儲控制器204將來自主機(jī)202的更新直 接發(fā)送到第一存儲巻206,而不通過第二或第三存儲巻210、 214。
數(shù)據(jù)系統(tǒng)200包括基本類似于第一存儲巻206的第二存儲巻210。通 常,第二存儲巻210初始是第一存儲巻206的同步鏡1象數(shù)據(jù)巻,并且包括與第一存儲巻206相同的數(shù)據(jù)。通常,第二存儲巻210具有與第一存儲巻 206相同的容量、相同的磁道數(shù)等。第二存儲巻210可以位于與第一存儲 巻206足夠接近的中間位置,以便允許適合同步連接212的連接而不會(huì)產(chǎn) 生不可接受的性能降低。在一個(gè)實(shí)施例中,第二存儲巻210與第一存儲巻 206位于一起。
數(shù)據(jù)系統(tǒng)200包括第 一存儲巻206 (通過關(guān)聯(lián)的第 一存儲控制器204 ) 到第二存儲巻210(通過關(guān)聯(lián)的第二存儲控制器211 )之間的數(shù)據(jù)連接212。 數(shù)據(jù)連接212基本類似于主機(jī)202到第一存儲控制器204的連接208。數(shù) 據(jù)連接212可以是第一和第二存儲巻206、 210之間的同步連接。數(shù)據(jù)系統(tǒng) 200包括與第二存儲巻關(guān)聯(lián)并且基本類似于第一存儲控制器204的第二存 儲控制器211。
系統(tǒng)200包括通常位于第一和第二存儲巻206、 210遠(yuǎn)程的第三存儲巻 214和第四存儲巻218。系統(tǒng)200包括與第三和第四存儲巻214、 218關(guān)聯(lián) 并且基本類似于第一和第二存儲控制器204、 211的第三存儲控制器220。 第三存儲巻214初始從第二存儲巻和控制器210、 211異步接收更新。在異 步操作模式期間,第三存儲控制器220使用閃速復(fù)制過程222將第三存儲 巻214接收的更新復(fù)制到第四存儲巻218。第三存儲控制器220通常根據(jù) 第三存儲巻214與第二存儲巻210 —致時(shí)的時(shí)間點(diǎn)或其他適合的重要時(shí)間 點(diǎn),按時(shí)間順序重新排列被復(fù)制到第四存儲巻218的更新。
系統(tǒng)200包括第二和第三存儲巻210、 214 (以及關(guān)聯(lián)的控制器211、 220)之間的數(shù)據(jù)連接216。數(shù)據(jù)連接216可以是廣域網(wǎng)連接、光纖網(wǎng)絡(luò)連 接等,并且可以包括光纖電纜、銅質(zhì)電纜、無線連接、集線器、路由器等。 第三和第四存儲巻214、 218通常位于第一和第二存儲巻206、 210的遠(yuǎn)程, 以便第二和第三存儲巻210、 214之間的數(shù)據(jù)連接216適合于此類距離。
系統(tǒng)200包括與第二存儲巻210關(guān)聯(lián)的CR位圖224和OOS位圖226。 位圖224、 226通常是數(shù)據(jù)存儲并且由第二存儲控制器211管理。在一個(gè)實(shí) 施例中,CR位圖224跟蹤當(dāng)巻一致時(shí),在與第三存儲巻214同步之后發(fā) 生的到第二存儲巻210的更新。OOS位圖跟蹤要被寫入第三存儲巻214的更新。通常,位圖224、 226都標(biāo)識到存儲巻210、 214的更新的磁道地址。 例如,當(dāng)OOS位圖226耗盡之后,將CR位圖224的內(nèi)容定期與OOS 位圖226合并。當(dāng)OOS位圖226^f^時(shí),第二和第三巻210、 214將被視 為一致或同步。通過將OOS位圖226跟蹤的更新復(fù)制到第三存儲巻214 而耗盡OOS位圖226。當(dāng)將更新從第二存儲巻210寫入第三存儲巻214時(shí), 將從OOS位圖226清除與所復(fù)制的更新關(guān)聯(lián)的位。CR位圖224跟蹤在第 二和第三存儲巻210、 214—致時(shí)的時(shí)間點(diǎn)之后發(fā)生的更改。OOS位圖226 還可以跟蹤第二存儲巻210接收的更新。在一個(gè)實(shí)施例中,在OOS位圖 226被完全清除之后,將CR位圖224復(fù)制到OOS位圖226。當(dāng)CR位圖 224的內(nèi)^ML復(fù)制到OOS位圖226或與OOS位圖226合并之后,還可以 清除CR位圖224以跟蹤后續(xù)更新。
圖3是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的裝 置300的一個(gè)實(shí)施例的示意性方塊圖。裝置300包括主機(jī)202,主機(jī)202 具有C-A故障回復(fù)模塊302、 B-C終止模塊304和B-A-C存儲模塊306, 將在下面描述它們。在一個(gè)實(shí)施例中,裝置300的模塊302、 304、 306包 括在主機(jī)202中。在另一個(gè)實(shí)施例中,裝置300的才莫塊302、 304、 306包 括在存儲管理計(jì)算機(jī)(未示出)中。在再一個(gè)實(shí)施例中,裝置300的模塊 302、 304、 306包括在存儲控制器204、 211、 220中。本領(lǐng)域的技術(shù)人員 將認(rèn)識到裝置300的模塊302、 304、 306的其他位置以激活異步鏡像。
裝置300包括引導(dǎo)第三存儲巻214將從第二存儲巻210發(fā)送到第三存 儲巻214的更新存儲在第一存儲巻206上以響應(yīng)第一存儲巻206在故障之 后變得可運(yùn)行的C-A故障回復(fù)模塊302。當(dāng)?shù)谝淮鎯?06出現(xiàn)故障之后, 第二存儲巻210可以被指定為主存儲單元,并且主機(jī)202可以將更新發(fā)送 到第二存儲巻210。通常,第二存儲巻210繼續(xù)將更新發(fā)送到第三存儲巻 214。當(dāng)?shù)谝淮鎯?06未運(yùn)行時(shí),第三存儲巻214跟蹤OOS位圖中的更 改。C-A故障回復(fù)模塊302認(rèn)識到第一存儲巻206可運(yùn)行,并且開始將與 第三存儲巻214關(guān)聯(lián)的00S位圖所跟蹤的更新發(fā)送到第一存儲巻206。在 一個(gè)實(shí)施例中,更新被異步地發(fā)送。在另一實(shí)施例中,更新被同步地發(fā)送。
24裝置300包括終止將更新從第二存儲巻210發(fā)送到第三存儲巻214以 響應(yīng)第一存儲巻206變得與第三存儲巻214基本一致的B-C終止模塊304。 當(dāng)?shù)?一存儲巻206開始從第三存儲巻214接收更新之后,第 一存儲巻206 最終達(dá)到它與第三存儲巻214幾乎一致的點(diǎn)。在一個(gè)實(shí)施例中,當(dāng)?shù)谝缓?第三存儲巻206、 214—致時(shí),B-C終止模塊304終止發(fā)送更新。在另一個(gè) 實(shí)施例中,當(dāng)?shù)谝缓偷谌鎯?06、 214基本一致時(shí),B-C終止模塊304 終止發(fā)送更新。當(dāng)C-A故障回復(fù)模塊302將更新異步發(fā)送到第一存儲巻206 時(shí),后一實(shí)施例是優(yōu)選的。在一個(gè)實(shí)施例中,B-C終止模塊304終止到第 四存儲巻218的更新。
裝置300包括將第二存儲巻210接收的更新同步地存儲在第一存儲巻 206上并且將第一存儲巻206接收的更新異步地存儲在第三存儲巻214上, 以響應(yīng)在第一和第三存儲巻206、 214基本一致之后終止將更新從第二存儲 巻210發(fā)送到第三存儲巻214的B-A-C存儲^=莫塊306。在一個(gè)實(shí)施例中, B-A-C存儲^f莫塊306重新啟動(dòng)到第四存儲巻218的更新。有利地,B-A-C 存儲模塊306將數(shù)據(jù)存儲系統(tǒng)200恢復(fù)到更新可以從主4幾202流到主存儲 巻(第二存儲巻210),同步流到鏡像數(shù)據(jù)巻(第一存儲巻206),然后異 步地流到遠(yuǎn)程存儲巻(第三和第四存儲巻214、 218)的狀態(tài)。
裝置300克服了現(xiàn)有技術(shù)系統(tǒng)(參見圖1A至1D)的許多缺點(diǎn)。裝置 300維持從主機(jī)202到主存儲巻(第二存儲巻210 )的數(shù)據(jù)流,同時(shí)還在出 現(xiàn)故障的存儲巻(第一存儲巻206)恢復(fù)聯(lián)機(jī)和同步時(shí)實(shí)質(zhì)上維持到遠(yuǎn)程 存儲巻(第三和第四存儲巻214、 218)的數(shù)據(jù)流。裝置300還可以用于重 復(fù)與裝置300關(guān)聯(lián)的方法,以便將第一存儲巻206恢復(fù)為主存儲巻,并且 將第二存儲巻210恢復(fù)為鏡像數(shù)據(jù)巻。
圖4是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的裝 置400的備選實(shí)施例的示意性方塊圖。裝置400包括主機(jī)202,主機(jī)202 具有C-A故障回復(fù)模塊302、 B-C終止模塊304和B-A-C存儲模塊306, 它們基本類似于針對圖3的裝置300描述的模塊。此外,裝置400包括主 交換模塊402和C-A強(qiáng)制故障轉(zhuǎn)移模塊404。在一個(gè)實(shí)施例中,主交換模塊402包括A-B終止模塊406。在另 一個(gè)實(shí)施例中,B-C終止模塊304包 括跟蹤更改模塊408。在另一個(gè)實(shí)施例中,B-A-C存儲模塊306包括A-C 跟蹤模塊410和B-A增量重新同步模塊412。在一個(gè)實(shí)施例中,裝置400 包括C-B強(qiáng)制故障回復(fù)模塊414 、 B-C終止模塊416和A-B-C存儲模塊418 。 將在下面描述這些模塊。
裝置400包括指定第二存儲巻210作為主存儲巻以響應(yīng)在第一存儲巻 206處檢測到故障的主交換模塊402。初始地,將第一存儲巻206指定為主 存儲巻,第二存儲巻210包括第一存儲巻的數(shù)據(jù)的同步鏡像副本,并且第 三存儲巻214包括故障之前的第二存儲巻的數(shù)據(jù)的異步鏡像副本。
在一個(gè)實(shí)施例中,主交換模塊402包括IBM的HyperSwap程序。在 另 一個(gè)實(shí)施例中,在檢測到第一存儲巻206中的故障之后,主交換^i塊402 自動(dòng)指定第二存儲巻210作為主存儲巻。在另一個(gè)實(shí)施例中,主交換模塊 402通過操作員干預(yù)來指定第二存儲巻210作為主存儲模塊。在一個(gè)實(shí)施 例中,在檢測到第二存儲巻210中的故障之后,主交換模塊402指定第一 存儲巻206作為主存儲巻。本領(lǐng)域的技術(shù)人員將認(rèn)識到主交換模塊402可 以在檢測到故障之后指定主存儲巻的其他方法。
在一個(gè)實(shí)施例中,裝置400包括引導(dǎo)第三存儲巻214創(chuàng)建存儲關(guān)系并 且跟蹤在創(chuàng)建存儲關(guān)系之后到存儲模塊的更新的C-A強(qiáng)制故障轉(zhuǎn)移模塊 404。所述存儲關(guān)系包括第三存儲巻214用于將更新異步地存儲在第一存儲 巻206上的信息。在一個(gè)實(shí)施例中,C-A強(qiáng)制故障轉(zhuǎn)移模塊404位于第二 存儲控制器211上。在其他實(shí)施例中,C-A強(qiáng)制故障轉(zhuǎn)移模塊404位于主 才幾202或其他存儲控制器204、 220上。
通常,本發(fā)明的實(shí)施例包括強(qiáng)制故障轉(zhuǎn)移功能和強(qiáng)制故障回復(fù)功能, 這些功能是對現(xiàn)有技術(shù)的故障轉(zhuǎn)移和故障回復(fù)命令的改進(jìn)。強(qiáng)制故障轉(zhuǎn)移 功能允許創(chuàng)建先前不存在的與存儲巻關(guān)聯(lián)的存儲關(guān)系。例如,在第一和第 二存儲巻206、 210之間可能存在典型的存儲關(guān)系,以便將來自第一存儲巻 206的更新同步地存儲在第二存儲巻210上。
可以發(fā)出故障轉(zhuǎn)移命令以便在第一存儲巻206出現(xiàn)故障后被聯(lián)機(jī)之
26后,指示第二存儲巻210將更新發(fā)送到第一存儲巻206。 一旦第一存儲巻 206被同步,就發(fā)出故障回復(fù)命令以便在第一存儲巻206再次被指定為主 存儲巻之后,引導(dǎo)第一存儲巻206將更新存儲在第二存儲巻210上。使用 現(xiàn)有技術(shù)的故障轉(zhuǎn)移或故障回復(fù)命令,引導(dǎo)第二存儲巻210跟蹤第二存儲 巻210接收的更新并且然后將所跟蹤的更新存儲在第三存儲巻214上的存 儲關(guān)系將不可能存在。
強(qiáng)制故障轉(zhuǎn)移功能允許存儲巻與其他存儲巻建立初始化期間未預(yù)定義 的存儲關(guān)系。在一個(gè)實(shí)施例中,強(qiáng)制故障轉(zhuǎn)移功能與其他存儲巻建立存儲 關(guān)系但不發(fā)送更新。實(shí)際上,所述存儲巻創(chuàng)建OOS位圖以跟蹤將被存儲 到其他存儲巻的更改。然后,強(qiáng)制故障回復(fù)功能啟動(dòng)從跟蹤OOS位圖上 的更改的存儲巻流到其他存儲巻的更新。在一個(gè)實(shí)施例中,強(qiáng)制故障轉(zhuǎn)移 功能終止所述存儲巻的任何在先存儲關(guān)系。
C-A強(qiáng)制故障轉(zhuǎn)移模塊404是強(qiáng)制故障轉(zhuǎn)移功能的實(shí)例。例如,第三 存儲巻214與第二存儲巻210具有異步存儲關(guān)系,并且在正常操作期間接 收更新。C-A強(qiáng)制故障轉(zhuǎn)移模塊404在第三存儲巻214上與第一存儲巻206 建立存儲關(guān)系。 一旦建立存儲關(guān)系,第三存儲巻214便開始跟蹤第三存儲 巻214接收的將械發(fā)送到第一存儲巻206的更改。在一個(gè)實(shí)施例中,所述 更改存儲在OOS位圖中。OOS位圖可以存儲在第三存儲控制器220上。 在沒有強(qiáng)制故障轉(zhuǎn)移功能的情況下,第三存儲巻214將被限制為接收和發(fā) 送到第二存儲巻210的更新,并且不能與第一存儲巻206建立新的存儲關(guān) 系以及跟蹤到第一存儲巻206的更新。
在一個(gè)實(shí)施例中,主交換模塊402包括終止第一存儲巻206上的存儲 關(guān)系以響應(yīng)在第一存儲巻206處檢測到故障并且使第二存儲巻210成為主 存儲巻的A-B終止模塊406。所述存儲關(guān)系包括第二存儲巻210用于同步 地存儲來自第一存儲巻206的數(shù)據(jù)的信息。在一個(gè)實(shí)施例中,終止第二存 儲巻210上的存儲關(guān)系允許主機(jī)202指定第二存儲巻210作為主存儲巻, 并且將更新發(fā)送到第二存儲巻210。
在一個(gè)實(shí)施例中,B-C終止模塊304包括跟蹤在終止將更新從第二存儲巻210發(fā)送到第三存儲巻214之后第二存儲巻210所接收的更新的跟蹤 更改模塊408。通常,跟蹤更改模塊408跟蹤與第二存儲巻210關(guān)聯(lián)的增 量重新同步CR位圖中的更改。在一個(gè)實(shí)施例中,增量重新同步CR位圖 位于笫二存儲控制器211上。跟蹤更改才莫塊408創(chuàng)建的增量重新同步CR 位圖允許跟蹤更改模塊408跟蹤在B-C終止模塊304暫停從第二存儲巻210 到第三存儲巻214的更新之后接收的更新。通常,在創(chuàng)建新的增量重新同 步CR位圖之后,將不會(huì)4吏用與第二存儲巻210關(guān)聯(lián)并且用于跟蹤第一存 儲巻206出現(xiàn)故障之前的更新的CR位圖。
在一個(gè)實(shí)施例中,B-A-C存儲模塊306包括引導(dǎo)第一存儲巻206在第 一存儲巻206上創(chuàng)建存儲關(guān)系的A-C跟蹤模塊410。 A-C跟蹤模塊410引 導(dǎo)第一存儲巻206創(chuàng)建與第一存儲巻206關(guān)聯(lián)的OOS位圖,以便跟蹤將 -故復(fù)制到第三存儲巻214的更新。通常,OOS位圖位于第一存儲控制器 204上。
在另 一個(gè)實(shí)施例中,B-A-C存儲模塊306包括引導(dǎo)第二存儲巻210在 第二存儲巻210上創(chuàng)建存儲關(guān)系的B-A增量重新同步模塊412。所述存儲 關(guān)系包括第二存儲巻210用于將數(shù)據(jù)同步地存儲在第一存儲巻206上的信 息。B-A增量重新同步模塊412在第二存儲巻210上重新創(chuàng)建出現(xiàn)故障之 前存在并且從第二存儲巻210刪除的存儲關(guān)系,以便允許主機(jī)102將更新 發(fā)送到第二存儲巻210。
通常,在B-C終止模塊304終止從第二存儲巻210到第三存儲巻214 的更新之前,將耗盡跟蹤到第三存儲巻214的更新并與第二存儲巻210關(guān) 聯(lián)的OOS位圖。在OOS位圖^^L后,當(dāng)B-A增量重新同步模塊412引 導(dǎo)第二存儲巻210建立存儲關(guān)系時(shí),通常不會(huì)使用此位圖。在一個(gè)實(shí)施例 中,B-A增量重新同步模塊412引導(dǎo)第二存儲控制器211將跟蹤更改模塊 408所創(chuàng)建的增量重新同步CR位圖的內(nèi)容合并到跟蹤被復(fù)制到第一存儲 巻206的更新的新OOS位圖中。在另一個(gè)實(shí)施例中,B-A增量重新同步?jīng)_莫 塊412引導(dǎo)第二存儲控制器211將跟蹤更改模塊408所創(chuàng)建的增量重新同 步CR位圖的內(nèi)容合并到與第二存儲巻210關(guān)聯(lián)的現(xiàn)有OOS位圖中,并且該OOS位圖跟蹤被復(fù)制到第一存儲巻206的更新。在一個(gè)實(shí)施例中,一 旦第一和第二存儲巻206、 210—致,將不使用OOS位圖。
在一個(gè)實(shí)施例中,裝置400包括引導(dǎo)第三存儲巻214將從笫一存儲巻 206發(fā)送到第三存儲巻214的更新存儲在第二存儲巻210上以響應(yīng)第一存 儲巻206被指定為主存儲巻的C-B強(qiáng)制故障回復(fù)模塊414。在另一個(gè)實(shí)施 例中,裝置400包括終止將更新從第一存儲巻206發(fā)送到第三存儲巻214 以響應(yīng)第二存儲巻210變得與第三存儲巻214基本一致的B-C終止模塊 416。在再一個(gè)實(shí)施例中,裝置400包括將笫一存儲巻206接收的更新同步 地存儲在第二存儲巻210上并且將第二存儲巻210接收的更新異步地存儲 在笫三存儲巻214上,以響應(yīng)終止將更新從第一存儲巻206發(fā)送到第三存 儲巻214的A-B-C存儲模塊418。
圖5是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的方 法500的一個(gè)實(shí)施例的示意性流程圖。方法500開始(502) , C-A故障回 復(fù)模塊302引導(dǎo)(504 )第三存儲巻214將從第二存儲巻210發(fā)送到第三存 儲巻214的更新存儲在第一存儲巻206上以響應(yīng)第一存儲巻206在故障之 后變得可運(yùn)行。在一個(gè)實(shí)施例中,C-A故障回復(fù)模塊302引導(dǎo)笫三存儲巻 214發(fā)出在第三存儲巻214上創(chuàng)建與第一存儲巻206的存儲關(guān)系的強(qiáng)制故 障轉(zhuǎn)移功能。
B-C終止模塊304終止(506)將更新從第二存儲巻210發(fā)送到第三存 儲巻214以響應(yīng)笫一存儲巻206變得與第三存儲巻214基本一致。通常, 當(dāng)笫一存儲巻206變?yōu)橐恢禄驇缀跻恢碌臓顟B(tài)時(shí),主機(jī)202繼續(xù)將更新發(fā) 送到第二存儲巻210,并且第二存儲巻210繼續(xù)將更新發(fā)送到笫三存儲巻 214。
B-A-C存儲模塊306將第二存儲巻210接收的更新同步地存儲(508 ) 在第 一存儲巻206上以響應(yīng)B-C終止模塊304終止將更新從第二存儲巻210 發(fā)送到第三存儲巻214。此外,B-C終止模塊304將第一存儲巻206接收 的更新異步地存儲(508)在第三存儲巻214上以響應(yīng)B-C終止模塊304 終止將更新從第二存儲巻210發(fā)送到第三存儲巻214,方法500結(jié)束(510 )。在一個(gè)實(shí)施例中,方法500提供了一種方法以便從主巻交換到同步鏡 像巻,同時(shí)維持接收到第二存儲巻210 (先前是出現(xiàn)故障的第一存儲巻206 的鏡像副本)的更新。第二存儲巻210是新指定的主巻。方法500還允許 在第一存儲巻206返回操作之后同步第一存儲巻206,同時(shí)維持第四存儲 巻218幾乎一致(作為第三存儲巻214繼續(xù)接收更新的結(jié)果)。當(dāng)?shù)谝缓?第二存儲巻206、 210的位置相當(dāng)接近時(shí),或使第二存儲巻210作為指定的 主存儲巻性能降低很小或不降低時(shí),可能希望維持第二存儲巻210作為主 存儲巻。
圖6是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交換的方 法600的備選實(shí)施例的示意性流程圖。方法600提供了使用針對圖5中描 述的方法500所用的相同技術(shù)的相反過程,以便將級聯(lián)數(shù)據(jù)存儲系統(tǒng)200 返回到其原始體系結(jié)構(gòu),其中第一存儲巻206作為主存儲巻,第二存儲巻 210同步接收來自第一存儲巻206的更新,并且第三存儲巻214異步接收 來自第二存儲巻210的更新。當(dāng)包含第二存儲巻210的中間存儲站點(diǎn)比第 一存儲巻206更遠(yuǎn)離主機(jī)202時(shí),或具有比第一存儲巻206更慢的到主機(jī) 202的連接時(shí),可能需要方法600。
方法600開始于(602)主交換模塊402,主交換模塊指定(604 )第 二存儲巻210作為主存儲巻以響應(yīng)在第一存儲巻206處檢測到故障。第一 存儲巻206被指定為主存儲巻,第二存儲巻210包括故障之前的第一存儲 巻的數(shù)據(jù)的同步鏡像副本,并且第三存儲巻214包括故障之前的第二存儲 巻的數(shù)據(jù)的異步鏡像副本。C-A故障回復(fù)模塊302引導(dǎo)(606 )第三存儲巻 214將從第二存儲巻210發(fā)送到笫三存儲巻214的更新存儲在第一存儲巻 206上以響應(yīng)第一存儲巻206在故障之后變得可運(yùn)行。
B-C終止模塊304終止(608 )將更新從第二存儲巻210發(fā)送到第三存 儲巻214以響應(yīng)第一存儲巻206變得與第三存儲巻214基本一致。B-A-C 存儲模塊306將第二存儲巻210接收的更新同步地存儲(610 )在第一存儲 巻206上,并且B-C終止模塊304將第一存儲巻206接收的更新異步地存 儲(610 )在第三存儲巻214上,以響應(yīng)B-C終止模塊304終止將更新從第二存儲巻210發(fā)送到第三存儲巻214。
主交換^t塊402判定(612 )第一存儲巻206是否將是主存儲巻。如果 否,則方法600結(jié)束(622 )。如果主交換模塊402判定(612 )第一存儲 巻206將是主存儲巻,則主交換模塊402指定(614)第一存儲巻206作為 主存儲巻。C-B強(qiáng)制故障回復(fù)模塊414引導(dǎo)(616)第三存儲巻214將從第 一存儲巻206發(fā)送到第三存儲巻214的更新存儲在第二存儲巻210上以響 應(yīng)第 一存儲巻206被指定為主存儲巻。
B-C終止模塊416終止(618)將更新從第一存儲巻206發(fā)送到第三存 儲巻214以響應(yīng)第二存儲巻210變得與第三存儲巻214基本一致。A-B-C 存儲模塊418將笫一存儲巻206接收的更新同步地存儲(620 )在第二存儲 巻210上,并且將第二存儲巻210接收的更新異步地存儲在第三存儲巻214 上,以響應(yīng)終止將更新從第一存儲巻206發(fā)送到第三存儲巻214,方法600 結(jié)束(622 )。
圖7A至7K是示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于改進(jìn)的同步鏡像交 換的數(shù)據(jù)系統(tǒng)200的一個(gè)實(shí)施例的示意性方塊圖。圖7A至7K示出了根據(jù) 本發(fā)明的優(yōu)選實(shí)施例的用于重新配置數(shù)據(jù)系統(tǒng)200以實(shí)現(xiàn)在主存儲巻出現(xiàn) 故障之后將鏡像數(shù)據(jù)巻指定為主存儲巻的步驟。
圖7A示出了針對圖2描述的系統(tǒng)200,其中第一存儲巻206處于故障 狀態(tài)。通常,故障將中斷沿著第一存儲巻206和第二存儲巻210之間的連 接212的同步數(shù)據(jù)流。主交換模塊402在檢測到故障之后指定第二存儲巻 210作為主存儲巻(圖7B)。在一個(gè)實(shí)施例中,A-B終止模塊406終止第 二存儲巻210上與第一存儲巻206的存儲關(guān)系。此實(shí)施例允許主交換模塊 402指定第二存儲巻210作為主存儲才莫塊,并且允許主機(jī)202通過主機(jī)202 和第二存儲巻210之間的連接228將更新發(fā)送到第二存儲巻210。
C-A強(qiáng)制故障轉(zhuǎn)移模塊404引導(dǎo)第三存儲巻214在第三存儲巻214上 建立存儲關(guān)系。故障轉(zhuǎn)移命令在第三存儲巻214上建立第三和第一存儲巻 214、 206之間的關(guān)系,以便第三存儲巻214將更新發(fā)送到第一存儲巻206。 通常,第一存儲巻206此時(shí)未運(yùn)行,因此C-A強(qiáng)制故障轉(zhuǎn)移模塊引導(dǎo)第三存儲巻214 (通過第三存儲控制器220 )創(chuàng)建OOS位圖230,以便跟蹤第 三存儲巻214上將被復(fù)制到第一存儲巻206的更改。
C-A強(qiáng)制故障轉(zhuǎn)移模塊404引導(dǎo)第三存儲控制器220發(fā)出強(qiáng)制故障回 復(fù)功能以便啟動(dòng)從第三存儲巻214到第一存儲巻206的更新(參見圖7C )。 一旦已恢復(fù)第一存儲巻206,就通過第三和第一存儲巻214、 206之間的連 接232發(fā)送更新。通常,更新被異步復(fù)制。在一個(gè)實(shí)施例中,獲取與第一 存儲巻206 (未示出)關(guān)聯(lián)的OOS位圖的內(nèi)容(如果可能),以便重新同 步可能在出現(xiàn)故障期間發(fā)生的更改。然后,系統(tǒng)200可以繼續(xù)運(yùn)行,更新 從主機(jī)202流到第二存儲巻210,并且第二存儲巻210將更新異步發(fā)送到 第三存儲巻214,同時(shí)第三存儲巻214更新第一存儲巻206。
在一個(gè)實(shí)施例中,當(dāng)?shù)谝淮鎯?06幾乎同步時(shí),跟蹤更改模塊408 在笫二存儲控制器211上創(chuàng)建增量重新同步CR位圖234,以便跟蹤在停 止到第三存儲巻214的更新之后第二存儲巻210將接收的更新(參見圖 7D)。最終,與第二存儲巻210關(guān)聯(lián)的原始CR位圖224上的更新將被傳 輸?shù)降诙鎯喌腛OS位圖226,并且原始CR位圖224是不活動(dòng)的(在 圖7E中示為不存在)。在準(zhǔn)備停止從第二存儲巻210到第三存儲巻214 的更新時(shí),第三存儲控制器220將暫停到第四存儲巻218的更新,并且第 四存儲巻218開始變舊。
然后,B-C終止模塊304終止從第二存儲巻210到第三存儲巻214的 更新(參見圖7F) 。 B-C終止模塊304還終止第三存儲巻214中的第二到 第三存儲巻關(guān)系。在清除與第三存儲巻214關(guān)聯(lián)的OOS位圖230之前, 更新繼續(xù)流到第一存儲巻206。第一和第三存儲巻206和214通常在此時(shí) 是一致的。然后暫停從第三存儲巻214到第一存儲巻206的更新(參見圖 7G)。
A-C強(qiáng)制故障轉(zhuǎn)移模塊410引導(dǎo)第一存儲巻206創(chuàng)建OOS位圖236 以跟蹤被復(fù)制到第三存儲巻214的更新(參見圖7H) 。 B-A-C存儲模塊 306發(fā)出故障回復(fù)命令,并且第一存儲巻206開始異步更新第三存儲巻214 (參見圖7H)。B-A增量重新同步模塊412引導(dǎo)第二存儲巻210在第二存儲巻210上 建立同步存儲關(guān)系以將更新發(fā)送到第一存儲巻206 (參見圖71)。如果第 一存儲巻206與第二存儲巻210沒有關(guān)系,則B-A增量重新同步才莫塊412 引導(dǎo)第一存儲巻206建立關(guān)系以從第二存儲巻210接收更新。在一個(gè)實(shí)施 例中,第二存儲控制器211將增量重新同步CR位圖234的內(nèi)容合并到新 的OOS位圖238中以跟蹤被復(fù)制到第一存儲巻206的更新。在另一個(gè)實(shí) 施例中,第二存儲控制器211將增量重新同步CR位圖234的內(nèi)容合并到 現(xiàn)有的未使用的OOS位圖226 (未在圖71中示出)內(nèi)。
一旦清除與第二存儲巻210關(guān)聯(lián)的OOS位圖238的內(nèi)容,通常第一 和第二存儲巻206、 210將是一致的,并且OOS位圖238是不活動(dòng)的(在 圖7J中示為不存在)。將在第一存儲巻206上創(chuàng)建(或重新激活)CR位 圖240,并且B-A-C存儲巻引導(dǎo)第一存儲巻206將更新異步發(fā)送到第三存 儲巻214。當(dāng)接收更新時(shí),第三存儲控制器220使用閃速復(fù)制過程更新第 四存儲巻218 (參見圖7K)。
現(xiàn)在,已在級聯(lián)數(shù)據(jù)存儲配置中配置系統(tǒng)200,其中數(shù)據(jù)從主機(jī)202 流到第二存儲巻210,同步地流到第一存儲巻206,異步地流到第三存儲巻 214。在第四存儲巻218上按時(shí)間順序排列更新。如果需要第一存儲巻206 成為主存儲巻,則重復(fù)此過程,并且將主巻從第二存儲巻210交換到第一 存儲巻206。有利地,圖7中所示的過程以及在此所述的方法500、 600和 裝置300、 400允許主巻交換和返回,其中第三/第四存儲巻214、 218保持 近似同步,同時(shí)重新同步第一存儲巻206。此外,更新繼續(xù)從主機(jī)202流 到第二存儲巻210,并且從第二存儲巻210流到第三存儲巻214。
權(quán)利要求
1. 一種包括計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)可讀介質(zhì)具有針對激活同步鏡像作為主存儲卷而編程的計(jì)算機(jī)可用程序代碼,所述計(jì)算機(jī)程序產(chǎn)品的操作包括引導(dǎo)第三存儲卷將從第二存儲卷發(fā)送到所述第三存儲卷的更新存儲在第一存儲卷上以響應(yīng)所述第一存儲卷在故障之后變得可運(yùn)行;終止將更新從所述第二存儲卷發(fā)送到所述第三存儲卷以響應(yīng)所述第一存儲卷變得與所述第三存儲卷基本一致;以及將所述第二存儲卷接收的更新同步地存儲在所述第一存儲卷上并且將所述第一存儲卷接收的更新異步地存儲在所述第三存儲卷上,以響應(yīng)在所述第一和第三存儲卷基本一致之后終止將更新從所述第二存儲卷發(fā)送到所述第三存儲卷。
2. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,還包括指定所述第二存儲巻 作為主存儲巻以響應(yīng)在所述第一存儲巻處檢測到故障,其中所述第一存儲 巻凈皮指定為所述主存儲巻,所述第二存儲巻包括所述第一存儲巻的數(shù)據(jù)的 同步鏡像副本,并且所述第三存儲巻包括所述故障之前的所述第二存儲巻 的數(shù)據(jù)的異步鏡像副本。
3. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,還包括終止所述第二存儲巻上的存儲關(guān)系,所述存儲關(guān)系包括所述第二存儲巻用于同步地存儲來自所 述第一存儲巻的數(shù)據(jù)的信息。
4. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,還包括指定所述第一存儲巻作為所述主存儲巻,以響應(yīng)將所述第二存儲巻接 收的更新同步地存儲在所述第 一存儲巻上并且將所述第 一存儲巻接收的更 新異步地存儲在所述第三存儲巻上;引導(dǎo)所述第三存儲巻將從所述第 一存儲巻發(fā)送到所述第三存儲巻的更 新存儲在所述第二存儲巻上以響應(yīng)所述第一存儲巻被指定為所述主存儲 巻;終止將更新從所述第 一存儲巻發(fā)送到所述第三存儲巻以響應(yīng)所述第二存儲巻變得與所述第三存儲巻基本一致;以及將所述第一存儲巻接收的更新同步地存儲在所述第二存儲巻上并且將 所述第二存儲巻接收的更新異步地存儲在所述第三存儲巻上,以響應(yīng)終止 將更新從所述第 一存儲巻發(fā)送到所述第三存儲巻。
5. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中引導(dǎo)所述第三存儲巻將 從所述第二存儲巻發(fā)送到所述第三存儲巻的更新存儲在所述第 一存儲巻上進(jìn)一步包括引導(dǎo)所述第三存儲巻創(chuàng)建存儲關(guān)系并且跟蹤所述第三存儲巻 后續(xù)接收的更新,所述存儲關(guān)系包括所述第三存儲巻用于將更新異步地存 儲在所述第一存儲巻上的信息。
6. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中終止將更新從所述第二 存儲巻發(fā)送到所述第三存儲巻進(jìn)一步包括從所述第二存儲巻和所述第三 存儲巻刪除存儲關(guān)系,所述存儲關(guān)系包括所述第二存儲巻用于將數(shù)據(jù)存儲 在所述第三存儲巻上的信息。
7. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中終止將更新從所述第二 存儲巻發(fā)送到所述第三存儲巻進(jìn)一步包括跟蹤在終止將更新從所述第二 存儲巻發(fā)送到所述第三存儲巻之后所述第二存儲巻接收的更新。
8. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中將更新異步地存儲在所 述第三存儲巻上進(jìn)一步包括使用閃速復(fù)制過程從所述第三存儲巻來更新 第四存儲巻,其中在所述第四存儲巻上按時(shí)間順序組織更新。
9. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中所述第四存儲巻包括適 于重新初始化主存儲巻的數(shù)據(jù)。
10. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中終止將更新從所述第 二存儲巻發(fā)送到所述第三存儲巻進(jìn)一步包括終止到所述第四存儲巻的更 新。
11. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中將所述第一存儲巻接 收的更新異步地存儲在所述第三存儲巻上進(jìn)一步包括重新啟動(dòng)到所述第四 存儲巻的更新。
12. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中將所述第一存儲巻接 收的更新異步地存儲在所述第三存儲巻上進(jìn)一步包括跟蹤所述第 一存儲巻 接收的要復(fù)制到所述第三存儲巻的更新。
13. 如權(quán)利要求中所述的計(jì)算機(jī)程序產(chǎn)品,其中將所述第二存儲巻接 收的更新同步地存儲在所述第 一存儲巻上進(jìn)一 步包括引導(dǎo)所述第二存儲巻 在所述第二存儲巻上創(chuàng)建存儲關(guān)系,所述存儲關(guān)系包括所述第二存儲巻用 于將數(shù)據(jù)同步地存儲在所述第一存儲巻上的信息。
14. 一種用于激活同步鏡像作為主存儲巻的裝置,所述裝置包括 主交換模塊,其配置為指定第二存儲巻作為主存儲巻以響應(yīng)在第一存儲巻處檢測到故障,其中所述第一存儲巻被指定為所述主存儲巻,所述第 二存儲巻包括所述第一存儲巻的數(shù)據(jù)的同步鏡像副本,并且第三存儲巻包 括所述故障之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本;C-A故障回復(fù)模塊,其配置為引導(dǎo)所述第三存儲巻將從所述第二存儲 巻發(fā)送到所述第三存儲巻的更新存儲在所述第 一存儲巻上以響應(yīng)所述第一 存儲巻在所述故障之后變得可運(yùn)行;B-C終止模塊,其配置為終止將更新從所述第二存儲巻發(fā)送到所述第 三存儲巻以響應(yīng)所述第一存儲巻變得與所述第三存儲巻基本一致;以及B-A-C存儲才莫塊,其配置為將所述第二存儲巻接收的更新同步地存儲 在所述第一存儲巻上并且將所述第一存儲巻接收的更新異步地存儲在所述 第三存儲巻上,以響應(yīng)所述B-C終止;f莫塊終止將更新從所述第二存儲巻發(fā) 送到所述第三存儲巻。
15. 如權(quán)利要求中所述的裝置,還包括C-A強(qiáng)制故障轉(zhuǎn)移模塊,其配 置為引導(dǎo)所述第三存儲巻創(chuàng)建存儲關(guān)系并且跟蹤在創(chuàng)建所述存儲關(guān)系之后 所述第三存儲巻接收的更新,所述存儲關(guān)系包括所述第三存儲巻用于將更 新異步地存儲在所述第一存儲巻上的信息。
16. 如權(quán)利要求中所述的裝置,其中所述主交換模塊還包括A-B終止 模塊,其配置為終止所述第二存儲巻和所述第三存儲巻上的存儲關(guān)系以響 應(yīng)在所述第 一存儲巻處檢測到故障并且使所述第二存儲巻成為主存儲巻,所述存儲關(guān)系包括所述第二存儲巻用于同步地存儲來自所述第一存儲巻的 數(shù)據(jù)的信息。
17. 如權(quán)利要求中所述的裝置,其中所述B-C終止模塊還被配置為從 所述第二存儲巻刪除存儲關(guān)系,所述存儲關(guān)系包括所述第二存儲巻用于將 數(shù)據(jù)存儲在所述第三存儲巻上的信息。
18. 如權(quán)利要求中所述的裝置,其中所述B-C終止模塊還包括跟蹤更 改模塊,其配置為跟蹤在終止將更新從所述第二存儲巻發(fā)送到所述第三存 儲巻之后所述第二存儲巻接收的更新。
19. 如權(quán)利要求中所述的裝置,還包括第四存儲巻,并且其中所述第 三存儲巻^皮配置為使用閃速復(fù)制過程將更新存儲到所述第四存儲巻,其中 在所述笫四存儲巻上按時(shí)間順序組織所述更新。
20. 如權(quán)利要求中所述的裝置,其中所述B-C終止模塊還被配置為終 止到所述第四存儲巻的更新。
21. 如權(quán)利要求中所述的裝置,其中所述B-A-C存儲模塊還被配置為 重新啟動(dòng)到所述第四存儲巻的更新。
22. 如權(quán)利要求中所述的裝置,其中所述B-A-C存儲模塊還包括A-C 跟蹤模塊,其配置為引導(dǎo)所述第一存儲巻跟蹤所述第一存儲巻接收的要復(fù) 制到所述第三存儲巻的更新。
23. 如權(quán)利要求中所述的裝置,其中所述B-A-C存儲模塊還包括B-A 增量重新同步模塊,其配置為引導(dǎo)所述第二存儲巻在所述第二存儲巻上創(chuàng) 建存儲關(guān)系,所述存儲關(guān)系包括所述第二存儲巻用于將數(shù)據(jù)同步地存儲在 所述第一存儲巻上的信息。
24. —種用于激活同步鏡像作為主存儲巻的系統(tǒng),所述系統(tǒng)包括第 一存儲巻,其在所述第 一存儲巻出現(xiàn)故障之前被指定為主存儲巻; 第二存儲巻,其包括所述故障之前的所述第一存儲巻的數(shù)據(jù)的同步鏡 像副本;第三存儲巻,其包括所述故障之前的所述第二存儲巻的數(shù)據(jù)的異步鏡 像副本;主機(jī),其配置為將更新存儲到所述第一存儲巻和所述第二存儲巻,所 述主機(jī)包括主交換模塊,其配置為指定所述第二存儲巻作為所述主存儲巻以響應(yīng)在所述第 一存儲巻處檢測到故障;C-A故障回復(fù)模塊,其配置為引導(dǎo)所述第三存儲巻將從所述第二存儲 巻發(fā)送到所述第三存儲巻的更新存儲在所述第 一存儲巻上以響應(yīng)所述第一 存儲巻在所述故障之后變得可運(yùn)行;B-C終止模塊,其配置為終止將更新從所述第二存儲巻發(fā)送到所述第 三存儲巻以響應(yīng)所述第 一存儲巻變得與所述第三存儲巻近乎一致;以及B-A-C存儲模塊,其配置為將所述第二存儲巻接收的更新同步地存儲 在所述第 一存儲巻上并且將所述第 一存儲巻接收的更新異步地存儲在所述 第三存儲巻上,以響應(yīng)終止將更新從所述第二存儲巻發(fā)送到所述第三存儲 巻。
25. 如權(quán)利要求中所述的系統(tǒng),還包括與所述第三存儲巻位于一起的 第四存儲巻,所述第三存儲巻配置為使用閃速復(fù)制過程將更新存儲到所述 第四存儲巻,其中在所述第四存儲巻上按時(shí)間順序組織所述更新。
26. 如權(quán)利要求中所述的系統(tǒng),其中所述主機(jī)還配置為使用所述第三 存儲巻的內(nèi)容來初始化所述第一存儲巻和所述第二存儲巻之一以響應(yīng)出現(xiàn) 故障,其中從所述第二存儲巻復(fù)制所述第三存儲巻的內(nèi)容。
27. —種用于在存儲巻上創(chuàng)建新的存儲關(guān)系的方法,所述方法包括 在第一存儲巻上創(chuàng)建存儲關(guān)系,其中所述存儲關(guān)系包括所述第一存儲巻用于將所述第一存儲巻接收的更新存儲到第二存儲巻的信息,并且所述 第 一存儲巻與所述第二存儲巻沒有已有的存儲關(guān)系;跟蹤從創(chuàng)建所述存儲關(guān)系以來到數(shù)據(jù)結(jié)構(gòu)中的所述第 一存儲巻的更 新,其中所述更新旨在被復(fù)制到所述第二存儲巻;以及根據(jù)所述數(shù)據(jù)結(jié)構(gòu)中的所跟蹤更新將所述更新從所述第一存儲巻復(fù)制 到所述第二存儲巻。
28. 如權(quán)利要求中所述的方法,其中存儲關(guān)系是第一存儲關(guān)系,并且所述第 一存儲巻與第三存儲巻具有已有的第二存儲關(guān)系。
29. 如權(quán)利要求中所述的方法,其中在不重新初始化所述第一存儲巻 的情況下創(chuàng)建所述存儲關(guān)系。
30. —種用于部署軟件以激活同步鏡像作為主存儲巻的方法,所述方 法包括確定客戶同步鏡像和異步鏡像配置以及可靠性要求;以及執(zhí)行同步鏡像激活計(jì)算機(jī)代碼,所述計(jì)算機(jī)代碼配置為指定第二存儲巻作為主存儲巻以響應(yīng)在第一存儲巻處檢測到故障,其中所述第 一存儲巻被指定為所述主存儲巻,所述第二存儲巻包括所述第一存儲巻的數(shù)據(jù)的同步鏡像副本,并且第三存儲巻包括所述故障之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本;引導(dǎo)所述第三存儲巻將從所述第二存儲巻發(fā)送到所述第三存儲巻的更新存儲在所述第 一存儲巻上以響應(yīng)所述第 一存儲巻在所述故障之后變得可運(yùn)行;終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻以響應(yīng)所述第一 存儲巻變得與所述第三存儲巻基本一致;以及將所述第二存儲巻接收的更新同步地存儲在所述第 一存儲巻上并且將 所述第 一存儲巻接收的更新異步地存儲在所述第三存儲巻上,以響應(yīng)在所 述第 一和第三存儲巻基本一致之后終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻。
31. —種用于激活同步鏡像作為主存儲巻的裝置,所述裝置包括用于指定第二存儲巻作為主存儲巻以響應(yīng)在第 一存儲巻處檢測到故障 的設(shè)備,其中所述第一存儲巻被指定為所述主存儲巻,所述第二存儲巻包 括所述第 一存儲巻的數(shù)據(jù)的同步鏡像副本,并且第三存儲巻包括所述故障 之前的所述第二存儲巻的數(shù)據(jù)的異步鏡像副本;用于引導(dǎo)所述第三存儲巻將從所述第二存儲巻發(fā)送到所述第三存儲巻 的更新存儲在所述第 一存儲巻上以響應(yīng)所述第 一存儲巻在所述故障之后變 得可運(yùn)行的i殳備;用于終止將更新從所述第二存儲巻發(fā)送到所述第三存儲巻以響應(yīng)所述第一存儲巻變得與所述第三存儲巻基本一致的設(shè)備;以及用于將所述第二存儲巻接收的更新同步地存儲在所述第一存儲巻上并 且將所述第 一存儲巻接收的更新異步地存儲在所述第三存儲巻上,以響應(yīng) 在所述第 一和第三存儲巻基本一致之后終止將更新從所述第二存儲巻發(fā)送 到所述第三存儲巻的設(shè)備。
全文摘要
本發(fā)明披露了一種用于激活同步鏡像作為主存儲卷的裝置、系統(tǒng)和方法。所述裝置、系統(tǒng)和方法包括引導(dǎo)第三存儲卷將從第二存儲卷發(fā)送到第三存儲卷的更新存儲在第一存儲卷上以響應(yīng)所述第一存儲卷在故障之后變得可運(yùn)行;終止將更新從所述第二存儲卷發(fā)送到所述第三存儲卷以響應(yīng)所述第一存儲卷變得與所述第三存儲卷基本一致;以及將所述第二存儲卷接收的更新同步地存儲在所述第一存儲卷上并且將所述第一存儲卷接收的更新異步地存儲在所述第三存儲卷上,以響應(yīng)在所述第一和第三存儲卷基本一致之后終止將更新從所述第二存儲卷發(fā)送到所述第三存儲卷。
文檔編號G06F11/20GK101512495SQ200780033241
公開日2009年8月19日 申請日期2007年8月22日 優(yōu)先權(quán)日2006年9月7日
發(fā)明者E·馬魯爾, G·A·斯皮爾, N·M·克萊頓, O·格盧克, R·F·巴爾特福伊, S·菲恩布利特 申請人:國際商業(yè)機(jī)器公司