新四季網

以近似同步的頻率在多個主機上的多流應用的快照和複製的製作方法

2023-04-27 04:10:11 3


隨著計算機已經變得越來越普遍,個人和企業已經變得越來越依賴於可靠的計算機系統。可以實現恢復機制以防止各種故障,諸如電源故障,硬體和/或軟體錯誤等。計算機的作業系統和/或其他控制程序可以提供各種恢復機制。

存儲複製可以用於防止所存儲的數據的丟失。根據存儲複製,多個存儲單元可以用於冗餘地存儲相同的數據。以這種方式,在存儲單元之一故障的情況下保持數據的冗餘副本。存在各種類型的存儲複製。例如,可以使用同步複製,其確保在主存儲和備份(或「副本」)存儲兩者中完成任何數據寫入。備選地,可以使用異步複製,其中當數據的寫入由主存儲確認時,其通常被認為是完成的。數據也被寫入到備份存儲,但經常具有小的時滯。因此,不保證備份存儲始終與主存儲器同步。

高可用性集群(也稱為HA集群或故障轉移集群)是經常使用異步存儲複製的計算機組。HA集群使用組或集群中的冗餘計算機,它們在系統組件發生故障時提供持續服務。在沒有集群的情況下,如果運行特定應用的伺服器崩潰,應用將不可用,直到崩潰的伺服器被修復。HA集群通過檢測硬體/軟體故障並立即在另一系統上重新啟動應用而不需要管理幹預(稱為故障轉移的過程)來解決這種情況。HA集群通常用於關鍵資料庫、網絡上的文件共享、商業應用和客戶服務(如電子商務網站)。HA集群實現試圖將冗餘構建到集群中以消除單點故障,包括使用多個網絡連接和經由存儲區域網冗餘連接的數據存儲。



技術實現要素:

提供本發明內容從而以簡化的形式介紹下面在具體實施方式中進一步描述的概念的選集。本發明內容不旨在標識要求保護的主題的關鍵特徵或必要特徵,也不旨在用於限制要求保護的主題的範圍。

提供了用於寫命令一致的跟蹤的方法,系統和電腦程式產品。從一個或多個應用(例如,分布式應用)接收存儲訪問請求,諸如寫請求。多個伺服器處的存儲請求處理模塊按照存儲訪問請求的指示更新多個虛擬盤。虛擬盤是存儲跨虛擬盤的依賴寫順序的數據的主存儲。日誌與虛擬磁碟相關聯。複製管理模塊將與每個存儲訪問請求相關聯的信息存儲在與虛擬盤相關聯的日誌之一中。對日誌執行日誌切換循環。寫命令一致性跟蹤協調器與伺服器處的代理協調日誌切換以維持請求排序。複製協調器協調切換出的日誌文件對於副本存儲的應用,以使副本存儲與主存儲同步。

下面參照附圖詳細描述本發明的其它特徵和優點,以及本發明的各種實施例的結構和操作。注意,本發明不限於本文所描述的具體實施例。這些實施例在此僅出於說明的目的而呈現。基於本文包含的教導,其他實施例對於相關領域的技術人員將是顯而易見的。

附圖說明

併入本文中並且形成說明書的一部分的附圖示出了本申請的實施例,並且與描述一起進一步用於解釋實施例的原理,並且使得相關領域的技術人員技術能夠製造和使用實施例。

圖1示出了根據一個或多個實施例的當切換虛擬盤複製日誌時實現請求排序支持的示例系統。

圖2示出了根據一個或多個實施例的當切換虛擬盤複製日誌時實現請求排序支持的另一示例系統。

圖3示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例架構。

圖4是示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例過程的流程圖。

圖5是示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例狀態的狀態圖。

圖6是示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例過程的流程圖。

圖7示出根據示例實施例的包括存儲依賴寫順序的數據的多個虛擬盤的系統的框圖,並且該系統以維持跨虛擬盤的寫順序依賴性的方式來實現虛擬盤複製日誌的切換。

圖8示出了根據示例實施例的提供用於以維持跨虛擬盤的寫順序依賴性的方式來切換虛擬盤複製日誌的過程的流程圖。

圖9示出根據示例實施例的寫命令一致性跟蹤協調器的框圖。

圖10示出根據示例實施例的提供用於發起日誌切換的過程的流程圖。

圖11和圖12示出根據示例實施例的使用鎖定文件來協調日誌切換的系統的框圖。

圖13示出根據示例實施例的提供用於協調日誌切換階段的過程的流程圖。

圖14示出根據示例實施例的用於使用控制代碼來協調日誌切換的過程。

圖15示出根據示例實施例的提供用於使用控制代碼來協調日誌切換階段的過程的流程圖。

圖16示出根據示例實施例的包括用於協調日誌切換和將虛擬盤複製日誌應用於副本存儲的複製協調器的系統的框圖。

圖17示出根據示例實施例的提供用於協調日誌切換和將虛擬盤複製日誌應用於副本存儲的過程的流程圖。

圖18示出了可以用於實現實施例的示例計算設備的框圖。

從下面結合附圖給出的詳細描述中,本發明的特徵和優點將變得更加明顯,其中相同的附圖標記始終標識相應的元件。在附圖中,相同的附圖標記通常指示相同、功能上相似和/或結構上相似的元件。元件首次出現的附圖由相應附圖標記中最左邊的數字指示。

具體實施方式

I.介紹

本說明書和附圖公開了併入本發明的特徵的一個或多個實施例。本發明的範圍不限於所公開的實施例。所公開的實施例僅僅例示本發明,並且本發明也包含所公開的實施例的修改版本。本發明的實施例由所附的權利要求限定。

說明書中對「一個實施例」,「實施例」,「示例實施例」等的引用指示所描述的實施例可以包括特定特徵、結構或特性,但每個實施例可以不必包括該特定特徵、結構或特性。此外,這樣的短語不一定指的是相同的實施例。此外,當結合實施例描述特定特徵、結構或特性時,將認為無論是否明確描述,結合其他實施例實現這樣的特徵在本領域技術人員的知識範圍內。

下面描述了許多示例性實施例。注意,本文提供的任何章節/子章節標題並不旨在是限制性的。貫穿本文檔描述了實施例,並且任何類型的實施例可以被包括在任何章節/子章節下。此外,在任何章節/子章節中公開的實施例可以以任何方式與在相同章節/子章節和/或不同章節/子章節中描述的任何其它實施例組合。

在本文中討論了當切換虛擬盤複製日誌時的請求排序支持。從虛擬機接收存儲訪問請求,例如寫請求。存儲請求處理模塊根據存儲訪問請求中的每個存儲訪問請求的指示來更新多個虛擬盤之一。另外,複製管理模塊在多個日誌之一中存儲與每個存儲訪問請求相關聯的信息。日誌可以以各種間隔和/或響應於各種事件被傳送到恢復設備,這導致切換日誌,使得複製管理模塊將與每個存儲訪問請求相關聯的信息存儲在新日誌中,並且先前的(舊的)日誌被傳送到恢復設備。在該切換期間,至少部分地通過阻止與每個存儲訪問請求相關聯的信息的處理來維持針對依賴寫順序的請求的請求排序。

本文中關於虛擬機來討論各種實施例。虛擬化通常指從物理資源的抽象。硬體仿真涉及代表作業系統通常將與之交互的硬體的軟體的使用。硬體仿真軟體可以支持客戶作業系統,並且諸如管理程序的虛擬化軟體可以建立客戶作業系統在其上操作的虛擬機(VM)。本文中的許多描述是在虛擬機的上下文中描述的,但是本文討論的技術同樣適用於不採用虛擬化的物理機器。

為了在故障的情況下啟用設備的恢復,將與該設備相關聯的信息提供給恢復設備。在虛擬機的上下文中,可以提供基本複製,並且當虛擬機正在其主設備上運行時,可以提供對該基本複製的更新或改變。

本文討論的技術支持其中不需要差分盤或其他類似機制來提供虛擬存儲複製和虛擬機恢復的系統。在一個或多個實施例中,也稱為複製日誌的一個或多個日誌(例如,日誌文件)被創建,其捕獲對包括虛擬盤的存儲設備進行的改變。在一個虛擬機實施例中,可以通過保留排隊以包括在虛擬盤中的改變請求的副本來創建日誌。日誌處理和更新可以與更新虛擬盤的處理並行地執行,使得複製的數據被創建而沒有附加的延遲,並且可以以這樣的方式來準備日誌,該方式使得其可以容易地被傳送到恢復設備,同時將對每秒輸入/輸出操作(IOPS)的影響限制為正在運行的工作負載。因此,雖然除了當用於其它目的的諸如差分盤的技術之外可以使用本文所討論的技術,但是根據本公開,可以在不存在任何差分盤的情況下實現複製。

在一個或多個實施例中,去往虛擬盤的虛擬機的寫請求被複製到日誌數據結構,諸如日誌隊列。日誌條目從隊列中被獲取並被處理為日誌。對日誌的寫入可以在與諸如虛擬盤、磁碟或其他物理存儲的存儲相對的存儲器中被累積。寫請求信息可以在寫入物理盤之前在存儲器中被累積,以便例如減少對虛擬機內的工作負載性能和響應時間的影響。對日誌的寫入可以與對虛擬盤文件(例如,虛擬硬碟或「VHD」文件)的寫入等協調,促進虛擬機的應用一致性快照。此外,日誌格式可以對於虛擬硬碟文件格式和類型是不可知的,使得其能夠用於捕獲對任何類型和格式的虛擬盤的改變。

以下章節描述用於切換與存儲相關聯的複製日誌的實施例。針對新日誌而切換出當前日誌(例如,已用於存儲並行地應用於主存儲的存儲請求的指示的日誌文件)。然後可以將當前日誌應用於副本存儲以在保持寫順序依賴性的同時將副本存儲與主存儲同步。後續章節描述用於切換與多個主存儲實例相關聯的多個複製日誌的實施例,其中寫順序依賴性是跨主存儲實例(例如,由分布式應用寫入的存儲實例等)而存在的。接下來是又一章節,其描述了用於以維持跨複製存儲的多個實例的寫順序依賴性的方式來將複製日誌應用到複製存儲的實施例。

II.切換虛擬磁碟複製日誌時請求訂購支持的示例實施例

圖1示出了根據一個或多個實施例的當切換虛擬盤複製日誌時實現請求排序支持的示例系統100。存儲訪問請求102可以由諸如虛擬機(VM)104的任何源提供。儘管被示為由虛擬機104提供,但是存儲請求102可以附加地或備選地由其他組件或模塊提供,諸如處理器或其他源。存儲訪問請求102可以是任何類型的存儲訪問請求,諸如寫請求、用於擴展或收縮盤的請求、或可以導致對盤的改變的任何其他存儲操作。在一個或多個實施例中,存儲訪問請求102表示用於存儲數據的寫請求。

在所示實施例中,數據被存儲在一個或多個虛擬盤106中,每個虛擬盤106可以表示存儲在物理存儲介質上的一個或多個文件。存儲請求處理模塊108引導並處理到虛擬磁碟106的傳入請求102。例如,請求102可以表示在存儲請求處理模塊108處臨時緩衝直到它們能夠用於更新虛擬磁碟106的寫請求。每個虛擬盤106可以包括單個虛擬存儲文件(例如,VHD文件)或多個文件(例如,VHD文件和一個或多個差分盤文件(也稱為AVHD文件))。因此,例如,可以對表示虛擬磁碟106的單個文件進行對虛擬磁碟106的改變,並且為了複製的目的可以使用本文所討論的日誌來代替差分盤或虛擬磁碟106的類似狀態。

複製管理模塊110接收在存儲請求處理模塊108處正被接收的相同存儲訪問請求102。存儲訪問請求102可以以不同的方式被接收,諸如從虛擬機104、從中間模塊(未示出)、從存儲請求處理模塊108本身等。在一個或多個實施例中,複製管理模塊110與存儲請求處理模塊108集成地實現。在這種情況下,複製管理模塊110可以當在存儲請求處理模塊108處接收到請求102時接收存儲訪問請求102的副本,或存儲請求處理模塊108可以創建存儲訪問請求102的副本並將其提供給複製管理模塊110。應當注意,諸如存儲請求處理模塊108和複製管理模塊110的模塊可以以不同的方式實現。例如,模塊108和/或模塊110可以在虛擬機104內被提供,可以由管理程序提供,可以由父分區作業系統或其他作業系統等提供。

複製管理模塊110可以與存儲請求處理模塊108對存儲訪問請求102的緩衝和/或處理並行地緩衝存儲訪問請求102。緩衝的存儲訪問請求102被寫入一個或多個日誌112,諸如日誌文件,以用於複製目的並且通常不會顯著影響存儲IOPS。典型地,每個虛擬盤106具有相應的日誌112。當響應於虛擬機104處理而對寫請求或其他存儲訪問請求102進行處理以更新虛擬盤106時,複製管理模塊110在一個或多個日誌112中跟蹤對虛擬盤106的改變。

以各種間隔和/或響應於各種事件,日誌112可以諸如經由發射器114被傳輸到別處(例如,到恢復設備),其中恢復系統或虛擬機可以被實例化以複製虛擬機器104。可以是獨立的發射器或與另一設備(例如,收發器、網絡接口模塊等)相關聯的發射器114可以將日誌112提供給作為虛擬磁碟106的至少一部分的恢復副本的、諸如恢復系統或伺服器的目的地。當一個日誌被傳輸到別處時,正被傳送的日誌被稱為舊日誌,並且新日誌被創建。然後將緩衝的存儲訪問請求寫入新日誌,而不是舊日誌。從將存儲訪問請求存儲在新日誌中而不是在舊日誌中的改變的該過程也被稱為日誌切換。

圖2示出了根據一個或多個實施例的當切換虛擬盤複製日誌時實現請求排序支持的另一示例系統200。系統200類似於圖1的系統100,包括存儲(例如,寫)請求102、一個或多個虛擬盤106、存儲請求處理模塊108和複製管理模塊110。在系統200中,虛擬機或其他源發出寫請求102,其將最終改變數據被寫入其中的一個或多個虛擬盤106。存儲請求處理模塊108和複製管理模塊110兩者都接收寫請求102。當存儲請求處理模塊108處理寫請求102以用於包括在虛擬盤106上時,複製管理模塊110將寫請求102排隊以用於寫入到一個或多個日誌202。

在一個或多個實施例中,在存儲器204(例如,隨機存取存儲器)中捕獲日誌202以相對於涉及寫入盤(諸如,差分盤)的解決方案減少輸入/輸出(I/O)處理並且提高IOPS。每個日誌202可以以期望的規則或不規則間隔被寫入存儲206(例如,磁碟或光碟、閃速存儲器驅動器等),期望的規則或不規則間隔例如固定間隔、隨機間隔、基於觸發事件的間隔(例如,存儲器204中的所有日誌202的大小、存儲器204中的特定日誌202的大小等)等。複製管理模塊110包括存儲寫控制模塊208,其確定如由一個或多個日誌210所示存儲器204中的日誌202何時將被寫入存儲206。在一個或多個實施例中,當已經針對日誌202而分配的存儲器達到閾值時,存儲寫控制模塊208將日誌202寫入到存儲器206作為日誌210。每個日誌210通常是存儲206中的單個文件,但是備選地可以是多個文件和/或文件的部分(例如,多個日誌可以被存儲在單個日誌文件中)。例如,當針對日誌202所分配的存儲器達到90%容量時,日誌202從存儲器204到存儲器206中的日誌210的寫入可以發生。在一個或多個實施例中,如下文更詳細討論的,當用於對應虛擬磁碟106的日誌要被切換到新日誌時,存儲寫控制模塊208還將日誌202寫入存儲器206作為日誌210。通過在存儲器204中累積寫請求102並且不經常將日誌寫入物理存儲器206,可以減少對虛擬機工作負載性能和虛擬機內部的響應時間的影響。

以各種間隔和/或響應於各種事件,日誌202和/或日誌210可以例如經由發射器114被傳輸到別處,如上面參考圖1所討論的。當一個日誌被傳輸到別處時,緩衝存儲訪問請求之後被寫入新日誌而不是舊日誌。

在圖1的系統100中和圖2的系統200中,虛擬機或其他源可以發出具有特定排序要求的存儲訪問請求。例如,虛擬機中的資料庫、郵件伺服器或其他應用可以實現它們自己的恢復機制,並且作為那些恢復機制的一部分期望使特定存儲訪問請求(例如,特定寫入)以特定順序發生。如下面更詳細地討論的,複製管理模塊110在切換日誌時考慮這些排序要求。

圖3示出了根據一個或多個實施例的當切換虛擬盤複製日誌時實現請求排序支持的示例架構300。架構300可以實現例如圖1的系統100或圖2的系統200。參考是I/O寫請求的存儲訪問請求來討論架構300,儘管各種其他類型的存儲訪問請求也可以由架構300處理。在示例架構300中,寫請求被實現為小型計算機系統接口(SCSI)請求塊(SRB)302。SRB 302是其中I/O請求可以被提交給存儲設備的代表性方式。SRB 302可以包括信息,諸如用於向設備發送的命令、緩衝器位置和大小等。在一個或多個實施例中,對虛擬盤的每個改變請求具有SRB 302的形式。雖然作為示例討論了SRB,但應當注意,各種其它I/O請求類型可以與本文討論的技術一起使用。

在所示示例中,SRB 302由到示出為虛擬硬碟(VHD)接口304(例如,其可以在VHD解析器系統或.sys文件中實現)的上層的接口提供。在該示例中,VHD接口304表示到上層的內部接口,其執行內部轉換並將SRB 302發送到複製管理模塊,在圖3中複製管理模塊是虛擬盤解析器306的一部分。還可以經由VHD接口308提供存儲請求,VHD接口308也是到上層的接口,其中存儲請求可以經由輸入/輸出控制(IOCTL)調用310來被提供,輸入/輸出控制(IOCTL)調用310由虛擬盤解析器306的IOCTL處理器312處理。IOCTL處理器312提供接口,通過該接口,虛擬機上的應用可以使用控制代碼與設備驅動器直接通信。因此,可以經由一個或多個不同的輸入類型來接收存儲訪問請求。

在一個或多個實施例中,虛擬盤解析器306可以是VHD迷你埠的適配,諸如可從華盛頓州雷德蒙德的微軟公司獲得的Hyper-虛擬化系統中可用的VHDMP.sys。假設在該示例中虛擬盤由VHD文件314表示,則用於這樣的VHD文件314的存儲棧可以包括諸如VHDMP.sys的迷你埠驅動器,其表示VHD解析器306。VHD解析器306使得對存儲316中的VHD文件314(例如,磁碟或光碟、快閃記憶體驅動器等)的I/O請求能夠被發送到主機文件系統。主機文件系統被示為新技術文件系統(NTFS)318,儘管可以備選地使用各種其他主機文件系統。

為了示例的目的,在示例架構300的描述中假設SRB 302包括用於改變諸如VHD文件314的虛擬盤的寫請求。源自虛擬機內部的SRB 302到達SRB請求處理器320處的虛擬盤解析器306。在一個或多個實施例中,SRB請求處理器320針對每個SRB 302創建定製數據結構的實例,並且將SRB 302嵌入到該實例內,其被添加到VHD請求隊列322。VHD請求隊列322維持對等待處理的VHD文件314的寫請求。SRB請求處理器320將這些SRB 302添加到隊列322,並且如下所述,VHD請求處理模塊324從VHD請求隊列322中移除寫請求以處理寫請求。多個代表性VHD請求隊列322條目被描繪為V1 330、V2 332、V3 334和V4 336。VHD請求隊列322和VHD請求處理模塊324一起可以是圖1或圖2的存儲請求處理模塊108。

在一個或多個實施例中,IOCTL處理器312還可以從管理模塊接收請求,管理模塊諸如作為Hyper-虛擬化系統的一部分而提供的虛擬機管理服務(VMMS)340(例如,可執行文件或.exe文件)。VMMS 340通常表示用作用於傳入管理請求的交互點的管理服務。VMMS 340可以向IOCTL處理器312提供用於啟用和禁用針對虛擬盤的改變跟蹤的請求。例如,VMMS 340可以經由IOCTL調用310向IOCTL處理器312發出請求,這使得日誌請求隊列342和日誌請求處理模塊344被初始化。VMMS 340還可以向IOCTL處理器312提供用於在虛擬機運行時管理日誌切換的請求。例如,如下面更詳細地討論的,VMMS 340可以通過切換日誌的多個階段來發出請求以推進虛擬盤解析器306。

當改變跟蹤被啟用時,針對被添加到VHD請求隊列322的SRB302的定製數據結構的另一實例被創建,並且作為條目被添加到日誌請求隊列342。在一個或多個實施例中,寫請求(例如,SRB 302)的數據緩衝器可以由用於VHD請求隊列322和日誌請求隊列342兩者中的SRB 302的定製數據結構實例共享。日誌請求隊列342維持等待處理的日誌寫請求。代表性日誌請求隊列342條目被描繪為L1350、L2 352、L3 354和L4 356。日誌請求隊列342和VHD請求隊列322的條目彼此對應——包括與VHD請求隊列322的條目相同的SRB 302(或引用相同的共享SRB 302)的日誌請求隊列342的條目被稱為對應於VHD請求隊列322的條目或與之相關聯。日誌請求隊列342和日誌請求處理模塊344一起可以是圖1或圖2的複製管理模塊110。

VHD請求處理模塊324從VHD請求隊列322的隊列條目330-336中移除排隊的寫請求以處理寫請求。VHD請求處理模塊324通過將所請求的數據寫入VHD文件314來處理寫請求。基於虛擬硬碟格式和類型,在一個或多個實施例中,VHD請求處理模塊324經由NTFS 318向VHD文件314發送一個或多個I/O請求分組(IRP)以完成每個寫請求。

日誌請求處理模塊344從日誌請求隊列342的日誌隊列條目350-356中移除排隊的寫請求以處理該寫請求。日誌請求處理模塊344通過在日誌364中存儲包括寫請求的日誌隊列條目350-356來處理寫請求或日誌隊列條目。日誌364可以是一個或多個日誌文件,並且日誌隊列條目350-356可以經由NTFS 318被存儲到一個或多個日誌文件。因此,日誌請求隊列342被複製到日誌364,在所示實施例中,日誌364被存儲在存儲368(例如,磁碟或光碟、快閃記憶體驅動器等)中。存儲368可以是與其中存儲VHD文件的存儲316相同或不同的存儲。應當注意,在一個或多個實施例中,儘管日誌364可以被存儲在某些存儲器368中,但是日誌被高速緩存或以其他方式緩衝在存儲器(例如,隨機存取存儲器)中,直到日誌將被發送到存儲368時。處理寫請求或日誌隊列條目的日誌請求處理模塊344包括將包括寫請求的日誌隊列條目350-356存儲在這樣的高速緩存或緩衝器中。

用於寫請求的新日誌條目針對每個新的存儲請求而被創建,並且被放置在日誌請求隊列342中,通常基本上與在VHD請求隊列322中針對寫請求創建和放置新的VHD請求隊列條目並行。類似地,日誌請求隊列342中的下一寫請求被移除並且被複製到日誌364,通常基本上與從VHD請求隊列322中移除並由VHD請求處理模塊324處理針對寫請求的相應條目並行。VHD請求隊列322和日誌請求隊列342通常是先進先出(FIFO)隊列,儘管可以備選地使用其它排隊技術。

響應於滿足兩個條件,特定的排隊寫請求(例如,隊列條目330-336之一中的請求)被認為是完成的:1)針對寫請求向VHD文件314發出的IRP中的所有IRP被完成,以及2)與包括寫請求的VHD請求隊列條目相對應的日誌請求隊列條目被寫入日誌364。被寫入日誌364的日誌請求隊列條目指的是被添加到日誌的日誌請求隊列條目,無論日誌是否被高速緩存或以其它方式緩衝在存儲器中(例如,即使日誌並且因此日誌請求隊列條目正被維持在緩衝器或除存儲368之外的其他存儲器中,日誌請求隊列條目也能夠被寫入日誌364)。響應於特定寫請求被完成,VHD解析器306向虛擬機返回針對特定寫請求的完成響應,該特定寫請求從該虛擬機被接收。完成響應可以由虛擬解析器306的各種組件或模塊中的任何組件或模塊返回到虛擬機。

在一個或多個實施例中,如以上所討論的,日誌可以被存儲(至少臨時地)在存儲器中。存儲在存儲器中的日誌可以從存儲器被直接傳輸到一個或多個恢復設備。備選地,日誌可以被寫入物理存儲介質(例如,磁碟或光碟、快閃記憶體盤等),並且隨後從物理存儲介質被傳輸到別處(例如,到一個或多個恢復設備)。無論日誌是從存儲器還是從物理存儲介質被傳輸,各種條件可以指示日誌何時將被傳輸到別處。條件可以是例如時間、持續時間、觸發事件等。例如,條件可以是特定時間間隔(例如,五分鐘)、特定事件(例如,日誌文件達到閾值大小和/或具有閾值數量的條目)等。恢復設備可以是各種不同的恢復伺服器和/或恢復存儲設備中的任一種。

當被稱為舊日誌的日誌被傳輸到別處(例如,到恢復設備)時,新日誌被創建。日誌請求處理模塊344然後進行至將日誌請求隊列342中的條目存儲到新日誌中。從將日誌請求隊列342中的條目存儲到新日誌而不是舊日誌的改變的過程也被稱為日誌切換。

恢復設備是與實現架構300的設備和/或與存儲316(和存儲368)分離的存儲設備的單獨的計算設備。恢復設備接收經傳輸的日誌並且維持或以其他方式使用經傳輸的日誌以用於恢復目的。例如,如果故障將在實現架構300的設備中發生,則由恢復設備接收到的日誌可以用於重新創建VHD文件314。恢復設備可以以不同的方式維持或以其它方式使用經傳輸的日誌。在一個或多個實施例中,恢復設備存儲日誌,如果期望VHD文件314的恢復,則其允許日誌中的請求隨後被應用於VHD文件314的先前存儲的副本(不包括在日誌中指示的改變並且被存儲在恢復設備或別處的VHD文件314的副本),以便恢復VHD文件314。備選地,日誌中的請求可以被處理並應用於VHD文件314的先前存儲的副本(不包括在日誌中指示的改變並且被存儲在恢復設備或別處的VHD文件314的副本),允許VHD文件314的複製副本被維持在恢復設備處。日誌中的請求可以以與由VHD請求處理模塊324如以上所討論的在處理VHD請求隊列322中的請求中所執行的方式類似的方式被處理並應用於VHD文件314的先前存儲的副本。

日誌364包括來自日誌請求隊列342的存儲請求以及要被恢復和/或複製的針對VHD文件314的足夠的附加數據。日誌364可以包括關於來自日誌請求隊列342和VHD文件314的存儲在日誌364中的存儲請求的各種數據和/或元數據。在一個或多個實施例中,日誌364包括報頭部分、一個或多個元數據部分、和一個或多個數據部分。一個或多個數據部分包括來自日誌請求隊列的條目(或者備選地來自日誌請求隊列的條目的數據),其包括寫請求或其他存儲請求。

報頭部分包括例如用於標識日誌的信息、用於指示一個或多個元數據部分的大小的信息、用於指示多少元數據部分被包括在日誌中的信息、以及用於指示日誌的最後有效數據的位置(日誌的結束或EOL)的信息。報頭部分可以包括各種其他信息,諸如日誌的版本標識符、指示日誌何時被創建(和/或最後修改)的時間戳、日誌的大小、用於日誌的校驗和、錯誤代碼(例如,指示在創建或接收日誌中是否發生錯誤)等。

每個元數據部分包括例如元數據頭部和一個或多個元數據條目。元數據提供例如描述對虛擬盤(VHD文件)的改變的信息。例如,元數據頭部可以包括元數據頭部的大小的指示、日誌中先前元數據部分的位置的指示、日誌中下一元數據部分的位置的指示、元數據部分中的元數據條目的數量的指示、用於元數據部分的校驗和值等。每個元數據條目提供例如關於被修改的虛擬盤地址範圍的信息。例如,每個元數據條目可以包括指示虛擬盤上被修改的實際物理地址的字節偏移量、用於元數據條目的校驗和值、指示數據部分中的數據的大小的數據長度、指示導致數據部分中的數據的存儲請求由VHD解析器接收的時間和/或日期的時間戳值、數據部分中的數據的元操作(例如,寫操作、無操作(NOOP)等)等。

在示例架構300中,雖然示出了一個VHD文件314和一個日誌364,但是在一個或多個實施例中,架構300包括多個VHD文件314(存儲在相同和/或不同的存儲316中)以及多個日誌364(存儲在相同和/或不同的存儲368中)。VHD解析器306可以包括針對每個VHD文件的單獨的VHD請求隊列,其中每個VHD請求隊列對應於單個VHD文件,或者備選地單個VHD請求隊列可以對應於多個不同的VHD文件(並且因此包括針對多個不同的VHD文件的條目)。VHD解析器306還可以包括針對每個日誌的單獨的日誌請求隊列,其中每個日誌請求隊列對應於單個日誌,或者備選地單個日誌請求隊列可以對應於多個不同的日誌(並且因此包括針對多個不同的日誌的條目)。

在系統(例如,圖1的系統100和/或圖2的系統200)或架構(例如,圖3的架構300)包括多個日誌的情況下,日誌切換包括在大約相同時間切換多個日誌中的所有日誌。然而,通常不存在日誌被切換的保證排序,通常不存在一個日誌在另一日誌之前被切換的依賴性,並且通常不存在日誌被切換的保證速度。因此,虛擬機不能依賴於日誌以特定順序被切換。

圖4是示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例過程400的流程圖。過程400例如由圖1的系統100、圖2的系統200和/或圖3的架構300執行,並且可以以硬體、或者硬體與軟體和固件中的一者或兩者的組合來被實現。過程400被示為一組動作,並且不限於用於執行各種動作的操作的所示出的順序。過程400是用於在切換虛擬盤複製日誌時實現請求排序支持的示例過程;在此參考不同的附圖包括在切換虛擬盤複製日誌時實現請求排序支持的附加討論。

通常,過程400在兩個部分中被執行。在第一部分402中,新日誌被初始化,並且新日誌隊列條目的處理被阻止。新日誌隊列條目的阻止是指日誌隊列中的條目不被處理(例如,由圖3的日誌請求處理模塊344)並被存儲在日誌文件中;然而,當新日誌隊列條目的處理被阻止時,可以將新條目添加到日誌請求隊列。在第二部分404中,新日誌被改變為,新日誌隊列條目的處理被解除阻止,並且日誌的切換被完成。在新日誌隊列條目的處理被解除阻止之後,日誌隊列中的條目可以被處理(例如,由圖3的日誌請求處理模塊344)並且被存儲在新日誌中。

更具體地,第一部分402包括其中新日誌被初始化的第一階段412。對於被切換的每個日誌(例如,每個當前日誌),新日誌被初始化。初始化新日誌是指為新日誌生成適當的數據結構、創建適當的頭部等。在第一階段412期間,日誌隊列條目繼續被處理(例如,由圖3的日誌請求處理模塊344),並且VHD請求隊列條目繼續被處理(例如,由圖3的VHD請求處理模塊324)。

第一部分402還包括其中新日誌隊列條目的處理被阻止的階段414。階段414在所有新日誌被初始化之後發生(儘管備選地可以在少於所有新日誌被初始化之後發生)。在階段414中,日誌隊列條目可以被添加到日誌請求隊列,VHD隊列條目可以被添加到VHD請求隊列,並且VHD隊列條目可以被處理(例如,由圖3的VHD請求處理模塊324),但日誌隊列條目不被處理(例如,由圖3的日誌請求處理模塊344)。如上所述,存儲請求不被指示為完成,直到VHD隊列條目被處理並且對應的日誌隊列條目被處理。因此,儘管當新日誌隊列條目的處理被阻止時VHD隊列條目可以被處理,但是因為對應的日誌隊列條目尚未被處理,所以這樣經處理的VHD隊列條目中的請求不被指示為已完成。

第二部分404包括階段416,其中對新日誌的改變發生並且新日誌隊列條目的處理被解除阻止。對於被切換的每個日誌,在階段416中改變為新日誌(在階段412中被初始化)。改變為新日誌是指要被使用的日誌的任何指針或其他指示被改變為新日誌而不是舊日誌(從其切換的日誌,並且在階段414中阻止新日誌隊列條目的處理之前日誌隊列請求被存儲於其中)。對於正被切換的所有日誌,在已經改變為新日誌之後,新日誌隊列條目的處理被解除阻止。在新日誌隊列條目的處理被解除阻止之後,系統或架構的操作如上所述恢復——VHD隊列條目可以被添加到VHD請求隊列並且被處理(例如,由圖3的VHD請求處理模塊324),並且日誌隊列條目可以被添加到日誌請求隊列並被處理(例如,由圖3的日誌請求處理模塊344)。

第二部分404還包括其中日誌的切換被完成的階段418。完成日誌的切換包括用於將舊日誌傳送到別處(例如,到恢復設備)的各種操作。完成日誌的切換可以包括例如將存儲器中的舊日誌的任何隊列條目衝刷至存儲、將附加信息添加到舊日誌的頭部、將舊日誌傳輸到別處等。階段418通常發生在新日誌隊列條目的處理被解除阻止之後,儘管階段416和階段418可以備選地至少部分地在相同時間被執行(因此,當在階段416中正在改變為新日誌並且新日誌隊列條目的處理正被解除阻止時,階段418中的完成的至少一些完成可以被執行)。

圖5是示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例狀態的狀態圖500。狀態圖500示出了VHD解析器(例如,圖3的VHD解析器306)的組件或模塊或者複製管理模塊(例如,圖1和圖2的模塊110)轉換經過的不同狀態。狀態圖500參考實現狀態圖500的開關管理器來被討論。開關管理器可以是圖3的IOCTL處理器312、VHD解析器的另一組件或模塊或者或複製管理模塊等。用於轉換到不同狀態的命令或請求由開關管理器從管理服務(或其他模塊)接收,例如圖3的VMMS 340。3,管理程序的另一組件或模塊等。

當啟用改變跟蹤(例如,啟用了本文所述的日誌和日誌請求隊列的使用)時,開關管理器轉換到新日誌準備好初始化狀態502。開關管理器在狀態502中等待直到從管理服務接收到初始化新日誌命令。如上所述,在某間隔過去、事件放生等之後初始化新日誌命令被接收。

響應於初始化新日誌命令,開關管理器轉換到新日誌被初始化狀態504。在狀態504中,開關管理器初始化(或與一個或多個其他模塊或組件通信以初始化)新日誌。圖4的第一階段412在新日由處於狀態504中的開關管理器實現。在新日誌被初始化之後,開關管理器向管理服務通知(例如,向其通信響應)新日誌被初始化。

響應於新日誌被初始化的通知,管理服務向開關管理器發送塊寫請求響應。響應於塊寫請求響應,開關管理器轉換到新日誌寫入被阻止狀態506。在狀態506中,開關管理器阻止新日誌隊列條目的處理(例如,通過通知日誌請求處理模塊344停止日誌隊列條目的處理),並且從舊日誌改變為新日誌。該改變可以是例如向日誌請求處理模塊344提供新日誌的指示(例如,標識符)。當處於狀態506時,圖4的第二階段414以及第三階段416的一部分(向新日誌的改變)由開關管理器實現。在新日誌隊列條目的處理被阻止並且向新日誌的改變被完成之後,開關管理器向管理服務通知(例如,向其通信響應),新日誌隊列條目的處理被阻止並且向新日誌的改變被完成。

響應於新日誌隊列條目的處理被阻止並且對新日誌的改變被完成的通知,管理服務向開關管理器發送解除阻止寫請求響應。響應於解除阻止寫請求響應,開關管理器轉換到新日誌寫入被解除阻止狀態508。在狀態508中,開關管理器解除阻止新日誌隊列條目的處理(例如,通過通知日誌請求處理模塊344恢復日誌隊列條目的處理),並且完成日誌的切換。如上所述,可以在完成日誌的切換中執行各種操作。當處於狀態508時,圖4的第四階段418由開關管理器實現。在新日誌隊列條目的處理被解除阻止並且日誌的切換被完成之後,開關管理器向管理伺服器通知(例如,向其通信響應)新日誌的處理隊列條目被解除阻止並且日誌的切換被完成。

響應於新日誌隊列條目的處理被解除阻止並且日誌的切換被完成的通知,管理服務向開關管理器發送完成舊日誌請求。響應於完成舊日誌請求,開關管理器轉換到新日誌準備好初始化502。

當處於狀態502、504或506時,開關管理器可以接收到意外的請求。接收到的意外請求是指除了將允許開關管理器轉換到下一狀態以繼續日誌切換的請求之外的請求(例如,當處於狀態502時除了初始化新日誌請求之外的任何請求,當處於狀態504時除了塊寫請求響應之外的任何請求,當處於狀態506時除了解除阻止寫請求響應之外的任何請求)。響應於意外的請求,開關管理器轉換到新日誌清除狀態510。在新日誌清除狀態510中,開關管理器執行各種操作以撤銷作為日誌切換的一部分而做出的任何改變。這些操作可以包括例如刪除被創建的新日誌、防止舊日誌被改變等。在完成各種操作以撤消作為日誌切換的一部分而做出的任何改變之後,開關管理器轉換到新日誌準備好初始化502。

類似地,當處於狀態508時,開關管理器可以接收到意外請求。意外請求是指除了將允許開關管理器轉換到下一狀態以繼續日誌切換的請求之外的請求(例如,除了完成舊日誌請求之外的任何請求)。響應於意外請求,開關管理器轉換到改變跟蹤被禁用狀態512。在狀態512中,改變跟蹤(例如,如本文所討論的日誌和日誌請求隊列的使用)被禁用。如果在狀態508處接收到意外請求,則開關管理器假定重大問題已經發生,並且因此禁用改變跟蹤,而非進入新日誌清除狀態510。

在一個或多個實施例中,可能出現其中管理服務在日誌切換期間發生故障(例如,崩潰或以其它方式停止正常操作)的情況。為了避免這樣的故障導致新日誌隊列條目的處理被無限地阻止(例如,由於因為故障而未從管理服務接收到解鎖阻止寫請求響應),當初始化新日誌請求被接收時,開關管理器維持用於管理服務的上下文。該上下文被標識為初始化新日誌請求的一部分,並且通常被稱為由管理服務打開的句柄或由作業系統分配(或向作業系統報告)的其他標識符。如果管理服務發生故障,則管理服務的任何這樣的句柄或標識符被作業系統關閉,並且向開關管理器通知這樣的關閉。因此,如果作為用於管理服務的上下文由開關管理器維持的句柄在具有相同句柄的完成舊日誌請求被關閉之前被關閉,則開關管理器確定管理服務在日誌切換期間發生故障。開關管理器進而採取適當的補救動作(例如,轉換到新日誌清除狀態510和/或改變跟蹤被禁用狀態512),包括解除阻止對新日誌隊列條目的處理。因此,管理服務中的故障將不會導致新日誌隊列條目的處理被無限地阻止。

本文討論的技術支持各種不同的使用場景。通過阻止新日誌隊列條目的處理但允許在日誌切換期間的VHD隊列條目的處理,由於VHD隊列條目可以繼續被處理,因此減少了由於日誌切換所造成的性能影響。如上所述,被阻止的新日誌隊列條目的處理可以是日誌隊列條目向存儲器而非存儲的寫入,因此當新日誌隊列條目的處理被解除阻止時,新日誌隊列條目能夠相對於VHD隊列條目向存儲的寫入被快速處理。

此外,本文討論的技術允許日誌切換發生,同時維持針對依賴寫順序的請求的請求排序。在一些情況下,從虛擬機發出的存儲訪問請求具有特定排序請求。例如,虛擬機的應用可以使用寫前日誌記錄(WAL)協議,其中向一個VHD的一個寫請求(例如,寫入資料庫)不被發出,直到向另一VHD的另一寫請求(例如,向由應用維護的日誌記錄的寫入)的完成的確認被接收。本文討論的技術允許在保持這種排序約束的同時進行日誌切換。

例如,假設由虛擬機發出兩個寫請求W1接著是W2,並且要保持寫請求的順序(W2要在W1之後被執行)。在W1被寫入VHD文件和日誌文件兩者之後,返回指示W1的完成的響應,並且響應於該指示,虛擬機發出W2。通過在日誌切換時阻止用於W1的日誌隊列條目的處理,W1向日誌文件的寫入以及因此W1的完成的指示被延遲直到日誌切換被完成。這種阻止允許這樣的情況,其中W1和W2在一個日誌文件被切換之後但在另一日誌文件被切換之前被接收,從而導致W1被寫入新日誌文件(並且因此尚未被傳送到恢復設備)而W2被寫入舊日誌文件(隨著日誌切換完成其被傳送到恢復設備)。其中W2被傳送到恢復設備但W1未被傳送的這種情況將違反對恢復系統中的針對W1和W2的請求排序,但是使用本文所討論的技術被避免。

圖6是示出根據一個或多個實施例的用於當切換虛擬盤複製日誌時實現請求排序支持的示例過程600的流程圖。過程600例如由圖1的系統100、圖2的系統200和/或圖3的架構300執行,並且可以被實現在軟體,固件,硬體或其組合中。過程600被示為一組動作,並且不限於用於執行各種動作的操作的所示出的順序。過程600是用於當切換虛擬盤複製日誌時實現請求排序支持的示例過程;在此參考不同的附圖包括在切換虛擬盤複製日誌時實現請求排序支持的附加討論。

在過程600中,從虛擬機接收存儲訪問請求(動作602)。這些存儲訪問請求可以是寫請求和/或如上所述的其他請求。

根據存儲訪問請求的指示更新多個虛擬硬碟之一(動作604)。更新可以是例如如上所述將數據寫入虛擬硬碟。每個存儲訪問請求通常指示要一個虛擬硬碟要被更新,但是可以備選地指示多個虛擬硬碟要被更新。

與存儲訪問請求相關聯的信息也被存儲在多個日誌之一中(動作606)。也稱為複製日誌的每個日誌(例如,日誌文件)可以對應於如上所述的虛擬硬碟之一。

在維持針對依賴寫順序的請求的請求排序的同時切換多個日誌(動作608)。如上所述,該切換可以在多個部分和/或多個階段中進行。如上所述,作為該切換的一部分,舊日誌(從其切換的日誌)可以被傳送到恢復設備。如上所述,至少部分地通過阻止對與每個存儲訪問請求相關聯的信息的處理,諸如通過阻止將日誌請求隊列條目存儲在日誌中來針對寫命令依賴的請求維持請求排序。

III.用於切換用於在多個主機上快照多流應用的複製日誌的示例實

施例

如上所述,複製日誌可以被維持並且被切換出以被用於利用對主存儲器做出的改變來更新副本存儲。在一些情況下,多個存儲實例(例如,虛擬盤,物理盤,存儲器設備等)可以存儲相關的數據。例如,多個虛擬機可以各自操作同一分布式應用的相應部分,使得對它們相應的主存儲進行的寫入具有當應用於相應的副本存儲時需要維持的寫順序。換句話說,關於對副本存儲器進行的相同寫入,可能需要維持由第一虛擬機對其主存儲進行的寫入的順序和由第二虛擬機向其主存儲進行的寫入的順序,因為第一虛擬機和第二虛擬機可以彼此通信,影響它們對存儲的相應寫入的時序和內容,從而創建寫順序依賴的問題。

因此,前面章節中描述的實施例可以被修改為協調複製日誌的切換的時序,以維持寫順序一致性。這樣的實施例可以以各種方式被實現。例如,圖7示出根據示例實施例的系統700的框圖,該系統700包括存儲依賴寫順序的數據並且維持跨虛擬盤的寫順序依賴性的多個虛擬盤。例如,系統700可以被包括在計算機網絡中,諸如實現分布式應用並且結合存儲網絡的計算機集群(一起工作的被連接的計算機)或者包括將相關的數據存儲在存儲中的多個計算設備(例如,計算機、伺服器等)的任何其他計算機網絡。

如圖7所示,系統700包括計算設備702、計算設備704a和計算設備704b。計算設備702包括寫命令一致跟蹤(WOCT)協調器706。計算設備704a包括第一虛擬機(VM)104a、第一存儲請求處理模塊(SRPM)108a、第一複製管理模塊(RMM)110a、第二VM104b、第二SRPM 108b、第二RMM 110b和第一代理708a。計算設備704b包括第三VM 104c、第三SRPM 108c、第三RMM 110c、第四VM 104d、第四SRPM 108d、第四RMM 110d和第二代理708b。系統700的這些特徵/元件被描述如下。

注意,出於說明的目的,在圖7中示出分別包括兩個虛擬機的兩個計算設備。在其他實施例中,更多數量的計算設備可以存在,包括數十、數百、數千和更大數量的計算設備,並且其他數量的虛擬機可以存在,其中每個計算設備包括一個或多個虛擬機。此外,存儲710a、710b、710c和710d是物理存儲設備,並且可以包括存儲器設備、硬碟驅動器和/或其他形式的物理存儲。此外,注意,儘管在圖7中示出了WOCT協調器706在與包含虛擬機和代理的計算設備分離的計算設備中,但是在另一實施例中,WOCT協調器706可以與代理和一個或多個虛擬機在同一計算設備中。

第一VM 104a、第一SRMP 108a和第一RMM 110a是在前面章節中描述的VM 104、SRPM 108和RMM 110的相應示例。類似地,第二VM 104b、第二SRMP 108b和第二RMM 110b,第三VM104c、第三SRMP 108c和第三RMM 110c,以及第四VM 104d、第四SRMP 108d和第四RMM 110d都是VM 104、SRPM 108和RMM110。此外,以與上述類似的方式,第一VM 104a通過SRPM 108a將數據存儲在一個或多個VD 106a中的存儲710a中,並且對應於VD 106a的一個或多個日誌112a由RMM 110a生成並被存儲在存儲710a中,以存儲來自第一VM 104a的存儲訪問請求以用於複製目的。類似地,第二VM 104b使用第二SRMP 108b和第二RMM 110b以將數據存儲在存儲710b中的VD 106b中,並且生成被存儲在存儲710b中的日誌112b,第三VM 104c使用第三SRMP 108c和第三RMM 110c以將數據存儲在存儲710c中的VD 106c中,並且生成被存儲在存儲710c中的日誌112c,並且第四VM 104d使用第四SRMP 108d和第四RMM 110d以將數據存儲在存儲710c中的VD106d中,並且生成被存儲在存儲710d中的日誌112c。因為圖7的這些特徵在本文別處(例如,前面的章節)被描述,為了簡潔的目的在本章節中不再完全提供該描述。

在實施例中,計算設備702中的WOCT協調器706被配置為協調跨計算設備704a、704b等的複製日誌的切換,以維持寫命令一致性。例如,WOCT協調器706可以與包含虛擬機的計算設備處的代理(諸如代理708a和708b)進行通信。WOCT協調器706可以指示代理為它們相應的計算設備處的所有虛擬機發起日誌切換,並且將所得的舊日誌(被切換出的日誌)提供給WOCT協調器706或別處以被應用於副本存儲。

例如,在一個實施例中,WOCT協調器706可以根據圖8操作。圖8示出了根據示例實施例的以維持跨虛擬盤的寫順序依賴性的方式來切換虛擬盤複製日誌的過程的流程圖800。流程圖800關於圖7和圖9被描述如下。圖9示出了根據示例實施例的WOCT協調器900的框圖。WOCT協調器900是圖7的WOCT協調器706的示例。基於以下描述,其他結構和操作實施例對於相關領域的技術人員將是顯而易見的。

流程圖800開始於步驟802。在步驟802中,發起與多個計算設備處的多個虛擬盤相關聯的多個日誌的日誌切換的循環,虛擬盤存儲在虛擬盤之間依賴寫順序的數據。例如,在實施例中,WOCT協調器900(圖9)的日誌切換發起器902可以發起針對計算設備處的存儲實例的日誌切換的循環。例如,在實施例中,日誌切換902可以通過網絡(例如,區域網、廣域網、諸如網際網路的網絡的組合、存儲區域網等),和/或可以以另一種方式發起日誌切換循環。下面描述用於根據步驟802發起日誌切換的循環的其它示例實施例。

在步驟804中,在多個計算設備處的多個日誌的日誌切換的循環跨虛擬盤被協調以維持針對依賴寫順序的請求的請求排序。在實施例中,WOCT協調器900(圖9)的日誌切換管理器904可以被配置為協調由日誌切換發起器902發起的日誌切換的循環。日誌切換管理器904可以被配置為通過與代理通信來協調日誌切換的周期的一個或多個階段,使得每個階段在使得下一階段能夠被執行之前由每個代理執行和確認。例如,在實施例中,日誌切換902可以傳輸指令或控制代碼,可以使用排它鎖,和/或可以使用其它技術來協調日誌切換循環。下面描述根據步驟804的用於協調日誌切換的循環的其它示例實施例。

因此,在實施例中,WOCT協調器900的日誌切換發起器902可以以各種方式發起日誌切換的循環(步驟802)。例如,圖10示出根據示例實施例的提供用於發起日誌切換的過程的流程圖1000。在實施例中日誌切換發起器902可以根據流程圖1000來操作。以下關於圖5、圖7、圖9、圖11和圖12來描述流程圖1000。圖11和圖12示出根據示例實施例的使用鎖定文件來協調日誌切換的系統1100的框圖。圖11和圖12分別示出日誌切換發起器902、日誌切換管理器904、代理708a、代理708b以及可由日誌切換發起器902、日誌切換管理器904、代理708a、代理708b中的每一個訪問的存儲1102。存儲1102包括第一開始階段鎖定文件1106a至第四開始階段鎖定文件1106d以及第一結束階段鎖定文件1108a至第四結束階段鎖定文件1108d。基於以下描述,其他結構和操作實施例對於相關領域的技術人員將是顯而易見的。

流程圖1000開始於步驟1002。在步驟1002中,在多個開始階段鎖定文件中的每個開始階段鎖定文件上採用排它鎖,每個開始階段鎖定文件與日誌切換的循環的多個階段中的對應階段相關聯。在實施例中,可以在任何數量的階段中執行日誌切換的循環。例如,日誌切換可以針對根據圖4的虛擬機被執行,其中在一個循環中使用四個階段412、414、416和418。在其他實施例中,可以使用其他數量的階段。各種機制可以被用於控制/協調從一個階段到另一階段的切換。例如,在實施例中,可以在每個階段處使用一個或多個鎖定文件來協調日誌切換的階段。鎖定文件是其內容可能不相關(除了文件中的鎖的持有者的標識符等之外)的文件,但是被用於信號表示資源被鎖定。在實施例中,鎖定文件是否被鎖定可以是階段是否可以開始、協調器或過程是否已經在階段中執行其功能、或者與階段相關的一些其他任務是否已經或能夠被執行的指示符。在一個示例實施例中,如下面進一步描述的,每個階段可以具有對應的開始階段鎖定文件和結束階段鎖定文件。

例如,如圖11所示,開始階段鎖定文件1106a和結束階段鎖定文件1108a是可以與第一階段(例如,第一階段412)相關聯的第一階段鎖定文件1104a。同樣,開始階段鎖定文件1106b和結束階段鎖定文件1108b是可以與第二階段(例如,第二階段414)相關聯的第二階段鎖定文件1104b,開始階段鎖定文件1106c和結束階段鎖定文件1108c是可以與第三階段(例如,第三階段416)相關聯的第三階段鎖定文件1104c並且開始階段鎖定文件1106d和結束階段鎖定文件1108d是可以與第四階段(例如,第四階段418)相關聯的第四階段鎖定文件1104d。

在圖11的示例中,在開始時,開始階段鎖定文件1106a-1106d和結束階段鎖定文件1108a-1108d可以沒有由代理或協調器放置在它們上的鎖。在一個實施例中,日誌切換發起者902可以驗證在開始級鎖定文件1106a-1106d和結束級鎖定文件1108a-1108d上沒有採用鎖(例如,沒有由代理在鎖定文件中的鎖定條目等)。日誌切換發起器902在開始階段鎖定文件1106a-1106d中的每個開始階段鎖定文件上採用排它鎖,如由排它鎖1110a-1110d所表示的(例如,將排它鎖條目寫入鎖定文件等)。以這種方式,代理708a、708b和存在的任何其它代理被阻止對開始階段鎖定文件1106a-1106d採取鎖定,並且由此被指示為不對任何階段執行它們的功能。

參考回圖10,在步驟1004中,日誌切換發起指令被傳輸到計算設備處的多個代理。例如,如圖11所示,日誌切換發起器902可以傳輸日誌切換發起指令1116。日誌切換發起指令1116可以通過如本文別處描述的網絡來被傳輸,以由代理708a、708b等接收。日誌切換發起指令1116向代理708a、708b等指示日誌切換的循環將開始,並且指示代理708a、708b等應當為日誌切換的循環作好準備並且提供用於指示日誌切換的準備就緒的響應。

因此,在接收到日誌切換發起指令1116時,代理708a、708b等分別為日誌切換作好準備。代理可以執行用於日誌切換的一個或多個準備過程。例如,如圖11所示,每個代理708a、708b等可以在結束階段鎖定文件1108a-1108d中的每個結束階段鎖定文件上採用共享鎖,如由代理706a採用的共享鎖1112a-1112d(例如,將共享鎖條目寫入鎖定文件等)、由代理706b採用的共享鎖1114a-1114d等所表示的。

在步驟1006中,從代理中的每個代理接收響應,從多個代理中的代理接收到的每個響應指示代理在多個結束階段鎖定文件中的每個結束階段鎖定文件上採用共享鎖,每個結束階段鎖定文件與多個階段中的相應階段相關聯。在實施例中,如圖12所示,在採用共享鎖之後,代理708a、708b等可以傳輸相應的準備就緒響應1202a、1202b等。準備就緒響應1202a、1202b等可以通過如本文別處描述的網絡被傳輸,以由日誌切換指示符902接收。以這種方式,代理708a、708b和存在的任何其它代理向日誌切換協調器902指示它們準備就緒以針對每個階段執行它們的功能。

注意,如果代理發生故障,如果代理不能夠在結束階段鎖定文件上採用共享鎖中的所有共享鎖,或者如果代理存在另一問題,則代理可能不發送其準備就緒響應和/或準備就緒響應可能不被日誌切換協調器902接收。日誌切換協調器902可以以各種方式被配置為處理其中沒有從一個或多個代理接收到準備就緒響應的情況。例如,日誌切換協調器902可以被配置為中止日誌切換的循環,並且可以向代理傳輸中止命令。在另一實施例中,日誌切換協調器902可以決定在沒有代理的情況下繼續日誌切換的循環。這樣的結果可能是特定的無響應代理不會導致針對其計算設備處的虛擬機的日誌的切換。在假定代理可以趕上日誌切換的隨後循環期間和/或基於任何其他合適的考慮的情況下這可能是可接受的。

因此,以流程圖1000的方式,WOCT協調器900的日誌切換發起器902可以發起日誌切換的循環(步驟802)。如上所述,WOCT協調器900的日誌切換管理器904可以被配置為協調日誌切換的循環(圖8的步驟804)。例如,圖13示出根據示例實施例的提供用於協調日誌切換的階段的過程的流程圖1300。在實施例中,日誌切換管理器904可以根據流程圖1300操作。以下關於圖9和圖11以及圖12來描述流程圖1300。基於以下描述,其他結構和操作實施例對於相關領域的技術人員將是顯而易見的。

流程圖1300開始於步驟1302。在步驟1302中,釋放相關聯的開始階段鎖定文件上的排它鎖,以向代理信號通知該階段的開始。在實施例中,為了向代理706a、706b信號通知階段的開始,日誌切換管理器904可以釋放該階段上的排它鎖。例如,關於圖11,可以期望第一階段(例如,圖4的第一階段412)被執行。在這種情況下,日誌切換管理器904可以釋放開始階段鎖定文件1106a上的排它鎖1110a。日誌切換管理器904可以直接釋放排它鎖(例如,通過從開始階段鎖定文件中移除排它鎖條目),或者可以指示日誌切換發起器902釋放鎖。

一旦在階段的開始階段鎖定文件上釋放排它鎖,則這向代理髮信號通知可以執行該階段的功能。例如,在日誌切換的循環的發起(例如,圖8中的步驟802)之後,代理708a、708b等可以周期性地檢查開始階段鎖定文件1106a-1106d以確定每個階段是否已經開始。當代理確定在開始階段鎖定文件上不存在排它鎖時,這向代理指示該階段已經開始。在這種情況下,代理可以使該階段的功能針對與其虛擬機相關聯的日誌文件被執行。

例如,如果當前階段是第一階段,如圖12所示,日誌切換管理器904可以使得開始階段鎖定文件1106a上的(圖11的)排它鎖1110a被釋放,並且因此在圖12中未示出。代理706a、706b等可以確定排它鎖1110a已經被釋放,並且因此第一階段可以被執行。例如,關於圖4,第一階段412可以被執行,其中如上所述可以初始化新日誌。如果該階段是第二階段,則代理可以確定開始階段鎖定文件1106b上的排它鎖1110b已經被釋放,並且第二階段(例如,圖4的第二階段414)可以被執行。如果該階段是第三階段,則代理可以確定開始階段鎖定文件1106c上的排它鎖1110c已經被釋放,並且第三階段(例如,圖4的第三階段416)可以被執行。如果該階段是第四階段,則代理可以確定開始階段鎖定文件1106d上的排它鎖1110d已經被釋放,並且第四階段(例如,圖4的第四階段418)可以被執行。

從圖13的步驟1302,操作進行到步驟1304。

在步驟1304中,排它鎖被嘗試以被採用在相關聯的結束鎖定文件上,當代理已經釋放了在相關聯的結束鎖定文件上的所有共享鎖時,使得排它鎖能夠被採用,以由代理信號通知該階段的完成。在實施例中,當每個代理已經確認當前階段已經針對其計算設備處的虛擬機而被完成時,該代理在用於該階段的結束階段鎖定文件上釋放其共享鎖(例如,從鎖定文件中移除相應的條目)。當所有代理已經釋放了用於該階段的結束階段鎖定文件上的它們的共享鎖(例如,從結束階段鎖定文件移除的所有共享鎖條目)時,日誌切換管理器904被使得能夠在結束階段鎖定文件上採用排它鎖,指示階段已完成。

例如,參考圖12,日誌切換管理器904嘗試對結束階段鎖定文件1108a採取鎖定。如果任何共享鎖被維持在結束階段鎖定文件1108a上,則日誌切換管理器904不能對結束階段鎖定文件1108a採用排它鎖。如圖12所示,代理708a已經完成了第一階段,並且因此釋放了結束階段鎖定文件1108a上的共享鎖1112a(如圖11所示)。代理708b尚未完成第一階段,因此共享鎖1112b仍然存在於結束階段鎖定文件1108a上,並且日誌切換管理器904仍然不能採用排它鎖。當代理708b釋放共享鎖1112b,並且任何其他代理釋放結束階段鎖定文件1108a上的任何其他共享鎖時,日誌切換管理器904能夠對結束階段鎖定文件1108a採用被示出為排它鎖1204的排它鎖。

從圖13的步驟1304,操作進行到步驟1306。

在步驟1306中,確定是否採用了步驟1304的排它鎖。如果能夠由日誌切換管理器904在用於該階段的結束階段鎖定文件上採用排它鎖,則代理已經信號通知他們已經完成該階段的功能,並且操作進行到步驟1308。如果排它鎖不能夠由日誌切換管理器904在用於該階段的結束階段鎖定文件上採用,則代理中的一個或多個代理尚未完成該階段的功能,並且操作返回到步驟1304。

在步驟1308中,確定當前階段是否是日誌切換循環的最後階段。如果當前階段是日誌切換循環的最後階段(例如,圖4的四階段過程400的第四階段418),則操作進行到步驟1310.如果當前階段不是日誌切換的最後階段循環,操作進行到步驟1312。

在步驟1310中,轉換到下一階段。噹噹前階段被完成時,操作進行到步驟1302,其中日誌切換管理器904發起日誌切換循環的下一階段。

在步驟1312中,日誌切換循環完成。當已經執行日誌切換循環的所有階段時,日誌切換循環完成。

因此,以流程圖1300的方式,WOCT協調器900的日誌切換管理器904可以協調日誌切換的循環(圖8的步驟804)。如上所述,WOCT協調器900的日誌切換管理器904可以被配置為以其他方式協調日誌切換的循環,諸如通過控制代碼和/或除控制代碼之外的其他類型的消息的使用。例如,圖14示出根據示例實施例的用於使用控制代碼來協調日誌切換的步驟1402。步驟1402是針對圖8的步驟804的示例實施例。在步驟1402中,控制代碼被傳輸到計算設備處的多個代理以制定多個階段。WOCT協調器可以被配置為使用控制代碼來以任何方式協調日誌切換過程的階段。

例如,參考7,系統700可以是集群計算系統或網絡。集群計算網絡包括一起工作的一組鬆散連接或緊密連接的節點/計算機(例如,計算設備702、704a、704b等),使得在許多方面它們能夠被視為單個系統。集群的組件通常通過快速區域網(「LAN」)彼此連接,快速區域網可稱為專用集群通信網絡,其中每個節點運行其自己的作業系統實例。計算機集群是高性能分布式計算的使能者。「高可用性集群」(也稱為故障轉移集群或HA集群)是一種包括冗餘節點的計算機集群,冗餘節點然後被用於在系統組件發生故障時提供服務。在計算機集群中,心跳網絡可以存在,其是由集群節點共享的專用網絡,並且被使用以使得集群節點能夠監視彼此的狀態,並且彼此通信(例如,使用控制代碼或「集群代碼」)。根據心跳機制,每個節點在給定間隔中發送被稱為增量的消息(「心跳」),以確認該節點是活動的。稱為「槽(sink)」的接收器節點維持消息的有序列表。一旦從每個節點接收到具有晚於標記時間的時間戳的消息,則系統確定所有節點都正在工作。

因此,在實施例中,WOCT協調器706可以被配置為使用心跳網絡上的控制代碼與代理708a、708b等通信。換句話說,如圖11所示,日誌切換發起指令1116可以由日誌切換發起器902通過集群網絡的心跳網絡被傳輸到代理706a、706b等。此外,可以由代理706a、706b等通過心跳網絡將響應1202a、1202b等傳輸到日誌切換發起者902。此外,日誌切換發起器902和代理706a、706b等可以使用控制代碼和/或消息而不是使用鎖定文件(如圖10-12中以及本文中的相關文本)來通過心跳網絡彼此通信,以協調日誌切換的循環的階段的性能。

例如,圖15示出根據示例實施例的提供用於使用控制代碼來協調日誌切換的階段的過程的流程圖1500。在實施例中,日誌切換管理器904(圖9)可以執行流程圖1500(例如,執行圖14的步驟1402)。以下關於圖5來描述流程圖1500。基於以下描述,其他結構和操作實施例對於相關領域的技術人員將是顯而易見的。

流程圖1500從步驟1502開始。在步驟1502中,發起用於執行日誌切換的時間段。步驟1502(和步驟1508)是可選的。在實施例中,日誌切換管理器904可以維持預定時間段,該預定時間段是要執行日誌切換的完整循環的時間的長度,否則該循環被中止(不發生日誌切換)。該時間段可以被預先配置為具有適合於特定網絡配置的任何長度的時間(例如,100微秒等)。操作從步驟1502進行到步驟1504。

在步驟1504中,控制代碼被傳輸到多個代理。在步驟1504中,控制代碼可以由日誌切換管理器904通過集群網絡發送到代理708a、708b等。控制代碼被代理識別以表示階段的開始。在一個實施例中,相同的控制代碼用於發起所有階段。在另一實施例中,每個階段可以具有其自己的控制代碼,其被配置為在代理處發起階段。

例如,可能期望第一階段(例如,圖4的第一階段412)被執行。在這種情況下,日誌切換管理器904可以向代理708a、708b等傳輸控制代碼。當代理接收到控制代碼時,這向代理信號通知第一階段的功能可以被執行。在這種情況下,代理可以使第一階段的功能關於與其虛擬機相關聯的日誌文件而被。以類似的方式,切換管理器904可以向代理708a、708b等傳輸控制代碼以向代理信號通知第二階段、第三階段、第四階段等的功能可以被執行。

在步驟1506中,等待來自多個代理中的每個代理對所傳輸的控制代碼的響應。在實施例中,日誌切換管理器904可以等待來自代理708a、708b等中的每個代理對所傳輸的控制代碼的響應。代理708a、708b等可以以任何形式(例如,作為響應控制代碼等)通過集群網絡向日誌切換管理器904傳輸響應。當來自所有代理的響應被日誌切換管理器904接收到,指示在各種計算設備處執行階段中的成功時,操作進行到步驟1506。如果沒有從代理接收到響應,則這可以指示在對應的計算設備處執行階段的故障,或者可以指示一些其他故障(例如,通信故障、代理發生故障等)。在這種情況下,操作可以可選地進行到步驟1510,其中日誌切換周期被中止,或者操作可以進行到步驟1506,其中在任何無響應代理(和/或利用階段故障響應的代理)的計算設備處的日誌可能不在當前日誌切換循環期間被切換。

在步驟1508中,確定在接收到對所傳輸的控制代碼的所有響應之前該時間段是否已經超時。如上述步驟1502所示,步驟1508是可選的。在實施例中,在日誌切換循環的執行期間,日誌切換管理器904可以周期性地檢查在步驟1502中發起的時間段是否已經超時。如果時間段已經超時,則操作進行到步驟1510。如果時間段尚未超時,則操作進行到步驟1512。

在步驟1510中,如果代理中的至少一個代理未在預定時間段內利用等待的響應來響應,則日誌切換被中止。在實施例中,步驟1510可以由日誌切換管理器904執行,以結束日誌切換循環而不切換任何日誌。在步驟1510之後,流程圖1510的操作完成。

在步驟1512中,確定當前階段是否是日誌切換循環的最後階段。如果當前階段是日誌切換循環的最後階段(例如,圖4的四階段過程400的第四階段418),則操作進行到步驟1516。如果當前階段不是日誌切換循環的最後階段,則操作進行到步驟1514。

在步驟1514中,轉換到下一階段以用於制定。噹噹前階段被完成時,操作進行到步驟1504,其中日誌切換管理器904發起日誌切換循環的下一階段。

在步驟1516中,日誌切換循環被完成。當已經執行日誌切換循環的所有階段(在可選時間段內)時,日誌切換循環完成。

注意,儘管鎖定文件和控制代碼被呈現為用於協調日誌切換的示例技術,但是根據本文的教導,用於協調日誌切換的其他技術對於相關領域的技術人員來說是顯而易見的,這些技術被涵蓋作為實施例。此外,實施例可以以任何方式被組合。例如,在實施例中,WOCT協調器可以在計算機網絡中同時實現鎖定文件技術(例如,圖10-13)和控制代碼技術(例如,圖14和圖15)。在這樣的實施例中,對於每個階段,可以使用更快速工作的方法(例如,更快地提供階段完成的指示)以更快地移動到下一階段。例如,在一些情況下,鎖定文件方法可能比控制代碼方法能夠完成該階段(例如,響應於接收到的控制代碼的代理)更快地完成階段(例如,代理在結束階段鎖定文件上釋放共享鎖)。在其他情況下,控制代碼方法可能能夠比鎖定文件方法能夠完成階段更快地完成階段。

因此,根據實施例,通過引入不同伺服器中的改變跟蹤機制之間的同步來增強日誌切換以實現跨多個伺服器的寫順序保持。為了對伺服器具有最小的影響,同步在不暫停VM操作並且不必在同步期間執行IO的情況下被實現,並且在相對短的時間量內被完成。同步以不連續的方式被執行,但是以由期望的產品複製頻率指定的特定時間間隔被執行。在實施例中,同步成功率可以僅由伺服器之間的通信速度和由產品指定的超時來限制。因此,通用框架被定義以使得伺服器之間的多個通信信道能夠儘可能快地實現同步。

IV.基於複製日誌的多流應用的複製的示例實施例

如上所述,提供了用於多流應用(例如,生成可以被單獨存儲的多個單獨數據流的應用)的複製的實施例。根據實施例,通過在特定時間處將在先前章節中生成的切換出的日誌應用於副本存儲,應用的經存儲的數據可以被複製和被保持與主存儲數據同步。這樣的實施例可以以各種方式被實現。

例如,圖16示出根據示例實施例的系統1600的框圖,系統1600包括用於協調日誌切換和虛擬盤複製日誌向副本存儲的應用的複製協調器。如圖16所示,系統1600類似於圖7,包括計算設備702和計算設備704a(為了便於說明,計算設備704b和任何其他計算設備未在圖16中示出)。計算設備702包括如圖7中的WOCT協調器706,並且計算設備704a被配置為如圖7所示。在實施例中,如本文別處所描述的,WOCT協調器706可以通過與代理708a通信來協調計算設備704a處的日誌的切換,以及通過與對應代理進行通信來協調在另外的計算設備處的日誌的切換。此外,在圖16中,系統1600包括計算設備1602、計算設備1604a(以及可選的另外的計算設備)、副本存儲器1614a和副本存儲器1614b。另外,計算設備702包括第一複製協調器1606,計算設備1604a包括日誌文件處理代理1612a,副本存儲1614a包括至少一個虛擬盤1616a,並且副本存儲1614b包括至少一個虛擬盤1616b。

在圖16中,計算設備702、計算設備704a、存儲710a和存儲710b被認為是由主側1624指示的主側或主站點組件,並且計算設備1602、計算設備1604a、副本存儲1614a和副本存儲1614b是被認為是由副本側1626指示的輔助側、輔助站點或副本側組件。這是因為副本存儲1614a是用於存儲710a的副本存儲,其中虛擬盤1616a是虛擬盤106a的副本,並且副本存儲1614b是用於存儲710b的副本存儲,其中虛擬盤1616b是虛擬盤106b的副本。與主側1624上的計算設備處的虛擬機相關聯的每個存儲實例在副本側1626上具有對應副本存儲。此外,計算設備1604a(例如,伺服器等)是計算機設備704a的副本側副本。

在實施例中,第一複製協調器1606和第二複製協調器1608一起工作,以使用根據本文中別處描述的技術生成的複製日誌將主側1624上的數據複製到副本側1616。因此,存儲相關數據的多個存儲實例(例如,虛擬盤)可以被同時複製到副本側1616,這有助於維持寫順序一致性。

第一複製協調器1606和第二複製協調器1608可以以各種方式操作以執行它們的功能。例如,圖17示出根據示例實施例的提供用於協調日誌切換和虛擬盤複製日誌向副本存儲的應用的過程的流程圖1700。在實施例中,第一複製協調器1606可以根據流程圖1700操作,第二複製協調器1608可以根據流程圖1700操作,或者複製協調器1606和1608可以協作以執行流程圖1700。基於以下描述,其它結構和操作實施例對於相關領域的技術人員將是顯而易見的。

流程圖1700從步驟1702開始。在步驟1702中,指令被傳輸以執行與多個計算設備處的第一多個虛擬盤相關聯的多個日誌的日誌切換的循環。例如,如圖16所示,計算設備1602(副本側1626)處的複製協調器1608可以生成由計算設備702(主側1624)處的複製協調器1606通過網絡接收的日誌切換指令1628。日誌切換指令1628是用於在包含與跟蹤日誌相關聯的存儲的各種計算設備處執行日誌切換的指令。日誌切換指令1628可以以諸如控制代碼(例如,通過集群網絡)、HTTP請求(例如,通過LAN。WAN等)的任何方式或以另一形式被傳輸。

如圖16所示,響應於接收到日誌切換指令1628,複製協調器1606可以生成由WOCT協調器706接收的第二日誌切換指令1618。日誌切換指令1618指示WOCT協調器706執行日誌切換的循環。響應於接收到日誌切換指令1618,WOCT協調器706可以使得日誌切換的循環將以本文所述的任何方式被執行,諸如根據流程圖800(圖8)等。

注意,在另一實施例中,複製協調器1606可以在沒有已經從複製協調器1608接收到日誌切換指令1628的情況下生成日誌切換指令1618。在實施例中,複製協調器1606和/或複製協調器1608可以使得日誌切換的循環在任何時間被執行(例如,通過生成日誌切換指令),該執行可以是周期性的、在隨機的時間、在預定的時間(例如,根據調度)、當VHD請求隊列322和/或日誌請求隊列342(圖3)變滿時、基於存儲業務量(例如,當數據存儲時間更經常地發生時更頻繁地執行日誌切換)、和/或以其他形式。

在步驟1704中,響應於日誌切換的循環的執行,從計算設備接收多個日誌。例如,如圖16所示,計算設備1602(副本側1626)處的複製協調器1608從計算設備704a接收複製日誌1622a,從計算設備704b(圖7;圖16中未示出)接收複製日誌1622b,並且可以從主側1624上的另外的計算設備接收另外的複製日誌。複製日誌是響應於步驟1702由於本文別處描述的日誌切換的執行而被切換出的日誌。因此,複製日誌與跨多個計算設備和虛擬盤被存儲在主存儲中的數據有關,並且該數據可能需要在存儲範圍內維持的寫順序依賴性。

可以從計算設備處的代理(例如,代理708a等)、從計算設備處的日誌請求處理模塊344和/或從計算設備處的其他源接收複製日誌。在這樣的實施例中,通過多個信道直接和單獨地從其中日誌被生成並被切換出的計算設備接收複製日誌,而不是在一個點處收集複製日誌。這可以實現複製日誌向複製協調器1608(副本側1626)的更快的提供,而不是在複製協調器1606(主側1624)收集複製日誌並且然後將它們傳遞到複製協調器1608,儘管這可以在備選實施例中被實現。從各個計算設備接收日誌實現針對系統1600的更大可伸縮性。

參考回圖17,在步驟1706中,接收到的多個日誌中的每個日誌被標記以至少指示日誌切換的循環。在實施例中,複製協調器1608可以包括日誌文件標記器1610。日誌文件標記器1610被配置為至少利用標識日誌切換的特定循環的信息(例如,利用循環標識符/代碼)來標記每個接收到的複製日誌。以這種方式,可以將特定循環的複製日誌同時應用於副本存儲以使得寫命令能夠被維持。日誌文件標記器1610可以以任何方式標記複製日誌,諸如通過在日誌文件的頭部中、在日誌文件的主體中、作為與日誌文件相關聯的元數據、在日誌文件的文件名、和/或以任何其他方式提供日誌切換循環的指示。

注意,在另一實施例中,每個代理708a等可以包括日誌文件標記器1610,其在從主側1624被傳輸之前標記複製日誌1622a、1622b等。在又一實施例中,每個計算設備704a等可以包括與計算設備處的對應代理708a等分離的日誌文件標記器1610。

在步驟1708中,經標記的多個日誌被提供以啟用第二多個虛擬盤中的寫順序一致存儲點。在實施例中,如圖16所示,複製協調器1608可以傳輸經標記的複製日誌1624,其包括已經利用日誌切換循環標識符來標記的複製日誌1622a、1622b等的版本。在實施例中,計算設備1604a處的日誌文件處理代理1612a以及另外的計算設備處的另外的日誌文件處理代理可以接收經標記的複製日誌1624。經標記的複製日誌1624可以以任何方式被傳輸到日誌文件處理代理,諸如通過集群網絡、通過LAN、WAN等或以其他形式被傳輸。

在實施例中,每個計算設備接收適用於與其相關聯的副本存儲的經標記的複製日誌1624中的一個或多個經標記的複製日誌。例如,在圖16的示例中,在其中副本存儲1614a的虛擬盤1616a對應於存儲710a的虛擬盤106a並且副本存儲器1614b的虛擬盤1616b對應於存儲710b的虛擬盤106b的情況下,計算設備1604a可以接收從計算設備704a切換出的複製日誌112a和112b的經標記的版本。

在實施例中,在相應計算設備處的日誌文件處理代理1612a等將被包括在接收到的經標記的複製日誌中的存儲訪問請求應用於虛擬存儲中的對應虛擬盤。複製協調器1608協調複製日誌的應用,使得以相同循環標記的複製日誌被日誌文件處理代理1612a等並行應用。複製協調器1608可以要求日誌文件處理代理1612a等全部向複製協調器1608傳輸確認/響應,在複製協調器1608將允許來自主側1624上的日誌切換的下一循環的經標記的日誌開始由日誌文件處理代理應用到副本側1626上的副本存儲之前,日誌文件處理代理1612a等的複製日誌中的每個複製日誌被成功應用於它們的副本存儲。

以這種方式,在時間點(例如,針對循環發起日誌切換的時間)處,虛擬盤中的數據被更新並與主存儲中的相應虛擬盤同步。例如,從存儲710a切換出的複製日誌112a的經標記的版本可以包括被應用於虛擬盤106a之一的存儲訪問請求。日誌文件處理代理1612a被配置為將存儲訪問請求(例如,數據寫入)應用到副本存儲器1614a中的虛擬盤1616a中的對應虛擬盤。以這種方式,虛擬盤1616a的副本虛擬盤在時間上被提前以與虛擬盤106a的對應主虛擬盤同步(假設在主虛擬盤上尚未執行另外的寫入)。因此,多VM寫順序一致點被創建在副本側1626上的副本存儲1614a、1614b等中。標記使得能夠在副本側1626上對在主側1626上的相同日誌切換循環中創建的所有日誌的聚集/收集。跨副本側1626上的計算設備的日誌文件處理代理在它們的副本存儲上執行類似的操作,以使它們相應的虛擬盤與主存儲中的對應虛擬盤同步。

因此,實施例為跨多個主機分布的應用提供一致的時間點,以編排數據流從主站點主機到輔助站點(副本)主機的複製。用於主站點上的每個多流應用的協調器(例如,複製協調器1606)與輔助站點上的其副本(例如,複製協調器1608)協調,以發起和驅動複製循環。為了實現接近同步的RPO(恢復點目標),編排機制施加相對小的開銷並通過卸載每個數據流的主主機和輔助主機之間的實際數據傳輸來提供複製信道的高並行性。在一個應用中,可以利用先前章節的日誌切換技術來產生跨數據流的寫順序一致時間點。存儲改變根據當前章節的實施例被複製到目標副本存儲,並且創建用於故障轉移/測試、故障轉移等目的的時間點副本。對於一組計算設備,期望標識恢復跨屬於相同複製循環的所有計算設備的複製流的時間點。輔助站點上的協調器(複製協調器)保持對在複製循環期間在主側上的組的所有計算設備處接收到的改變的跟蹤,確定是否可以產生恢復點,並且保持對適合於輔助站點上對應的計算設備組的故障轉移的這樣的恢復點的跟蹤。編排器還對落在後面或完全失效的一個或多個計算機設備具有彈性,並且提供用於組中的所有計算設備的複製被同步的框架。

注意,在實施例中,主側和副本側複製協調器可以被配置為處理每個階段處的故障,諸如在日誌切換期間寫順序一致日誌的生成期間的故障、向副本側傳輸子集/全部日誌的故障、在副本側上應用日誌的故障等。此外,當主側計算設備的子集未能參與日誌切換/複製循環時,複製協調器可以被配置為支持(未發生故障的)主側計算設備的日誌的傳輸或者來自(未發生故障的)主側計算設備的日誌的傳輸,而發生故障的子集自動恢復(或被手動恢復)。當存在時,這些特徵使得多流複製方案能夠是容錯的,具有從分布式系統中常見和/或預期的這種故障中恢復的能力(其可以自動的)。

V.示例移動和固定設備實施例

虛擬機104、SRPM 108、RMM 110、存儲寫控制模塊208、VHD接口304、VHD解析器306、VHD接口308、IOCTL處理器312,VHD請求處理模塊324、日誌請求處理模塊344、VMMS340、WOCT協調器706、代理708a、代理708b、WOCT協調器900、日誌切換發起器902、日誌切換管理器904、複製協調器1606、複製協調器1608、日誌文件標記器1610、日誌文件處理代理1612a、過程400、狀態圖500、過程600、流程圖700、流程圖800、流程圖1000、流程圖1300、步驟1402、流程圖1500和流程圖1700可以被實現在硬體或與軟體和/或固件結合的硬體中。例如,虛擬機104、SRPM 108、RMM 110、存儲寫控制模塊208、VHD接口304、VHD解析器306、VHD接口308、IOCTL處理器312、VHD請求處理模塊324、日誌請求處理模塊344、VMMS 340、WOCT協調器706、代理708a、代理708b、WOCT協調器900、日誌切換發起器902、日誌切換管理器904、複製協調器1606、複製協調器1608、日誌文件標記器1610,日誌文件處理代理1612a、過程400、狀態圖500、過程600、流程圖700、流程圖800、流程圖1000、流程圖1300、步驟1402、流程圖1500和/或流程圖1700可被實現為電腦程式代碼/指令,其被配置為在一個或多個處理器中被執行並被存儲在計算機可讀存儲介質中。備選地,虛擬機104、SRPM 108、RMM 110、存儲寫控制模塊208、VHD接口304、VHD解析器306、VHD接口308、IOCTL處理器312、VHD請求處理模塊324、日誌請求處理模塊344、VMMS 340、WOCT協調器706、代理708a、代理708b、WOCT協調器900、日誌切換發起器902、日誌切換管理器904、複製協調器1606、複製協調器1608、日誌文件標記器1610,日誌文件處理代理1612a、過程400、狀態圖500、過程600、流程圖700、流程圖800、流程圖1000、流程圖1300、步驟1402、流程圖1500和/或流程圖1700可以被實現為硬體邏輯/電子電路。

例如,在一個實施例中,虛擬機104、SRPM 108、RMM 110、存儲寫控制模塊208、VHD接口304、VHD解析器306、VHD接口308、IOCTL處理器312、VHD請求處理模塊324、日誌請求處理模塊344、VMMS 340、WOCT協調器706、代理708a、代理708b、WOCT協調器900、日誌切換發起器902、日誌切換管理器904、複製協調器1606、複製協調器1608、日誌文件標記器1610,日誌文件處理代理1612a、過程400、狀態圖500、過程600、流程圖700、流程圖800、流程圖1000、流程圖1300、步驟1402、流程圖1500和/或流程圖1700中的一項或多項可以在任何組合中一起被實現在SoC中。SoC可以包括集成電路晶片,其包括處理器(例如,中央處理單元(CPU)、微控制器、微處理器、數位訊號處理器(DSP)等)、存儲器、一個或多個通信接口、和/或其它電路中的一項或多項,並且可以可選地執行接收到的程序代碼和/或包括用於執行功能的嵌入的固件。

圖18描繪了其中可以實現實施例的計算設備1800的示例性實現。例如,系統100、系統200、計算設備702、計算設備704a、計算設備704b、計算設備1602和/或計算設備1604a可以被實現在類似於移動或固定計算機實施例中的計算設備1800的一個或多個計算設備中,包括計算設備1800的一個或多個特徵和/或備選特徵。本文提供的對計算設備1800的描述出於說明的目的而被提供,並且不旨在限制。如相關領域的技術人員所知,實施例可以被實現在其他類型的計算機系統中。

如圖18所示,計算設備1800包括被稱為處理器電路1802的一個或多個處理器、系統存儲器1804和將包括系統存儲器1804的各種系統組件耦合到處理器電路1802的總線1806。處理器電路1802是電子和/或光學電路,其作為中央處理單元(CPU)、微控制器、微處理器和/或其他物理硬體處理器電路而被實現在一個或多個物理硬體電子電路設備元件和/或集成電路設備(半導體材料晶片或模具)中。處理器電路1802可以執行存儲在計算機可讀介質中的程序代碼,諸如作業系統1830的程序代碼、應用1832、其他程序1834等。總線1806表示幾種類型的總線結構中的任一種類型的總線結構中的一個或多個,包括存儲器總線或存儲器控制器、外圍總線、加速圖形埠、以及使用各種總線架構中的任一種總線架構的處理器或局部總線。系統存儲器1804包括只讀存儲器(ROM)1808和隨機存取存儲器(RAM)1810。基本輸入/輸出系統1812(BIOS)被存儲在ROM 1808中。

計算設備1800還具有以下驅動器中的一個或多個:用於從硬碟讀取和向其寫入的硬碟驅動器1814、用於從可拆卸磁碟1818讀取或向其寫入的磁碟驅動器1816、以及用於從可拆卸光碟1822讀取或向其寫入的光碟驅動器1820,諸如CD ROM,DVD ROM或其他光學介質。硬碟驅動器1814、磁碟驅動器1816和光碟驅動器1820分別通過硬碟驅動器接口1824、磁碟驅動器接口1826和光碟機動器接口1828連接到總線1806。驅動器及其相關聯的計算機可讀介質為計算機提供計算機可讀指令、數據結構、程序模塊和其他數據的非易失性存儲。儘管描述了硬碟、可拆卸磁碟和可拆卸光碟,但是其它類型的基於硬體的計算機可讀存儲介質也可以用於存儲數據,諸如快閃記憶體卡、數字視頻盤、RAM、ROM和其他硬體存儲介質。

大量程序模塊可以被存儲在硬碟、磁碟、光碟、ROM或RAM上。這些程序包括作業系統1830、一個或多個應用1832、其他程序1834和程序數據1836。應用1832或其他程序1834可以包括例如計算機邏輯(例如,電腦程式代碼或指令),該計算機邏輯用於實現虛擬機104、SRPM 108、RMM 110、存儲寫控制模塊208、VHD接口304、VHD解析器306、VHD接口308、IOCTL處理器312、VHD請求處理模塊324、日誌請求處理模塊344、VMMS 340、WOCT協調器706、代理708a、代理708b、WOCT協調器900、日誌切換發起器902、日誌切換管理器904、複製協調器1606、複製協調器1608、日誌文件標記器1610、日誌文件處理代理1612a、過程400、狀態圖500、流程圖700、流程圖800、流程圖1000、流程圖1300、步驟1402、流程圖1500和/或流程圖1700(包括過程400、600、狀態機500、流程圖700、800、1000、1300、1500、1700的任何合適的步驟),和/或本文所述的其它實施例。

用戶可以通過諸如鍵盤1838和定點設備1840的輸入設備將命令和信息輸入到計算設備1800中。其他輸入設備(未示出)可以包括麥克風、操縱杆、遊戲板、衛星天線、掃描儀、觸控螢幕和/或觸摸板、用於接收語音輸入的語音識別系統、用於接收手勢輸入的手勢識別系統等。這些和其他輸入設備通常通過耦合到總線1806的串行埠接口1842被連接到處理器電路1802,但是可以通過諸如並行埠、遊戲埠或通用串行總線(USB)等其他接口被連接。

顯示屏1844還經由諸如視頻適配器1846之類的接口被連接到總線1806。顯示屏1844可以在計算設備1800的外部或被結合在計算設備1800中。顯示屏1844可以顯示信息,以及作為用於接收用戶命令和/或其他信息(例如,通過觸摸、手指手勢、虛擬鍵盤等)的用戶界面。除了顯示屏1844之外,計算設備1800可以包括諸如揚聲器和印表機的其他外圍輸出設備(未示出)。

計算設備1800通過適配器或網絡接口1850、數據機1852或用於通過網絡建立通信的其它裝置被連接到網絡1848(例如,網際網路)。如圖18所示,可以是內部或外部的數據機1852可以經由串行埠接口1842被連接到總線1806,或者可以使用包括並行接口的另一接口類型被連接到總線1806。

如本文所使用的,術語「電腦程式介質」,「計算機可讀介質」和「計算機可讀存儲介質」通常用於指代物理硬體介質,諸如與硬碟驅動器1814相關聯的硬碟、可拆卸磁碟1818、可拆卸光碟1822、其他物理硬體介質(諸如RAM、ROM、快閃記憶體卡、數字視頻盤、壓縮盤、MEMS、基於納米技術的存儲設備的其他物理硬體介質)以及其他類型的物理/有形硬體存儲介質。這樣的計算機可讀存儲介質與通信介質區分開並且不重疊(不包括通信介質)。通信介質通常在諸如載波的經調製的數據信號中體現計算機可讀指令、數據結構、程序模塊或其他數據。術語「經調製的數據信號」意指具有以在信號中編碼信息的方式使其特性中的一個或多個特性被設置或改變的信號。通過示例而非限制的方式,通信介質包括諸如聲學、RF、紅外和其他無線介質的無線介質以及有線介質。實施例還涉及這樣的通信介質。

如上所述,電腦程式和模塊(包括應用1832和其他程序1834)可以被存儲在硬碟、磁碟、光碟、ROM、RAM或其它硬體存儲介質上。這樣的電腦程式還可以經由網絡接口1850、串行埠接口1842或任何其它接口類型被接收。這樣的電腦程式當由應用執行或加載時,使得計算設備1800能夠實現這裡討論的實施例的特徵。因此,這樣的電腦程式表示計算設備1800的控制器。

實施例還涉及包括存儲在任何計算機可讀介質上的計算機代碼或指令的電腦程式產品。這樣的電腦程式產品包括硬碟驅動器、光碟驅動器、存儲器設備包,可攜式存儲棒,存儲卡和其他類型的物理存儲硬體。

VI.示例實施例

在一個實施例中,提供了一種寫順序一致跟蹤(WOCT)協調器中的方法,包括:發起與多個計算設備處的多個虛擬盤相關聯的多個日誌的日誌切換的循環,所述虛擬盤存儲在所述虛擬盤之間依賴於寫順序的數據,所述多個計算設備中的每個計算設備包括以下至少一項:所述多個虛擬盤中的、從應用接收存儲訪問請求的虛擬盤,所述存儲訪問請求包括寫請求,和多個日誌中的與所述虛擬盤相對應的日誌,所述日誌接收與所述存儲訪問請求相對應的日誌隊列條目;以及跨所述虛擬盤協調所述多個計算設備處的所述多個日誌的所述日誌切換的所述循環,以維持針對寫順序的請求的請求排序。

在實施例中,所述協調包括:制定多個階段以引起所述多個計算設備處的所述多個日誌的所述切換。

在實施例中,所述發起包括:在多個開始階段鎖定文件中的每個開始階段鎖定文件上採用排它鎖,每個開始階段鎖定文件與所述多個階段中的對應階段相關聯;以及將日誌切換發起指令傳輸到所述計算設備處的多個代理,每個計算設備包括所述多個代理中的對應代理。

在實施例中,所述發起還包括:從所述代理中的每個代理接收響應,從所述多個代理中的代理接收到的每個響應指示所述代理在多個結束階段鎖定文件中的每個結束階段鎖定文件上採用共享鎖,每個結束階段鎖定文件與所述多個階段中的對應階段相關聯。

在實施例中,所述多個階段中的每個階段通過執行以下操作來被制定:釋放相關聯的開始階段鎖定文件上的所述排它鎖以向所述代理信號通知所述階段的開始,嘗試在相關聯的結束階段鎖定文件上採用排它鎖,當由已經釋放所述相關聯的結束階段鎖定文件上的所有共享鎖的代理啟用時,在所述相關聯的結束階段鎖定文件上採用所述排它鎖,以由所述代理表示所述階段的完成,以及轉換到制定下一階段,直到所述多個階段中的最後階段被完成。

在實施例中,所述制定多個階段包括:制定第一階段,在所述第一階段期間新日誌在所述多個計算設備中的每個計算設備處被初始化;制定第二階段,在所述第二階段期間接收到的日誌隊列條目被阻止由所述多個計算設備處的所述日誌接收;制定第三階段,在所述第三階段期間所述新日誌被配置為被用於在所述多個計算設備中的每個計算設備處接收所述日誌隊列條目,並且接收到的日誌隊列條目由被解除阻止所述多個計算設備處的所述日誌接收;以及制定第四階段,在所述第四階段期間所述日誌切換被完成。

在實施例中,所述協調包括:向所述計算設備處的多個代理傳輸控制代碼和/或消息以制定所述多個階段,每個計算設備包括所述多個代理中的對應代理。

在實施例中,所述多個階段中的每個階段通過執行以下操作被制定:向所述多個代理傳輸控制代碼;等待來自所述多個代理中的每個代理對所傳輸的所述控制代碼的響應;如果所述代理中的至少一個代理未在預定時間段內利用所等待的所述響應來針對要被完成的所述多個階段做出響應,則中止所述日誌切換;以及如果所有代理在所述預定時間段內做出響應,則轉換到制定下一階段,所述轉換包括當所述多個階段中的最後階段被完成時完成所述日誌切換。

在另一實施例中,一種寫命令一致跟蹤(WOCT)協調器包括:日誌切換發起器,其被配置為與多個計算設備處的多個代理通信,以發起與所述多個計算設備處的所述多個虛擬盤相關聯的多個日誌的日誌切換的循環,所述日誌切換的循環包括針對對應新日誌切換出每個當前日誌,所述多個計算設備中的每個計算設備包括以下至少一項:所述多個虛擬盤中的、從應用接收存儲訪問請求的虛擬盤,所述存儲訪問請求包括寫請求,和多個日誌中的與所述虛擬盤相對應的日誌,所述日誌接收與所述存儲訪問請求相對應的日誌隊列條目;以及日誌切換管理器,其被配置為協調所述多個計算設備處的所述多個日誌的所述日誌切換的循環,以維持針對跨虛擬盤的依賴寫順序的請求的請求排序。

在實施例中,日誌切換管理器被配置為制定多個階段以引起所述多個計算設備處的所述多個日誌的所述切換的循環。

在實施例中,對於所述日誌切換的循環,所述日誌切換發起器被配置為:在多個開始階段鎖定文件中的每個開始階段鎖定文件上採用排它鎖,每個開始階段鎖定文件與所述多個階段中的對應階段相關聯;以及將日誌切換發起指令傳輸到所述計算設備處的所述多個代理以發起所述日誌切換。

在實施例中,所述日誌切換發起器被配置為從所述代理中的每個代理接收響應,從所述多個代理中的代理接收到的每個響應指示所述代理在多個結束階段鎖定文件中的每個結束階段鎖定文件上採用共享鎖,每個結束階段鎖定文件與所述多個階段中的對應階段相關聯。

在實施例中,為了制定所述多個階段中的每個階段,所述日誌切換管理器被配置為:釋放由所述日誌切換發起器在相關聯的開始階段鎖定文件上採用的所述排它鎖以向所述代理信號通知所述階段的開始,嘗試在相關聯的結束階段鎖定文件上採用排它鎖,當由已經釋放所述相關聯的結束階段鎖定文件上的所有共享鎖的代理啟用時,在所述相關聯的結束階段鎖定文件上採用所述排它鎖,以由所述代理表示所述階段的完成,以及轉換到制定下一階段,直到所述多個階段中的最後階段被完成。

在實施例中,為了制定所述多個階段中的每個階段,所述日誌切換管理器被配置為:向所述多個代理傳輸控制代碼;等待來自所述多個代理中的每個代理對所傳輸的所述控制代碼的響應;如果所述代理中的至少一個代理未在預定時間段內利用所等待的所述響應來針對要被完成的所述多個階段做出響應,則中止所述日誌切換;以及如果所有代理在所述預定時間段內做出響應,則轉換到制定下一階段,當所述多個階段中的最後階段被完成時所述日誌切換被完成。

在另一實施例中,提供了一種複製協調器中的方法,包括:傳輸指令以執行與主側上的多個計算設備處的第一多個虛擬盤相關聯的多個日誌的日誌切換的循環,所述第一多個虛擬盤存儲分布式應用的數據,所述多個日誌中的每個日誌與所述第一多個虛擬盤中的虛擬盤相關聯,所述第一多個虛擬盤中的每個虛擬盤被配置為從所述分布式應用接收存儲訪問請求,並且相應日誌被配置為接收與所述存儲訪問請求相對應的日誌隊列條目;響應於所述日誌切換的循環的執行,從所述計算設備接收多個日誌;標記接收到的所述多個日誌中的每個日誌以至少指示所述日誌切換的循環;提供經標記的所述多個日誌以啟用副本側上的第二多個虛擬盤中的寫順序一致存儲點,所述寫順序一致存儲點是在時間點處在所述主側上的所述第一多個虛擬盤的副本,所述存儲訪問請求適用於使所述第二多個虛擬盤與所述第一多個虛擬盤同步。

在實施例中,所述傳輸包括:指示寫入一致性跟蹤(WOCT)協調器協調所述日誌切換的循環。

在實施例中,所述提供包括:將經標記的所述多個日誌傳輸到第二複製協調器,所述第二複製協調器被配置為協調所述存儲訪問請求向所述第二多個虛擬盤的應用,所述第一複製協調器和所述第二複製協調器分別被配置為處理故障,包括處理所述多個日誌的生成期間的故障、在所述副本側用於接收所述多個日誌的子集的故障、或者在所述副本側將所述多個日誌中的全部日誌應用於所述第二多個虛擬盤的故障中的至少一個故障。

在實施例中,當所述主側上的所述多個計算設備的子集無法參與所述日誌切換的循環時,所述第一複製協調器和所述第二複製協調器支持當所述子集恢復時將所述多個計算設備中的其他計算設備的所述多個日誌傳輸到所述副本側。

在實施例中,所述提供包括:將經標記的所述多個日誌提供給第二多個計算設備處的多個代理,以將所述存儲訪問請求應用於所述第二多個虛擬盤;並且所述方法還包括:等待來自所述多個代理的、經標記的所述多個日誌被成功地應用於所述第二多個虛擬盤的確認;以及響應於從所述多個代理接收到所述確認,使得經標記的日誌的第二集合能夠被應用於所述第二多個虛擬盤。

在實施例中,響應於所述日誌切換的循環的執行,所述從所述計算設備接收多個日誌包括:從主側上的所述多個計算設備中的對應計算設備單獨地接收所述多個日誌中的每個日誌主側。

VII.結論

雖然上面已經描述了本發明的各種實施例,但是應當理解,它們僅僅已經通過示例而非限制的方式被呈現。相關領域的技術人員將理解,在不脫離所附權利要求中限定的本發明的精神和範圍的情況下,可以在形式和細節上做出各種改變。因此,本發明的寬度和範圍不應被上述示例性實施例中的任何示例性實施例限制,而應當僅根據以下權利要求及其等同物來限定。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀