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

使用寫隊列機制實施多陣列一致性組的方法

文檔序號:6595684閱讀:246來源:國知局
專利名稱:使用寫隊列機制實施多陣列一致性組的方法
技術領域
本發(fā)明主要涉及存儲系統領域,更具體地,涉及用于為數據庫備份實施多陣列一致性組的方法。
背景技術
單個應用可使用多個邏輯單元(LUs)。例如,數據庫系統可具有在一個LU上的日志文件和在另一個LU上的數據文件。數據庫可使用備份技術,其對數據庫LUs制作快照, 并將該快照備份到合適的存儲媒體,如磁帶。此類備份技術可以被實施而不脫機該數據庫; 該數據庫可不停頓1/0(輸入/輸出)功能。例如,該數據庫文件可在制作快照時繼續(xù)運行, 其中該快照可能不與該數據庫活動相協調。在可能實施備份之前,該快照備份技術可能需要該數據庫文件所使用的所有LUs的一致性快照。該一致性可確保實際上從該備份處準確地重新存儲該應用。當數據庫系統具有位于不同存儲陣列上的LUs時可使用一致性組(CG)。CG可由一個或多個LUs組成,并可用于創(chuàng)建該CG所有成員的快照作為單個原子操作。

發(fā)明內容
一種用于實施多陣列一致性組的方法包括將寫輸入/輸出(I/O)隊列間隔應用于一致性組(CG)的邏輯單元(LU)成員。該CG的LU成員駐留的存儲陣列是參與參與存儲陣列。該方法也包括使用時間戳對每一個寫I/O作標記,并且在該參與存儲陣列從主存儲陣列接收快照請求后,暫停從該參與存儲陣列到該CG的LU成員的I/O。該快照請求具有快照請求時間戳。該方法進一步包括確定該快照請求時間戳是否在該參與存儲陣列的寫I/O隊列間隔內。當該快照請求時間戳被確定在該參與存儲陣列的寫I/O隊列間隔內時,該參與存儲陣列執(zhí)行以下至少一個(a)完成早于該快照請求時間戳的每一個寫1/0,(b)創(chuàng)建該 CG的LU成員的本地快照,或(c)恢復I/O到該CG的LU成員。一種用于實施多陣列一致性組的方法包括在一致性組(CG)存儲陣列的控制器上啟動一致性組(CG)的快照。具有該控制器的該CG存儲陣列定義為主機,以及該CG的邏輯單元(LU)成員所在的存儲陣列是參與存儲陣列。該方法也包括記錄該啟動的CG快照的時間戳并將PREPARE請求從該主機發(fā)送到每一個參與存儲陣列的每一個控制器。將每一個接收PREPARE請求的參與存儲陣列定義為從機。該方法進一步包括當該從機接收到該 PERPARE請求時,暫停到該LU成員的I/O并確定該時間戳是否符合在該從機的寫輸入/輸出(I/O)隊列間隔內,當該時間戳符合在該寫I/O隊列間隔內時,刷新在該寫I/O隊列間隔內早于該時間戳的每一個寫1/0,以及執(zhí)行以下至少一個(a)創(chuàng)建該LU成員的快照,(b) 恢復1/0,(c)將PERPARE狀態(tài)記入永久存儲器,或(d)將PERPARE-ACK消息發(fā)送到該主機。一種計算機可讀介質,其具有計算機可執(zhí)行指令以實施一方法,其中該方法包括將寫輸入/輸出(I/O)隊列間隔應用于一致性組(CG)的邏輯單元(LU)成員。該CG的LU 成員所在的存儲陣列是參與存儲陣列。該方法也包括在該參與存儲陣列從主存儲陣列接收
4快照請求后,該參與存儲陣列使用時間戳對每一個寫I/O作標記并暫停從該參與存儲陣列到該CG的LU成員的I/O。該快照請求具有快照請求時間戳。該方法進一步包括確定該快照請求時間戳是否在該參與存儲陣列的寫I/O隊列間隔內。當該快照請求時間戳被確定在該參與存儲陣列的寫I/O隊列間隔內時,該參與存儲陣列執(zhí)行以下至少一個(a)完成早于該快照請求時間戳的每一個寫1/0,(b)創(chuàng)建該CG的LU成員的本地快照,或(c)恢復I/O 到該CG的LU成員。應當可以理解,不管是上述概括的描述還是后面詳細的描述都僅僅是示例性和說明性的,并不會是對本發(fā)明的必要限制。包括并組成說明書一部分的附圖揭示了本發(fā)明的主題。該說明書和該附圖一起用來解釋本發(fā)明的原理。


通過參考附圖,本發(fā)明的眾多優(yōu)點可以被本領域的技術人員更好地理解圖IA示出了多陣列存儲數據庫的方框圖;圖IB示出了在存儲數據庫的多個一致性組成員之上的多個寫I/O的方框圖;圖2A和2B是描述了在多陣列存儲數據庫上的快照請求的實施方式的流程圖;圖3是描述了使用寫隊列機制實施多陣列一致性組的方法的流程圖;和圖4是描述了使用寫隊列機制實施多陣列一致性組的方法的另一實施方案的流程圖。
具體實施例方式此時對在該附圖中所描述的公開主題進一步做出詳細說明。此時參照圖IA和1B,示出了多陣列存儲數據庫以及在存儲數據庫的多個一致性組成員之上的多個寫I/O的方框圖。存儲數據庫102可包括多個存儲陣列104,邏輯單元 (LUs)位于不同存儲陣列上。一致性組(CG)可由在大量存儲陣列之上的一個或多個LUs 組成以支持創(chuàng)建所有CG成員的快照作為單個基本操作。在存儲陣列104中,主機可見的小型計算機系統接口(SCSI)邏輯單元(LU)可映射到虛擬卷106,例如,當存儲虛擬化管理器 (SVM) 108部署在該存儲陣列104中時。虛擬卷106可來自在存儲陣列104內的一個或多個存儲池110的容量。圖IB示出了三個虛擬卷VV1,VV2,VV3,具有多個排隊的寫I/O =Wll, W12, W13, W21,W22,W23, W31,W32,W33。一致性組可包括 VV1,VV2 和 VV3,但是應當清楚,可在該一致性組內包括任意數量的虛擬卷??墒褂迷诖鎯﹃嚵锌刂破骶彺?12內的寫I/O隊列機制來創(chuàng)建時間窗口,在該時間窗口期間快照可在多個存儲陣列104上創(chuàng)建。該寫I/O隊列機制可用于成為一致性組的成員的LUs。包括一致性組的LU成員的存儲陣列可被稱為參與存儲陣列114。每一個該參與存儲陣列114可具有普通時間概念,如通過使用分布式時鐘同步機制116。例如,該分布式時鐘同步機制116可以是網絡時間協議(NTP)。一個或多個寫I/O可排隊為按先進先出(FIFO)順序的LU。可使用該FIFO順序, 不考慮該寫I/O是否具有邏輯塊地址(LBA),該LBA可與已存在于存儲陣列控制器118的高速緩存112內的寫LBA重疊??墒褂脕碜栽搮⑴c存儲陣列114所使用的分布式時鐘同步機制116的時間戳來標記每一個寫I/O。在一致性組內的LU的寫I/O隊列可表現為從當前時間到該隊列中最早寫I/O的時間戳的時間間隔。該存儲陣列控制器118可在該隊列中保留足夠的寫1/0,以使該寫I/O隊列所表現的時間間隔大于在該參與存儲陣列114之間通信的消息的最長等待時間。當參與存儲陣列114接收到來自主存儲陣列11 的快照請求時,參與存儲陣列 114可暫停到一致性組成員的I/O。該主存儲陣列11 可定義為接收從用戶或主機的至少一個的快照請求的存儲陣列。該參與存儲陣列114可確定來自該主存儲陣列11 的該快照請求的時間戳是否在該寫I/O隊列間隔內。如果該快照請求的時間戳在該寫隊列間隔內, 則該參與存儲陣列114可完成早于該一致性組快照請求時間戳的寫,創(chuàng)建該一致性組的LU 成員的本地快照,并恢復I/O到該一致性組的LU成員。在圖IB的方框圖中,一致性組快照可包括寫Wll,W21和W31,不包括后來的寫。 但是,由于在多陣列系統中的延遲,到最后存儲陣列暫停該一致性組的最后LU成員時,寫 W22,W12,W32和W23已經被排隊。當該參與存儲陣列114接收到該一致性組快照請求時,為了該一致性組快照成功,在該參與存儲陣列114內的隊列應該足夠大以使寫W22,W12,W32 和W23仍在該各個參與存儲陣列隊列中而并未被寫入該一致性組的LU成員。在創(chuàng)建該本地快照之前,如果Wl 1,W21和W31任意一個仍在該隊列中,每一個可被刷新到成員LU。一致性組的每一個參與存儲陣列114可與其他參與存儲陣列交換測試消息,如經常地,用來確定往返延遲??墒褂迷撏笛舆t來確定該寫I/O隊列間隔的最小時間間隔。但是,應當預料到,使用該往返延遲來設置該最小時間間隔可能不總是可行的。例如,該LU的隊列的大小可由每一個在一致性組內LU可允許使用多少高速緩存的存儲器陣列寬度閾值來限制。因此,當在接收新的寫I/O中達到/超出該高速緩存閾值時,可從該FIFO隊列到物理驅動器來刷新較早的寫1/0,即使其減少了該隊列所表現的時間間隔的大小。該寫隊列機制可用于包括電池支持的高速緩存的存儲陣列。進一步地,可將該高速緩存鏡像到在該存儲陣列中另一控制器,如為了冗余目的。此時參照圖2A和2B,描述了在多陣列存儲數據庫上的快照請求的實施方式的流程圖。該一致性組快照創(chuàng)建的協調可利用兩階段提交(2PC)協議。當在參與存儲陣列的控制器上啟動一致性組快照時,可將控制器定義為該處理200的主機。實施該快照請求的該處理200可根據圖2A和2B的流程圖來進行。在操作202中,處理200的開端被打上時間戳。例如,主機可根據該分布式時鐘同步機制對該處理200的開端打上時間戳。在操作204中,將PREPARE請求發(fā)送到在該一致性組內的所有參與存儲陣列控制器。例如,該主機可將該PREPARE請求發(fā)送到在該一致性組內的所有參與存儲陣列控制器??蓪⒚恳粋€接收PREPARE請求的參與存儲陣列定義為從機。在操作206中,暫停到該一致性組的LU成員的I/O。例如,該從機可在接收PREPARE請求后暫停I/O。在操作208中,傳送合適的查詢,該合適的查詢包括來自該主機的一致性組時間戳是否符合在該從機的寫I/O隊列間隔內。例如,可將該合適的查詢傳送到該從機的控制器。如果該操作208的結果為否(no),(即,該時間戳不符合在該寫I/O隊列間隔內), 在操作210中,記錄ABORT并發(fā)送AB0RT-ACK。例如,該從機可將ABORT記錄給永久存儲器并發(fā)送AB0RT-ACK。例如,該從機可將ABORT記錄給永久存儲器并發(fā)送AB0RT-ACK給該主機。 隨后該處理200可進行到操作220,如下所示。如果該操作208的結果為是(yes),(即該時間戳符合在該寫1/0隊列間隔內),在操作212中,刷新早于該處理200時間戳的寫1/0。例如,該從機可刷新在該隊列中早于該處理200時間戳的任意寫I/O。在操作214中,創(chuàng)建該LU的快照。例如,該從機可創(chuàng)建該LU的快照,在操作216中,到該LU的I/O被恢復。例如,該從機可恢復I/O到該LU。在操作218中,記錄PREPARED狀態(tài)并發(fā)送PREPARE-ACK消息。例如,該從機可將PREPARED狀態(tài)記錄給永久存儲器,以及該從機可將PREPARE-ACK消息發(fā)送給該主機。隨后該處理進行到操作220。在操作220中,傳送接收查詢,該接收查詢包括該主機是否從所有從機接收 PREPARE-ACK消息。例如,可將該接收查詢傳送給該主機。如果該操作220的結果為否,在操作222中,發(fā)出ROLLBACK消息。例如,該主機可將ROLLBACK消息發(fā)出給所有從機。在操作2M中,記錄了該ROLLBACK狀態(tài),并釋放了任意鎖定。例如,當從機接收到該ROLLBACK消息時,該從機可將該ROLLBACK狀態(tài)記錄到永久存儲器,以及該從機可釋放該從機可能已保持的代表該整個處理200的任意鎖定。在操作226中,刪除在操作214中進行的快照。例如,該從機可刪除在操作214中進行的快照。在操作228中,發(fā)出R0LLBACK-ACK消息。例如,該從機可將該R0LLBACK-ACK消息發(fā)給該主機。隨后該處理200可在236處結束,其結果如下所示。如果該操作200的結果為是,(即,接收到了 R0LLBACK-ACK消息,如該主機從所有從機),處理200可進行到操作230處。在操作230中,發(fā)出COMMIT請求。例如,該主機可將該COMMIT請求發(fā)布到所有從機。在操作232中,記錄COMMIT狀態(tài),并釋放了任意鎖定。例如,當從機接收到該COMMIT 請求時,該從機可將該COMMIT狀態(tài)記錄到永久存儲器,以及該從機可釋放其所保持的代表整個處理200的任意鎖定。在操作234中,發(fā)送C0MMIT-ACK消息。例如,該從機可將 COMMIT-ACK消息發(fā)給該主機。隨后該處理200可在236結束。在結束236該處理200的結果可因此基于該主機從該從機處接收到了哪種消息。如果該主機從所有從機處接收到了 C0MMIT-ACK消息,該整個處理200成功,并對在該一致性組內的所有LUs已經進行了一致性快照。如果該主機從所有從機接收到了 R0LLBACK-ACK消息,該整個處理200未形成一致性快照,但每一個從機進行了清除(如,釋放了任意鎖定并刪除了在操作214中進行的快照)。該2PC協議可以是具有假定ABORT的被稱為2PC的變體。在本例中,在發(fā)出 PREPARE請求時啟動計時器。例如,該主機可啟動計時器,在該主機發(fā)出PREPARE請求到該一致性組中的所有參與存儲陣列控制器時(操作204)。如果該計時器在該主機接收到來自所有從機的響應之前到期,則發(fā)出ROLLBACK消息。例如,如果該計時器沒有接收到來自所有從機的響應而到期,該主機可假設該整個處理200需要被退出,以及該主機可將 ROLLBACK消息發(fā)送到所有從機。因此,如果該計時器在該主機接收到來自所有從機的響應之前到期,可將該處理200處置為操作220的結果為否。如果在該計時器到期后發(fā)出 PREPARE-ACK消息,可重新發(fā)出該ROLLBACK消息。例如,如果從機將PREPARE-ACK消息發(fā)送到該主機,在該計時器到期后,如在該ROLLBACK消息發(fā)出后從機停止并恢復起來,該主機可隨后將該ROLLBACK消息重新發(fā)送到該從機處,于是該從機可進行清除。如果該主機發(fā)生故障,如在將PREPARE消息發(fā)送到所有從機后具有永久故障, 每一個從機可能需要手動ROLLBACK。在本發(fā)明的一實施方案中,由用戶執(zhí)行該手動 ROLLBACK。應當預料到,限制控制器高速緩存的地方可使用其它存儲裝置來籌劃該排隊的寫 1/0。例如,可使用固態(tài)硬盤(SSDs)。當使用另一種存儲裝置時,可使用常用控制器緩存管理機制從該高速緩存到其它存儲裝置來刷新寫I/O。這樣,將該寫I/O隊列保留在該其它存儲裝置上。以下參照方法的流程圖說明對本發(fā)明進行描述。應當理解,該流程圖說明的每一個塊和/或在該流程圖說明中塊的組合,可由計算機程序指令來實施??蓪⑦@些計算機程序指令提供給通用計算機,專業(yè)計算機或其他可編程數據處理設備的處理器,以產生機制使得通過該計算機或其他可編程數據處理設備的處理器所執(zhí)行的指令創(chuàng)造出實施該流程圖中指定的功能/行為的裝置。可同樣將這些計算機程序指令存儲到計算機可讀實體介質中(因而包括計算機程序產品),該介質能夠將計算機或其他可編程數據處理設備引導成以特定方式運作,使得存儲在該計算機可讀實體介質中的該指令產生包括實施在該流程圖中指定功能/行為的指令裝置的制品。在本發(fā)明的一實施方案中,可將該寫I/O隊列機制實施為現有RAID(獨立冗余磁盤陣列)引擎的補充,其可支持跨越多個存儲陣列的一致性組。進一步地,本發(fā)明可使用本領域已知的任何存儲陣列支持的本地快照機制??刹恍枰獙⒃摫镜乜煺諜C制認識為多存儲陣列一致性組,或該寫I/O陣列,以正確進行操作。另外,使用該2PC協議可使得在一致性組快照未完成情況中自動清除存儲陣列。此時參照圖3,示出了描述了使用寫隊列機制實施多陣列一致性組的方法300的流程圖,依照本發(fā)明的實施方案。方法300可將寫輸入/輸出(I/O)隊列間隔用于一致性組(CG)的邏輯單元(LU)成員302。該CG的LU成員駐留的存儲陣列可以是參與存儲陣列。 方法300可使用時間戳對每一個寫I/O標記304。方法300在參與存儲陣列306從主存儲陣列接收到快照請求后可暫停從該參與存儲陣列到該CG的LU成員的I/O。該快照請求可以具有快照請求時間戳。方法300可確定該快照請求時間戳是否在該參與存儲陣列的寫 I/O隊列間隔內308。當確定了該快照請求時間戳在該參與存儲陣列的寫I/O隊列間隔內時,該參與存儲陣列可實施以下至少一個(a)完成早于該快照請求時間戳的每一個寫I/ 0,(b)創(chuàng)建該CG的LU成員的本地快照,或(c)恢復I/O到該CG的LU成員。將寫I/O隊列間隔用于CG的LU成員的方法300可包括按先入先出(FIFO)順序排列寫I/O。使用時間戳對每一個寫I/O標記的方法300可包括根據分布式時鐘同步機制來同步該CG的每一個參與存儲陣列。該分布式時鐘同步機制可以是網絡時間協議(NTP)。 將寫I/O隊列間隔用于CG的LU成員的方法300可包括將該寫I/O隊列間隔表現為從當前時間到該隊列中最早寫I/O的時間戳的時間間隔。方法300可進一步包括在該CG的每一個參與存儲陣列之間交換測試消息,用來確定往返延遲。方法300可進一步包括使用該往返延遲來確定該寫I/O隊列間隔的最小時間間隔。此時參照圖4,示出了描述了使用寫隊列機制實施多陣列一致性組的方法400的另一實施方案的流程圖。方法400可在CG存儲陣列的控制器上啟動一致性組(CG)的快照 402。可將具有該控制器的該CG存儲陣列定義為主機,該CG的邏輯單元(LU)成員所在的存儲陣列可以是參與存儲陣列。方法400可記錄該啟動的CG快照的時間戳404。方法400 可將PREPARE請求從該主機發(fā)送到每一個參與存儲陣列的每一個控制器406。可將每一個接收PREPARE請求的參與存儲陣列定義為從機。方法400可暫停到該LU成員的I/O并確定該時間戳是否符合在該從機寫輸入/輸出(I/O)隊列間隔內,當該從機接收到該PERPARE 請求時408。方法400可刷新在該寫I/O隊列間隔內早于該時間戳的每一個寫1/0,當該時間戳符合在該寫I/O隊列間隔內時410。方法400可實施以下至少一個(a)創(chuàng)建該LU成員的快照,(b)恢復1/0,(c)將PERPARE狀態(tài)記入永久存儲器,或(d)將PERPARE-ACK消息發(fā)送到該主機412。方法400可進一步包括當該主機從每一個從機處接收到該PREPARE-ACK消息時, 從該主機處發(fā)出COMMIT請求到每一個從機。當每一個從機從該主機處接收到該COMMIT請求時,每一個從機可實施以下至少一個(a)將新狀態(tài)記錄到永久存儲器,(b)釋放代表整個處理所保持的鎖定,(c)刪除該LU成員的快照,或(d)將C0MMIT-ACK消息發(fā)送給該主機。 當該方法400的時間戳不符合在該寫I/O隊列間隔內時,該從機可將ABORT消息發(fā)送到永久存儲器以及該從機將ABORT消息發(fā)送到該主機。方法400可進一步包括從該主機處發(fā)出 ROLLBACK消息給每一個從機,當該主機從至少一個從機處接收到該ABORT消息時。當每一個從機從該主機處接收到該ROLLBACK消息時,每一個從機可實施以下至少一個(a)將新狀態(tài)記錄到永久存儲器,(b)釋放代表整個處理所保持的鎖定,(c)刪除該LU成員的快照, 或(d)將R0LLBACK-ACK消息發(fā)送給該主機。方法400可進一步包括啟動計時器,在方法 400的從該主機到每一個參與存儲陣列的每一個控制器處發(fā)送PREPARE請求的步驟后可啟動該計時器。方法400可進一步包括當該計時器在該主機從每一個從機處接收到響應之前到期時,將第一 ROLLBACK消息發(fā)送給每一個從機。方法400可進一步包括當該從機在發(fā)出該第一 ROLLBACK消息后發(fā)送PREPARE-ACK消息時,將第二 ROLLBACK消息發(fā)送給從機。在本發(fā)明中,所公開的方法可被實施為指令集或裝置可讀的軟件。這樣的軟件包可以是計算機程序產品,其采用了計算機可讀存儲介質,該介質包括存儲的計算機代碼用來對計算機編程以實施本發(fā)明所公開的功能和過程。該計算機可讀介質可包括,但不限于, 任意類型的常用軟盤、光盤、CD-ROM、磁盤、硬盤、磁光盤、ROM、RAM、EPR0M、EEPR0M、磁或光卡、或任意其他適合存儲電子指令的媒體。進一步地,應當理解,該方法中所公開的步驟的指定順序或層次是示范性方式的實施例?;谠O計偏好,應當理解,該方法中步驟的指定順序或層次可重新設置而保留在所公開的主題內。該附屬方法權利要求展現了按單個順序的各個步驟的元件,并不必然地意味著將其限制于所展現的指定順序或層次。應當相信,通過前述將理解本公開和許多其伴隨的優(yōu)點,以及應當清楚,其組件的形式、結構和布置可以進行不同的變化而不背離本公開主題或不犧牲所有其物質優(yōu)點。所述的形式只是示例說明,下列權利要求的目的是包含和包括此類變化。
權利要求
1.一種方法,包括將一寫輸入/輸出(I/O)隊列間隔應用于一致性組(CG)的一邏輯單元(LU)成員,所述CG的所述LU成員駐留的一存儲陣列是一參與存儲陣列; 使用時間戳對每一個寫I/O作標記;在該參與存儲陣列從一主存儲陣列接收一快照請求后暫停從該參與存儲陣列到該CG 的該LU成員的1/0,該快照請求具有一快照請求時間戳;和確定該快照請求時間戳是否在該參與存儲陣列的該寫I/O隊列間隔內, 其中當確定了該快照請求時間戳在該參與存儲陣列的該寫I/O隊列間隔內時,該參與存儲陣列執(zhí)行以下至少一個(a)完成早于該快照請求時間戳的每一個寫1/0,(b)創(chuàng)建該 CG的該LU成員的一本地快照,或(c)恢復I/O到該CG的該LU成員。
2.如權利要求1所述的方法,其中將一寫I/O隊列間隔應用于CG的一LU成員包括 按一先入先出(FIFO)順序排列寫I/O。
3.如權利要求1所述的方法,其中使用時間戳對每一個寫I/O作標記包括 根據一分布式時鐘同步機制同步該CG的每一個參與存儲陣列。
4.如權利要求3所述的方法,其中該分布式時鐘同步機制是一網絡時間協議(NTP)。
5.如權利要求1所述的方法,其中將一寫I/O隊列間隔應用于CG的一LU成員包括 將該寫I/O隊列間隔表現為從當前時間到該隊列中最早的寫I/O的時間戳的時間間隔。
6.如權利要求1所述的方法,進一步包括在該CG的每一個參與存儲陣列之間交換一測試消息以確定一往返延遲。
7.如權利要求6所述的方法,進一步包括使用該往返延遲確定該寫I/O隊列間隔的一最小時間間隔。
8.一種方法,包括在一致性組(CG)存儲陣列的一控制器上啟動CG快照,具有該控制器的該CG存儲陣列被定義為一主機,該CG的一邏輯單元(LU)成員駐留的一存儲陣列是一參與存儲陣列; 記錄該啟動的CG快照的一時間戳;將一 PREPARE請求從該主機發(fā)送到每一個參與存儲陣列的每一個控制器,將接收一 PREPARE請求的每一個參與存儲陣列被定義為一從機;當該從機接收該PERPARE請求時,暫停到該LU成員的I/O并確定該時間戳是否在該從機的寫輸入/輸出(I/O)隊列間隔內;當該時間戳在該寫I/O隊列間隔內時,刷新在該寫I/O隊列間隔內早于該時間戳的每一個寫I/O ;和實施以下至少一個(a)創(chuàng)建該LU成員的快照,(b)恢復1/0,(c)將一 PERPARE狀態(tài)記錄入一永久存儲器,或(d)將一 PERPARE-ACK消息發(fā)送到該主機。
9.如權利要求8所述的方法,進一步包括當該主機從每一個從機接收該PERPARE-ACK 消息時,從該主機將一 COMMIT請求發(fā)送到每一個從機。
10.如權利要求9所述的方法,其中當每一個從機從該主機接收到該COMMIT請求時,每一個從機執(zhí)行以下至少一個(a)將一新狀態(tài)記錄到一永久存儲器,(b)釋放代表整個處理所保持的鎖定,(c)刪除該LU成員的該快照,或(d)將一 C0MMIT-ACK消息發(fā)送給該主機。
11.如權利要求8所述的方法,其中當該時間戳不在該寫I/O隊列間隔內時,該從機將一 ABORT消息記錄到一永久存儲器并且該從機發(fā)送一 ABORT消息到該主機。
12.如權利要求11所述的方法,進一步包括當該主機從至少一個從機接收該ABORT消息時從該主機發(fā)出一 ROLLBACK消息給每一個從機,其中當每一個從機從該主機接收該ROLLBACK消息時,每一個從機執(zhí)行以下至少一個 (a)將一新狀態(tài)記錄到一永久存儲器,(b)釋放代表整個處理所保持的鎖定,(c)刪除該LU 成員的該快照,或(d)將一 R0LLBACK-ACK消息發(fā)送給該主機。
13.如權利要求8所述的方法,進一步包括啟動一計時器,該計時器在所述的將一 PREPARE請求從該主機發(fā)送到每一個參與存儲陣列的每一個控制器的步驟之后被啟動。
14.如權利要求13所述的方法,進一步包括當該計時器在該主機從每一個從機接收一響應之前到期時,發(fā)送一第一 ROLLBACK消息給每一個從機。
15.如權利要求14所述的方法,進一步包括當該第一ROLLBACK消息被發(fā)送后一從機發(fā)送一 PREPARE-ACK消息時,將一第二 ROLLBACK消息發(fā)送給該從機。
16.一種計算機可讀介質,其具有計算機可執(zhí)行指令以實施一方法,所述方法包括 將一寫輸入/輸出(I/O)隊列間隔應用于一致性組(CG)的一邏輯單元(LU)成員,該CG的該LU成員駐留的一存儲陣列是一參與存儲陣列; 使用時間戳對每一個寫I/O作標記;在該參與存儲陣列從一主存儲陣列接收一快照請求后暫停從該參與存儲陣列到該CG 的該LU成員的1/0,該快照請求具有一快照請求時間戳;和確定該快照請求時間戳是否在該參與存儲陣列的該寫I/O隊列間隔內, 其中當確定了該快照請求時間戳在該參與存儲陣列的該寫I/O隊列間隔內時,該參與存儲陣列執(zhí)行以下至少一個(a)完成早于該快照請求時間戳的每一個寫1/0,(b)創(chuàng)建該 CG的該LU成員的一本地快照,或(c)恢復I/O到該CG的該LU成員。
17.如權利要求16所述的計算機可讀介質,其中將一寫I/O隊列間隔應用于CG的一 LU成員包括按一先入先出(FIFO)順序排列寫I/O。
18.如權利要求16所述的計算機可讀介質,其中將一寫I/O隊列間隔應用于CG的一 LU成員包括將該寫I/O隊列間隔表現為從當前時間到該隊列中最早的寫I/O的時間戳的一時間間隔。
19.如權利要求16所述的計算機可讀介質,進一步包括在該CG的每一個參與存儲陣列之間交換一測試消息以確定一往返延遲。
20.如權利要求19所述的計算機可讀介質,進一步包括使用該往返延遲確定該寫I/O 隊列間隔的一最小時間間隔。
全文摘要
一種實施多陣列一致性組的方法,包括將寫輸入/輸出(I/O)隊列間隔用于一致性組(CG)的邏輯單元(LU)成員。該方法同樣包括使用時間戳來標記每一個寫I/O,并在該參與存儲陣列從主存儲陣列接收快照請求后暫停從該參與存儲陣列到該CG的LU成員的I/O。該方法進一步包括確定該快照請求時間戳是否在該參與存儲陣列的寫I/O隊列間隔內。
文檔編號G06F13/00GK102239479SQ200980148789
公開日2011年11月9日 申請日期2009年1月23日 優(yōu)先權日2008年12月18日
發(fā)明者馬丁·杰斯 申請人:Lsi公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
日喀则市| 柳林县| 保靖县| 邢台市| 化德县| 泊头市| 密山市| 玛沁县| 白山市| 五台县| 鄱阳县| 湘潭县| 南平市| 上栗县| 余江县| 兖州市| 江西省| 沧源| 常山县| 乌审旗| 读书| 资源县| 肥城市| 岳阳县| 兴隆县| 吉林市| 恩施市| 陆川县| 贵州省| 双辽市| 包头市| 陕西省| 武穴市| 唐河县| 长海县| 泽库县| 平山县| 泰兴市| 资溪县| 青冈县| 资溪县|