本發(fā)明涉及數(shù)據(jù)保護以及災(zāi)難恢復(fù)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)安全存儲的實現(xiàn)方法。
背景技術(shù):
在近年來不斷出現(xiàn)的數(shù)據(jù)丟失事件和頻繁的自然災(zāi)害背景下,如何構(gòu)建可靠的數(shù)據(jù)存儲系統(tǒng)和數(shù)據(jù)保護體系,提升數(shù)據(jù)的可用性、完整性和機密性等安全性保障水平,無論是政府、關(guān)鍵行業(yè)還是中小企業(yè)都給予了前所未有的關(guān)注,隨著各行業(yè)各部門安全意識的逐步提高,他們在存儲安全領(lǐng)域的開始向主動型需求轉(zhuǎn)變,必將推動我國數(shù)據(jù)安全和數(shù)據(jù)存儲行業(yè)市場容量的進一步擴大。
常見的存儲安全相關(guān)的技術(shù)有RAID技術(shù)、存儲快照技術(shù)、存儲陣列間鏡像技術(shù)。
RAID技術(shù)通過數(shù)據(jù)校驗提供容錯功能。RAID容錯是建立在每個磁盤驅(qū)動器的硬件容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復(fù)的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統(tǒng)的容錯度,提高了系統(tǒng)的穩(wěn)定冗余性。
存儲快照有主要有兩種技術(shù),一種是第一次寫時復(fù)制(Copy OnFirst Write,COFW),有時簡稱為寫時復(fù)制(CopyOn Write,COW)。即在數(shù)據(jù)第一次寫入到某個存儲位置時,首先將原有的內(nèi)容讀取出來,寫到另一位置處(為快照保留的存儲空間,此文中我們稱為快照空間),然后再將數(shù)據(jù)寫入到存儲設(shè)備中。而下次針對這一位置的寫操作將不再執(zhí)行寫時復(fù)制操作。另一種技術(shù)是I/O重定向(I/O Redirect)。即將讀寫操作重新定向到另一個存儲空間中。在一個快照生成期間,所有的寫操作將被重定向到另一個介質(zhì),而讀操作是否需要讀重定向,則需要根據(jù)讀取的位置是否有過自上次快照以來的寫重定向,必須對有過寫重定向的位置進行讀重定向,否則不需要進行讀定向。當(dāng)要創(chuàng)建一個快照時,則將自上次快照以來所有的重定向?qū)憯?shù)據(jù)所對應(yīng)在源介質(zhì)中的數(shù)據(jù)復(fù)制出來生成這個時間點的快照,然后再將這些重定向?qū)憯?shù)據(jù)寫回到源介質(zhì)中的相應(yīng)位置上,從而 完成一個快照生成過程。在存儲快照的實現(xiàn)中通常使用第一種技術(shù)。
傳統(tǒng)的備份恢復(fù)方案,只有恢復(fù)完成之后,用戶才能檢查數(shù)據(jù)是否是需要的,然而,恢復(fù)是一個比較耗時的過程。同時,在恢復(fù)的同時,不可查看數(shù)據(jù)。
存儲陣列間鏡像技術(shù)指的是,兩個相同配置的存儲,通過存儲廠商提供的mirror軟件,配置存儲lun之間的數(shù)據(jù)同步,在生產(chǎn)存儲出現(xiàn)損壞時,鏡像存儲可以接管生產(chǎn)存儲,保證業(yè)務(wù)連續(xù)性。
但以上現(xiàn)有技術(shù)存在以下缺點:
1、普通存儲的RAID技術(shù)實現(xiàn)數(shù)據(jù)的冗余在遇到多塊磁盤同時損壞時,數(shù)據(jù)就會完全丟失。如常用的RAID5遇到2塊盤同時損壞時,數(shù)據(jù)就無法重建,造成丟失。
2、帶有快照功能的存儲,存在兩大問題:
大部份具有快照功能的存儲,其快照功能的實現(xiàn)都是基于COW快照技術(shù),COW的優(yōu)點是不影響讀性能,但會影響寫性能。少量使用ROW快照技術(shù),又會影響讀性能。
通??煺召Y源區(qū)與生產(chǎn)數(shù)據(jù)都在一個存儲系統(tǒng)上,如果這個存儲系統(tǒng)出現(xiàn)損壞,則上面的數(shù)據(jù)與快照將一起損壞。
3、兩個存儲陣列進行數(shù)據(jù)鏡像,數(shù)據(jù)仍然是孤本。因為數(shù)據(jù)鏡像,同步復(fù)制,兩份數(shù)據(jù)是一模一樣的,當(dāng)遇到病毒、軟件錯誤、誤操作等邏輯錯誤時,兩邊數(shù)據(jù)會同時損壞,造成數(shù)據(jù)丟失;而且當(dāng)客戶需要查詢歷史某一時刻的數(shù)據(jù)時,兩個存儲陣列也滿足不了這一要求;另外,使用兩個存儲陣列也會帶來比較高的成本。
技術(shù)實現(xiàn)要素:
本發(fā)明解決了一組RAID多個硬盤同時損壞造成的數(shù)據(jù)丟失問題;快照資源區(qū)與源數(shù)據(jù)區(qū)在存儲系統(tǒng)損壞時,一起丟失的問題;存儲陣列間鏡像遇到病毒、軟件錯誤、誤操作等邏輯錯誤時,兩邊數(shù)據(jù)會同時損壞的問題。
本發(fā)明提供一種數(shù)據(jù)安全存儲的實現(xiàn)方法,包括以下步驟:
A、在數(shù)據(jù)安全存儲設(shè)備端組建兩個RAID組,RAID組1與RAID組 2,RAID組2容量需要大于RAID組1。
B、在存儲設(shè)備端上安裝虛擬塊設(shè)備驅(qū)動和ISCSI或FC target程序,將RAID組1上的數(shù)據(jù)文件通過target程序映射給生產(chǎn)服務(wù)器。
C、當(dāng)數(shù)據(jù)安全存儲設(shè)備端上的虛擬塊設(shè)備驅(qū)動攔截到生產(chǎn)服務(wù)器對磁盤Lun的寫操作時,先寫入在RAID組1上的數(shù)據(jù)文件,再將寫操作數(shù)據(jù)映射至RAID組2上的快照資源區(qū)。
D、在需要查詢歷史數(shù)據(jù)或RAID組1遇到多塊磁盤損壞的情況下,可以將快照數(shù)據(jù)掛載出來用于歷史任意時間點的數(shù)據(jù)查詢或臨時接管生產(chǎn)存儲。
本發(fā)明應(yīng)用在存儲設(shè)備端,存儲設(shè)備可以提供ISCSI Lun或FC Lun給生產(chǎn)服務(wù)器,內(nèi)部數(shù)據(jù)雙份存儲并且存放在不同的RAID組上(RAID組1與RAID組2),其中一份數(shù)據(jù)同時使用ROW快照技術(shù)保存快照映射數(shù)據(jù),不會給生產(chǎn)服務(wù)器讀性能帶來影響。
本發(fā)明的優(yōu)點是實現(xiàn)生產(chǎn)數(shù)據(jù)雙份冗余,在RAID組2上的快照數(shù)據(jù)可以掛載用于歷史數(shù)據(jù)查詢或臨時接管;
附圖說明
圖1為安全存儲設(shè)備內(nèi)部數(shù)據(jù)雙份存儲示意圖
圖2為數(shù)據(jù)安全存儲原理圖
具體實施方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案進行詳細(xì)說明。
圖1為安全存儲設(shè)備內(nèi)部數(shù)據(jù)雙份存儲示意圖。
如圖1所示,本發(fā)明應(yīng)用在存儲設(shè)備端,首先在存儲設(shè)備端組建兩個RAID組,RAID組1與RAID組2,RAID組2容量需要大于RAID組1,優(yōu)選的,通常是1.5倍。
通過在存儲設(shè)備端上安裝虛擬塊設(shè)備驅(qū)動和ISCSI或FC target程序,將RAID組1上的數(shù)據(jù)文件通過target程序映射給生產(chǎn)服務(wù)器。
這樣的目的是將生產(chǎn)服務(wù)器與存儲設(shè)備分離,當(dāng)生產(chǎn)服務(wù)器損壞時,不影響存儲設(shè)備上的數(shù)據(jù)安全。
圖2為數(shù)據(jù)安全存儲原理圖,如圖2所示,當(dāng)數(shù)據(jù)安全存儲設(shè)備端上的虛擬塊設(shè)備驅(qū)動攔截到生產(chǎn)服務(wù)器對磁盤Lun的寫操作時,先寫入在RAID組1上的數(shù)據(jù)文件,再將寫操作數(shù)據(jù)映射至RAID組2上的快照資源區(qū)。
RAID組2由數(shù)據(jù)文件和快照資源區(qū)文件組成。當(dāng)虛擬塊設(shè)備驅(qū)動攔截到生產(chǎn)服務(wù)器對磁盤Lun的寫操作時,同時將IO數(shù)據(jù)發(fā)送至RAID組2的快照資源區(qū)。
優(yōu)選的,快照資源區(qū)大小默認(rèn)是數(shù)據(jù)文件大小的一半。快照資源區(qū)與生產(chǎn)數(shù)據(jù)的存儲系統(tǒng)分離,避免生產(chǎn)數(shù)據(jù)與快照資源區(qū)同時丟失。
當(dāng)RAID組2上的快照資源區(qū)容量不足時,可以將最舊的快照映射數(shù)據(jù)更新至數(shù)據(jù)文件中,再刪除快照資源區(qū)中的最舊的快照映射數(shù)據(jù)釋放快照資源空間。
優(yōu)選的,釋放快照資源空間區(qū)可以在非工作時間段進行。
優(yōu)選的,在RAID組2上使用ROW快照技術(shù),ROW快照技術(shù)主要影響的是讀性能,而在RAID組2上一般不存在讀操作,所以ROW快照不會給生產(chǎn)服務(wù)器讀性能帶來影響。
在需要查詢歷史數(shù)據(jù)或RAID組1(假設(shè)使用RAID5)遇到2塊或者多塊磁盤同時損壞的情況下,可以將RAID組2的快照數(shù)據(jù)掛載出來用于歷史數(shù)據(jù)查詢或臨時接管生產(chǎn)存儲。
例如,在12:00am,1:00pm,2:00pm分別對生產(chǎn)服務(wù)器寫入數(shù)據(jù),RAID組1的數(shù)據(jù)文件便是最近時間點即2:00pm的數(shù)據(jù),RAID組2的快照資源區(qū)存放的是在12:00am,1:00pm,2:00pm的快照。
設(shè)想,如果在3:00pm,RAID組1的多塊硬盤損壞,數(shù)據(jù)無法恢復(fù),那么可以將RAID組2的最近時間點即2:00pm點的快照掛載出來用以臨時接管生產(chǎn)存儲。當(dāng)客戶需要恢復(fù)到12:00am或1:00pm的數(shù)據(jù)時,可以將此時刻的快照數(shù)據(jù)掛載。
優(yōu)選的,本發(fā)明的恢復(fù)方法,無需恢復(fù)操作就可通過掛載的方式立即查看和使用任意時間點的數(shù)據(jù)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換和改進等,均應(yīng)包含在本 發(fā)明的保護范圍之內(nèi)。