用于制作存儲裝置快照的系統和方法
【專利摘要】提供一種用于制作存儲裝置快照的系統和方法。一種用于制作卷快照的方法包含:將所述卷設置為只讀模式;接收對所述卷的訪問嘗試;以及在所述訪問嘗試是寫入訪問嘗試的情況下,在緩沖區中緩沖與所述寫入訪問嘗試相關的信息,并且基于與所述寫入訪問嘗試相關的所述信息更新快照指示符,其中所述快照指示符包含關于所述卷中的特定塊的塊信息,所述塊是所述寫入訪問嘗試的目標。所述方法還包含在所述訪問嘗試是讀取訪問嘗試的情況下,提供在所述讀取訪問嘗試中請求的讀取信息,其中所述讀取信息是基于所述卷,或者基于所述快照指示符、所述緩沖器以及緩沖區指示符的組合。
【專利說明】用于制作存儲裝置快照的系統和方法
相關申請案的交叉參考
[0001]本發明要求2011年7月I日遞交的發明名稱為“用于制作存儲裝置快照的系統和方法(System and Method for Making Snapshots of Storage Devices),,的第 13/175251號美國非臨時申請案和2011年8月23日遞交的發明名稱為“用于提供可靠存儲的系統和方法(System and Method for Providing Reliable Storage),,的第 13/215345 號美國非臨時申請案的在先申請優先權,這兩個在先申請的內容都以引用的方式并入本文中。
【技術領域】
[0002]本發明大體涉及信息存儲,并且更確切地說,涉及一種用于制作存儲裝置快照的系統和方法。
【背景技術】
[0003]一般情況下,計算系統的用戶需要存儲數據、應用程序等。通常,這些數據、應用程序等可存儲在存儲裝置上,所述存儲裝置可位于用戶本地、位于用戶異地或這兩者的組合。
[0004]存儲系統的一個重要特征可能是在特定時間點獲得存儲裝置狀態(或所述存儲裝置狀態的一部分)的快照以及從所述快照中創建新的存儲卷的能力。所述快照可允許用戶在不需要做許多工作的情況下就能恢復到先前的狀態。
[0005]例如,設想用戶在云計算環境中操作虛擬機。用戶可能需要創建和維持磁盤卷,有效地,維持虛擬塊裝置。對于所述虛擬機來說,所述磁盤卷可表現本地裝置,例如磁盤驅動器,但是可存儲在云計算基礎設施內的許多位置上。所述用戶可能需要創建和刪除卷,將所述卷附接至虛擬機并從虛擬機拆除,創建快照,并且從這種快照創建新的卷。
[0006]創建磁盤卷快照的一種先前技術涉及在另一個磁盤驅動器或一個遠程存儲裝置上制作所述磁盤卷的受保護的副本,并且允許用戶訪問(例如,讀取和/或寫入)所述磁盤卷。然而,如果所述磁盤卷較大,那么制作所述磁盤卷的副本可能花費很長時間,并且可能需要傳送大量的信息以及需要許多處理。
[0007]因此,需要能夠用最少處理和數據傳送來創建磁盤卷的快照。
【發明內容】
[0008]通過本發明的實例實施例,提供一種用于制作存儲裝置快照的系統和方法,通常可解決或避免這些和其它問題,且通常可獲得技術優勢。
[0009]根據本發明的一項實例實施例,提供一種用于制作卷快照的方法。所述方法包含:將所述卷設置為只讀模式;接收對所述卷的訪問嘗試;以及在所述訪問嘗試是寫入訪問嘗試的情況下,在緩沖區中緩沖與所述寫入訪問嘗試相關的信息,并且基于與所述寫入訪問嘗試相關的所述信息更新快照指示符,其中所述快照指示符包含關于所述卷中的特定塊的塊信息,所述塊是所述寫入訪問嘗試的目標。所述方法還包含在所述訪問嘗試是讀取訪問嘗試的情況下,提供在所述讀取訪問嘗試中請求的讀取信息,其中所述讀取信息基于所述卷,或者基于所述快照指示符、所述緩沖區和緩沖區指示符的組合。
[0010]根據本發明的另一項實例實施例,提供一種操作方法。所述方法包含接收將卷狀態回退的請求;確定對應于所述狀態的快照;確定是否至少一個中間快照存在于所述快照和所述卷的初始快照之間;基于所述快照向所述卷應用改變;以及在所述至少一個中間快照存在并且中間改變并非針對所述卷中受到所述快照影響的塊的情況下,基于所述至少一個中間快照向所述卷應用中間改變。
[0011]根據本發明的另一項實例實施例,提供一種裝置。所述裝置包含:卷控制單元;網絡接口 ;請求處理單元,其耦合到所述網絡接口 ;快照位圖控制單元,其耦合到所述請求處理單元;寫入緩沖區控制單元,其耦合到所述請求處理單元和所述卷控制單元;以及數據處理單元,其耦合到所述請求處理單元。所述卷控制單元為卷設置讀取和/或寫入權限,所述網絡接口接收制作所述卷的快照的請求并且接收對所述卷的訪問嘗試,并且所述請求處理單元確定訪問請求的性質。所述快照位圖控制單元基于寫入訪問嘗試更新快照指示符,其中所述快照指示符包含關于所述卷中的特定塊的塊信息,所述塊是所述寫入訪問嘗試的目標。所述寫入緩沖區控制單元緩沖與對所述卷的所述寫入訪問嘗試相關的信息,并且基于與所述寫入訪問嘗試相關的信息更新緩沖區指示符。所述數據處理單元從所述卷或者從快照指示符、緩沖區和緩沖區指示符的組合產生在讀取訪問中請求的讀取信息。
[0012]根據本發明的另一項實例實施例,提供一種裝置。所述裝置包含:卷控制單元;接收器;寫入緩沖區控制單元,其與所述接收器和所述卷耦合;快照位圖控制單元,其與所述接收器耦合;以及數據處理單元,其與所述接收器和所述卷耦合。所述卷控制單元將卷設置為只讀模式,所述接收器接收對所述卷的訪問嘗試,所述訪問嘗試是寫入訪問嘗試或者讀取訪問嘗試。當所述訪問嘗試是寫入訪問嘗試時,所述寫入緩沖區控制單元在緩沖區中緩沖與對卷的寫入訪問嘗試相關的信息。當所述訪問嘗試是寫入訪問嘗試時,所述快照位圖控制單元基于所述寫入訪問嘗試更新快照指示符,其中所述快照指示符包含關于所述卷中的特定塊的信息,所述塊是所述寫入訪問嘗試的目標。當所述訪問嘗試是讀取訪問嘗試時,所述數據處理單元基于所述卷或者所述快照指示符、所述緩沖區和緩沖區指示符提供在所述讀取訪問嘗試中請求的讀取信息。
[0013]本文中揭示的一個優勢是需要進行復制以制作快照的信息量可能明顯少于先前技術中快照技術中的信息量,因此,快照可在更短時間內用更少的處理制作。
[0014]實例實施例的另一個優勢是,由于快照可能在資源較少情況下會更加迅速地出現,所以可更加頻繁地獲得所述快照。可制作多個快照以允許恢復到許多狀態。
[0015]前述內容已非常廣泛地概述了本發明的特征和技術優點,以使得可較好地理解隨后對所述實施例的詳細描述。下文中將描述所述實施例的額外特征和優點,其形成本發明的權利要求書的標的物。所屬領域的技術人員應了解,所揭示的概念和具體實施例可容易地用作用于修改或設計用于實現本發明的相同目的的其它結構或過程的基礎。所屬領域的技術人員還應意識到,此類等效構造不脫離所附權利要求書中所闡述的本發明的精神和范圍。
【專利附圖】
【附圖說明】
[0016]為更完整地理解本發明及其優點,現在參考以下結合附圖進行的描述,在附圖中:
[0017]圖1圖示了根據本文中所描述的實例實施例的實例計算環境;
[0018]圖2a詳細圖示了根據本文中所描述的實例實施例的實例計算系統;
[0019]圖2b詳細圖示了根據本文中所描述的實例實施例的存儲裝置;
[0020]圖3圖示了根據本文中所描述的實例實施例的實例存儲裝置,其在獲取快照過程中允許讀取和/或寫入訪問;
[0021]圖4圖示了根據本文中所描述的實例實施例,在利用卷快照過程中的用戶操作的實例流程圖;
[0022]圖5圖示了根據本文中所描述的實例實施例,在制作卷快照過程中的控制器操作的實例流程圖;
[0023]圖6圖示了根據本文中所描述的實例實施例,在完成非增量快照后的操作中的控制器操作的實例流程圖;
[0024]圖7圖示了根據本文中所描述的實例實施例,在完成增量快照后的操作中的控制器操作的實例流程圖;
[0025]圖8圖示了根據本文中所描述的實例實施例,在使用快照恢復卷狀態過程中的控制器操作的實例流程圖;
[0026]圖9提供根據本文中所描述的實例實施例的第一實例裝置;以及
[0027]圖10提供根據本文中所描述的實例實施例的第二實例裝置。
【具體實施方式】
[0028]下文將詳細討論對各項實施例的實施和使用。但是應了解,本發明提供可實施于廣泛的各種具體環境中的許多可應用的發明概念。所論述的具體實施例僅僅說明用以制作和使用本發明的具體方式,而不限制本發明的范圍。
[0029]本發明將關于特定上下文,S卩,云計算環境中的實例實施例而描述,其中用戶具有要存儲到存儲裝置中的信息。然而,本發明也可應用到其它計算環境中,例如,客戶端-服務器、獨立局、瘦客戶機等計算環境,其中用戶具有要存儲在存儲裝置中的信息。
[0030]圖1圖示了計算環境100。計算環境100包含可能正在使用耦合到存儲裝置115的計算機110的用戶105。用戶105可使用存儲裝置115來存儲信息,例如數據、媒體以及應用程序等。計算機110可使用存儲在存儲裝置115中的應用程序來處理數據、顯示媒體
坐寸ο
[0031]盡管已理解計算環境可采用由多個用戶使用的多個計算機并且能夠在多個存儲裝置上存儲信息,但是為了簡化,只說明一個用戶、一個計算機和一個存儲裝置。
[0032]存儲裝置115可實現為直接耦合到計算機110的固態存儲器120 (例如,閃速存儲器、固態硬盤驅動器等)和/或磁性媒體125 (例如,磁盤驅動器、磁帶等),或者實現為通過網絡接口 135和接入網絡140耦合到計算機110的遠程存儲器130。存儲裝置115也可實現為上述裝置的組合。
[0033]如先前所討論的,可獲得快照來保存存儲裝置、存儲裝置的卷、存儲裝置的一部分、存儲裝置上的一個文件或存儲裝置上的一組文件等的狀態。快照可用于創建存儲裝置上的信息的副本或備份,以防止無意訛用和/或刪除,允許回退等。例如,可在特定的時間獲取快照,例如,在工作日結束的時候或在工作日開始的時候。隨后,當信息被改變、刪除、擴增等時,如果有需要的話,可以恢復到保存的狀態(即,快照中的一個)。
[0034]然而,如果獲得快照需要太多時間和/或開銷時,用戶可能不愿意獲得快照或者獲得所需的那么多快照。例如,設想獲得快照可能需要幾分鐘來完成的情況,在此過程中,用戶的系統可能經歷明顯的性能降低。用戶可能不愿意在每當有需要時就承受這樣的性能降低。然而,如果獲得快照僅需幾秒鐘就能完成和/或性能降低較小,用戶可能會覺得對性能的影響相比較而言是能夠接受的。此外,更快更容易的快照可誘發用戶更加頻繁地制作快照。
[0035]圖2a詳細圖示了計算系統200。計算系統200包含計算機205。塊存儲提供者(BSP)節點210可能與計算機205耦合。BSP節點210可用來存儲計算機205所使用的信息,并且可實施先進的特征,例如,快照。BSP節點210可由塊資源管理器(BRM) 215管理,所述塊資源管理器215可管理卷在例如BSP節點210的BSP節點上的放置。
[0036]計算機205包含計算節點代理(CNA) 220,其可負責執行虛擬機(VM)實例,例如VM222。計算機205也包含虛擬塊存儲(VBS)接口 224,其可允許計算機205和其中的VM實例訪問BSP節點,例如BSP節點210,并且利用所述BSP節點的先進特征。
[0037]VBS接口 224包含在用戶空間執行的VBS客戶端226和在內核空間執行的VBS啟動器228。VBS客戶端226可以是VBS啟動器228的用戶空間管理工具。例如,VBS客戶端226可通過Unix輸入/輸出控制(ioctl)和Linux虛擬文件系統(sysfs)命令與VBS啟動器228通訊。然而,VBS啟動器228可以是向卷提供標準塊裝置接口的VBS塊裝置驅動器。VBS啟動器228也可使用例如Linux網絡塊裝置(NBD)的協議通信協議與BSP節點210通τΗ ο
[0038]BSP節點210包含為來自計算機205的信息提供存儲的存儲裝置230,并且允許計算機205訪問所述信息。存儲裝置230也可包含對例如快照的先進功能的支持。BSP節點210也包含BSP232,其可處理來自BRM215的請求,從而引起卷創建、對塊訪問請求進行檢測
坐寸O
[0039]圖2b詳細圖示了存儲裝置250。存儲裝置250可以是圖2a中所示的存儲裝置230的實施。存儲裝置250包含VBS目標255,其可作為VBS塊裝置服務器來操作。VBS目標255可創建和/或刪除卷文件,使用通信協議(例如,NBD協議)共享卷文件等。VBS目標255可與例如圖2a中所示的VBS啟動器228的VBS啟動器通訊。
[0040]存儲裝置250也可包含由VBS目標255管理的卷文件260以及快照位圖265。卷文件260和快照位圖265可在媒體270上實施,媒體270例如動態存儲器(例如,隨機存取存儲器等)、固態存儲器、磁性媒體等。媒體270可代表存儲裝置250本地的文件系統。快照位圖265可用來維持卷文件260中的哪些塊已被改變的記錄。快照位圖265可記錄卷文件260中從卷文件260創建以來已經改變(B卩,寫入)的多個塊。根據一項實例實施例,快照位圖265中的單個比特可對應于卷文件260中的一個塊。隨后,如果將所述比特設置為特定值,那么卷文件260中相應的塊從卷文件260創建以來或從最近的快照創建以來已經被修改。
[0041]使用快照位圖265允許VBS目標255創建增量快照,所述增量快照是從最后快照或在快照位圖265對應于第一快照情況下從卷創建以來給定卷文件改變的記錄。增量快照有效地利用存儲空間,因為僅存儲卷文件的改變,從一個或一個以上增量快照重新創建卷文件所涉及的復雜性較小地增加。
[0042]根據一項實例實施例,創建快照可涉及使用快照位圖來產生一組被改變的塊,并且將這組被改變的塊存儲在固態存儲器、磁性媒體、存儲服務(例如,物體存儲器(OBS ))或其組合中。也可存儲快照時間戳來促進恢復。
[0043]根據一項實例實施例,快照位圖265的大小可取決于多個因素,例如卷文件的預期大小、卷文件的塊的大小、期望快照位圖265記住卷文件訪問的預期時間量、卷文件訪問的預期頻率等。如果使用過大的快照位圖265,那么資源可能會被浪費,然而如果使用過小的快照位圖265,那么由于資源的無用性,卷文件訪問可能會丟失。
[0044]根據一項實例實施例,可使用多個快照位圖265來產生單個卷文件的多個快照。例如,第一快照位圖可用于第一快照并且記錄從第一快照啟動之后的卷文件訪問,第二快照位圖可用于第二快照并且記錄從第一快照完成之后的卷文件訪問,第三快照位圖可用于第三快照并且記錄從第二快照完成之后的卷文件訪問,等等。當與存儲多個卷文件相比時,存儲多個快照位圖可導致存儲量顯著降低,因為存儲了單個卷文件和多個快照位圖,而不是多個卷文件(其往往大于快照位圖)。每個快照位圖可用一個時間戳來標記,從而為恢復作準備。
[0045]根據一項實例實施例,VBS目標255可將每個卷作為稀疏文件存儲在媒體270中。一般情況下,使用稀疏文件來存儲卷暗示所述卷將僅占用實際需要的那么多空間。例如,僅存儲了 50千兆字節信息的100千兆字節卷將僅占用50千兆字節媒體存儲空間。與使用規則的非稀疏文件來存儲卷的情形相比,其中100千兆字節卷將占用100千兆字節媒體存儲空間,并不依賴于實際存儲在所述卷中的信息量。
[0046]圖3圖示了存儲裝置300,其允許在獲取快照過程中的讀取和/或寫入訪問。存儲裝置300可以是圖2a中所示的存儲裝置230的實施。通常,對快照的獲取可能是漫長的過程,其中可能需要移動和/或存儲大量信息。當制作卷文件的快照時,可能需要采取額外的措施來確保對卷文件的完全訪問。
[0047]如先前所描述的,存儲裝置300包含VBS目標305、卷文件310以及快照位圖315,從而允許獲取快照。如先前所描述的,0BS335可用來存儲卷文件310的被改變的塊。然而,為了確保記錄了卷文件310的改變(即,寫入),可能需要將對卷文件310的寫入存儲達到制作快照所需的時間那么久,所述卷文件310可能被制作成只讀卷文件,而所述快照被制作來幫助保護數據完整性。然而,對卷文件310的寫入訪問是被禁止的。
[0048]根據一項實例實施例,代替允許對卷文件310進行寫入訪問,寫入緩沖區320和寫入緩沖區位圖325可用來存儲對卷310的寫入。與對卷文件310的寫入訪問嘗試相關的信息可存儲在寫入緩沖區320中,而寫入緩沖區位圖325可用來指示卷文件310的哪些塊已受到訪問(即,寫入)。寫入緩沖區320和寫入緩沖區位圖325可在媒體330上實施。卷文件310和快照位圖314也可在媒體330或另一個不同媒體上實施。
[0049]當對卷文件310作出讀取訪問嘗試時,VBS目標305可咨詢寫入緩沖區位圖325以確定從哪里檢索被請求的信息:如果寫入緩沖區位圖325指示對應于所述讀取訪問嘗試的塊已經被改變,那么從寫入緩沖區320檢索,或者如果寫入緩沖區位圖325指示對應于所述讀取訪問嘗試的塊還沒被改變,那么從卷文件310檢索。[0050]根據一項實例實施例,一旦完成快照,就可將寫入緩沖區320的內容寫入到卷文件310中,并且丟棄(刷新)寫入緩沖區320,即,用寫入緩沖區320中的信息來對卷文件310進行更新。卷文件310可保持可用于讀取和/或寫入訪問,同時寫入緩沖區320的內容被寫入到卷文件310中并且寫入緩沖區320被丟棄。可將在對卷文件310進行更新的過程中接收到的寫入訪問直接寫入到卷文件310中,并且如果將寫入緩沖區位圖325中相應的比特設置來指示已經記錄了對所述塊之寫入訪問嘗試,那么可重新設置相應的比特。此外,丟棄寫入緩沖區320中與相應的比特相關的寫入訪問嘗試,而不是將其寫入到卷文件中。
[0051]根據一項實例實施例,寫入緩沖區位圖325的大小可取決于多個因素,例如卷文件的預期大小、卷文件的塊的大小、期望寫入緩沖區位圖325記住卷文件訪問的預期時間量、卷文件訪問的預期頻率等。如果使用過大的寫入緩沖區位圖325,那么資源可能會被浪費,然而如果使用過小的寫入緩沖區位圖325,那么由于資源的無用性,卷文件訪問可能會丟失。
[0052]圖4圖示了在利用卷快照過程中的用戶操作400的實例流程圖。用戶操作400可指示當用戶使用卷快照來保存卷狀態以及恢復先前的卷狀態時,出現在用戶或者由用戶正在操作的計算機(例如,虛擬機)上的操作。當所述用戶或者由用戶正在操作的計算機處于正常操作模式時,可發生用戶操作400。
[0053]用戶操作400可始于用戶啟動卷快照制作(框405)。作為說明性實例,用戶可在以下時間啟動快照制作:在工作日開始的時候、在工作日結束的時候、在工作日中按照預定的時間間隔、當用戶到達認為是有價值的重要時刻(例如,完成一件工作草案等)、當用戶接收到啟動快照制作的指令,等等。
[0054]通過向卷的控制器發送指令或命令,執行快照應用程序或程序或者向管理員發送請求等,用戶可啟動卷快照制作。或者,快照制作可用于在特定的時間出現,例如,在一天開始的時候或在一天結束的時候,或者在發生一個事件的時候,例如,當用戶每天第一次登錄計算機的時候或者當用戶在這一天結束時從所述計算機退出登錄的時候等。
[0055]如先前所討論的,卷快照可涉及卷控制器將所述卷設置成只讀卷,緩沖對所述卷的寫入,維持所述卷中是緩沖過的寫入的目標的塊的指示,以及維持所述卷中從快照制作啟動之后已發生改變的塊的指示等。此外,可使用多個緩沖區和指示制作多個快照。
[0056]在啟動卷快照制作之后,用戶可繼續訪問所述卷,就好像卷快照制作沒有發生一樣(框410)。例如,用戶可執行對所述卷和存儲在所述卷中的讀取信息的讀取訪問嘗試。此夕卜,用戶也可執行對所述卷的寫入訪問嘗試并且將信息存儲在所述卷中。當快照制作發生時,通過跟蹤以及緩沖與寫入訪問嘗試相關的信息,所述卷的控制器可維持卷的一致性。
[0057]操作時,用戶可確定需要將卷的狀態回退(S卩,恢復)到早先的狀態。例如,如果用戶確定發生了錯誤并且從錯誤中恢復的最簡單方法是恢復到早先的狀態,或者錯誤地刪除了或以其它方式丟失了信息并且恢復到早先狀態是恢復所丟失的信息的唯一方法等,那么用戶可確定需要回退。
[0058]用戶可執行檢查,以確定是否需要將所述卷的狀態回退(框415)。如果不需要將所述卷的狀態回退,那么用戶可以繼續訪問所述卷中的信息(框410)。然而,如果需要將所述卷的狀態回退,那么用戶可啟動將所述卷回退到早先的狀態(框420)。根據一項實例實施例,通過向所述卷的控制器發送命令,執行回退應用程序和/或程序,或者向管理員發送請求等,用戶可啟動所述卷的回退。用戶可包含關于用戶希望回退到的那個卷狀態的信息。例如,用戶可提供對應于所述卷狀態的時間,或者用戶可提供狀態修正編號等。
[0059]圖5圖示了在制作卷快照過程中的控制器操作500的流程圖。在控制器控制對存儲裝置的訪問情況下,控制器操作500可指示發生在存儲裝置的例如VBS目標的控制器中的操作。控制器操作500可在控制器處于正常操作模式時發生。
[0060]控制器操作500可始于控制器接收制作卷快照的請求(框505)。根據一項實例實施例,制作卷快照的請求可呈現為以下形式:指令或命令、快照應用程序或程序或者來自管理員的請求等。
[0061]在接收到制作快照的請求后,控制器就可啟動卷副本制作(框510)。根據一項實例實施例,所述卷的副本可在以下裝置上制作:另一種不同形式的本地媒體、另一種不同的存儲裝置(例如,不同的硬盤或者不同的固態驅動器等)、遠程定位的存儲裝置或者云存儲裝置等。
[0062]根據一項實例實施例,如果快照是增量快照,那么可能沒必要復制卷,這是因為所述卷的副本要么已經存在要么當前正在被復制。增量快照可基于與先前完整快照和中間增量快照相關的卷的快照。
[0063]因為潛在的大量信息需要被復制,所以制作卷的副本可能要花費較長的一段時間,因此控制器可能需要采取額外的措施來允許持續訪問卷中的信息。根據一項實例實施例,通過在卷被復制時允許對所述卷的讀取訪問嘗試并且當所述卷被復制時緩沖與對所述卷之寫入訪問嘗試相關的信息,控制器可允許持續訪問所述卷中的信息。
[0064]控制器可通過將所述卷設置為只讀卷來繼續允許訪問卷中的信息(框515),因而防止所述卷發生改變。控制器可緩沖與對所述卷的寫入訪問嘗試相關的信息,從而在制作快照時存儲所述卷的改變。
[0065]根據一項實例實施例,控制器可按如下所述來調節對所述卷的訪問。控制器可執行檢查以確定是否有對存儲在所述卷中的信息的訪問嘗試(框520)。如果沒有對存儲在所述卷中的信息的訪問嘗試,那么控制器可繼續等待未來的對存儲在所述卷中的信息的訪問嘗試。
[0066]如果有對存儲在所述卷中的信息的訪問嘗試,那么控制器可執行檢查以確定所述訪問嘗試是讀取訪問嘗試還是寫入訪問嘗試(框525 )。
[0067]如果所述訪問嘗試是寫入訪問嘗試,那么控制器可將與所述寫入訪問嘗試相關的信息存儲在寫入緩沖區中,并且更新指示符,例如,快照位圖(框530)。所述寫入緩沖區可用來存儲要寫入到所述卷中的信息,而所述快照位圖(所述指示符)可用于存儲特定信息,所述信息關于所述卷中哪個塊已經被改變,即,所述卷中哪個塊對應于與在所述寫入緩沖區中緩沖的所述寫入訪問嘗試相關的信息。除了存儲要寫入到所述卷中的信息之外,也可存儲關于所述寫入訪問嘗試的額外信息,例如,信息量、寫入訪問嘗試的時間、哪個(些)塊受寫入訪問嘗試影響以及在所述塊上的位置等。
[0068]根據一項實例實施例,第二指示符,例如寫入緩沖區位圖,可用來存儲關于所述卷中哪個塊對應于在所述寫入緩沖區中緩沖的寫入訪問嘗試的信息。在已經緩沖和記錄了寫入訪問嘗試以及與寫入訪問嘗試相關的信息后(在快照位圖和/或寫入緩沖區位圖中),控制器可返回到框520以等待未來的訪問嘗試。[0069]如果所述訪問嘗試是讀取訪問嘗試,那么控制器可使用所述指示符、所述卷、所述寫入緩沖區、所述寫入緩沖區位圖或其組合實現所述讀取訪問嘗試(框535)。例如,如果所述指示符指示所述讀取訪問嘗試是針對從所述卷快照啟動后就沒被修改的塊,那么控制器可簡單地通過從所述卷中檢索被請求的信息來實現所述讀取訪問嘗試。然而,如果所述指示符指示所述讀取訪問嘗試是針對從所述卷快照啟動后已經被修改的塊,那么通過檢查寫入緩沖區位圖以確定哪個寫入訪問嘗試修改了所述塊,并且隨后從寫入緩沖區中檢索與修改了所述塊的所述寫入訪問嘗試相關的信息從而實現所述讀取訪問嘗試,控制器可以實現所述讀取訪問嘗試。此外,如果所述讀取訪問嘗試向所述塊請求的信息比存儲在所述寫入緩沖區中的信息多,例如,所述讀取訪問嘗試請求一些已經被修改的信息以及一些還沒被修改的信息,控制器可能需要訪問所述卷。在已經實現所述讀取訪問嘗試后,控制器可返回到框520以等待未來的訪問嘗試。
[0070]如果有增量快照,那么讀取訪問嘗試可能需要檢查中間增量快照的快照位圖以確定所訪問的塊是否已經被修改。
[0071]根據一項實例實施例,由于增量快照可能基于早先制作的快照,因此可能沒必要制作所述卷的副本。替代地,所述增量快照包含關于對所述卷的訪問嘗試(主要是寫入訪問嘗試)的信息,所述訪問嘗試從上一次制作快照(增量快照或者非增量快照)到制作另一個快照之間出現。可將關于所述訪問嘗試的信息存儲在與增量快照相關的寫入位圖、寫入緩沖區以及寫入緩沖區位圖中。
[0072]如先前所討論的,快照可以是增量快照或者非增量快照。非增量快照可以是只基于制作其所針對的卷的快照,而增量快照可以是不僅基于制作其所針對的卷,而且基于在制作所述增量快照之前所制作的所述卷的其它快照的快照。取決于所述快照的性質,即,增量快照或非增量快照,控制器對完成所述快照制作的作用可能不同。
[0073]圖6圖示了在完成非增量快照后的操作中的控制器操作600的流程圖。在控制器控制對存儲裝置的訪問情況下,控制器操作600可指示發生在存儲裝置的例如VBS目標的控制器中的操作。控制器操作600可在控制器處于正常操作模式時發生。
[0074]控制器操作600可始于控制器執行檢查以確定快照是否完成(框605)。根據一項實施例,一旦所述卷的副本完成,所述快照可確定為完成,其中一旦所述副本完成,所述卷的副本將是所述快照。如果所述快照還沒完成,那么控制器可以繼續檢查所述快照的完成情況。
[0075]如果所述快照完成,那么控制器可用與儲存在所述寫入緩沖區中的對所述卷的所述寫入訪問嘗試相關的信息更新所述卷(框610)。如先前所討論的,所述寫入緩沖區可用來存儲與在制作所述快照時發生的對所述卷的寫入訪問嘗試相關的信息。可將與所述寫入訪問嘗試相關的信息寫入到所述卷中,并且如果將與所述寫入訪問嘗試相關的塊標記為已改變,那么可將對應于所述塊的指示符清除,因為所述卷現在是最新的,并且不應該復制任何較舊的副本(框615)。
[0076]圖7圖示了在完成增量快照后的操作中的控制器操作700的流程圖。在控制器控制對存儲裝置的訪問情況下,控制器操作700可指示發生在存儲裝置的例如VBS目標的控制器中的操作。控制器操作700可在控制器處于正常操作模式時發生。
[0077]控制器操作700可始于控制器執行檢查以確定快照是否完成(框705)。根據一項實施例,一旦所述卷的副本完成,所述快照可確定為完成,其中一旦所述副本完成,所述卷的副本將是所述快照。如果所述快照未完成,那么控制器可繼續檢查所述快照的完成情況。
[0078]如果所述快照完成,那么控制器可存儲快照位圖、寫入緩沖區以及寫入緩沖區位圖,從而可以在有必要將所述卷的狀態回退情況下隨后要使用時對這三者進行檢索(框710)。如果所述訪問嘗試是寫入訪問嘗試,那么可將未來的對所述卷的訪問嘗試存儲在新的快照位圖、寫入緩沖區以及寫入緩沖區位圖中,并且如果所述訪問嘗試是讀取訪問嘗試,那么所述增量快照(以及所涉及的任何其它中間增量快照)的快照位圖、寫入緩沖區以及寫入緩沖區位圖,以及所述卷可用來實現所述讀取訪問嘗試。
[0079]圖8圖示了在使用快照恢復卷狀態中的控制器操作800的流程圖。在控制器控制對存儲裝置的訪問情況下,控制器操作800可指示發生在存儲裝置的例如VBS目標的控制器中的操作。控制器操作800可在控制器處于正常操作模式時發生。
[0080]控制器操作800可始于控制器接收將卷回退到特定狀態的請求(框505)。根據一項實例實施例,將卷回退的請求可呈現為以下形式:指令或命令、快照應用程序或程序或者來自管理員的請求等。
[0081]在接收到將所述卷回退到所述特定狀態的請求后,控制器就可確定所述卷的對應于所要狀態的快照(框810)。例如,所述請求可提供特定時間,并且控制器可確定哪個快照對應于所述時間,或者哪個快照是用最接近所述時間但不比所述時間新的時間來印時間戳的快照。或者,所述請求可指定快照編號或者可用來識別特定快照的其它一些信息。如果控制器一直在制作增量快照,那么控制器也可識別在對應于所述請求的快照和所述卷的初始快照之間制作的中間增量快照。
[0082]隨后,通過基于寫入緩沖區位圖以及對應于所要狀態的快照位圖來應用存儲在寫入緩沖區中的緩沖過的寫入,控制器可重新創建對應于所要狀態的所述卷的狀態(框815)。如果所述快照是增量快照,那么控制器可能需要基于寫入緩沖區位圖以及對應于所述中間增量快照的快照位圖,應用存儲在寫入緩沖區中的緩沖過的寫入。
[0083]圖9提供裝置900的替代說明。裝置900可能是存儲裝置的例如VBS目標的控制器的實施。裝置900可用來實施本文討論的各種實施例。如圖9所示,網絡接口 905用于發送以及接收信息和指示。網絡接口 905可以是無線接口、有線接口或其組合。
[0084]請求處理單元910用于處理訪問耦合到裝置900的(多個)存儲裝置的請求。例如,請求處理單元910處理訪問嘗試、制作快照請求以及回退請求等。快照位圖控制單元915用于為卷中的特定塊產生指示符(例如,快照位圖),所述塊在制作快照過程中或者從為增量快照制作快照以來已經發生改變。例如,單個比特可對應于已經改變的塊。寫入緩沖區控制單元920用于控制對寫入訪問嘗試的信息的緩沖,并且用于為卷中對應于緩沖過的信息的塊以及所述寫入訪問嘗試產生指示符,所述緩沖過的信息與所述寫入訪問嘗試相關。快照恢復單元925用于基于一個快照或多個增量快照來恢復卷的狀態。基于初始快照以及針對所述快照或者針對多個增量快照中的每一個快照的快照位圖、寫入緩沖區以及寫入緩沖區位圖,快照恢復單元925可恢復所述狀態。
[0085]卷控制單元930用于控制卷,例如為所述卷設置讀取/寫入訪問權限。卷控制單元930進一步用于啟動對所述卷的復制,并且一旦完成對所述卷的復制,就更新所述卷。數據處理單元935用于處理讀取請求并且基于卷、快照位圖、寫入緩沖區、寫入緩沖區位圖或其組合,產生在讀取訪問嘗試中的信息。存儲器940用于存儲指示符(例如,快照位圖945、寫入緩沖區位圖955等)、信息(例如,寫入緩沖區950)等。
[0086]裝置900的元件可作為特定的硬件邏輯塊來實施。在一個替代方案中,裝置900的元件可作為在處理器、控制器、專用集成電路等中執行的軟件來實施。在另一個替代方案中,裝置900的元件可作為軟件和/或硬件的組合來實施。
[0087]例如,網絡接口 905可作為特定的硬件塊來實施,而請求處理單元910、快照位圖控制單元915、寫入緩沖區控制單元920、快照恢復單元925、卷控制單元930以及數據處理單元935可以是在微處理器或者自定義電路或者現場可編程邏輯陣列的自定義編譯的邏輯陣列上執行的軟件模塊。
[0088]圖10提供裝置1000的替代說明。裝置1000可能是存儲裝置的例如VBS目標的控制器的實施。裝置1000可用于實施本文討論的各種實施例。如圖10所示,發射器1005用于發送信息和指示并且接收器1010用于接收信息和指示。發射器1005和接收器1010可能具有無線接口、有線接口或其組合。
[0089]處理器1015可能是微處理器、自定義電路、現場可編程邏輯陣列的自定義編譯的邏輯陣列,可實施以下單元中的一些或全部:請求處理單元1060、快照位圖控制單元1065、寫入緩沖區控制單元1070、快照恢復單元1075、卷控制單元1080以及數據處理單元1085。存儲器1020用于存儲指示符、信息等。
[0090]以上描述的裝置900和裝置1000的實施例也可用包括功能步驟和/或非功能操作的方法來進行說明。先前的描述和相關流程圖說明可在本發明的可行示例性實施例中執行的步驟和/或操作。通常,功能步驟根據實現的結果來描述本發明,而非功能操作描述用于實現特定結果的更具體的行為。雖然功能步驟和/或非功能操作可按特定順序進行描述或要求,但本發明無需受限于步驟和/或操作的任何特定順序或組合。此外,在敘述權利要求書并且在描述圖4、圖5、圖6、圖7和圖8的流程圖時使用(或不使用)的步驟和/或操作用來指示此類術語的所要特定使用(或不使用)。
[0091]雖然已詳細地描述了本發明及其優點,但應理解,可在不脫離如所附權利要求書所界定的本發明的精神和范圍的情況下對本發明做出各種改變、替代和更改。
[0092]此外,本申請案的范圍不希望限于本說明書中所描述的過程、機器、制造、物質成分、構件、方法和步驟的特定實施例。如所屬領域的技術人員將從本發明的揭示內容容易了解,可根據本發明利用執行與本文中所描述的對應實施例大致相同的功能或實現與本文中所描述的對應實施例大致相同的結果的目前存在或稍后將開發的過程、機器、制造、物質成分、構件、方法或步驟。因此,所附權利要求書既定在其范圍內包括此類過程、機器、制造、物質成分、構件、方法或步驟。
【權利要求】
1.一種用于制作卷快照的方法,所述方法包括: 將所述卷設置為只讀模式; 接收對所述卷的訪問嘗試; 在所述訪問嘗試是寫入訪問嘗試的情況下, 在緩沖區中緩沖與所述寫入訪問嘗試相關的信息,并且 基于與所述寫入訪問嘗試相關的所述信息更新快照指示符,其中所述快照指示符包括關于所述卷中的特定塊的塊信息,所述塊是所述寫入訪問嘗試的目標;以及在所述訪問嘗試是讀取訪問嘗試的情況下, 提供在所述讀取訪問嘗試中請求的讀取信息,其中所述讀取信息是基于所述卷或者基于所述快照指示符、所述緩沖區以及緩沖區指示符的組合。
2.根據權利要求1所述的方法,其中所述快照包括非增量快照或者初始快照,并且其中所述方法進一步包括復制所述卷。
3.根據權利要求2所述的方法,其中所述復制包括將所述卷復制到第一存儲裝置中,所述第一存儲裝置不同于包含所述卷的第二存儲裝置。
4.根據權利要求2所述的方法,其中所述緩沖、所述更新以及所述提供是在所述卷被復制時執行的。
5.根據權利要求2所述的方法,其進一步包括在完成了對所述卷的所述復制后,基于所述卷、所述快照指示符、所述緩沖區、緩沖區指示符或其組合,產生更新的卷。
6.根據權利要求5所述的方法,其中產生更新的卷包括,針對與所述寫入訪問嘗試相關的所述緩沖過的信息,將所述緩沖過的信息寫入到所述更新的卷中。
7.根據權利要求6所述的方法,其中產生更新的卷進一步包括,在將所述緩沖過的信息寫入到所述更新的卷中后,將所述快照指示符中針對與所述緩沖過的信息相關的所述塊的指示清除。
8.根據權利要求2所述的方法,其中對所述卷的所述復制進一步包括存儲關于所述卷的時間指示符或版本指示符。
9.根據權利要求1所述的方法,其中所述快照包括增量快照或者非初始快照,并且其中所述方法進一步包括: 存儲所述快照指示符、所述緩沖區以及所述緩沖區指示符;以及針對在所述訪問嘗試后接收到的新的訪問嘗試,將新的快照指示符、新的緩沖區以及新的緩沖區指示符用于所述接收、所述緩沖、所述更新以及所述提供。
10.根據權利要求9所述的方法,其中所述存儲進一步包括存儲關于所述快照指示符、所述緩沖區以及所述緩沖區指示符的時間指示符或版本指示符。
11.一種操作方法,所述方法包括: 接收將卷狀態回退的請求; 確定對應于所述狀態的快照; 確定在所述快照以及所述卷的初始快照之間是否存在至少一個中間快照; 基于所述快照向所述卷應用改變;以及 在所述至少一個中間快照存在并且中間改變不發生在受所述快照影響的所述卷的塊上的情況下,基于所述至少一個中間快照向所述卷應用所述中間改變。
12.根據權利要求11所述的方法,其中所述至少一個中間快照包括多個中間快照,并且其中所述基于所述至少一個中間快照向所述卷應用中間改變包括以相反時間順序,從每一個所述中間快照向所述卷應用中間改變。
13.根據權利要求11所述的方法,其中基于所述快照向所述卷應用改變包括: 向所述卷應用所述改變;以及 在指示符指示所述卷中與相關于所述改變的塊相同的塊的情況下,在所述至少一個中間快照中重新設置所述指示符。
14.根據權利要求13所述的方法,其中所述改變整體上指定所述卷的塊,并且其中向所述卷應用所述改變包括向所述卷寫入所述塊。
15.根據權利要求11所述的方法,其中確定對應于所述狀態的快照包括選擇與特定時間相關的快照,所述時間對應于與所述狀態相關的狀態時間。
16.根據權利要求11所述的方法,其中確定對應于所述狀態的快照包括選擇與特定時間相關的快照,所述時間最接近與所述狀態相關的狀態時間但不會在其后出現。
17.一種裝置,其包括: 卷控制單元,其用于為卷設置讀取和/或寫入權限; 網絡接口,其用于接收制作所述卷的快照的請求,并且接收對所述卷的訪問嘗試; 請求處理單元,其耦合到所述網絡接口,所述請求處理單元用于確定訪問請求的性質; 快照位圖控制單元,其耦合到所述請求處理單元,所述快照位圖控制單元用于基于寫入訪問嘗試更新快照指示符,其中所述快照指示符包括關于所述卷中的特定塊的塊信息,所述塊為所述寫入訪問嘗試的目標; 寫入緩沖區控制單元,其耦合到所述請求處理單元和所述卷控制單元,所述寫入緩沖區控制單元用于緩沖與對所述卷的所述寫入訪問嘗試相關的信息,并且基于與所述寫入訪問嘗試相關的所述信息更新緩沖區指示符;以及 數據處理單元,其耦合到所述請求處理單元,所述數據處理單元用于從所述卷或者從快照指示符、緩沖區以及緩沖區指示符的組合產生在讀取訪問嘗試中請求的讀取信息。
18.根據權利要求17所述的裝置,其中所述卷控制單元進一步用于啟動對所述卷的復制。
19.根據權利要求18所述的裝置,其中所述卷控制單元進一步用于在完成對所述卷的所述復制后,產生更新的卷。
20.根據權利要求19所述的裝置,其中通過向所述卷應用所述快照指示符、所述緩沖區以及所述緩沖區指示符,所述卷控制單元產生所述更新的卷。
21.根據權利要求17所述的裝置,其中所述快照包括增量快照,并且其中所述裝置包括用于存儲所述緩沖區、所述快照指示符以及所述緩沖區指示符的存儲器,并且其中針對在所述訪問嘗試之后接收到的新訪問嘗試,網絡接口、所述快照位圖控制單元、所述寫入緩沖區控制單元以及所述數據處理單元對新的緩沖區、新的快照指示符以及新的緩沖區指示符執行操作。
22.一種裝置,其包括: 卷控制單元,其用于將卷設置為只讀模式;接收器,其用于接收對所述卷的訪問嘗試,所述訪問嘗試是寫入訪問嘗試或者讀取訪問嘗試; 寫入緩沖區控制單元,其耦合到所述接收器和所述卷,當所述訪問嘗試是寫入訪問嘗試時,所述寫入緩沖區控制單元用于在緩沖區中緩沖與對所述卷的寫入訪問嘗試相關的信息; 快照位圖控制單元,其耦合到所述接收器,當所述訪問嘗試是寫入訪問嘗試時,所述快照位圖控制單元用于基于所述寫入訪問嘗試更新快照指示符,其中所述快照指示符包括關于所述卷中的特定塊的信息,所述塊是所述寫入訪問嘗試的目標;以及 數據處理單元,其耦合到所述接收器和所述卷,當所述訪問嘗試是讀取訪問嘗試時,基于所述卷或者基于所述快照指示符、所述緩沖區以及緩沖區指示符的組合,所述數據處理單元用于提供在所述讀取訪問嘗試中請求的讀取信息。
23.根據權利要求22所述的裝置,其中所述卷控制單元進一步用于復制所述卷。
24.根據權利要求23所述的裝置,其中所述卷控制單元進一步用于在所述卷控制單元完成了對所述卷的所述復制后,基于所述卷、所述快照指示符、所述緩沖區、緩沖區指示符或其組合產生更 新的卷。
25.根據權利要求22所述的裝置,其中快照包括增量快照或非初始快照,并且其中所述裝置進一步包括用于存儲所述快照指示符、所述緩沖區、緩沖區指示符的存儲器,并且其中所述接收器、所述寫入緩沖區控制單元、所述快照位圖控制以及所述數據處理單元用于根據新訪問嘗試執行操作,所述新訪問嘗試是在所述訪問嘗試之后接收到的。
【文檔編號】G06F11/14GK103814359SQ201180071989
【公開日】2014年5月21日 申請日期:2011年12月2日 優先權日:2011年7月1日
【發明者】安德魯·帕特森, 詹姆斯·休斯, 張 浩 申請人:華為技術有限公司