背景技術:
計算系統(tǒng)(諸如臺式計算機、膝上型計算機、手持計算機、服務器等)與用于存儲數據的存儲系統(tǒng)相關聯(lián)。數據可以包括在計算系統(tǒng)的操作期間生成和利用的操作系統(tǒng)數據、應用數據和用戶數據。一般對存儲系統(tǒng)中的數據進行備份,使得計算系統(tǒng)可以恢復到之前已知的工作狀態(tài)。
附圖說明
參照隨附各圖來描述具體實施方式。應當指出的是,描述和各圖僅僅是本主題的示例,并且不意在代表主題本身。
圖1圖示了根據本主題的示例實現(xiàn)的用于在數據備份期間寫入數據的系統(tǒng)環(huán)境。
圖2圖示了根據本主題的示例實現(xiàn)的用于在數據備份期間讀取數據的系統(tǒng)環(huán)境。
圖3圖示了根據本主題的示例實現(xiàn)的系統(tǒng)恢復之后的系統(tǒng)環(huán)境。
圖4圖示了根據本主題的示例實現(xiàn)的在存儲系統(tǒng)中的數據備份期間寫入數據的方法。
圖5圖示了根據本主題的示例實現(xiàn)的在存儲系統(tǒng)中的數據備份期間讀取數據的方法。
圖6圖示了根據本主題的示例實現(xiàn)的恢復計算系統(tǒng)的方法。
圖7圖示了根據本主題的示例實現(xiàn)的系統(tǒng)環(huán)境。
具體實施方式
系統(tǒng)恢復是指將計算系統(tǒng)還原到之前已知的狀態(tài)的過程。計算系統(tǒng)可以例如在計算系統(tǒng)的操作系統(tǒng)不可啟動或者計算系統(tǒng)感染有病毒或惡意軟件或者誤配置了應用更新時進行恢復。計算系統(tǒng)還可以在用戶出于某種原因而希望將計算系統(tǒng)帶回到較早的已知狀態(tài)的情況下進行恢復。為了恢復計算系統(tǒng),對與計算系統(tǒng)相關聯(lián)的存儲系統(tǒng)中的數據進行備份。數據備份是在存儲空間處保存和存留數據的過程,該數據可以被利用和回復以用于將計算系統(tǒng)恢復到之前已知的狀態(tài)。
一般地,在存儲系統(tǒng)中的數據備份操作中,在存儲系統(tǒng)中的分離存儲空間處保存和存留數據的副本。保存數據的副本相當于數據在存儲系統(tǒng)中的復制。因此,利用存儲系統(tǒng)中的相當大的存儲空間。另外,數據可能必須被頻繁拷貝和保存以便防止最新數據的丟失。數據的頻繁拷貝和保存是耗時且繁瑣的。另外,在一些數據在最后的數據備份操作之后存儲在存儲系統(tǒng)中的情況下,該數據不能被回復。
數據備份還通過將在發(fā)起數據備份操作之前寫入的數據存儲在第一存儲驅動器中,并且將在發(fā)起數據備份操作之后寫入的所有數據存儲在第二存儲驅動器中來執(zhí)行。因此,在發(fā)起數據備份操作之前和之后寫入的數據保存在不同的存儲驅動器中。在此,盡管數據備份是瞬時的,但是利用相當大的尺寸的第二存儲驅動器以用于存儲在數據備份操作期間寫入的數據。這增加針對存儲系統(tǒng)的備份存儲空間要求。
本主題描述用于數據備份、系統(tǒng)恢復和最新數據的回復的方法和系統(tǒng)。數據以高效利用存儲系統(tǒng)的存儲空間的方式進行備份。采用依照本主題的數據備份、系統(tǒng)恢復和數據回復,計算系統(tǒng)可以按對于用戶看起來瞬時的方式恢復到工作狀態(tài),并且還可以回復在恢復計算系統(tǒng)之前存儲的最新數據。
依照本主題,與計算系統(tǒng)相關聯(lián)的存儲系統(tǒng)包括初級存儲驅動器和次級存儲驅動器。在示例實現(xiàn)中,初級存儲驅動器可以是存儲系統(tǒng)的主存儲驅動器,其中所有數據被初級存儲。次級存儲驅動器可以是具有備份文件的備份存儲驅動器,其中數據可以在數據備份操作期間寫入。數據備份操作在從計算系統(tǒng)的用戶接收到數據備份請求之后執(zhí)行。計算系統(tǒng)被說成在數據備份操作期間操作在數據備份模式中。
在本主題的示例實現(xiàn)中,在接收到針對在操作的數據備份模式期間向初級存儲驅動器的特定塊寫入數據的寫入請求時,確定該塊是經分配的還是未經分配的。如果塊由文件系統(tǒng)所使用,存儲驅動器的塊被說成是經分配的。如果塊未被文件系統(tǒng)所使用,存儲驅動器的塊被說成是未經分配的。當確定寫入請求是針對初級存儲驅動器的未經分配的塊時,則與寫入請求相關聯(lián)的數據被寫入到初級存儲驅動器。而當確定寫入請求是針對初級存儲驅動器的經分配的塊時,則與寫入請求相關聯(lián)的數據被寫入到次級存儲驅動器。
依照本主題,分離地存儲和存留在操作的數據備份模式之前和在操作的數據備份模式期間寫入的數據,該數據稍后可以用于恢復計算系統(tǒng)。該方法在沒有復制或保存數據的副本以供備份的情況下促進數據的備份。另外,由于初級存儲驅動器的未經分配的塊用于在操作的數據備份模式期間寫入數據,因此次級存儲驅動器的尺寸可以是小的。這促進減少針對存儲系統(tǒng)的備份存儲空間要求。在示例實現(xiàn)中,次級存儲驅動器可以具有與在發(fā)起數據備份之前存儲在初級存儲驅動器中的數據的尺寸大體相等的尺寸。
另外,追蹤在操作的數據備份模式期間執(zhí)行的寫入操作并且這樣的寫入操作的信息例如存儲在表中。為此,在示例實現(xiàn)中,在操作的數據備份模式期間分配的初級存儲驅動器的塊的信息存儲在初級存儲映射(psm)表中,并且次級存儲驅動器的未經分配的塊和經分配的塊的信息存儲在次級存儲映射(ssm)表中。
當操作在數據備份模式中時,如果接收到針對恢復計算系統(tǒng)的系統(tǒng)恢復請求,對于數據隨后從存儲系統(tǒng)的讀取和寫入,psm表和ssm表被忽略(即未被考慮)。通過忽略psm表和ssm表,計算系統(tǒng)恢復到剛好在以對于用戶看起來瞬時的方式發(fā)起數據備份之前存在的狀態(tài)。
另外,在接收到系統(tǒng)恢復請求之后,生成新的次級存儲驅動器。依照本主題,在接收到系統(tǒng)恢復請求之后,初級存儲驅動器和新的次級存儲驅動器然后用于寫入和讀取數據。
另外,在示例實現(xiàn)中,在操作的數據備份模式期間分配的初級存儲驅動器的塊受保護以防在接收到系統(tǒng)恢復請求之后的進一步修改。在保護初級存儲驅動器的這些塊之后,呈現(xiàn)初級存儲驅動器的經分配的塊的數據(包括受保護塊的數據),以及在接收到系統(tǒng)恢復請求之前寫入的次級存儲驅動器的經分配的塊的數據,以用于拷貝。數據可以呈現(xiàn)在虛擬存儲驅動器中以用于拷貝到存儲空間。數據可以拷貝到外部存儲空間,或者取決于在初級存儲驅動器中可用的存儲空間而拷貝到初級存儲驅動器。依照本主題,用于拷貝的數據的呈現(xiàn)促進在恢復計算系統(tǒng)之前存儲的最新數據的回復。
以下詳細描述參照隨附各圖。在可能的情況下,在各圖和以下描述中使用相同的參考標記以指代相同或類似的部分。雖然在描述中描述了若干示例,但是修改、適配和其它實現(xiàn)是可能的。相應地,以下詳細描述不限制所公開的示例。而是,所公開的示例的適當范圍可以由隨附權利要求限定。
圖1圖示了根據本主題的示例實現(xiàn)的用于在數據備份期間寫入數據的系統(tǒng)環(huán)境。系統(tǒng)環(huán)境可以包括具有至少一個處理器102、控制器104和存儲系統(tǒng)106的計算系統(tǒng)100。計算系統(tǒng)100可以是臺式計算機、膝上型計算機、平板電腦、服務器等。存儲系統(tǒng)106包括至少一個物理存儲介質以存儲與計算系統(tǒng)100相關聯(lián)的數據。控制器104耦合到(多個)處理器102和存儲系統(tǒng)106。控制器106捕獲來自(多個)處理器102的讀取和寫入請求,并且處理讀取和寫入請求以從存儲系統(tǒng)106讀取數據和向其寫入數據,以使得能夠以存儲系統(tǒng)106的物理存儲介質的高效利用來實現(xiàn)數據備份。讀取請求是指針對從存儲系統(tǒng)106的物理存儲介質讀取數據的請求。寫入請求是指針對向存儲系統(tǒng)106的物理存儲介質寫入數據的請求。在示例實現(xiàn)中,依照本主題,控制器104還執(zhí)行功能以使得能夠實現(xiàn)系統(tǒng)恢復和在發(fā)起系統(tǒng)恢復之前存儲在存儲系統(tǒng)106中的最新數據的回復。
在示例實現(xiàn)中,控制器104可以包括至少一個計算機??刂破?04可以實現(xiàn)為微處理器、微型計算機、微控制器、數字信號處理器、中央處理單元、狀態(tài)機、邏輯電路和/或基于操作指令而操縱信號的任何設備。除其它能力之外,控制器104可以提取和執(zhí)行存儲在耦合到控制器104的存儲器中的計算機可讀指令。存儲器可以在控制器104內部或外部。存儲器可以包括任何非暫時性計算機可讀存儲介質,包括例如易失性存儲器(例如ram)和/或非易失性存儲器(例如eprom、閃速存儲器、nvram、憶阻器等)。
在示例中,(多個)處理器102還可以實現(xiàn)為微處理器、微型計算機、微控制器、數字信號處理器、中央處理單元、狀態(tài)機、邏輯電路和/或基于操作指令而操縱信號的任何設備。除其它能力之外,(多個)處理器102可以提取和執(zhí)行存儲在耦合到(多個)處理器102的存儲器中的計算機可讀指令。存儲器可以是存儲系統(tǒng)106的物理存儲介質。存儲系統(tǒng)106的物理存儲介質可以包括任何非暫時性計算機可讀存儲介質,包括例如易失性存儲器(例如ram)和/或非易失性存儲器(例如eprom、閃速存儲器、nvram、憶阻器等)。
圖1中所示的各種元件的功能(包括標記為“(多個)處理器”和“控制器”的任何功能塊)可以通過專用硬件以及能夠執(zhí)行計算機可讀指令的硬件的使用來提供。
在示例實現(xiàn)中,(多個)處理器102可以是計算設備的處理器,并且存儲系統(tǒng)106在所述計算設備外部。計算設備與用于存儲數據的存儲系統(tǒng)106相關聯(lián)。在該示例實現(xiàn)中,計算設備的(多個)處理器102可以耦合到控制器104,其中控制器104執(zhí)行用于存儲數據、備份數據、恢復計算設備和回復存儲在存儲系統(tǒng)106中的最新數據的功能。
如本文所使用的,“耦合”可以意指考慮到經由電信號、電磁信號、光學信號等與彼此交換數據信號的實體之間的直接連接。例如,可以與相同設備(例如計算機、服務器等)直接通信連接和/或在該相同設備中/該相同設備上布置,并且相互通信連接的實體已經被稱為與彼此耦合。因此,通過直接通信進行通信的計算資源已經被稱為“耦合”到彼此。
存儲系統(tǒng)106(除其它組件和模塊之外)包括初級存儲驅動器108和次級存儲驅動器110,如圖1中所示。初級存儲驅動器108可以是存儲數據的主硬盤,包括以下中的一個或其組合:操作系統(tǒng)數據、應用數據和被生成并且用于計算系統(tǒng)10的操作的其它數據。次級存儲驅動器110可以是用于在計算系統(tǒng)100的操作的數據備份模式期間存儲數據的備份存儲驅動器。次級存儲驅動器110可以具有與在計算系統(tǒng)100操作在數據備份模式中之前存儲在初級存儲驅動器108中的數據的尺寸大體相等的尺寸。在示例實現(xiàn)中,次級存儲驅動器110可以是初級存儲驅動器108的分區(qū)。
在示例實現(xiàn)中,次級存儲驅動器110具有備份文件,其具有等于在操作的數據備份模式之前分配的初級存儲驅動器108的塊的數目的數個塊。在操作的數據備份模式之前分配的初級存儲驅動器108的塊此后可以被稱為經預先分配的塊。次級存儲驅動器110的備份文件的塊可以處于與初級存儲驅動器108的經預先分配的塊相同的偏移處。備份文件的塊可以具有關于初級存儲驅動器108的經預先分配的塊的一對一映射,使得備份文件具有對應于初級存儲驅動器108的每一個經預先分配的塊的一個塊。在示例實現(xiàn)中,次級存儲驅動器110中的備份文件是稀疏文件,其使得塊能夠關于經預先分配的塊具有相同的偏移和一對一映射。在示例實現(xiàn)中,次級存儲驅動器110還包括存儲各種映射表的緩沖空間,如稍后在描述中描述的。
以下描述詳細地描述依照本主題的示例實現(xiàn)的用于在計算系統(tǒng)100的操作的數據備份模式期間寫入數據的控制器104的操作。在一個示例中,在發(fā)起數據備份之前,初級存儲驅動器108具有多個經預先分配的塊和多個未經分配或自由的塊。經預先分配的塊可以存儲操作系統(tǒng)數據、應用數據和其它用戶數據。初級存儲驅動器108的經預先分配的塊通過112-1、112-2和112-3來索引,并且初級存儲驅動器108的未經分配的塊通過114-1、114-2和114-3來索引,如圖1中所示。在發(fā)起數據備份之后接收到的任何寫入請求將修改現(xiàn)有數據或存儲新數據??梢灾赋龅氖?,為了簡化而僅示出三個經預先分配的塊112-1、112-2和112-3以及僅三個未經分配的塊114-1、114-2和114-3。初級存儲驅動器108可以分別取決于在初級存儲驅動器108中可用的自由存儲空間和數據的尺寸而包括數個經預先分配的塊和數個未經分配的塊。經預先分配的塊集體通過112來索引,并且初級存儲驅動器108的未經分配的塊通過114來索引。
在示例實現(xiàn)中,控制器104從(多個)處理器102接收數據備份請求。數據備份請求是在數據備份模式中操作計算系統(tǒng)100的請求。(多個)處理器102可以基于針對數據備份的用戶輸入而生成和發(fā)送數據備份請求。響應于數據備份請求,控制器104生成具有經預先分配的塊112的信息的初始存儲映射(ism)表。ism表還包括初級存儲驅動器108的未經分配的塊114的信息。在示例實現(xiàn)中,ism表可以描繪具有針對經預先分配的塊112的1和針對未經分配的塊114的0的位圖。
另外,響應于數據備份請求,控制器104生成次級存儲驅動器110。在示例實現(xiàn)中,控制器104生成具有備份文件和緩沖存儲空間的次級存儲驅動器110。備份文件可以是稀疏文件。控制器104可以劃分初級存儲驅動器108以生成次級存儲驅動器110。如較早提到的,備份文件次級存儲驅動器110可以包括等于初級存儲驅動器108的經預先分配的塊的數目的數個塊。備份文件中的塊最初未被分配。如圖1中所示,備份文件的未經分配的塊通過116-1、116-2和116-3(對應于經預先分配的塊112-1、112-2和112-3)來索引。備份文件的未經分配的塊可以通過116集體索引。另外,控制器104將ism表的副本存儲在次級存儲驅動器110中的緩沖存儲空間中。
在操作的數據備份模式中,控制器104可以接收針對向初級存儲驅動器108的塊寫入數據的寫入請求118。在接收到寫入請求118時,控制器104將寫入請求118引導至初級存儲驅動器108。控制器104確定與寫入請求118相關聯(lián)的塊是初級存儲驅動器108的未經分配的塊還是初級存儲驅動器108的經分配的塊,即經預先分配的塊。確定可以基于ism表而執(zhí)行。當確定寫入請求118是針對初級存儲驅動器108的經預先分配的塊時,控制器104將與寫入請求118相關聯(lián)的數據寫入到次級存儲驅動器110。在該情況下,將數據寫入到對應于初級存儲驅動器108的經預先分配的塊的次級存儲驅動器110的備份文件的未經分配的塊。如圖1中所示,當寫入請求118是針對經預先分配的塊112-2時,數據不寫入到經分配的塊112-2(通過箭頭120描繪),而是寫入到次級存儲驅動器110的備份文件的未經分配的塊116-2(通過箭頭122描繪)。
然而,當確定寫入請求118是針對初級存儲驅動器108的未經分配的塊時,控制器104將與寫入請求118相關聯(lián)的數據寫入到初級存儲驅動器108。在該情況下,將數據寫入到初級存儲驅動器108的未經分配的塊。未經分配的塊改變成經分配的塊。如圖1中所示,當寫入請求118是針對未經分配的塊114-1時,將數據寫入到未經分配的塊114-1,通過箭頭124描繪??梢灾赋龅氖?,如果接收到針對在操作的數據備份模式期間分配的塊114-1的任何隨后寫入請求,控制器104蓋寫塊114-1中的數據。
另外,在示例實現(xiàn)中,控制器104生成psm表并且存儲在操作的數據備份模式期間分配的初級存儲驅動器108的塊的信息。psm表還可以包括初級存儲驅動器108的未經分配的塊的信息。在示例實現(xiàn)中,psm表可以描繪具有針對在數據備份模式期間分配的初級存儲驅動器108的塊的第一狀態(tài)(例如“1”)和針對初級存儲驅動器108的未經分配的塊的第二狀態(tài)(例如“0”)的位圖。在示例實現(xiàn)中,ism表和psm表可以是單個表,具有經預先分配的塊(在操作的數據備份模式期間分配的塊)和未經分配的塊的信息。psm表可以存儲在次級存儲驅動器110的緩沖存儲空間中。
另外,控制器104生成ssm表并且存儲次級存儲驅動器110的經分配的塊和未經分配的塊的信息。在示例實現(xiàn)中,ssm表可以描繪具有針對次級存儲驅動器110的未經分配的塊的第一狀態(tài)(例如“0”)和針對次級存儲驅動器110的經分配的塊的第二狀態(tài)(例如“0”)的位圖。ssm表可以存儲在次級存儲驅動器110的緩沖存儲空間中。
圖2圖示了根據本主題的示例實現(xiàn)的用于在數據備份期間讀取數據的系統(tǒng)環(huán)境100。在操作的數據備份模式中,控制器104可以從存儲系統(tǒng)106接收針對讀取數據的讀取請求202。在接收到讀取請求202時,控制器104將讀取請求202引導至次級存儲驅動器110??刂破?04確定讀取請求202是針對次級存儲驅動器110的未經分配的塊還是針對次級存儲驅動器110的經分配的塊。確定可以基于ssm表而執(zhí)行。當確定讀取請求202是針對次級存儲驅動器110的經分配的塊時,控制器104從次級存儲驅動器110讀取與讀取請求202相關聯(lián)的數據。在該情況下,從次級存儲驅動器110的備份文件的對應的經分配的塊讀取數據。如圖2中所示,當讀取請求202是針對經分配的塊116-2時,從經分配的塊116-2讀取數據,通過箭頭204描繪。
然而,當確定讀取請求202是針對次級存儲驅動器110的未經分配的塊時,控制器104從初級存儲驅動器108讀取與讀取請求202相關聯(lián)的數據。在該情況下,從初級存儲驅動器108的對應的經分配的塊讀取數據。如圖2中所示,當讀取請求202是針對未經分配的塊116-3時,數據不從未經分配的塊116-3讀取,通過箭頭206描繪,而是從經預先分配的塊112-3讀取,通過箭頭208描繪。
以下描述描述了依照本主題的示例實現(xiàn)的用于恢復計算系統(tǒng)100的控制器104的操作??梢灾赋龅氖牵斠謴陀嬎阆到y(tǒng)100時,計算系統(tǒng)100可以操作在數據備份模式中。計算系統(tǒng)100可以在計算系統(tǒng)的操作系統(tǒng)變成不可啟動或計算系統(tǒng)100感染有病毒或惡意軟件或誤配置了應用更新時恢復。計算系統(tǒng)100還可以在用戶出于某種原因而希望將計算系統(tǒng)100帶回到較早狀態(tài)的情況下恢復。
在示例實現(xiàn)中,控制器104從(多個)處理器102接收系統(tǒng)恢復請求。系統(tǒng)恢復請求是將計算系統(tǒng)100恢復到較早狀態(tài)的請求。(多個)處理器102可以基于針對系統(tǒng)恢復的用戶輸入而生成和發(fā)送系統(tǒng)恢復請求。響應于系統(tǒng)恢復請求,控制器104針對數據的讀取和寫入而忽略psm表和ssm表。通過忽略psm表和ssm表,將計算系統(tǒng)100恢復到在以對于用戶看起來瞬時的方式發(fā)起數據備份之前存在的狀態(tài)??刂破?04參考ism表以用于數據的進一步寫入。
另外,在接收到系統(tǒng)恢復請求之后,控制器104生成新的次級存儲驅動器,并且利用新的次級存儲驅動器連同初級存儲驅動器108以用于數據的讀取和寫入。圖3圖示了根據本主題的示例實現(xiàn)的系統(tǒng)恢復之后的系統(tǒng)環(huán)境100。如圖3中所示,存儲系統(tǒng)106包括新的次級存儲驅動器302??刂破?04生成具有備份文件和緩沖存儲空間的新的次級存儲驅動器302,類似于之前生成的次級存儲驅動器110。如果初級存儲驅動器108具有充足的自由存儲空間,控制器104可以劃分初級存儲驅動器108以生成新的次級存儲驅動器302。新的次級存儲驅動器302的備份文件可以包括等于初級存儲驅動器108的經預先分配的塊的數目的數個塊。新的次級存儲驅動器302的備份文件中的塊最初未經分配。另外,控制器104將ism表的副本存儲在新的次級存儲驅動器302中的緩沖存儲空間中。控制器104可以再次生成ism表,或者拷貝存儲在之前使用的次級存儲驅動器110的緩沖存儲空間中的相同ism表??刂破?04還基于隨后的寫入請求而維護新的psm表和新的ssm表,并且以與較早描述的類似的方式使用新的psm表和ssm表以用于隨后的讀取和寫入請求。
另外,在示例實現(xiàn)中,在接收到系統(tǒng)恢復請求之后,控制器104保護在操作的數據備份模式期間分配的初級存儲驅動器108的塊。塊受保護以防在接收到系統(tǒng)恢復請求之后的修改。也就是說,不允許針對受保護的塊的任何寫入請求,使得可以存留受保護的塊的數據??刂破?04參考psm表以用于保護塊。為了保護塊,控制器104可以隱藏塊或者使它們是只讀塊。在示例實現(xiàn)中,控制器104可以創(chuàng)建偽文件并且將要保護的塊關聯(lián)到所述偽文件。
另外,在示例實現(xiàn)中,在保護塊之后,控制器104呈現(xiàn)初級存儲驅動器108的經分配的塊的數據和次級存儲驅動器110的經分配的塊的數據以用于拷貝到存儲空間。這使得能夠實現(xiàn)直至接收到系統(tǒng)恢復請求的時間而存儲在存儲系統(tǒng)106中的最新數據的回復。初級存儲驅動器108的經分配的塊包括經預先分配的塊112和受保護的塊,即在操作的數據備份模式期間分配的初級存儲驅動器108的塊。
另外,控制器104可以按虛擬存儲驅動器的形式呈現(xiàn)數據以供拷貝。虛擬存儲驅動器在圖3中通過304索引。虛擬存儲驅動器304暴露于(多個)處理器102,并且計算系統(tǒng)100的用戶可以從虛擬存儲驅動器304拷貝數據以回復在系統(tǒng)恢復之前存儲的最新數據。如果初級存儲驅動器108具有充足的自由存儲空間,來自虛擬存儲驅動器304的數據可以拷貝到初級存儲驅動器108。來自虛擬存儲驅動器304的數據可以拷貝到外部存儲介質,例如閃速驅動器、存儲器服務器、云使能的存儲介質等。
在示例實現(xiàn)中,計算系統(tǒng)100可以出于恢復計算系統(tǒng)100的目的而重啟。如果計算系統(tǒng)100的操作系統(tǒng)從正在被備份的存儲驅動器運行,重啟計算系統(tǒng)100。在計算系統(tǒng)100在接收到系統(tǒng)恢復請求之后重啟的情況下,控制器104關掉計算系統(tǒng)100,并且在啟動計算系統(tǒng)100之前,控制器104忽略psm表和ssm表,生成新的次級存儲驅動器302,并且保護在操作的數據模式期間分配的初級存儲驅動器108的塊。
在示例實現(xiàn)中,在計算系統(tǒng)100能夠虛擬化的情況下,控制器104是系統(tǒng)仿真器,例如快速仿真器(qemu)。在該實現(xiàn)中,(多個)處理器102充當向系統(tǒng)仿真器發(fā)送讀取和寫入請求的虛擬機。系統(tǒng)仿真器向虛擬機的操作系統(tǒng)提供作為虛擬存儲驅動器的存儲系統(tǒng)106的初級存儲驅動器108和次級存儲驅動器110,以用于數據的讀取和寫入。這促進安全的數據備份和安全的系統(tǒng)恢復,因為經備份的數據和存儲在存儲系統(tǒng)106中的表不向(多個)處理器102或由(多個)處理器102執(zhí)行的操作系統(tǒng)暴露。
在示例實現(xiàn)中,在計算系統(tǒng)100不具有虛擬化能力的情況下,控制器104可以實現(xiàn)為存儲系統(tǒng)驅動器。
圖4圖示了根據本主題的示例實現(xiàn)的在存儲系統(tǒng)中的數據備份期間寫入數據的方法400。以其描述方法400的次序不旨在解釋為限制,并且任何數目的所描述的方法塊可以按任何次序組合以實現(xiàn)方法400。另外,方法400可以通過任何合適的硬件、非暫時性機器可讀介質或其組合而由(多個)處理器或(多個)計算設備實現(xiàn)。另外,盡管在前述計算系統(tǒng)100的上下文中描述方法400,但是其它合適的計算設備或系統(tǒng)可以用于方法400的執(zhí)行。可以理解到,在方法400中牽涉的過程可以基于存儲在非暫時性計算機可讀介質中的指令而執(zhí)行,如將容易理解到的。非暫時性計算機可讀介質可以包括例如數字存儲器、磁性存儲介質(諸如磁盤和磁帶)、硬驅動器或光學可讀數字數據存儲介質。
參照圖4,在402處,在數據備份模式中從計算設備接收寫入請求。計算設備可以包括生成寫入請求的(多個)處理器102。使用至少一個計算機來接收寫入請求。所述至少一個計算機可以是控制器104。在接收到寫入請求之后,確定寫入請求是針對初級存儲驅動器108的經分配的塊還是針對初級存儲驅動器108的未經分配的塊。確定使用至少一個計算機來執(zhí)行。當寫入請求是針對初級存儲驅動器108的未經分配的塊時,在404處,將與寫入請求相關聯(lián)的數據寫入到初級存儲驅動器108。在該情況下,使用所述至少一個計算機(例如控制器104)將數據寫入到初級存儲驅動器108的未經分配的塊。當寫入請求是針對初級存儲驅動器108的經分配的塊時,在406處,將與寫入請求相關聯(lián)的數據寫入到存儲系統(tǒng)106的次級存儲驅動器110。在該情況下,使用所述至少一個計算機(例如控制器104)將數據寫入到對應于初級存儲驅動器108的經分配的塊的次級存儲驅動器110的塊,如較早描述的。
另外,如較早提到的,維護存儲在數據備份模式期間分配的初級存儲驅動器108的塊的信息的psm表。同樣,維護存儲次級存儲驅動器108的未經分配的塊和經分配的塊的信息的ssm表。使用所述至少一個計算機來維護psm表和ssm表。
圖5圖示了根據本主題的示例實現(xiàn)的在存儲系統(tǒng)的數據備份期間讀取數據的方法500。以其描述方法500的次序不旨在解釋為限制,并且任何數目的所描述的方法塊可以按任何次序組合以實現(xiàn)方法500。另外,方法500可以通過任何合適的硬件、非暫時性機器可讀介質或其組合而由(多個)處理器或(多個)計算設備實現(xiàn)。另外,盡管在前述計算系統(tǒng)100的上下文中描述方法500,但是其它合適的計算設備或系統(tǒng)可以用于方法500的執(zhí)行??梢岳斫獾?,在方法500中牽涉的過程可以基于存儲在非暫時性計算機可讀介質中的指令而執(zhí)行,如將容易理解到的。非暫時性計算機可讀介質可以包括例如數字存儲器、磁性存儲介質(諸如磁盤和磁帶)、硬驅動器或光學可讀數字數據存儲介質。
參照圖5,在502處,在數據備份模式中從計算設備接收讀取請求。計算設備可以包括生成讀取請求的(多個)處理器102。讀取請求使用至少一個計算機來接收。所述至少一個計算機可以是控制器104。在接收到讀取請求之后,基于ssm表確定讀取請求是針對次級存儲驅動器110的經分配的塊還是針對次級存儲驅動器110的未經分配的塊。確定使用所述至少一個計算機來執(zhí)行。當確定讀取請求是針對次級存儲驅動器110的經分配的塊時,在504處,從次級存儲驅動器110讀取與讀取請求相關聯(lián)的數據。在該情況下,使用所述至少一個計算機(例如控制器104)從次級存儲驅動器110的經分配的塊讀取數據。當確定讀取請求是針對次級存儲驅動器110的未經分配的塊時,在506處,從初級存儲驅動器108讀取與讀取請求相關聯(lián)的數據。在該情況下,使用所述至少一個計算機(例如控制器104)從對應于次級存儲驅動器110的未經分配的塊的初級存儲驅動器108的經分配的塊讀取數據。
圖6圖示了根據本主題的示例實現(xiàn)的恢復計算系統(tǒng)的方法600。以其描述方法600的次序不旨在解釋為限制,并且任何數目的所描述的方法塊可以按任何次序組合以實現(xiàn)方法600。另外,方法600可以通過任何合適的硬件、非暫時性機器可讀介質或其組合而由(多個)處理器或(多個)計算設備實現(xiàn)。另外,盡管在前述計算系統(tǒng)100的上下文中描述方法600,但是其它合適的計算設備或系統(tǒng)可以用于方法600的執(zhí)行??梢岳斫獾剑诜椒?00中牽涉的過程可以基于存儲在非暫時性計算機可讀介質中的指令而執(zhí)行,如將容易理解到的。非暫時性計算機可讀介質可以包括例如數字存儲器、磁性存儲介質(諸如磁盤和磁帶)、硬驅動器或光學可讀數字數據存儲介質。
參照圖6,在602處,從計算設備接收系統(tǒng)恢復請求。計算設備可以包括生成系統(tǒng)恢復請求的(多個)處理器102。系統(tǒng)恢復請求使用至少一個計算機來接收。所述至少一個計算機可以是控制器104。響應于系統(tǒng)恢復請求,在604處,在接收到系統(tǒng)恢復請求之后,針對數據的讀取和寫入而忽略ssm表和psm表。使用所述至少一個計算機(例如控制器104)來忽略ssm表和psm表。另外,在606處,保護在數據備份模式期間分配的初級存儲驅動器的塊以防接收到系統(tǒng)恢復請求之后的修改。使用所述至少一個計算機(例如控制器104)以如描述中較早描述的方式保護初級存儲驅動器108的這樣的塊。此后,在608處,在虛擬存儲驅動器中呈現(xiàn)初級存儲驅動器108的經分配的塊的數據和次級存儲驅動器110的經分配的塊的數據以用于拷貝到存儲空間。初級存儲驅動器108的經分配的塊包括受保護的塊。所述至少一個計算機,例如控制器104,向(多個)處理器102暴露具有所述數據的虛擬存儲驅動器以用于拷貝到外部存儲空間或初級存儲驅動器108。
另外,在接收到系統(tǒng)恢復請求之后,在610處,生成新的次級存儲驅動器。在示例中,新的次級存儲驅動器310使用所述至少一個計算機(例如控制器104)通過劃分初級存儲驅動器108而生成。在612處,初級存儲驅動器和新的次級存儲驅動器用于在接收到系統(tǒng)恢復請求之后在數據備份模式中的數據的讀取和寫入。初級存儲驅動器和新的次級存儲驅動器使用所述至少一個計算機(例如控制器104)來利用。
圖7圖示了根據本主題的示例實現(xiàn)的示例系統(tǒng)環(huán)境700。在示例實現(xiàn)中,系統(tǒng)環(huán)境700包括通過通信鏈路706通信耦合到非暫時性計算機可讀介質704的計算機702。計算機702具有用于從非暫時性計算機可讀介質704提取和執(zhí)行計算機可讀指令的處理資源。
計算機702和非暫時性計算機可讀介質704還通信耦合到存儲系統(tǒng)708。存儲系統(tǒng)708可以包括初級存儲驅動器和次級存儲驅動器(如較早描述的),以用于在數據備份模式期間讀取和寫入數據。
非暫時性計算機可讀介質704可以是例如內部存儲器設備或外部存儲器設備。在示例實現(xiàn)中,通信鏈路706可以是直接通信鏈路,諸如任何存儲器讀取/寫入接口。在另一示例實現(xiàn)中,通信鏈路706可以是間接通信鏈路,諸如網絡接口。在這樣的情況下,計算機702可以通過網絡(未示出)訪問非暫時性計算機可讀介質704。網絡可以是單個網絡或多個網絡的組合,并且可以使用各種不同的通信協(xié)議。
在示例實現(xiàn)中,非暫時性計算機可讀介質704包括用于數據備份、系統(tǒng)恢復和數據的回復的計算機可讀指令集。計算機可讀指令集可以由計算機702通過通信鏈路706來訪問,并且隨后被執(zhí)行以施行用于數據備份、系統(tǒng)恢復和數據回復的動作。
參照圖7,在示例中,非暫時性計算機可讀介質704包括使得計算機702在數據備份模式中從計算設備接收寫入請求的指令710。非暫時性計算機可讀介質704包括使得計算機702在寫入請求是針對將數據寫入到初級存儲驅動器的未經分配的塊時將與寫入請求相關聯(lián)的數據寫入到存儲系統(tǒng)708的初級存儲驅動器的指令712。非暫時性計算機可讀介質704包括使得計算機702在寫入請求是針對將數據寫入到初級存儲驅動器的經分配的塊時將與寫入請求相關聯(lián)的數據寫入到存儲系統(tǒng)708的次級存儲驅動器的指令714。非暫時性計算機可讀介質704包括使得計算機702在psm表中存儲在數據備份模式期間分配的初級存儲驅動器的塊的信息的指令716。非暫時性計算機可讀介質704包括使得計算機702在ssm表中存儲次級存儲驅動器的未經分配的塊和經分配的塊的信息的指令718。
在示例實現(xiàn)中,非暫時性計算機可讀介質704還可以包括指令,所述指令使得計算機702:在數據備份模式中從計算設備接收讀取請求;當基于ssm表而確定讀取請求是針對次級存儲驅動器的經分配的塊時從次級存儲驅動器讀取與讀取請求相關聯(lián)的數據;并且當基于ssm表而確定讀取請求是針對次級存儲驅動器的未經分配的塊時從初級存儲驅動器讀取與讀取請求相關聯(lián)的數據。
在示例實現(xiàn)中,非暫時性計算機可讀介質704還可以包括指令,所述指令使得計算機702從計算設備接收系統(tǒng)恢復請求,并且在接收到系統(tǒng)恢復請求之后,針對數據的讀取和寫入而忽略ssm表和psm表。在示例實現(xiàn)中,非暫時性計算機可讀介質704還可以包括指令,所述指令使得計算機702在接收到系統(tǒng)恢復請求之后生成新的次級存儲驅動器,并且在接收到系統(tǒng)恢復請求之后利用初級存儲驅動器和新的次級存儲驅動器以用于數據備份模式中的數據的讀取和寫入。
在示例實現(xiàn)中,非暫時性計算機可讀介質704還可以包括使得計算機702保護在數據備份模式期間分配的初級存儲驅動器的塊以防在接收到系統(tǒng)恢復請求之后的修改的指令。非暫時性計算機可讀介質704還可以包括使得計算機702在虛擬存儲驅動器中呈現(xiàn)初級存儲驅動器的經分配的塊的數據和次級存儲驅動器的經分配的塊的數據以用于拷貝到存儲空間的指令。初級存儲驅動器108的經分配的塊包括受保護的塊。
盡管已經以具體到結構特征和/或方法的語言描述了用于數據備份、系統(tǒng)恢復和數據回復的實現(xiàn),但是要理解的是,本主題不必限于所描述的具體特征或方法。更確切地說,具體特征和方法作為用于計算系統(tǒng)中的數據備份、系統(tǒng)恢復和數據回復的示例實現(xiàn)而被公開和解釋。