企業(yè)容災(zāi)架構(gòu)選型必知概念、跨中心數(shù)據(jù)復(fù)制技術(shù)
發(fā)布時(shí)間:2021-07-19作者:小編閱讀:0
一、必須知道的概念
1. 什么是企業(yè)的容災(zāi)?
1.1 什么是企業(yè)的業(yè)務(wù)連續(xù)性管理(Business Continuity Management)?
企業(yè)的業(yè)務(wù)連續(xù)性是指企業(yè)有應(yīng)對風(fēng)險(xiǎn)、自動調(diào)整和快速反應(yīng)的能力,以保障企業(yè)業(yè)務(wù)的連續(xù)運(yùn)轉(zhuǎn)。為企業(yè)的重要應(yīng)用和流程提供業(yè)務(wù)連續(xù)性應(yīng)該包括連續(xù)操作(Continuous Operations)、高可用性(High Availability)、災(zāi)難恢復(fù)(Disaster Recovery)三個方面,這幾個方面不是孤立存在的,而是相互聯(lián)系存在的。連續(xù)操作強(qiáng)調(diào)的指在沒有物理故障發(fā)生的情況下,保障業(yè)務(wù)連續(xù)的常規(guī)運(yùn)維操作能力;高可用性強(qiáng)調(diào)的是基礎(chǔ)架構(gòu)在本地故障的場合下的恢復(fù)能力;災(zāi)難恢復(fù)強(qiáng)調(diào)的是在災(zāi)難場合下,企業(yè)的業(yè)務(wù)恢復(fù)能力。從業(yè)務(wù)連續(xù)性上來講,企業(yè)的容災(zāi)也就是我們所說的災(zāi)難恢復(fù)范疇,應(yīng)該是業(yè)務(wù)連續(xù)性的子集。
1.2 什么是企業(yè)的容災(zāi)架構(gòu)(Disaster Tolerance)?
廣義的容災(zāi),我們可以認(rèn)為就是業(yè)務(wù)連續(xù)性計(jì)劃當(dāng)中的災(zāi)難恢復(fù),就是指能夠容忍災(zāi)難的能力。要容忍的災(zāi)難類型就包括地震、洪水、火災(zāi)等災(zāi)害、軟硬件故障、網(wǎng)絡(luò)或病毒攻擊、人為蓄意破壞等。容災(zāi)能力建設(shè)的主要目的,就是在災(zāi)難發(fā)生的時(shí)候,能夠保證生產(chǎn)業(yè)務(wù)系統(tǒng)的不間斷運(yùn)行。
狹義的容災(zāi),我們可以認(rèn)為是指在相隔較遠(yuǎn)的區(qū)域(同城或者異地),建立兩套或多套功能相同的IT系統(tǒng),互相之間可以進(jìn)行健康狀態(tài)監(jiān)視和功能切換,當(dāng)一處系統(tǒng)因意外停止工作時(shí),整個應(yīng)用系統(tǒng)可以切換到另一處,使得該系統(tǒng)功能可以繼續(xù)正常工作。
1.3 什么是企業(yè)的備份和恢復(fù)(Backup and Recovery)?
備份和恢復(fù)是指備份數(shù)據(jù)以防數(shù)據(jù)丟失,且設(shè)置安全系統(tǒng)以便恢復(fù)數(shù)據(jù)的流程。數(shù)據(jù)備份要求復(fù)制和存檔計(jì)算機(jī)數(shù)據(jù)以保證數(shù)據(jù)損壞或刪除后數(shù)據(jù)仍可訪問。數(shù)據(jù)備份恢復(fù)是業(yè)務(wù)恢復(fù)的一種形式,因此它屬于業(yè)務(wù)連續(xù)性計(jì)劃當(dāng)中的連續(xù)操作和災(zāi)難恢復(fù)范圍。備份包括系統(tǒng)備份和數(shù)據(jù)備份,系統(tǒng)備份是指將系統(tǒng)運(yùn)行環(huán)境作為一個整體進(jìn)行備份,當(dāng)發(fā)生故障時(shí)將系統(tǒng)運(yùn)行環(huán)境整體恢復(fù)。數(shù)據(jù)備份是指將應(yīng)用系統(tǒng)當(dāng)中保存的數(shù)據(jù)作為單獨(dú)的形式進(jìn)行備份,當(dāng)數(shù)據(jù)發(fā)生丟失或者損壞的時(shí)候進(jìn)行恢復(fù)。
1.4 什么是企業(yè)IT基礎(chǔ)架構(gòu)的高可用(High Availability)?
高可用性(High Availability)通常來描述一個系統(tǒng)經(jīng)過專門的設(shè)計(jì),從而減少停工時(shí)間,而保持其服務(wù)的高度可用性。企業(yè)的高可用架構(gòu)通常指的是為了在面對數(shù)據(jù)中心本地軟硬件故障場景下,保證業(yè)務(wù)的連續(xù)性而規(guī)劃部署的非對稱(主備、主從)以及對稱架構(gòu)(主主、集群),可以是網(wǎng)絡(luò)架構(gòu)、主機(jī)架構(gòu)、數(shù)據(jù)庫架構(gòu)以及存儲架構(gòu)等類IT基礎(chǔ)架構(gòu),例如交換機(jī)的堆疊技術(shù)、負(fù)載均衡設(shè)備的集群架構(gòu)、主機(jī)的HA架構(gòu)、數(shù)據(jù)庫的Oracle RAC集群等。
1.5 什么是企業(yè)的IT基礎(chǔ)架構(gòu)的容錯(Fault-tolerant)?
在計(jì)算機(jī)通信領(lǐng)域來講,容錯就是指當(dāng)系統(tǒng)在運(yùn)行時(shí)有錯誤被激活的情況下仍能保證不間斷提供服務(wù)的方法和技術(shù)。從廣義來講,我們所述的容災(zāi)、備份恢復(fù)、高可用等都是容錯的一種手段。
但是通常來講,我們對IT基礎(chǔ)架構(gòu)當(dāng)中的容錯性有著約定俗成的專指含義,實(shí)際上它是指我們在IT設(shè)備配置或者軟件配置過程當(dāng)中,為了杜絕網(wǎng)絡(luò)線路、設(shè)備零件、軟件模塊等方面的運(yùn)行錯誤導(dǎo)致的應(yīng)用系統(tǒng)中斷而采取的冗余性設(shè)計(jì)。例如網(wǎng)卡的邏輯綁定、存儲鏈路的聚合、LVM邏輯卷設(shè)計(jì)等等。
1.6 如何理解業(yè)務(wù)連續(xù)性、備份恢復(fù)以及容災(zāi)?
1、從范疇上來講,我們用以下的圖來詮釋這幾個概念的差異。
備份恢復(fù)、高可用架構(gòu)設(shè)計(jì)、容錯設(shè)計(jì)、容災(zāi)都是為了保障業(yè)務(wù)連續(xù)性的一種手段、技術(shù)和工具。在廣義的容災(zāi)設(shè)計(jì)當(dāng)中必然也會包括基礎(chǔ)架構(gòu)的高可用設(shè)計(jì)、設(shè)備軟件的容錯設(shè)計(jì)以及必要的備份恢復(fù)。但是備份恢復(fù)、高可用和容錯是可以獨(dú)立存在的,不依賴容災(zāi)架構(gòu)。
2、從設(shè)計(jì)功能上來講,備份恢復(fù)不僅僅可以解決由物理故障引起的數(shù)據(jù)損壞和丟失,而且更重要的是它可以解決由人為的邏輯錯誤導(dǎo)致的數(shù)據(jù)損壞和丟失,比如誤刪數(shù)據(jù)。備份恢復(fù)是一種事后的補(bǔ)救措施,也就是說它只能發(fā)生在問題發(fā)生之后。容錯、高可用、容災(zāi)中核心的架構(gòu)設(shè)計(jì)是為了解決實(shí)時(shí)問題,是一種事中解決問題的思路,但是這兩者都無法解決人為導(dǎo)致的邏輯錯誤故障導(dǎo)致的業(yè)務(wù)中斷,只能解決物理故障導(dǎo)致的業(yè)務(wù)中斷問題。
3、從所屬性質(zhì)來講,業(yè)務(wù)連續(xù)性是著眼業(yè)務(wù)層面的一套解決思路或者方法論指導(dǎo)下的制度、流程、方案、技術(shù)、工具、資源等一系列元素組成的。而容災(zāi)、高可用、備份恢復(fù)、容錯僅僅是為了保障業(yè)務(wù)連續(xù)而對基礎(chǔ)架構(gòu)進(jìn)行設(shè)計(jì)實(shí)現(xiàn)的技術(shù)工具或者手段。
2. 企業(yè)容災(zāi)架構(gòu)的核心目標(biāo)是什么?
企業(yè)容災(zāi)架構(gòu)的核心目標(biāo)是什么?也就是說我們?yōu)槭裁匆ㄟ@么大力氣去搞容災(zāi)建設(shè)?就一句話,RTO&RPO是搞容災(zāi)建設(shè)的最核心目標(biāo),一切容災(zāi)建設(shè)目的都需要回到RTO和RPO的評估上來。
① RTO:企業(yè)可容許服務(wù)中斷的時(shí)間長度,簡言之業(yè)務(wù)可以恢復(fù)的最快時(shí)間。
② RPO:企業(yè)可容許數(shù)據(jù)丟失的數(shù)量級,簡言之?dāng)?shù)據(jù)可以恢復(fù)到最新的時(shí)刻點(diǎn)。
如圖所示,RTO關(guān)注的是數(shù)據(jù)丟失的多少,而對什么時(shí)候恢復(fù)業(yè)務(wù)中斷沒有要求;RPO關(guān)注的是什么時(shí)候恢復(fù)業(yè)務(wù),但是歷史數(shù)據(jù)丟失多少并沒有要求。只有這兩個結(jié)合起來才是對現(xiàn)實(shí)生活當(dāng)中的業(yè)務(wù)連續(xù)性的約束。要實(shí)現(xiàn)什么樣的RTO&RPO目標(biāo),一定會有相應(yīng)的方案來支撐,也必然有對此方案需要付出的IT成本投入。我們評估容災(zāi)的目標(biāo)要求,一定是從RTO&RPO的選定范圍出發(fā),然后權(quán)衡企業(yè)可以付諸的投入,最終確定合理的容災(zāi)建設(shè)方案。
3. 企業(yè)容災(zāi)架構(gòu)的行業(yè)標(biāo)準(zhǔn)都有哪些?
3.1企業(yè)容災(zāi)的國家級標(biāo)準(zhǔn)
《信息安全技術(shù)信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范》國家標(biāo)準(zhǔn)(GB/T20988-2007)是我國災(zāi)難備份與恢復(fù)行業(yè)的第一個國家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)由國務(wù)院信息化工作辦公室領(lǐng)導(dǎo)編制的,并于2007年11月1日開始正式實(shí)施。該標(biāo)準(zhǔn)規(guī)定了信息系統(tǒng)災(zāi)難恢復(fù)應(yīng)遵循的基本要求,適用于信息系統(tǒng)災(zāi)難恢復(fù)的規(guī)劃、審批、實(shí)施和管理,并參照國際標(biāo)準(zhǔn)SHARE78的7個層級定義,確定了符合中國國情的6個災(zāi)備能力等級要求。下面,概括性地介紹各個層級的內(nèi)容:
1級:數(shù)據(jù)定時(shí)備份、異地存放。
2級:數(shù)據(jù)定時(shí)備份、異地設(shè)備冷備。
3級:數(shù)據(jù)定時(shí)備份、異地部分業(yè)務(wù)熱備接管。
4級:數(shù)據(jù)定時(shí)備份、異地業(yè)務(wù)熱備接管。
5級:數(shù)據(jù)實(shí)時(shí)備份、異地業(yè)務(wù)熱備接管。
6級:零數(shù)據(jù)丟失、遠(yuǎn)程自動接管支持。
3.2企業(yè)容災(zāi)的行業(yè)監(jiān)管標(biāo)準(zhǔn)
對于評價(jià)容災(zāi)的RTO&RPO這兩個指標(biāo),不同的行業(yè)有不同的行業(yè)標(biāo)準(zhǔn),例如人民銀行在2008年的《銀行業(yè)信息系統(tǒng)災(zāi)難恢復(fù)管理規(guī)范》當(dāng)中規(guī)定:銀行類信息系統(tǒng)恢復(fù)要求:
① 一類信息系統(tǒng):RTO<6小時(shí),rpo<15分鐘。< p="">
② 二類信息系統(tǒng):RTO<24小時(shí),rpo<120分鐘。< p="">
③ 三類信息系統(tǒng):RTO<7天。< p="">
對于銀行行業(yè)來講,所有容災(zāi)建設(shè)必須遵循這個最低要求。在此基礎(chǔ)之上,不同的企業(yè)對自身有不同的要求。比如工商銀行、招商銀行之類發(fā)展比較優(yōu)秀的銀行企業(yè)對自己提出了更高的要求(RTO~0,RPO~0),有些小的地方銀行則因?yàn)槌杀締栴},是為了達(dá)到銀監(jiān)局及人民銀行的最低要求而搞容災(zāi)建設(shè)。但是無論是出于什么樣的目的搞容災(zāi)建設(shè),最終必然要回到對RTO和RPO的評估上來,沒有這兩個核心目標(biāo)的選擇,則一切容災(zāi)建設(shè)方案都無根可尋。
3.3企業(yè)容災(zāi)的自我衡量標(biāo)準(zhǔn)
另外一種標(biāo)準(zhǔn)就是企業(yè)本身的業(yè)務(wù)要求,例如生產(chǎn)企業(yè),RTO是可以直接計(jì)算企業(yè)損失的指標(biāo),如果停產(chǎn)1個小時(shí)將會給企業(yè)帶來多少可計(jì)算的損失以及不可計(jì)算的損失。我們可以根據(jù)這個損失來衡量可以為容災(zāi)建設(shè)付出的成本范圍。
4. 企業(yè)容災(zāi)架構(gòu)都包含哪些技術(shù)框架?
企業(yè)的容災(zāi)架構(gòu)根據(jù)容災(zāi)的地域距離可以劃分為本地容災(zāi)和異地容災(zāi),而且整個容災(zāi)架構(gòu)不是單獨(dú)的一類技術(shù)或者一類工具,而是系統(tǒng)的整體技術(shù)框架,包含了很多的元素和技術(shù)體系,如果分解闡述,可以從縱向和橫向進(jìn)行分解描述。
首先,從縱向來講,整個容災(zāi)架構(gòu)包括網(wǎng)絡(luò)層、負(fù)載分發(fā)層、應(yīng)用中間件層、應(yīng)用層以及數(shù)據(jù)涉及的數(shù)據(jù)庫和存儲層,其中數(shù)據(jù)層最為重要,直接關(guān)系到RPO指標(biāo),應(yīng)用層往上則主要關(guān)系到RTO指標(biāo)。接著,我們從橫向上來講,會包括集群技術(shù)、數(shù)據(jù)復(fù)制技術(shù)以及應(yīng)用切換技術(shù),數(shù)據(jù)復(fù)制技術(shù)又是整個容災(zāi)的關(guān)鍵,因?yàn)樗苯雨P(guān)系到RPO指標(biāo),應(yīng)用切換技術(shù)則直接關(guān)系到RTO指標(biāo),集群技術(shù)一般是指在近距離(例如同城)場合下的數(shù)據(jù)復(fù)制和應(yīng)用切換技術(shù)的融合體。最后,我們從整體基礎(chǔ)架構(gòu)來講,為了支撐以上技術(shù)體系的實(shí)現(xiàn),我們需要有一系列的軟硬件基礎(chǔ)架構(gòu)來支撐其最終的實(shí)現(xiàn),比如我們的交換機(jī)、服務(wù)器、存儲、備份介質(zhì)、網(wǎng)絡(luò)線路以及為了實(shí)現(xiàn)應(yīng)用的切換和數(shù)據(jù)復(fù)制技術(shù)體系所需要的SDN、LB、GLB、VM、HA、DB Cluster、Storage Gateway、Storage DP等軟件模塊。
接下來,我們來看實(shí)現(xiàn)企業(yè)容災(zāi)架構(gòu)橫向支撐的一些關(guān)鍵技術(shù):
① 網(wǎng)絡(luò)的跨地域L2技術(shù)(主要為虛擬機(jī)的漂移、集群IP地址漂移等):同城距離可以采用波分設(shè)備和思科的OTV技術(shù)來實(shí)現(xiàn)跨中心的L2技術(shù),但是這種技術(shù)可跨越的距離僅限百公里范圍內(nèi)級別。另外一類就是采用Overlay隧道技術(shù),在原有網(wǎng)絡(luò)基礎(chǔ)架構(gòu)之上通過邏輯隧道的模式實(shí)現(xiàn)L2的傳輸,這種技術(shù)不受距離限制,但是性能不是最佳。
② 跨數(shù)據(jù)中心負(fù)載分發(fā)技術(shù)(主要為客戶端訪問流量的切換):通常需要域名解析DNS與本地負(fù)載均衡LB結(jié)合來實(shí)現(xiàn)全局的負(fù)載分發(fā)。DNS需要能夠?qū)崿F(xiàn)動態(tài)解析,也就是根據(jù)備選地址池的健康狀況來確定最終的業(yè)務(wù)地址。本地不在均衡LB實(shí)現(xiàn)本地內(nèi)的負(fù)載導(dǎo)流。如圖所示:
③ 跨數(shù)據(jù)中心VM集群內(nèi)漂移技術(shù)(主要為應(yīng)用的跨地域高可用服務(wù)):通??梢酝ㄟ^虛擬機(jī)的跨地域集群技術(shù)實(shí)現(xiàn),只要具備跨數(shù)據(jù)中心L2網(wǎng)絡(luò)和存儲卷共享的條件,基本上都可以實(shí)現(xiàn)。關(guān)于跨區(qū)域的L2網(wǎng)絡(luò)技術(shù),上述章節(jié)已討論過。存儲卷共享可以通過NAS或者分布式存儲來實(shí)現(xiàn)。
④ 跨數(shù)據(jù)中心數(shù)據(jù)復(fù)制技術(shù)(主要為數(shù)據(jù)跨區(qū)域冗余服務(wù)):數(shù)據(jù)復(fù)制技術(shù)是關(guān)鍵,它是保障容災(zāi)目標(biāo)RTO&RPO的關(guān)鍵技術(shù),根據(jù)容災(zāi)級別的不同,可分為同步復(fù)制和異步復(fù)制,所使用的實(shí)現(xiàn)手段也因此而不同。關(guān)于它的具體實(shí)現(xiàn)方式,可以考慮從三個層面落地:系統(tǒng)層的雙寫、數(shù)據(jù)庫層的數(shù)據(jù)復(fù)制、存儲層的復(fù)制。具體實(shí)現(xiàn)方式及其優(yōu)劣在后續(xù)文章詳細(xì)介紹。
5. 數(shù)據(jù)復(fù)制技術(shù)在企業(yè)容災(zāi)架構(gòu)當(dāng)中的意義
如果上升到商業(yè)業(yè)務(wù)的高度,那么一切容災(zāi)技術(shù)都是為了業(yè)務(wù)的連續(xù)性服務(wù)的。
具體來說,數(shù)據(jù)復(fù)制技術(shù)即完成數(shù)據(jù)從一個數(shù)據(jù)中心到另外的數(shù)據(jù)中心的冗余性保護(hù)。一旦發(fā)生災(zāi)難導(dǎo)致一個數(shù)據(jù)中心的數(shù)據(jù)丟失或者損壞,可以通過另外一個數(shù)據(jù)中心的數(shù)據(jù)來支撐應(yīng)用系統(tǒng)運(yùn)行。沒有應(yīng)用系統(tǒng)的不中斷運(yùn)行就沒有業(yè)務(wù)的連續(xù)性可言,沒有數(shù)據(jù)的存在就沒有應(yīng)用系統(tǒng)的不中斷運(yùn)行可言,沒有數(shù)據(jù)復(fù)制技術(shù)的支撐就沒有容災(zāi)的必要性可言。數(shù)據(jù)在應(yīng)用系統(tǒng)當(dāng)中的地位直接決定了數(shù)據(jù)復(fù)制技術(shù)在容災(zāi)框架當(dāng)中的絕對必要性地位。
① RPO:簡言之,RPO就是衡量災(zāi)難時(shí)刻依靠容災(zāi)手段可以丟失的最少數(shù)據(jù)。數(shù)據(jù)復(fù)制的及時(shí)性直接決定RPO的量級標(biāo)準(zhǔn),如果數(shù)據(jù)復(fù)制是同步模式,那么RPO必然是零。如果數(shù)據(jù)是異步模式,那么RPO就直接與數(shù)據(jù)復(fù)制的異步效率指標(biāo)息息相關(guān)。
② RTO:簡言之,RTO就是衡量災(zāi)難時(shí)刻依靠容災(zāi)手段可以恢復(fù)業(yè)務(wù)的最短時(shí)間。這個不僅僅取決于數(shù)據(jù)復(fù)制技術(shù),還要依賴于縱向的網(wǎng)絡(luò)、負(fù)載分發(fā)、服務(wù)器、應(yīng)用、數(shù)據(jù)庫、存儲等各個層面的恢復(fù)技術(shù)。但是,數(shù)據(jù)復(fù)制技術(shù)一定是所有恢復(fù)技術(shù)的基石,沒有這個基石,及時(shí)所有層面都恢復(fù)了,沒有數(shù)據(jù)的業(yè)務(wù)訪問也依然無效。
因此,數(shù)據(jù)復(fù)制技術(shù)是容災(zāi)體系架構(gòu)當(dāng)中最關(guān)鍵的技術(shù)元素。
二、跨中心數(shù)據(jù)復(fù)制技術(shù)
1. 什么是企業(yè)容災(zāi)的數(shù)據(jù)復(fù)制技術(shù)?
企業(yè)容災(zāi)架構(gòu)中,所謂的數(shù)據(jù)復(fù)制技術(shù)主要是指能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù)進(jìn)行復(fù)制,從而保證數(shù)據(jù)具備雙副本或者多副本分散在不同數(shù)據(jù)中心的技術(shù)。這里面需要強(qiáng)調(diào)兩點(diǎn):
① 結(jié)構(gòu)化數(shù)據(jù):以結(jié)構(gòu)化數(shù)據(jù)為主的數(shù)據(jù)復(fù)制技術(shù)。
② 分散在不同數(shù)據(jù)中心:數(shù)據(jù)副本必須分布在不同的數(shù)據(jù)中心。
就具體的實(shí)現(xiàn)技術(shù)而言,就目前業(yè)界發(fā)展來看,可以實(shí)現(xiàn)數(shù)據(jù)復(fù)制的技術(shù)多種多樣,有基于數(shù)據(jù)庫層面的數(shù)據(jù)復(fù)制技術(shù),例如Oracle公司的Active Data Gurad、IBM公司的 Db2 HADR等;有基于系統(tǒng)層面的數(shù)據(jù)復(fù)制技術(shù),例如賽門鐵克的vxvm、傳統(tǒng)的邏輯卷管理(LVM)、Oracle公司的自動存儲管理(ASM)冗余技術(shù)、IBM公司的GPFS等;有基于存儲虛擬化實(shí)現(xiàn)的數(shù)據(jù)復(fù)制技術(shù),例如EMC公司Vplex Stretch Cluster、IBM公司SVC Split Cluster、NetAPP公司Metro Cluster等;也有基于存儲底層實(shí)現(xiàn)的數(shù)據(jù)復(fù)制技術(shù),例如IBM公司的DS8000 PPRC技術(shù)、EMC公司的SRDF技術(shù)、HP公司的CA技術(shù)等等。每一種技術(shù)都有其實(shí)現(xiàn)的前提條件,也有各自的技術(shù)特點(diǎn)和實(shí)現(xiàn)的不同效果。
2. 企業(yè)容災(zāi)中的數(shù)據(jù)復(fù)制技術(shù)的分類
2.1 同步復(fù)制和異步復(fù)制
從RPO維度來劃分,大的方面可以分為同步復(fù)制和異步復(fù)制。
① 同步復(fù)制:要求每一個寫入操作在執(zhí)行下一個操作處理之前,在源端和目標(biāo)端都能完成。特點(diǎn)是數(shù)據(jù)丟失少,會影響生產(chǎn)系統(tǒng)性能,除非目標(biāo)系統(tǒng)物理上離生產(chǎn)系統(tǒng)比較近。
② 異步復(fù)制:在處理下一個操作前, 只需要完成源端數(shù)據(jù)寫入即可, 不等待數(shù)據(jù)復(fù)制到目標(biāo)系統(tǒng)中。特點(diǎn)是復(fù)制的數(shù)據(jù)與源數(shù)據(jù)有時(shí)間差,但這種復(fù)制對生產(chǎn)系統(tǒng)性能影響較小。
那么這里有一個問題“如何界定一個寫入操作完成?”,一般來講,存儲端的寫入以存儲設(shè)備的緩存寫入為標(biāo)準(zhǔn),數(shù)據(jù)庫的寫入以數(shù)據(jù)庫的事務(wù)日志落盤為標(biāo)準(zhǔn)。
如果用圖的方式來區(qū)別同步和異步之前的區(qū)別就在于:同步需要等待黑色和紅色的ACK返回才會執(zhí)行下一個IO,而異步只需要等待黑色的ACK返回即可執(zhí)行下一個IO。從結(jié)果上來看,等待紅色的ACK返回顯然需要花費(fèi)更多時(shí)間,因?yàn)锳和B分別位于不同的數(shù)據(jù)中心;但是等待會帶來RPO=0的回報(bào)。
2.2 根據(jù)實(shí)現(xiàn)復(fù)制的手段來劃分
根據(jù)上圖,數(shù)據(jù)復(fù)制最終完成的結(jié)果是在兩個磁盤介質(zhì)上完成同一個IO數(shù)據(jù),但是將來自客戶端的單個IO請求鏡像為兩個IO的源頭可以有三種不同的選擇:操作系統(tǒng)層面、數(shù)據(jù)庫層面以及存儲層面。
1). 操作系統(tǒng)層面的復(fù)制技術(shù):以LVM、VXVM等邏輯卷鏡像為基礎(chǔ),IO寫入的時(shí)候可以在組成同一個邏輯卷的物理鏡像上同時(shí)寫入數(shù)據(jù),底層數(shù)據(jù)寫入是需要通過SAN協(xié)議完成的。
2). 數(shù)據(jù)庫層面的復(fù)制技術(shù):一種是類似操作系統(tǒng)邏輯卷的模式,比如ORACLE的ASM,它也是一種邏輯卷管理模式,同樣也可以通過多個物理鏡像來組成一個邏輯卷,從而通過鏡像復(fù)制的方式完成數(shù)據(jù)副本的同時(shí)寫入。本質(zhì)上它與操作系統(tǒng)層面的邏輯卷鏡像技術(shù)沒有區(qū)別,只是它離數(shù)據(jù)庫更近,數(shù)據(jù)庫更懂它。另外一種是通過數(shù)據(jù)庫事務(wù)日志復(fù)制的方式將數(shù)據(jù)修改行為在另外一個備庫上重新演繹一遍,最終可以達(dá)到使數(shù)據(jù)結(jié)果一致的目的。
3). 存儲層面的復(fù)制技術(shù):一種是通過存儲網(wǎng)關(guān)將兩個物理存儲卷組成一個邏輯存儲卷,通過鏡像復(fù)制的方式完成數(shù)據(jù)在存儲落盤時(shí)的雙寫。本質(zhì)上它與操作系統(tǒng)層面的邏輯卷鏡像技術(shù)也沒有區(qū)別,只是它選擇在存儲層面實(shí)現(xiàn)。另外一種是通過存儲介質(zhì)之間以塊拷貝的方式來實(shí)現(xiàn)數(shù)據(jù)副本的冗余。
究其原理,其實(shí)無論從哪個層面來實(shí)現(xiàn),這些技術(shù)從原理上可以劃分為三種類型:
1、IO雙寫(操作系統(tǒng)邏輯卷鏡像、ASM、存儲網(wǎng)關(guān)鏡像.etc)
2、事務(wù)回放(以O(shè)racle ADG為代表.etc)
3、數(shù)據(jù)單元拷貝(以存儲CA、DP技術(shù)為代表的存儲復(fù)制技術(shù))
3. 系統(tǒng)層如何實(shí)現(xiàn)數(shù)據(jù)復(fù)制?
3.1 通過操作系統(tǒng)邏輯卷鏡像實(shí)現(xiàn)數(shù)據(jù)復(fù)制
對于操作系統(tǒng)層面的邏輯卷管理器LVM模式來講,是將底層來自不同數(shù)據(jù)中心的的兩個物理存儲卷作為物理鏡像( PV) 組合成一個可用的邏輯存儲卷( LV) 提供給上層應(yīng)用來存放數(shù)據(jù),本地物理卷和遠(yuǎn)程物理卷分別是由存儲經(jīng)過本地SAN環(huán)境以及跨數(shù)據(jù)中心SAN環(huán)境提供給服務(wù)器操作系統(tǒng)層。
建立邏輯卷的時(shí)候就已經(jīng)定義好LV和PV的映射關(guān)系,并且邏輯頁(LP ) 和物理頁(PP ) 的映射關(guān)系也已經(jīng)完全定義好了。這種復(fù)制只能采用同步復(fù)制機(jī)制,復(fù)制對象為邏輯卷層的變化Block,其過程為:捕獲邏輯頁( LP) 當(dāng)中的變化塊,同步寫兩個物理頁( PP) ,等于在一個主機(jī)上將同一數(shù)據(jù)寫入兩個不同的磁盤,本地寫完得到ACK確認(rèn),并且遠(yuǎn)端寫完也得到ACK確認(rèn),才能算是一個完整的寫入。假設(shè)遠(yuǎn)端存儲卷寫入超時(shí)就會被標(biāo)為故障或者是離線狀態(tài),當(dāng)遠(yuǎn)端存儲寫入恢復(fù)之后,對于LVM來講需要重新進(jìn)行手動同步實(shí)現(xiàn)鏡像副本完全一致。
3.2 通過數(shù)據(jù)庫邏輯卷鏡像實(shí)現(xiàn)的數(shù)據(jù)復(fù)制
對于ASM模式來講,其實(shí)原理與LVM基本相同,創(chuàng)建DiskGroup的時(shí)候,將冗余策略選擇為Normal,也就是所有業(yè)務(wù)數(shù)據(jù)保證兩份鏡像。這樣的話,我們可以將相等數(shù)量的磁盤分別歸入不同的故障組( Failure Group) 。ASM對Oracle數(shù)據(jù)文件( Data File) 進(jìn)行修改的時(shí)候,以AU為單元進(jìn)行實(shí)時(shí)雙向?qū)懭?,本地寫完得到ACK確認(rèn),并且遠(yuǎn)端寫完也得到ACK確認(rèn),才能算是一個完整的寫入。
相比LVM的優(yōu)勢在于兩點(diǎn):ASM會有一個短時(shí)間內(nèi)的寫事務(wù)日志記錄,它會幫助恢復(fù)離線鏡像恢復(fù)數(shù)據(jù),但是如果超過這個時(shí)間,同樣需要一個全新的同步來保證數(shù)據(jù)的一致性。另外一點(diǎn),AU并非建立數(shù)據(jù)文件的時(shí)候就已經(jīng)映射好了,ASM是在數(shù)據(jù)寫入時(shí)才會分配具體的AU,完全可以做到通過指針轉(zhuǎn)移的方式避免壞塊兒導(dǎo)致的數(shù)據(jù)寫入失敗問題。
3.3 通過分布式文件系統(tǒng)文件鏡像實(shí)現(xiàn)的數(shù)據(jù)復(fù)制
對于GPFS模式來講,它是通過將底層來自不同站點(diǎn)的兩個物理存儲卷歸屬到不同的Failure Group當(dāng)中,然后由這些物理存儲卷經(jīng)過文件系統(tǒng)格式化形成分布式文件系統(tǒng),提供給上層應(yīng)用以文件的形式寫入數(shù)據(jù)。文件本身會被GPFS文件系統(tǒng)打散形成若干文件碎片,這些碎片在落盤時(shí)分別落入不同F(xiàn)ailure Group當(dāng)中的物理磁盤,從而保證底層數(shù)據(jù)的雙副本。這種模式與前兩種模式的最大區(qū)別在于它的數(shù)據(jù)落盤是根據(jù)NSD磁盤定義的服務(wù)實(shí)例順序來決定的,正常情況下我們需要定義本站點(diǎn)的服務(wù)節(jié)點(diǎn)為磁盤的主服務(wù)節(jié)點(diǎn),這樣的話兩個鏡像寫入的時(shí)候是靠GPFS位于不同中心的兩個服務(wù)實(shí)例節(jié)點(diǎn)分別寫入,兩個服務(wù)實(shí)例之間也需要私有協(xié)議的交互,相當(dāng)于數(shù)據(jù)的雙寫多了一個環(huán)節(jié)。
4. 數(shù)據(jù)庫層如何實(shí)現(xiàn)數(shù)據(jù)復(fù)制?
4.1 通過數(shù)據(jù)庫日志回放模式實(shí)現(xiàn)數(shù)據(jù)復(fù)制
對于事務(wù)日志的復(fù)制技術(shù),可以分為絕對同步模式、近似同步模式和異步模式三種。
對于Oracle DB來講,客戶端的數(shù)據(jù)更新請求首先要由日志寫入進(jìn)程( LGWR) 從重做緩存刷到重做日志文件當(dāng)中,然后由數(shù)據(jù)寫進(jìn)程再周期性地寫入數(shù)據(jù)文件當(dāng)中。重做日志當(dāng)中以SCN為數(shù)據(jù)庫獨(dú)有的時(shí)間戳序列來記錄所有數(shù)據(jù)庫更新的先后順序,從而保障數(shù)據(jù)庫恢復(fù)能夠按照正確的順序執(zhí)行保障數(shù)據(jù)一致性和完整性。也就是說在數(shù)據(jù)庫的認(rèn)知當(dāng)中,只要事務(wù)日志寫入重做日志文件,這個IO就算完成。
如圖,對于配置了Data Guard絕對同步模式的數(shù)據(jù)庫,在以上所述過程中,寫入進(jìn)程( LGWR) 在本地日志文件并不能結(jié)束,日志傳輸進(jìn)程( LNS) 會將緩存里面的重做日志通過TCP /IP 網(wǎng)絡(luò)傳輸給災(zāi)備站點(diǎn)的備庫實(shí)例的日志接受進(jìn)程(RFS ) ,備庫實(shí)例的日志接收進(jìn)程( RFS) 根據(jù)接受到的重做日志在備庫上重新執(zhí)行數(shù)據(jù)庫的更新操作,然后將ACK回傳給日志傳輸進(jìn)程( LNS) ,日志傳輸進(jìn)程( LNS) 再通知寫入進(jìn)程( LGWR) ,才算是一個完整的IO完成。這樣做可以保證主庫和備庫的事務(wù)性更新行為實(shí)時(shí)一致,最終保證數(shù)據(jù)的一致。當(dāng)然也有一個前提條件,那就是在Data Guard開始同步復(fù)制之前,必須保證備庫的數(shù)據(jù)保持與主庫的某一固定時(shí)間點(diǎn)的完整副本,這需要靠傳統(tǒng)數(shù)據(jù)備份技術(shù)來實(shí)現(xiàn)備庫的初始數(shù)據(jù)復(fù)制。因?yàn)槭聞?wù)復(fù)制的本質(zhì)是行為復(fù)制,那么行為作用的初始數(shù)據(jù)副本必須保持一致,才能保證最終兩副本的一致性。
如圖,對于配置了Data Guard異步模式的數(shù)據(jù)庫,日志傳輸進(jìn)程( LNS) 會將緩存里面的重做日志以及被LGWR歸檔的重做日志文件通過TCP /IP 網(wǎng)絡(luò)異步傳輸給災(zāi)備站點(diǎn)的備庫實(shí)例的日志接受進(jìn)程(RFS ) ,備庫實(shí)例的日志接收進(jìn)程( RFS) 根據(jù)接受到的重做日志在備庫上重新執(zhí)行數(shù)據(jù)庫的更新操作,但是并不會實(shí)時(shí)給日志傳輸進(jìn)程( LNS) 進(jìn)行ACK反饋,PrimaryDB只要完成本庫的事務(wù)更新就認(rèn)為IO結(jié)束。但是備庫日志接受進(jìn)程(RFS ) 會定期將進(jìn)度信息反饋給主庫進(jìn)程。
當(dāng)主備庫傳輸管理剝離之后,主庫會主動通過以下兩種方式探測并嘗試重新和備庫建立聯(lián)系,第一是歸檔日志進(jìn)程會周期性ping備庫,成功情況下,它會根據(jù)獲得的備庫控制文件的記錄的最后歸檔點(diǎn)和自己的歸檔日志決定向備庫推送哪些歸檔日志。第二是日志發(fā)送進(jìn)程會在重做日志準(zhǔn)備發(fā)生歸檔的時(shí)刻點(diǎn)主動去ping備庫日志接受進(jìn)程并把剩余的重做條目發(fā)送給備庫接受進(jìn)程。
近似同步模式是指在傳輸正常情況下保持與絕對同步模式一樣的模式,在網(wǎng)絡(luò)傳輸超時(shí)的情況下,就會剝離備庫重做日志的過程,只要保證主庫重做日志落盤就可以了。
5. 存儲層如何實(shí)現(xiàn)數(shù)據(jù)復(fù)制?
5.1 通過存儲網(wǎng)關(guān)邏輯卷鏡像實(shí)現(xiàn)數(shù)據(jù)復(fù)制
所謂存儲網(wǎng)關(guān)雙寫復(fù)制技術(shù),就是在物理存儲層之上增加一層網(wǎng)關(guān)技術(shù),用以形成存儲資源透明抽象層,即存儲虛擬化是服務(wù)器與存儲間的一個抽象層用以實(shí)現(xiàn)存儲底層的虛擬化以及高可用鏡像,它是物理存儲的邏輯表示方法。其主要目的就是要把物理存儲介質(zhì)抽象為邏輯存儲空間,將分散的物理存儲管理整合為集中存儲管理并且由存儲網(wǎng)關(guān)來控制鏡像寫入的策略和模式。IBM、EMC、NETAPP 、 HUAWEI、英方等公司都有相應(yīng)容災(zāi)技術(shù)方案及相應(yīng)產(chǎn)品 ?;趯懭朐砑安呗缘牟煌?各自方案又各有一些區(qū)別。但是拋開細(xì)節(jié)究原理,歸類總結(jié)之后有兩種模式 。
模式 1,如 圖中所示,是以 EMC Vplex為代表的分布式存儲卷技術(shù)。在存儲網(wǎng)關(guān)VPLEX上重新定義虛擬存儲卷,該虛擬卷由分布在兩個數(shù)據(jù)中心的物理存儲卷以1:1方式映射組成,并且以共享模式提供給VPLEX的兩個引擎,引擎之間類似Oracle RAC的原理來共享全局緩存、心跳信息以及分布式鎖的信息。兩個引擎同時(shí)可以寫IO,對于Block級別的并發(fā)寫操作,是通過分布式鎖及全局緩存機(jī)制來完成。所以這種雙寫是可以做到IO級別。
模式 2,如圖中所示,是以 IBM SVC為代表的虛擬存儲卷技術(shù)。在存儲網(wǎng)關(guān)SVC上重新定義虛擬存儲卷,該虛擬卷由分布在兩個數(shù)據(jù)中心的物理存儲卷以1:1方式映射組成,并且歸屬同一個IO Group,并且以共享模式提供給SVC的兩個節(jié)點(diǎn),雖然兩個節(jié)點(diǎn)都可以寫操作,但是對于某一個IO Group來講,只能通過一側(cè)節(jié)點(diǎn)進(jìn)行物理層面的雙寫操作,這樣就避免了兩個節(jié)點(diǎn)的在Block級別的并發(fā)控制。所以這種雙寫只能做到應(yīng)用級別,做不到IO級別。
當(dāng)然還有一些類似的架構(gòu),在某些細(xì)節(jié)上更先進(jìn),比如NetApp的容災(zāi)方案MCC架構(gòu),它在此基礎(chǔ)之上可以將負(fù)責(zé)存儲寫操作的實(shí)例節(jié)點(diǎn)做到VM級別,VM負(fù)責(zé)以卷為粒度的雙寫,同時(shí)VM可以在存儲網(wǎng)關(guān)的物理引擎或節(jié)點(diǎn)之間進(jìn)行漂移和重組,這樣的話以應(yīng)用為粒度的寫操作的容災(zāi)切換更加平滑。
5.2 通過存儲介質(zhì)塊復(fù)制實(shí)現(xiàn)數(shù)據(jù)復(fù)制
對于存儲存儲底層的塊兒復(fù)制技術(shù)來講, 它的數(shù)據(jù)復(fù)制是完全脫離了上層的應(yīng)用層、系統(tǒng)層、數(shù)據(jù)庫層。主要是依靠存儲層兩個物理存儲設(shè)備 來完成源到目標(biāo) 設(shè)備 的 Block 復(fù)制。
如圖所示,從組成上來看,只有兩個同型物理存儲設(shè)備,數(shù)據(jù)復(fù)制跟上層沒有任何關(guān)系,只需要存儲層從一邊的物理卷捕獲 Block變化,復(fù)制到另外一邊的物理存儲卷,整個復(fù)制行為通過源端的日志文件來記錄進(jìn)度以及保障故障恢復(fù)。根據(jù)整個復(fù)制過程是否需要等待復(fù)制完成的ACK返回可以分為同步復(fù)制和異步復(fù)制。復(fù)制過程依賴的傳輸環(huán)境可以是遠(yuǎn)距離的以太網(wǎng)也可以是近距離的SAN網(wǎng)絡(luò)。
但是這種數(shù)據(jù)復(fù)制技術(shù)和上層的聯(lián)系幾乎是割裂的,基本很難與上層的容災(zāi)切換配合。
以上就是企業(yè)容災(zāi)架構(gòu)選型必知概念、跨中心數(shù)據(jù)復(fù)制技術(shù)的介紹,億聯(lián)云為國內(nèi)外用戶供給包括全球主機(jī)托管、主機(jī)租用、云專線接入等方面的專業(yè)服務(wù),資源覆蓋全球。歡迎咨詢。
<!--7天。<-->免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,請聯(lián)系站長郵箱:shawn.lee@eliancloud.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。
標(biāo)題:企業(yè)容災(zāi)架構(gòu)選型必知概念、跨中心數(shù)據(jù)復(fù)制技術(shù)
TAG標(biāo)簽:數(shù)據(jù)中心
地址:http://www.dangdangload.com/article/20210719162436.html