摘要:基本的災(zāi)難恢復(fù)是行之有效的。但也存在一定的不確定性,甚至因此有供應(yīng)商虛報(bào)和過(guò)分夸大虛擬化的興起對(duì)于災(zāi)難恢復(fù)的影響。
隨著服務(wù)器虛擬化的到來(lái),有些人聲稱(chēng)災(zāi)難恢復(fù)(DR)和保持業(yè)務(wù)連續(xù)性(BC)能夠更的容易實(shí)現(xiàn)了,甚至認(rèn)為這些都是屬于過(guò)去的事情了。
這種情況的出現(xiàn)是很容易理解的?,F(xiàn)如今,與任何一名虛擬化管理員交流時(shí),都會(huì)談到使用傳統(tǒng)的備份和磁帶的想法和理念似乎已經(jīng)是一個(gè)遙遠(yuǎn)的記憶了。
自虛擬化技術(shù)采用初期開(kāi)始,我們就已經(jīng)看到高可用性集群和諸如vMotion等功能的引進(jìn),似乎解決了大部分?jǐn)?shù)據(jù)保護(hù)方面的需求。
但是,如果仔細(xì)推敲,我們就會(huì)發(fā)現(xiàn)這些說(shuō)法是有些夸張的。
定義災(zāi)難恢復(fù)
能夠確定一個(gè)定義的基準(zhǔn)總是好的。而且,這在災(zāi)難恢復(fù)規(guī)劃方面也是相當(dāng)有必要的——讀者可以以便了解全面的指南。災(zāi)難恢復(fù)和保持業(yè)務(wù)連續(xù)性在其各自的定義方面稍有不同:
· 業(yè)務(wù)連續(xù)性描述的是確保業(yè)務(wù)持續(xù)運(yùn)作的過(guò)程。
· 災(zāi)難恢復(fù)描述的是在某次災(zāi)難襲擊后恢復(fù)服務(wù)的過(guò)程。在大多數(shù)情況下,企業(yè)將希望盡可能的避免這種情況,或者至少將其可能性降至最小化。
目前,在災(zāi)難恢復(fù)和保持業(yè)務(wù)連續(xù)性方面,還有兩大被廣泛應(yīng)用的定義。即恢復(fù)時(shí)間目標(biāo)(RTO)和恢復(fù)點(diǎn)目標(biāo)(RPO)——二者都為數(shù)據(jù)恢復(fù)確立了一個(gè)服務(wù)水平:
· 恢復(fù)時(shí)間目標(biāo)確定了將業(yè)務(wù)恢復(fù)到正常運(yùn)營(yíng)狀態(tài)的預(yù)期或目標(biāo)時(shí)間。一個(gè)零RTO意味著服務(wù)必須立即恢復(fù),或者沒(méi)有中斷。一小時(shí)的RTO需要在一小時(shí)內(nèi)恢復(fù)應(yīng)用程序至正常使用狀態(tài)。
· 恢復(fù)點(diǎn)目標(biāo)則表示的是必須將服務(wù)恢復(fù)至歷史時(shí)期的某點(diǎn)。一個(gè)零RPO意味著服務(wù)必須從那一歷史時(shí)間點(diǎn)開(kāi)始,所有數(shù)據(jù)均必須恢復(fù),不能丟失(針對(duì)銀行應(yīng)用程序是必須的)。而24小時(shí)的RPO則意味著只需恢復(fù)到昨天的數(shù)據(jù)即可(可用于測(cè)試/開(kāi)發(fā)環(huán)境)。
制定一套災(zāi)難恢復(fù)計(jì)劃
在理想的情況下,所有的應(yīng)用程序應(yīng)該恢復(fù)至RTO等于零,且RPO等于零,但從可行性和成本方面來(lái)看則是站不住腳的。
相反,任何災(zāi)難恢復(fù)和保持業(yè)務(wù)連續(xù)性規(guī)劃都應(yīng)該始于建立災(zāi)難場(chǎng)景,對(duì)災(zāi)難場(chǎng)景的重要性和影響進(jìn)行評(píng)估,并將其應(yīng)用到每款應(yīng)用程序中。例如,故障場(chǎng)景包括:
· (火災(zāi)、停電、洪水、地震)造成的損失或損害。
· (火災(zāi)、水災(zāi)、危險(xiǎn)災(zāi)害、化學(xué)事件、輻射)造成無(wú)法訪問(wèn)基礎(chǔ)設(shè)施。
· (心懷不滿(mǎn)的員工或網(wǎng)絡(luò)攻擊)犯罪行為或惡意傷害。
· (軟件錯(cuò)誤,升級(jí)失敗,數(shù)據(jù)損壞)造成系統(tǒng)或應(yīng)用程序故障。
我們可以評(píng)估每款應(yīng)用程序發(fā)生故障失敗所造成的影響,并用它來(lái)決定我們的RTO/RPO服務(wù)級(jí)別目標(biāo)(SLO)。同樣,這里也有一些例子:
· 電子郵件系統(tǒng)的停機(jī)影響——高沖擊;RTO = 30分鐘,RPO =零。
· 銀行核心應(yīng)用程序的停機(jī)影響——關(guān)鍵性沖擊;RTO =零,RPO =零。
· 隔夜報(bào)告程序的停機(jī)影響——低影響;RTO=4小時(shí),RPO = 24小時(shí)。
在今天這樣一個(gè)永遠(yuǎn)在線的世界中,大多數(shù)面向客戶(hù)的應(yīng)用程序預(yù)計(jì)都將需要保持24/7全天候的運(yùn)行。這會(huì)降低一定的SLO,但應(yīng)用程序的設(shè)計(jì)可以通過(guò)從后端功能分離前端接入訪問(wèn)來(lái)盡量減少。
顯然,無(wú)論一款應(yīng)用程序是否已經(jīng)被虛擬化,其技術(shù)是否獨(dú)立,業(yè)務(wù)恢復(fù)的要求必須首先確立。事實(shí)上,應(yīng)該始終由企業(yè)的業(yè)務(wù)部門(mén)來(lái)提供他們具體需求方面的指導(dǎo),而不是讓IT強(qiáng)加標(biāo)準(zhǔn),這一直是傳統(tǒng)的經(jīng)營(yíng)運(yùn)作模式。
虛擬化如何幫助災(zāi)難恢復(fù)
虛擬化將服務(wù)器的物理資源抽象成邏輯結(jié)構(gòu),代表硬盤(pán),網(wǎng)卡、磁盤(pán)控制器。處理器、內(nèi)存和網(wǎng)絡(luò)端口以配置文件中的參數(shù)來(lái)表示,硬盤(pán)則用本地或共享存儲(chǔ)的文件來(lái)表示。
因此,備份虛擬機(jī)(VM)是復(fù)制一個(gè)文件副本和配置數(shù)據(jù)的一個(gè)簡(jiǎn)單的情況。此外,可以實(shí)現(xiàn)遷移虛擬機(jī)到替代硬件,即使物理硬件是不相同的。這使得能夠更容易的管理硬件故障問(wèn)題。虛擬化的功能解決了災(zāi)難恢復(fù)和保持業(yè)務(wù)連續(xù)性在以下幾個(gè)方面的問(wèn)題。
簡(jiǎn)單的備份/恢復(fù)
恢復(fù)通常是基于創(chuàng)建一個(gè)備份和在一個(gè)災(zāi)難恢復(fù)的情況下從這些備份副本恢復(fù)的需要。為了滿(mǎn)足這種需求,虛擬機(jī)管理程序所提供的功能,允許備份可以通過(guò)復(fù)制VM的內(nèi)容。為了確保數(shù)據(jù)的完整性,虛擬機(jī)運(yùn)行的代理軟件或工具在復(fù)制VM文件時(shí)停止或暫停I/O。
一個(gè)簡(jiǎn)單的備份可以用來(lái)提供文件、應(yīng)用程序或虛擬機(jī)級(jí)別的恢復(fù),這取決于備份軟件的復(fù)雜性。備份整個(gè)虛擬機(jī)快照會(huì)影響一些系統(tǒng)允許存儲(chǔ)系統(tǒng)快照的功能,結(jié)合虛擬快照卸載處理工作,同時(shí)保持?jǐn)?shù)據(jù)的完整性。
虛擬機(jī)遷移
雖然不是嚴(yán)格意義上的數(shù)據(jù)恢復(fù)過(guò)程,能夠在物理硬件之間動(dòng)態(tài)地遷移虛擬機(jī)的能力減少了硬件故障的影響。VM遷移本身并不能防止服務(wù)器故障,但可用于當(dāng)發(fā)生局部故障時(shí)遷移虛擬機(jī),無(wú)論是在服務(wù)器或其它組件(例如網(wǎng)絡(luò))。
虛擬機(jī)遷移也可以在當(dāng)服務(wù)必須從一款硬件(為了維護(hù))移除或?yàn)榱藴p輕數(shù)據(jù)中心失敗的風(fēng)險(xiǎn)(如應(yīng)對(duì)即將到來(lái)的風(fēng)暴或颶風(fēng)可能對(duì)數(shù)據(jù)中心運(yùn)營(yíng)的影響)時(shí),作為一個(gè)控制過(guò)程。從這個(gè)意義上說(shuō),虛擬機(jī)遷移更類(lèi)似于保持業(yè)務(wù)連續(xù)性,確保服務(wù)器繼續(xù)運(yùn)行,即使是在發(fā)生潛在或?qū)嶋H事件的情況下。
高可用性/容錯(cuò)能力
這些是管理程序的功能,使虛擬機(jī)能夠在硬件故障的情況下保持運(yùn)行。提供了兩個(gè)層次的服務(wù)。高可用性監(jiān)控虛擬機(jī),并在服務(wù)器發(fā)生故障的情況下, 在替代硬件上重新啟動(dòng)。這導(dǎo)致了一個(gè)小故障的應(yīng)用程序重新啟動(dòng)。其他在替代硬件運(yùn)行g(shù)host虛擬機(jī)映像,使得該映像在服務(wù)器發(fā)生故障的情況下成為生產(chǎn)服務(wù)的一體,一般沒(méi)有應(yīng)用程序中斷。
當(dāng)然,使用這些功能可能需要共享存儲(chǔ)硬件(用于存儲(chǔ)虛擬機(jī)的配置和數(shù)據(jù)),同時(shí)也是收費(fèi)的。一些供應(yīng)商支持使用基于陣列的復(fù)制與高可用性/容錯(cuò)功能相結(jié)合的能力。這使得硬件配置能夠跨越一個(gè)很短的距離(幾百米),并創(chuàng)建一個(gè)Metro cluster。Metro cluster能夠減輕數(shù)據(jù)中心的中斷或嚴(yán)重的硬件故障,而無(wú)需部署復(fù)雜的應(yīng)用程序集群。
連續(xù)備份
某些第三方應(yīng)用程序使用虛擬化來(lái)攔截虛擬機(jī)的寫(xiě)I/O,并 創(chuàng)建一個(gè)遠(yuǎn)程備份映像。這個(gè)過(guò)程是異步發(fā)生的,并提供了在故障的情況下的虛擬機(jī)副本,可用于在主站點(diǎn)發(fā)生故障時(shí)加強(qiáng)故障轉(zhuǎn)移復(fù)制。使用這種系統(tǒng)的應(yīng)用程序的RPO將取決于數(shù)據(jù)可以遷移到場(chǎng)外的速度。
應(yīng)用程序彈性
正如所討論的那樣,虛擬化通過(guò)抽象物理硬件組件提供好處。在執(zhí)行災(zāi)難恢復(fù)/業(yè)務(wù)連續(xù)性時(shí)需要考慮的另一件事是在應(yīng)用程序本身直接內(nèi)置恢復(fù)功能。
應(yīng)用程序的彈性是通過(guò)運(yùn)行許多應(yīng)用程序?qū)嵗齺?lái)實(shí)現(xiàn)的,每一款均可能失敗,當(dāng)然也能夠通過(guò)替代硬件來(lái)重新啟動(dòng)。這種設(shè)計(jì)是不直接依賴(lài)于虛擬化,但可以通過(guò)多個(gè)管理程序和硬件的配置來(lái)實(shí)現(xiàn)很好地工作。在未來(lái),我們將看到業(yè)務(wù)連續(xù)性/災(zāi)難恢復(fù)的彈性將借助container容器的使用來(lái)實(shí)現(xiàn),這是一種應(yīng)用程序虛擬化的形式,并已經(jīng)開(kāi)始在被廣泛采用。
參照諸如RTO和RPO等災(zāi)難恢復(fù)/業(yè)務(wù)連續(xù)性原則,我們可以應(yīng)用恢復(fù)選項(xiàng)以滿(mǎn)足應(yīng)用程序的需求。有些應(yīng)用程序會(huì)得到充分的高可用性/容錯(cuò)能力,而其他應(yīng)用程序可能只是使用虛擬機(jī)管理程序的快照進(jìn)行備份。在某些情況下,持續(xù)備份或全高可用性/容錯(cuò)能力與基于陣列的復(fù)制可以是合理的。其完全只是基于具體要求來(lái)應(yīng)用技術(shù)。