用于可擴展的崩潰一致的快照操作的系統(tǒng)和方法
【技術領域】
[0001] 本公開內容的實施例設及存儲系統(tǒng),并且特別地設及一種可擴展的崩潰一致的快 照操作(SC曰Isble crash-consistent sn曰pshot oper曰tion)。
【背景技術】
[0002] 存儲系統(tǒng)通常包括一個或多個存儲設備,根據(jù)需要,信息可W被輸入到該存儲設 備中,并且可W從該存儲設備獲得信息。存儲系統(tǒng)包括存儲操作系統(tǒng),該存儲操作系統(tǒng)尤其 通過調用對由該系統(tǒng)實現(xiàn)的存儲服務進行支持的存儲操作來在功能上組織該系統(tǒng)??蒞根 據(jù)多種存儲架構來實現(xiàn)存儲系統(tǒng),其中包括但不限于網絡附加存儲環(huán)境、存儲區(qū)域網絡W 及直接附加于客戶端計算機或主計算機化OStcomputer)的磁盤組件。存儲設備通常是 組織為磁盤陣列的磁盤驅動器(或者基于閃存的設備),其中術語"磁盤"通常描述獨立的 旋轉式磁介質存儲設備。在本文中,術語"磁盤"與硬盤驅動器(皿D)或直接訪問存儲設備 值ASD)同義。
[0003] 存儲系統(tǒng)的存儲操作系統(tǒng)可W實現(xiàn)高級模塊(例如文件系統(tǒng)),W便把存儲在卷 上的信息邏輯地組織為存儲對象的分層結構,例如文件和邏輯單元(LU)。已知類型的文 件系統(tǒng)是對磁盤上的數(shù)據(jù)不進行改寫的任意位置寫入(write-anywhere)文件系統(tǒng)。被配 置成在存儲系統(tǒng)上操作的任意位置寫入文件系統(tǒng)的一個示例是可W從網絡存儲技術公司 (NetAPP,Inc.Sunnyvale,化Ii化rnia)獲得的任意位置寫入文件布局(辦為FL?)文件系 統(tǒng)。
[0004] 存儲系統(tǒng)還可W被配置成使得多個服務器能夠訪問存儲在存儲系統(tǒng)上的存儲對 象。在運種模式下,通過計算機網絡"連接"到存儲系統(tǒng)的服務器可W執(zhí)行諸如數(shù)據(jù)庫應 用程序之類的應用程序,該計算機網絡例如是點到點鏈路、共享的局域網(LAN)、廣域網 (WAN)或在公用網(例如因特網)上實現(xiàn)的虛擬專用網絡(VPN)。每個服務器可W經由網 絡通過向系統(tǒng)發(fā)出作為基于文件和基于塊的協(xié)議消息(W數(shù)據(jù)包的形式)的訪問請求(讀 /寫請求)來請求存儲系統(tǒng)的數(shù)據(jù)服務。
[0005] 可W將多個存儲系統(tǒng)互連W提供被配置成服務于多個服務器的存儲系統(tǒng)架構。在 一些實施例中,存儲系統(tǒng)架構提供一個或多個聚集,每個聚集包括一組一個或多個存儲設 備(例如磁盤)。每個聚集可W存儲一個或多個存儲對象,例如一個或多個卷。聚集可W分 布于互連為集群的多個存儲系統(tǒng)上。存儲對象(例如,卷)可W被配置成響應于由服務器 發(fā)出的多協(xié)議數(shù)據(jù)訪問請求來對由集群提供服務的存儲對象(例如文件和邏輯單元)的內 容進行存儲。
[0006] 集群的每個存儲系統(tǒng)(節(jié)點)可W包括(i)適于服務于特定的聚集或者卷的存儲 服務器(稱作"D-刀片")W及(ii)適于將數(shù)據(jù)訪問請求重定向到集群的任何存儲服務器 的多協(xié)議引擎(稱作"N-刀片")。在示例性實施例中,每個存儲系統(tǒng)的存儲服務器被實施 為磁盤元件值-刀片),而多協(xié)議引擎被實施為網絡元件(N-刀片)。N-刀片從客戶端接收 多協(xié)議數(shù)據(jù)訪問請求,將該訪問請求轉換成集群結構(CF,clusterfabric)消息并且將該 消息重定向到集群的適當?shù)腄-刀片。
[0007] 集群的存儲系統(tǒng)可W被配置成相互通信W共同起作用來提高性能或者W抵消集 群內的任何單個存儲系統(tǒng)故障。集群通過提供對共享存儲(包括一組存儲設備)的訪問來 給服務器提供數(shù)據(jù)服務。通常,服務器將與集群的存儲系統(tǒng)連接,W用于與該存儲系統(tǒng)的數(shù) 據(jù)訪問會話。在與存儲系統(tǒng)的數(shù)據(jù)訪問會話期間,服務器可W提交由存儲系統(tǒng)接收并執(zhí)行 的訪問請求(讀/寫請求)。
[0008] 每個存儲系統(tǒng)可W與一個或多個卷(例如,存儲在存儲設備上的數(shù)據(jù)卷)關聯(lián)???W執(zhí)行快照操作W生成卷的只讀的拷貝。文件系統(tǒng)可W利用快照來生成一致性組(其包括 存儲在一個或多個存儲設備上的一個或多個卷)的時間點的視圖或圖像。然而,在傳統(tǒng)的 快照操作中,到來的對卷的寫請求可能被隔離或者掛起相當長的一段時間。例如,對在經受 快照的卷的寫請求可能被掛起,直到快照操作完成為止或者直到對于相應的卷的快照操作 已經完成為止。因此,對卷的寫請求可能被隔離或者掛起相當長的一段時間并且運樣的一 段時間會導致應用程序發(fā)出寫請求超時(由于無法執(zhí)行寫請求)。此外,對卷的寫請求的隔 離或者掛起可能取決于卷和/或應用程序的特性。例如,卷可能被隔離的時間量可能取決 于該卷的數(shù)據(jù)集大小。因此,隔離或者掛起時間段可能是可變的(例如,不確定的),因為它 可能根據(jù)卷和應用程序而變化。
[0009] 因此,需要一種用于生成一致性組的崩潰一致的快照操作的有效的方法和系統(tǒng)。 例如,需要下述用于生成崩潰一致的快照操作的系統(tǒng)和方法:該系統(tǒng)和方法是可擴展的并 且確定的W解決應用程序超時問題。
【發(fā)明內容】
[0010] 本文中描述的實施例提供了一種用于快照操作的系統(tǒng)和方法,該快照操作是可擴 展的并且確定性的。在一些實施例中,對存儲在一個或多個主存儲設備上的一個或多個卷 執(zhí)行快照操作W生成卷的只讀拷貝。在相同的或者可替選的實施例中,可W執(zhí)行快照操作 W生成包括一個或多個卷并且被應用程序所使用的一致性組的快照。例如,應用程序可W 發(fā)出寫請求W修改組成一致性組的卷的數(shù)據(jù)。在一些實施例中,應用程序可W在各個時間 點處發(fā)出寫請求。例如,應用程序可W在快照操作被請求或者被啟動之前發(fā)出寫請求W修 改數(shù)據(jù)或者將數(shù)據(jù)寫入到一致性組的卷,應用程序也可W在快照操作被請求或者被啟動之 后發(fā)出寫請求W修改數(shù)據(jù)或者將數(shù)據(jù)寫入到一致性組的卷。因此,從應用程序發(fā)出的寫請 求可W被認為是快照前的(即,在快照請求之前由應用程序發(fā)出的)或者快照后的(即,在 快照請求之后由應用程序發(fā)出的)。
[0011] 在一些實施例中,為了生成快照的崩潰一致拷貝,一致性組的快照請求可W導致 分布式存儲系統(tǒng)環(huán)境中的邏輯接口或者網絡接口的配置的切換(即,翻轉)。在相同的或 者可替選的實施例中,網絡接口可W包括下述組件(例如,在網絡硬件上運行的存儲服務 器或者服務器系統(tǒng)或者軟件層或者接口):該組件與數(shù)據(jù)通路(例如,從發(fā)出寫請求的應用 程序到經受寫請求的卷的傳輸通路)關聯(lián),該數(shù)據(jù)通路包括存儲一致性組的卷的主存儲設 備。例如,邏輯接口或者網絡接口可W包括用于對從應用程序發(fā)來的、對存儲在一致性組的 卷上的數(shù)據(jù)進行寫入的寫請求進行標記或者加標簽的配置。邏輯接口或者網絡接口可W包 括用快照前標簽對到來的寫請求進行標記或者加標簽的第一配置(例如,快照前配置)和 用快照后標簽對到來的寫請求進行標記或者加標簽的第二配置(例如,快照后配置)。在一 些實施例中,邏輯接口或者網絡接口的配置可W響應于生成一致性組的快照的請求而從快 照前配置切換到第二快照配置。因此,邏輯接口或者網絡接口可W從將從應用程序來的寫 請求與快照前標簽關聯(lián)切換到將從應用程序來的隨后的寫請求與快照后標簽關聯(lián)。
[0012] 在一些實施例中,可W基于與快照前標簽關聯(lián)的寫請求來生成一致性組的快照。 因此,與快照后標簽關聯(lián)的寫請求不會反映在一致性組的快照中。此外,雖然與快照前標簽 關聯(lián)的寫請求可W被立即執(zhí)行W修改數(shù)據(jù)或者將數(shù)據(jù)寫入到卷,但是與快照后標簽關聯(lián)的 寫請求會被短時間地掛起。例如,與快照后標簽關聯(lián)的寫請求可W被掛起(例如,防止執(zhí)行 W及因此去修改一致性組的卷),直到所有相關的邏輯接口或者網絡接口已經響應于生成 一致性組的快照的請求而完成了從快照前配置到快照后配置的切換為止。一旦所有相關的 邏輯接口或者網絡接口已經從快照前配置切換到快照后配置,那么與快照后標簽關聯(lián)的寫 請求將被執(zhí)行(例如,不再被掛起)。
[0013] 因此,任何寫請求(例如,與快照后標簽關聯(lián)的寫請求)的掛起取決于邏輯接口或 者網絡接口將配置從快照前配置切換到快照后配置的時間。由于邏輯接口或者網絡接口的 配置的切換不取決于可變的數(shù)據(jù)卷因而該時間可W是已知的,因此運樣的掛起時間可W是 與不確定性相反的確定性的。此外,由于僅根據(jù)與快照前標簽關聯(lián)的寫請求來生成快照,因 此生成的快照可W是崩潰一致的。
【附圖說明】
[0014] 圖1是一些實施例在其中操作的示例性分布式存儲系統(tǒng)環(huán)境的示意圖。
[0015] 圖2是可W在存儲系統(tǒng)環(huán)境中使用的示例性管理服務器的示意性框圖。
[0016] 圖3是可W在存儲系統(tǒng)環(huán)境中使用的示例性存儲系統(tǒng)的示意性框圖。
[0017] 圖4是根據(jù)一些實施例的用于生成一致性組的快照的技術的流程圖。
[0018] 圖5是一些實施例在其中操作的基于與快照標簽關聯(lián)的寫請求來生成快照的技 術的流程圖。
[0019] 圖6是一些實施例在其中操作的基于與快照前標簽(pre-snapshottag)關聯(lián)的 寫請求來生成快照的技術的流程圖。
[0020] 圖7是根據(jù)一些實施例的具有處于快照前配置的邏輯接口的存儲系統(tǒng)環(huán)境的框 圖。 陽021] 圖8是根據(jù)一些實施例的具有處于快照后(post-snapshot)配置的邏輯接口的存 儲系統(tǒng)環(huán)境的框圖。
[0022] 圖9是一些實施例在其中操作的基于邏輯接口的配置來隔離寫請求的技術的流 程圖。
[0023] 圖10示出了根據(jù)一些實施例的示例性快照數(shù)據(jù)結構。
【具體實施方式】
[0024] 在W下描述中,出于解釋的目的而闡述了許多細節(jié)和替選方案。然而,本領域普通 技術人員將意識到實施例可W在不使用運些具體細節(jié)的情況下被實施。在其他情形中,W 框圖形式示出了公知的結構和設備,W便不會由于不必要的細節(jié)而使實施例不清楚。
[00巧]W下的描述分為=個部分。部分I包含本文中所使用的術語。部分II描述了一 些實施例在其中操作的集群存儲系統(tǒng)環(huán)境。部分III描述了用于可擴展的崩潰一致的快照 操作的系統(tǒng)和方法。
[0026] I.術語
[0027] 集群存儲系統(tǒng):如本文中所使用的,集群存儲系統(tǒng)可W包括一組一個或多個存儲 系統(tǒng)。在一些實施例中,集群可W包括一個存儲系統(tǒng)。因此,術語"集群"和"存儲系統(tǒng)"有 時可W互換使用。在其他實施例中,集群包括多個存儲系統(tǒng)。
[0028] 管理程序化ypervisor):如本文中所使用的,管理程序可W指的是使得多個操作 系統(tǒng)或者應用程序能夠在主計算機上同時運行的虛擬機管理器。管理程序可W被稱作"主 機"。在一些實施例中,管理程序可W向客戶操作系統(tǒng)展示虛擬操作系統(tǒng)并且管理客戶操作 系統(tǒng)的執(zhí)行。在一些實施例中,多個操作系統(tǒng)的多