人們認為對備份/恢復的一個誤區(qū)是:,只要定時做了備份,在需要的時候,自然而然地能將所需數(shù)據(jù)進行恢復,因為跑得了和尚跑不了廟,所需數(shù)據(jù)一定在備份磁帶里,花點時間和精力找一找,總能找到并成功恢復。果真如此嗎?日常生活中的一個例子也許能給我們一些啟示。
眾所周知,建造大樓時一定會配備消防系統(tǒng),但是,并非有了消防系統(tǒng)就能高枕無憂。人們經(jīng)常獲悉,有的樓房突遭火災時,消防系統(tǒng)卻無故癱瘓了,或者消防栓里沒有水,或者消防通道被堵塞,以致火勢蔓延,造成巨大的生命財產(chǎn)損失。因此,并非所有的消防系統(tǒng),在遭遇火災時都能起作用。一樣的道理,數(shù)據(jù)備份設施之于IT系統(tǒng),就相當于消防系統(tǒng)之于樓房,它是保護IT系統(tǒng)的最后一道防線。即使配備了數(shù)據(jù)備份設施,并不表明在IT系統(tǒng)遇到問題時一定能將丟失的數(shù)據(jù)成功恢復。
為了進一步闡明恢復的重要性,讓我們再來對比一下備份和恢復操作的區(qū)別。
一. 備份是計劃內(nèi)的工作,而恢復則是計劃外的工作。
對于IT技術(shù)人員來說,備份是按照既定的備份策略,每隔一定時間,按部就班地操作即可。而恢復,則是只有當發(fā)生數(shù)據(jù)丟失時,或者要查找歷史數(shù)據(jù)時,才會進行想到的操作。通常情況下,實施恢復操作時,往往都是十萬火急,越快越好,同時還希望恢復后的數(shù)據(jù)可用。
由于備份對系統(tǒng)的影響比較大,所以備份的工作往往是在特定的時間內(nèi)完成的,也即所謂的“備份窗口”,這時生產(chǎn)系統(tǒng)通常不工作。而恢復,因為是計劃外的工作,對生產(chǎn)系統(tǒng)肯定會產(chǎn)生影響。下面以電子郵件數(shù)據(jù)的備份和恢復為例,來說明恢復對系統(tǒng)的影響。
假定您對電子郵件系統(tǒng)的備份策略是每晚八點定時備份到磁帶,備份完成后磁帶里就會保存前天晚上八點后,有昨天晚上八點之前收到的所有電子郵件。當然,收發(fā)電子郵件是一個連續(xù)的動作,晚上八點后,郵箱仍然在不停地收郵件。假設到了今天中午12點,您發(fā)現(xiàn)某一個重要的郵件不小心被刪掉了,如果這個郵件是昨天晚上八點前收到的,那么您還是有可能從磁帶里導回恢復該郵件。這時就要啟動恢復操作了。
如果備份軟件能夠?qū)崿F(xiàn)郵件一級的恢復(恢復顆粒是單個郵件)的話,您只要您會能找到那封丟失去的email郵件,直接將它恢復自回到了郵箱就可以了,而對恢復的過程對整個郵件系統(tǒng)沒有任何影響;但是,如果您的備份軟件只能做到郵箱級的恢復(恢復顆粒是一個郵箱),那么如果您想恢復該郵件的話,就不得不把整個郵箱的所有郵件恢復到昨晚八時的狀態(tài),造成的后果就是昨天晚上八點到今天上午12點收進的郵件會全部被覆蓋??梢?,如果從備份的角度來說,兩者沒什么區(qū)別;但是從恢復的角度來講,兩者差別很大。
二. 備份是大批量的數(shù)據(jù)移動過程,往往需要將所有數(shù)據(jù)或所有增量數(shù)據(jù)全部拷貝到備份設備,而恢復往往是少量的數(shù)據(jù)移動過程,只需將需要恢復的數(shù)據(jù)從備份設備拷貝回主服務器。
現(xiàn)在市場上流行的很多備份軟件,基本上都是在上世紀80年代設計的,那時的數(shù)據(jù)量相對較?。◣资椎綆装僬祝?。當進行備份操作的時候,備份軟件會把所需要備份的數(shù)據(jù)文件打包成一個備份集(backup set),然后將它拷貝至備份設備中,并且針對該備份集形成相對應的索引,但一般不會對備份集里的內(nèi)容建立詳細的索引。那么當需要恢復該備份集這一千個文件中的某一個文件時,備份軟件就必須從備份集中搜索到該文件把這一批備份集全部導回主服務器,然后從中,然后進行恢復。這在只有幾百兆數(shù)據(jù)量的IT環(huán)境下,完全可行,;然而來到我們目前所處的海量數(shù)據(jù)的時代,由于數(shù)據(jù)量已經(jīng)高達幾十甚至幾百TB,如果繼續(xù)沿用這種方式,勢必產(chǎn)生許多問題:從浩如煙淼的備份數(shù)據(jù)里,找到并恢復您需要的那一個,難度無異于大海撈針!例如,有的用戶去電信公司要求查詢自己的歷史話單(如兩年前的某一個月的通話記錄),今天,很多電信公司無法滿足用戶的這一需求,因為很多情況下明知該歷史話單一定存在于原先的備份介質(zhì)中,但由于數(shù)據(jù)量實在太大,幾乎沒有可操作性。這種情況下,備份雖然是成功的,但是恢復的成功率卻很低。
META Group在2004年4月的一份題為“Proactive Data Protection”的調(diào)查揭示了數(shù)據(jù)恢復的真相:
恢復作業(yè)的平均成功率只有70%左右;
主要的恢復需求是恢復單個文件或單個表空間,而不是整個卷;
而恢復單個文件至少要花1個小時, 有時甚至要接近1天。
說了這么多,想必讀者朋友已認同了數(shù)據(jù)恢復的重要性。所以,當考慮數(shù)據(jù)保護時,應著眼于“恢復”,需著重考慮以下幾點:
1. 確保數(shù)據(jù)能夠恢復
2. 恢復速度要盡量快
3. 恢復操作對系統(tǒng)的影響要盡可能小
4. 能夠恢復到用戶指定的時間點
5. 恢復的數(shù)據(jù)是可以使用的
當然,恢復是在備份的基礎上進行的,;但是如果備份失敗,恢復肯定不會成功。為了保證確保能達到恢復的目的,對備份操作有以下幾點基本要求:
1. 提高備份成功率
備份過程中,當備份介質(zhì)、備份設備和網(wǎng)絡出現(xiàn)問題時,備份作業(yè)就會中斷,要提高備份的成功率,備份系統(tǒng)就應具有容錯機制。如果是備份介質(zhì)或備份設備出現(xiàn)問題,可以將備份自動切換到其他的備份介質(zhì)、設備或路徑上,并能確保從中斷處繼續(xù)備份操作。另外,“備份的斷點續(xù)傳”也很重要,當網(wǎng)絡發(fā)生阻塞時,備份也會中斷;一旦網(wǎng)絡恢復正常,備份能從中斷處自動重啟并繼續(xù)進行。
2. 精細的備份數(shù)據(jù)索引
當用戶希望恢復數(shù)據(jù)時,絕大多數(shù)情況下并不需要恢復整個系統(tǒng),而只要恢復部分數(shù)據(jù),甚至只是一個文件或郵件。索引做得足夠精細,有利于在恢復時能快速查找并定位所需要恢復的數(shù)據(jù),實現(xiàn)小顆?;謴?,同時將對系統(tǒng)的影響降到最小,恢復速度大幅提高。
3. 能產(chǎn)生多個數(shù)據(jù)副本
為了防止備份數(shù)據(jù)意外損壞,產(chǎn)生多個備份副本是必要的,也很有效。產(chǎn)生數(shù)據(jù)副本的方法有兩種:同步和異步。同步的方法是,在備份時,同時把備份數(shù)據(jù)寫入到兩個不同的介質(zhì)中;異步的做法是,先把備份數(shù)據(jù)寫入一個介質(zhì),然后再利用空閑時段,將備份數(shù)據(jù)復制到其他介質(zhì)上。當然也可以通過網(wǎng)絡將其復制到異地,達到數(shù)據(jù)容災的目的。
4. 離場保護
本刊上一期曾提到過“數(shù)據(jù)備份的離場保護”。如果數(shù)據(jù)備份是為了恢復而進行的,就應該考慮到萬一數(shù)據(jù)中心遭遇災難時,怎樣進行恢復。這時“離場保護”中保存的數(shù)據(jù)副本就會起到很大的作用。
5. 操作界面應足夠簡單
用戶界面應該面向恢復,而非面向備份。在面向數(shù)據(jù)恢復的用戶界面,所有的備份數(shù)據(jù)是按照數(shù)據(jù)原先的結(jié)構(gòu)來組織的,需要恢復哪個數(shù)據(jù),很快就能找到,輕松點擊一下就能恢復該數(shù)據(jù)了。
綜上所述,一個真正有效的數(shù)據(jù)備份系統(tǒng)應該是這樣的:以恢復為目的來設計數(shù)據(jù)保護系統(tǒng),管理簡便,能輕易快速便捷地實現(xiàn)恢復。除此以外,正如前文提到的消防系統(tǒng)的事例,為了確保消防系統(tǒng)在遭遇火災時能夠正常工作,應該定期進行防災演習,數(shù)據(jù)備份系統(tǒng)也應該經(jīng)常做些數(shù)據(jù)恢復演習,確保在真正需要時,能夠?qū)崿F(xiàn)對數(shù)據(jù)的有效恢復。