一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法
【專利摘要】本發(fā)明涉及一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法,包括日志數(shù)據(jù)管理方式、空間擴容、空間縮減、空間回收過程。本發(fā)明在不影響已保存日志完整性的情況下,對CDP日志卷進(jìn)行擴展或壓縮,自動回收超過保護期限的數(shù)據(jù),并釋放其占用的空間。本發(fā)明能夠持續(xù)備份受保護卷中的變化數(shù)據(jù),并能夠利用備份數(shù)據(jù)把受保護卷的內(nèi)容恢復(fù)到較舊時間點。
【專利說明】-種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計算機數(shù)據(jù)存儲和備份方法,具體涉及一種日志空間在線可調(diào)整的連 續(xù)數(shù)據(jù)保護和恢復(fù)方法。
【背景技術(shù)】
[0002] 連續(xù)數(shù)據(jù)保護(Continuous Data Protection, Q)P)是一種新興的數(shù)據(jù)保護技術(shù)。 它能夠連續(xù)捕獲數(shù)據(jù)變化,將這些變化獨立于原始數(shù)據(jù)進(jìn)行保存,并且可以把受保護的數(shù) 據(jù)恢復(fù)到過去任意時間點。因為CDP系統(tǒng)持續(xù)捕捉數(shù)據(jù)變化,記錄數(shù)據(jù)量非常大,需要對備 份數(shù)據(jù)進(jìn)行有效管理,傳統(tǒng)的數(shù)據(jù)管理方式是按時間順序?qū)懭?,這種方式的優(yōu)點是管理簡 單,讀寫方便。但是無法做到日志卷動態(tài)變化,一旦日志卷存滿必須停止CDP系統(tǒng),影響CDP 系統(tǒng)的正常使用。
【發(fā)明內(nèi)容】
[0003] 要解決的技術(shù)問題
[0004] 為了避免現(xiàn)有技術(shù)的不足之處,本發(fā)明提出一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù) 保護和恢復(fù)方法,解決現(xiàn)有連續(xù)數(shù)據(jù)保護技術(shù)中數(shù)據(jù)日志卷無法動態(tài)擴展和壓縮的問題, 并且能夠按用戶設(shè)定自動清除過期數(shù)據(jù),回收空間供再次使用。
[0005] 技術(shù)方案
[0006] 一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法,其特征在于步驟如下:
[0007] 步驟1 :把⑶P日志卷劃分為超級塊、索引段和若干個數(shù)據(jù)段;系統(tǒng)每申請使用一 個新數(shù)據(jù)段,在索引段中就生成一條對應(yīng)的索引,索引中記錄對應(yīng)的數(shù)據(jù)段號和段中第一 條數(shù)據(jù)寫入時間;
[0008] 所述超級塊是數(shù)據(jù)日志卷的第一個數(shù)據(jù)塊,記錄CDP運行和數(shù)據(jù)管理所需的全部 信息,包括⑶P開始記錄時間、⑶P狀態(tài)、有效索引段起始地址、數(shù)據(jù)段起始扇區(qū)號、數(shù)據(jù)段 總數(shù)量、已經(jīng)使用的數(shù)據(jù)段數(shù)目、當(dāng)前段中記錄的元數(shù)據(jù)數(shù)量、當(dāng)前使用的數(shù)據(jù)段號、數(shù)據(jù) 段空閑段表;
[0009] 所述空閑段表是一張位表,記錄每個數(shù)據(jù)段使用情況;
[0010] 所述數(shù)據(jù)段是等長的存儲備份數(shù)據(jù)和元數(shù)據(jù)的空間,在每個數(shù)據(jù)段中存儲一定量 的備份數(shù)據(jù)和其對應(yīng)的元數(shù)據(jù),元數(shù)據(jù)和備份數(shù)據(jù)被各自集中存放在數(shù)據(jù)段的元數(shù)據(jù)區(qū)和 備份數(shù)據(jù)區(qū);
[0011] 步驟2 :將所有備份數(shù)據(jù)拆分為固定大小的數(shù)據(jù)塊,每個數(shù)據(jù)塊對應(yīng)一個元數(shù)據(jù), 元數(shù)據(jù)和對應(yīng)的數(shù)據(jù)塊存儲在同一個數(shù)據(jù)段中
[0012] 步驟3 :定義每個數(shù)據(jù)塊的元數(shù)據(jù);所述元數(shù)據(jù)包括時間戳、數(shù)據(jù)塊在受保護卷中 的地址和數(shù)據(jù)塊在日志卷中的地址、數(shù)據(jù)塊大??;
[0013] 步驟 4:
[0014] 數(shù)據(jù)記錄過程;CDP系統(tǒng)捕獲到受保護卷的寫入數(shù)據(jù)時,從超級塊中查看當(dāng)前使 用的數(shù)據(jù)段號和當(dāng)前段存儲的數(shù)據(jù)量;如果當(dāng)前使用的數(shù)據(jù)段號有效且當(dāng)前段中存儲的數(shù) 據(jù)量沒有超過最大值,向正在使用的數(shù)據(jù)段中寫入元數(shù)據(jù)和備份數(shù)據(jù)塊;否則需要分配一 個新數(shù)據(jù)段保存日志,過程為:從超級塊中的空閑段表中查詢段號最小的空閑數(shù)據(jù)段,并在 空閑段表中將其標(biāo)記為已使用,之后為這個數(shù)據(jù)段新建一條索引,索引中填寫此段段號和 當(dāng)前時間。再按照公式:數(shù)據(jù)段基址+段號X段長,計算出這個數(shù)據(jù)段所在地址,向其中寫 入元數(shù)據(jù)和備份數(shù)據(jù);
[0015] 檢索某一時刻的備份數(shù)據(jù)的過程;從超級塊中讀取有效索引起止位置,從有效索 引起點開始按順序檢索索引時間,當(dāng)檢索到某索引時間小于指定時間且下一個索引時間大 于指定時間時,計算出這個索引對應(yīng)的數(shù)據(jù)段位置并檢索數(shù)據(jù)段中存儲的元數(shù)據(jù)時間戳, 即可找到目標(biāo)時間點前后最近的數(shù)據(jù);
[0016] 日志卷可用空間的計算;日志卷中能夠存儲有效數(shù)據(jù)的部分是每個數(shù)據(jù)段中的備 份數(shù)據(jù)區(qū),計算日志卷剩余空間時從超級塊中讀取當(dāng)前可用的數(shù)據(jù)段個數(shù),用可用數(shù)據(jù)段 個數(shù)乘以每個數(shù)據(jù)段中備份數(shù)據(jù)區(qū)的大小,得到剩余可用空間;
[0017] 空間擴容過程;調(diào)用存儲虛擬化系統(tǒng)對日志卷進(jìn)行擴容,CDP系統(tǒng)重新讀取日志 卷大小,并計算日志卷可以容納數(shù)據(jù)段數(shù)量;把擴容后的數(shù)據(jù)段數(shù)量寫入超級塊,同時修改 剩余可用數(shù)據(jù)段個數(shù);因為超級快中記錄的數(shù)據(jù)段數(shù)量發(fā)生了改變,導(dǎo)致查詢空閑段表的 范圍增大,新增的空間就會被查詢到并使用;
[0018] 空間縮減過程;系統(tǒng)計算出已使用的數(shù)據(jù)段個數(shù)N,之后遍歷索引,如果索引對應(yīng) 的數(shù)據(jù)段大于或等于N,把這個數(shù)據(jù)段的內(nèi)容拷貝至0到N-1之間編號最小的空閑數(shù)據(jù)段, 并修改索引;索引遍歷完成后,數(shù)據(jù)段N之后的連續(xù)空間全部是空閑數(shù)據(jù)段,被回收;系統(tǒng) 會計算出這部分空間的大小M,之后可以調(diào)用存儲虛擬化模塊把CDP日志卷壓縮至0到Μ之 間的大??;
[0019] 空間回收過程;根據(jù)用戶設(shè)定的數(shù)據(jù)保護期限,清理超過保護期限的數(shù)據(jù)段,釋放 出空間供再次使用;如果在空間回收過程中收到數(shù)據(jù)恢復(fù)請求,則立刻停止空間回收并開 始恢復(fù)數(shù)據(jù);當(dāng)空間回收開始時,系統(tǒng)從最早的有效索引開始檢測,查詢本索引對應(yīng)數(shù)據(jù)段 中記錄的時間范圍,如果數(shù)據(jù)段中所有記錄都超過保護期限,把數(shù)據(jù)段中記錄的數(shù)據(jù)寫入 初始鏡像,之后有效索引起始指針后移,使本條索引失效。在空閑段表中把這條索引對應(yīng)的 數(shù)據(jù)段使用狀態(tài)標(biāo)記為未使用,并把超級塊中記錄的可用數(shù)據(jù)段條數(shù)加一。繼續(xù)查詢下一 條索引,直到找到未超期的索引,修改CDP記錄起始時間為本索引的起始時間,結(jié)束;
[0020] 數(shù)據(jù)恢復(fù)過程;數(shù)據(jù)恢復(fù)時從有效索引起點開始遍歷索引,如果遍歷到的索引時 間不在恢復(fù)時間范圍內(nèi),跳到下一條索引,否則開始遍歷索引對應(yīng)數(shù)據(jù)段內(nèi)的元數(shù)據(jù),如果 元數(shù)據(jù)時間戳符合恢復(fù)條件,則根據(jù)元數(shù)據(jù)中記錄的信息,把備份數(shù)據(jù)塊拷貝回受保護卷 中的對應(yīng)位置,直到讀取的元數(shù)據(jù)時間戳大于目標(biāo)恢復(fù)時間時停止。
[0021] 所述步驟2中固定大小的數(shù)據(jù)塊為2Κ、4Κ或8Κ。
[0022] 有益效果
[0023] 本發(fā)明提出的一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法,包括日志數(shù) 據(jù)管理方式、空間擴容、空間縮減、空間回收過程。本發(fā)明在不影響已保存日志完整性的情 況下,對CDP日志卷進(jìn)行擴展或壓縮,自動回收超過保護期限的數(shù)據(jù),并釋放其占用的空 間。本發(fā)明能夠持續(xù)備份受保護卷中的變化數(shù)據(jù),并能夠利用備份數(shù)據(jù)把受保護卷的內(nèi)容 恢復(fù)到較舊時間點。
[0024] 本發(fā)明術(shù)方案帶來的有益效果:
[0025] (1)日志數(shù)據(jù)集中存儲。區(qū)別于傳統(tǒng)CDP把元數(shù)據(jù)和備份數(shù)據(jù)分別存儲在不同卷, 本發(fā)明把備份數(shù)據(jù)和元數(shù)據(jù)集中存儲在同一個日志卷中,易于數(shù)據(jù)組織和管理。
[0026] (2)快速查找目標(biāo)數(shù)據(jù)。使用索引對數(shù)據(jù)段進(jìn)行管理,在查詢?nèi)罩緮?shù)據(jù)時不需要遍 歷整個元數(shù)據(jù)鏈條,通過索引即可判斷對應(yīng)數(shù)據(jù)段中的日志是否在查詢范圍內(nèi),對不在查 詢范圍內(nèi)的數(shù)據(jù)段不進(jìn)行遍歷。減少遍歷數(shù)據(jù)量,加快查詢速度。
[0027] (3)空間管理更具靈活性。在⑶P運行過程中可以動態(tài)進(jìn)行空間擴容和空間回收, 不影響系統(tǒng)正常記錄日志,也不會破壞已存儲的日志數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0028] 圖1 :數(shù)據(jù)組織方式
[0029] 圖2 :空間擴容
[0030] 圖3 :空間縮減
[0031] 圖4:空間回收
【具體實施方式】
[0032] 現(xiàn)結(jié)合實施例、附圖對本發(fā)明作進(jìn)一步描述:
[0033] 本發(fā)明是一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)方法,包括:
[0034] (1)⑶P日志管理方法;把⑶P日志卷劃分為超級塊、索引段和若干個數(shù)據(jù)段。超級 塊是數(shù)據(jù)日志卷的第一個數(shù)據(jù)塊。記錄CDP運行和數(shù)據(jù)管理所需的全部信息,包括CDP開 始記錄時間、CDP狀態(tài)、有效索引段起始地址、數(shù)據(jù)段起始扇區(qū)號、數(shù)據(jù)段總數(shù)量、已經(jīng)使用 的數(shù)據(jù)段數(shù)目、當(dāng)前段中記錄的元數(shù)據(jù)數(shù)量、當(dāng)前使用的數(shù)據(jù)段號、數(shù)據(jù)段空閑段表??臻e 段表是一張位表,記錄每個數(shù)據(jù)段使用情況。系統(tǒng)每申請使用一個新數(shù)據(jù)段,在索引段中就 生成一條對應(yīng)的索引。索引中記錄對應(yīng)的數(shù)據(jù)段號和段中第一條數(shù)據(jù)寫入時間。數(shù)據(jù)段是 等長的存儲備份數(shù)據(jù)和元數(shù)據(jù)的空間,在每個數(shù)據(jù)段中存儲一定量的備份數(shù)據(jù)和其對應(yīng)的 元數(shù)據(jù),元數(shù)據(jù)和備份數(shù)據(jù)被各自集中存放在數(shù)據(jù)段的元數(shù)據(jù)區(qū)和備份數(shù)據(jù)區(qū)。
[0035] (2)所有備份數(shù)據(jù)都被拆分為固定大小的數(shù)據(jù)塊,如2K、4K、8K,每個數(shù)據(jù)塊對應(yīng) 一個元數(shù)據(jù),元數(shù)據(jù)和對應(yīng)的數(shù)據(jù)塊存儲在同一個數(shù)據(jù)段中。
[0036] (3)定義每個數(shù)據(jù)塊的元數(shù)據(jù),元數(shù)據(jù)包括時間戳、數(shù)據(jù)塊在受保護卷中的地址和 數(shù)據(jù)塊在日志卷中的地址、數(shù)據(jù)塊大小。
[0037] (4)數(shù)據(jù)記錄過程;CDP系統(tǒng)捕獲到受保護卷的寫入數(shù)據(jù)時,從超級塊中查看當(dāng)前 使用的數(shù)據(jù)段號和當(dāng)前段存儲的數(shù)據(jù)量。如果當(dāng)前使用的數(shù)據(jù)段號有效且當(dāng)前段中存儲的 數(shù)據(jù)量沒有超過最大值,向正在使用的數(shù)據(jù)段中寫入元數(shù)據(jù)和備份數(shù)據(jù)塊。否則需要分配 一個新數(shù)據(jù)段保存日志,方法是從超級塊中的空閑段表中查詢段號最小的空閑數(shù)據(jù)段,并 在空閑段表中將其標(biāo)記為已使用,之后為這個數(shù)據(jù)段新建一條索引,索引中填寫此段段號 和當(dāng)前時間。再按照公式(數(shù)據(jù)段基址+段號X段長)計算出這個數(shù)據(jù)段所在地址,向其 中寫入元數(shù)據(jù)和備份數(shù)據(jù)。
[0038] (5)檢索某一時刻的備份數(shù)據(jù)的過程;從超級塊中讀取有效索引起止位置,從有 效索引起點開始按順序檢索索引時間,當(dāng)檢索到某索引時間小于指定時間且下一個索引時 間大于指定時間時,計算出這個索引對應(yīng)的數(shù)據(jù)段位置并檢索數(shù)據(jù)段中存儲的元數(shù)據(jù)時間 戳,即可找到目標(biāo)時間點前后最近的數(shù)據(jù)。
[0039] (6)日志卷可用空間的計算;日志卷中能夠存儲有效數(shù)據(jù)的部分是每個數(shù)據(jù)段中 的備份數(shù)據(jù)區(qū),計算日志卷剩余空間時從超級塊中讀取當(dāng)前可用的數(shù)據(jù)段個數(shù),用可用數(shù) 據(jù)段個數(shù)乘以每個數(shù)據(jù)段中備份數(shù)據(jù)區(qū)的大小,就可以得到剩余可用空間。
[0040] (7)空間擴容過程;首先調(diào)用存儲虛擬化系統(tǒng)對日志卷進(jìn)行擴容,CDP系統(tǒng)重新讀 取日志卷大小,并計算日志卷可以容納數(shù)據(jù)段數(shù)量。把擴容后的數(shù)據(jù)段數(shù)量寫入超級塊,同 時修改剩余可用數(shù)據(jù)段個數(shù)。因為超級快中記錄的數(shù)據(jù)段數(shù)量發(fā)生了改變,導(dǎo)致查詢空閑 段表的范圍增大,新增的空間就會被查詢到并使用。
[0041] (8)空間縮減過程;空間縮減是縮小數(shù)據(jù)日志卷所占用的空間同時保證備份的數(shù) 據(jù)不丟失。系統(tǒng)首先計算出已使用的數(shù)據(jù)段個數(shù)N,之后遍歷索引,如果索引對應(yīng)的數(shù)據(jù)段 大于或等于N,把這個數(shù)據(jù)段的內(nèi)容拷貝至0到N-1之間編號最小的空閑數(shù)據(jù)段,并修改索 弓丨。索引遍歷完成后,數(shù)據(jù)段N之后的連續(xù)空間全部是空閑數(shù)據(jù)段,可以被回收。系統(tǒng)會計 算出這部分空間的大小M,之后可以調(diào)用存儲虛擬化模塊把CDP日志卷壓縮至0到Μ之間的 大小。
[0042] (9)空間回收過程;空間回收是由用戶設(shè)定數(shù)據(jù)保護期限,系統(tǒng)自動清理超過保 護期限的數(shù)據(jù)段,釋放出空間供再次使用??臻g回收可以定時或用戶手動運行,也可以在空 間不足時自動運行,如果在空間回收過程中收到數(shù)據(jù)恢復(fù)請求,則立刻停止空間回收并開 始恢復(fù)數(shù)據(jù)。當(dāng)空間回收開始時,系統(tǒng)從最早的有效索引開始檢測,查詢本索引對應(yīng)數(shù)據(jù)段 中記錄的時間范圍,如果數(shù)據(jù)段中所有記錄都超過保護期限,把數(shù)據(jù)段中記錄的數(shù)據(jù)寫入 初始鏡像,之后有效索引起始指針后移,使本條索引失效。在空閑段表中把這條索引對應(yīng)的 數(shù)據(jù)段使用狀態(tài)標(biāo)記為未使用,并把超級塊中記錄的可用數(shù)據(jù)段條數(shù)加一。繼續(xù)查詢下一 條索引,直到找到未超期的索引,修改CDP記錄起始時間為本索引的起始時間,結(jié)束。
[0043] (10)數(shù)據(jù)恢復(fù)過程;數(shù)據(jù)恢復(fù)時從有效索引起點開始遍歷索弓丨。如果遍歷到的索 引時間不在恢復(fù)時間范圍內(nèi),跳到下一條索引。否則開始遍歷索引對應(yīng)數(shù)據(jù)段內(nèi)的元數(shù)據(jù), 如果元數(shù)據(jù)時間戳符合恢復(fù)條件,則根據(jù)元數(shù)據(jù)中記錄的信息,把備份數(shù)據(jù)塊拷貝回受保 護卷中的對應(yīng)位置。直到讀取的元數(shù)據(jù)時間戳大于目標(biāo)恢復(fù)時間時停止。
[0044] 具體實施例如下:
[0045] 數(shù)據(jù)管理方式如圖1。CDP日志卷被劃分為超級塊、索引段、數(shù)據(jù)段。每個數(shù)據(jù)段 中記錄著元數(shù)據(jù)和對應(yīng)的數(shù)據(jù)塊。通過元數(shù)據(jù)可以找到備份數(shù)據(jù)塊在日志卷中的位置和在 受保護卷中的位置。
[0046] 下面詳細(xì)描述本發(fā)明專門設(shè)計的三個數(shù)據(jù)結(jié)構(gòu):超級塊數(shù)據(jù)結(jié)構(gòu)(表1)、索引數(shù) 據(jù)結(jié)構(gòu)(表2)和元數(shù)據(jù)結(jié)構(gòu)(表3)。
[0047] 表1超級塊結(jié)構(gòu)
[0048]
【權(quán)利要求】
1. 一種日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法,其特征在于步驟如下: 步驟1 :把CDP日志卷劃分為超級塊、索引段和若干個數(shù)據(jù)段;系統(tǒng)每申請使用一個新 數(shù)據(jù)段,在索引段中就生成一條對應(yīng)的索引,索引中記錄對應(yīng)的數(shù)據(jù)段號和段中第一條數(shù) 據(jù)寫入時間; 所述超級塊是數(shù)據(jù)日志卷的第一個數(shù)據(jù)塊,記錄CDP運行和數(shù)據(jù)管理所需的全部信 息,包括CDP開始記錄時間、CDP狀態(tài)、有效索引段起始地址、數(shù)據(jù)段起始扇區(qū)號、數(shù)據(jù)段總 數(shù)量、已經(jīng)使用的數(shù)據(jù)段數(shù)目、當(dāng)前段中記錄的元數(shù)據(jù)數(shù)量、當(dāng)前使用的數(shù)據(jù)段號、數(shù)據(jù)段 空閑段表; 所述空閑段表是一張位表,記錄每個數(shù)據(jù)段使用情況; 所述數(shù)據(jù)段是等長的存儲備份數(shù)據(jù)和元數(shù)據(jù)的空間,在每個數(shù)據(jù)段中存儲一定量的備 份數(shù)據(jù)和其對應(yīng)的元數(shù)據(jù),元數(shù)據(jù)和備份數(shù)據(jù)被各自集中存放在數(shù)據(jù)段的元數(shù)據(jù)區(qū)和備份 數(shù)據(jù)區(qū); 步驟2 :將所有備份數(shù)據(jù)拆分為固定大小的數(shù)據(jù)塊,每個數(shù)據(jù)塊對應(yīng)一個元數(shù)據(jù),元數(shù) 據(jù)和對應(yīng)的數(shù)據(jù)塊存儲在同一個數(shù)據(jù)段中 步驟3 :定義每個數(shù)據(jù)塊的元數(shù)據(jù);所述元數(shù)據(jù)包括時間戳、數(shù)據(jù)塊在受保護卷中的地 址和數(shù)據(jù)塊在日志卷中的地址、數(shù)據(jù)塊大??; 步驟4 : 數(shù)據(jù)記錄過程;CDP系統(tǒng)捕獲到受保護卷的寫入數(shù)據(jù)時,從超級塊中查看當(dāng)前使用的 數(shù)據(jù)段號和當(dāng)前段存儲的數(shù)據(jù)量;如果當(dāng)前使用的數(shù)據(jù)段號有效且當(dāng)前段中存儲的數(shù)據(jù)量 沒有超過最大值,向正在使用的數(shù)據(jù)段中寫入元數(shù)據(jù)和備份數(shù)據(jù)塊;否則需要分配一個新 數(shù)據(jù)段保存日志,過程為:從超級塊中的空閑段表中查詢段號最小的空閑數(shù)據(jù)段,并在空閑 段表中將其標(biāo)記為已使用,之后為這個數(shù)據(jù)段新建一條索引,索引中填寫此段段號和當(dāng)前 時間。再按照公式:數(shù)據(jù)段基址+段號X段長,計算出這個數(shù)據(jù)段所在地址,向其中寫入元 數(shù)據(jù)和備份數(shù)據(jù); 檢索某一時刻的備份數(shù)據(jù)的過程;從超級塊中讀取有效索引起止位置,從有效索引起 點開始按順序檢索索引時間,當(dāng)檢索到某索引時間小于指定時間且下一個索引時間大于指 定時間時,計算出這個索引對應(yīng)的數(shù)據(jù)段位置并檢索數(shù)據(jù)段中存儲的元數(shù)據(jù)時間戳,即可 找到目標(biāo)時間點前后最近的數(shù)據(jù); 日志卷可用空間的計算;日志卷中能夠存儲有效數(shù)據(jù)的部分是每個數(shù)據(jù)段中的備份數(shù) 據(jù)區(qū),計算日志卷剩余空間時從超級塊中讀取當(dāng)前可用的數(shù)據(jù)段個數(shù),用可用數(shù)據(jù)段個數(shù) 乘以每個數(shù)據(jù)段中備份數(shù)據(jù)區(qū)的大小,得到剩余可用空間; 空間擴容過程;調(diào)用存儲虛擬化系統(tǒng)對日志卷進(jìn)行擴容,CDP系統(tǒng)重新讀取日志卷大 小,并計算日志卷可以容納數(shù)據(jù)段數(shù)量;把擴容后的數(shù)據(jù)段數(shù)量寫入超級塊,同時修改剩余 可用數(shù)據(jù)段個數(shù);因為超級快中記錄的數(shù)據(jù)段數(shù)量發(fā)生了改變,導(dǎo)致查詢空閑段表的范圍 增大,新增的空間就會被查詢到并使用; 空間縮減過程;系統(tǒng)計算出已使用的數(shù)據(jù)段個數(shù)N,之后遍歷索引,如果索引對應(yīng)的數(shù) 據(jù)段大于或等于N,把這個數(shù)據(jù)段的內(nèi)容拷貝至0到N-1之間編號最小的空閑數(shù)據(jù)段,并修 改索引;索引遍歷完成后,數(shù)據(jù)段N之后的連續(xù)空間全部是空閑數(shù)據(jù)段,被回收;系統(tǒng)會計 算出這部分空間的大小M,之后可以調(diào)用存儲虛擬化模塊把CDP日志卷壓縮至0到Μ之間的 大??; 空間回收過程;根據(jù)用戶設(shè)定的數(shù)據(jù)保護期限,清理超過保護期限的數(shù)據(jù)段,釋放出空 間供再次使用;如果在空間回收過程中收到數(shù)據(jù)恢復(fù)請求,則立刻停止空間回收并開始恢 復(fù)數(shù)據(jù);當(dāng)空間回收開始時,系統(tǒng)從最早的有效索引開始檢測,查詢本索引對應(yīng)數(shù)據(jù)段中記 錄的時間范圍,如果數(shù)據(jù)段中所有記錄都超過保護期限,把數(shù)據(jù)段中記錄的數(shù)據(jù)寫入初始 鏡像,之后有效索引起始指針后移,使本條索引失效。在空閑段表中把這條索引對應(yīng)的數(shù)據(jù) 段使用狀態(tài)標(biāo)記為未使用,并把超級塊中記錄的可用數(shù)據(jù)段條數(shù)加一。繼續(xù)查詢下一條索 弓丨,直到找到未超期的索引,修改CDP記錄起始時間為本索引的起始時間,結(jié)束; 數(shù)據(jù)恢復(fù)過程;數(shù)據(jù)恢復(fù)時從有效索引起點開始遍歷索引,如果遍歷到的索引時間不 在恢復(fù)時間范圍內(nèi),跳到下一條索引,否則開始遍歷索引對應(yīng)數(shù)據(jù)段內(nèi)的元數(shù)據(jù),如果元數(shù) 據(jù)時間戳符合恢復(fù)條件,則根據(jù)元數(shù)據(jù)中記錄的信息,把備份數(shù)據(jù)塊拷貝回受保護卷中的 對應(yīng)位置,直到讀取的元數(shù)據(jù)時間戳大于目標(biāo)恢復(fù)時間時停止。
2.根據(jù)權(quán)利要求1所述日志空間在線可調(diào)整的連續(xù)數(shù)據(jù)保護和恢復(fù)方法,其特征在 于:所述步驟2中固定大小的數(shù)據(jù)塊為2K、4K或8K。
【文檔編號】G06F17/30GK104050268SQ201410283768
【公開日】2014年9月17日 申請日期:2014年6月23日 優(yōu)先權(quán)日:2014年6月23日
【發(fā)明者】王麗芳, 蔣澤軍, 王清, 羅寒曦, 彭成章, 郭訊, 馮俊 申請人:西北工業(yè)大學(xué)