本發(fā)明涉及系統(tǒng)容災(zāi)相關(guān)技術(shù)領(lǐng)域,特別是指一種基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)及容災(zāi)控制方法。
背景技術(shù):
分布式存儲系統(tǒng)廣泛應(yīng)用于交互式網(wǎng)絡(luò)電視、視頻監(jiān)控、搜索等需要用到海量存儲的領(lǐng)域。針對云計(jì)算和大數(shù)據(jù)趨勢下企業(yè)數(shù)據(jù)存儲和虛擬化應(yīng)用需求海量增長,基于業(yè)界標(biāo)準(zhǔn),采用全分布式架構(gòu),提供高性能、高可靠、高擴(kuò)展、容災(zāi)的分布式存儲系統(tǒng),能夠有效解決復(fù)雜環(huán)境下的it業(yè)務(wù)需求。
分布式存儲系統(tǒng)通常由機(jī)柜組成,每個(gè)機(jī)柜內(nèi)放置有多個(gè)機(jī)框,每個(gè)放置有作為存儲節(jié)點(diǎn)的存儲服務(wù)器。現(xiàn)有技術(shù)中,為確保數(shù)據(jù)存儲的安全性,通常會采用一定的數(shù)據(jù)存儲策略對分布式存儲系統(tǒng)中同一數(shù)據(jù)進(jìn)行備份存儲.但是當(dāng)系統(tǒng)發(fā)生容災(zāi)是這些措施難以保證數(shù)據(jù)的安全性。尤其是針對于企業(yè)級容災(zāi)系統(tǒng),通常需要上千萬的投資,并且僅能保護(hù)少量核心數(shù)據(jù)。而目前常見的云數(shù)據(jù)中心環(huán)境不再適用企業(yè)級容災(zāi)系統(tǒng),難以保證企業(yè)數(shù)據(jù)的安全。
在實(shí)現(xiàn)本申請的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下問題:當(dāng)前的容災(zāi)系統(tǒng)尤其是企業(yè)級容災(zāi)系統(tǒng)難以有效實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)在災(zāi)難發(fā)生過程中的安全性以及保證系統(tǒng)服務(wù)的有效性。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提出一種基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)及容災(zāi)控制方法,能夠提高系統(tǒng)數(shù)據(jù)的安全性并且能夠維持系統(tǒng)有效運(yùn)行。
基于上述目的本發(fā)明提供的一種基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng),包括:
主數(shù)據(jù)中心,用于在正常情況下實(shí)現(xiàn)數(shù)據(jù)的存儲及查詢服務(wù);
異地?cái)?shù)據(jù)中心,用于作為主數(shù)據(jù)中心對應(yīng)的遠(yuǎn)程鏡像,所述異地?cái)?shù)據(jù)中心中具有與主數(shù)據(jù)中心完全相同的數(shù)據(jù);
數(shù)據(jù)庫異步復(fù)制模塊,用于通過異步復(fù)制的方式使得主數(shù)據(jù)中心與異地?cái)?shù)據(jù)中心兩者的數(shù)據(jù)庫數(shù)據(jù)保持一致;
分布式存儲鏡像模塊,用于通過鏡像機(jī)制實(shí)現(xiàn)主數(shù)據(jù)中心與異地?cái)?shù)據(jù)中心內(nèi)分布式存儲數(shù)據(jù)的異步復(fù)制,通過日志機(jī)制保證異步復(fù)制時(shí)數(shù)據(jù)的一致性;
災(zāi)難監(jiān)測模塊,用于監(jiān)測主數(shù)據(jù)中心的相關(guān)信息,并且在災(zāi)難發(fā)生后向?yàn)?zāi)難恢復(fù)模塊發(fā)送災(zāi)難信息;
災(zāi)難恢復(fù)模塊,用于接收災(zāi)難監(jiān)測模塊發(fā)送的災(zāi)難信息,利用異地?cái)?shù)據(jù)中心在網(wǎng)絡(luò)層對主數(shù)據(jù)中心進(jìn)行數(shù)據(jù)恢復(fù)。
可選的,所述主數(shù)據(jù)中心與異地?cái)?shù)據(jù)中心之間采用專用數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸。
可選的,所述災(zāi)難監(jiān)測模塊還用于根據(jù)預(yù)設(shè)的規(guī)則和算法對主數(shù)據(jù)中心的相關(guān)信息進(jìn)行處理,在災(zāi)難發(fā)生之前對用戶或管理員發(fā)出警告或提示信息。
可選的,所述災(zāi)難監(jiān)測模塊還用于當(dāng)災(zāi)難發(fā)生后,檢測并判斷主數(shù)據(jù)中心內(nèi)的相關(guān)信息是否可用,若不可用才向?yàn)?zāi)難恢復(fù)模塊發(fā)送災(zāi)難信息;
所述災(zāi)難恢復(fù)模塊還用于向?yàn)?zāi)難監(jiān)測模塊發(fā)送災(zāi)難恢復(fù)狀況信息;
所述災(zāi)難監(jiān)測模塊還用于根據(jù)災(zāi)難恢復(fù)模塊發(fā)送的災(zāi)難恢復(fù)狀況信息,將相關(guān)狀態(tài)反饋給用戶或者維護(hù)人員。
可選的,所述系統(tǒng)還包括網(wǎng)絡(luò)切換模塊,用于在災(zāi)難發(fā)生后將應(yīng)用和服務(wù)的訪問地址切換到異地?cái)?shù)據(jù)中心。
本申請還提供了一種基于分布式存儲的企業(yè)級容災(zāi)控制方法,包括:
監(jiān)控主數(shù)據(jù)中心內(nèi)的相關(guān)數(shù)據(jù)和信息并判斷主數(shù)據(jù)中心數(shù)據(jù)是否異常;
若監(jiān)測到數(shù)據(jù)異常,則調(diào)用災(zāi)難恢復(fù)模塊使其處于激活可用狀態(tài);
校驗(yàn)異地?cái)?shù)據(jù)中心與主數(shù)據(jù)中心分布式存儲數(shù)據(jù)的一致性,以及異地?cái)?shù)據(jù)中心與主數(shù)據(jù)中心數(shù)據(jù)庫的一致性;
進(jìn)行網(wǎng)絡(luò)切換,將應(yīng)用和服務(wù)的訪問地址切換到異地?cái)?shù)據(jù)中心;
利用災(zāi)難恢復(fù)模塊對主數(shù)據(jù)中心進(jìn)行數(shù)據(jù)恢復(fù),恢復(fù)成功后返回信息給用戶或維護(hù)人員;
根據(jù)用戶指令或者恢復(fù)成功反饋信息,將網(wǎng)絡(luò)地址再次切換到主數(shù)據(jù)中心。
可選的,所述判斷主數(shù)據(jù)中心數(shù)據(jù)是否異常的步驟還包括:
按照預(yù)設(shè)策略或算法,判斷數(shù)據(jù)是否異常;
若數(shù)據(jù)異常,進(jìn)一步判斷是否導(dǎo)致數(shù)據(jù)或者服務(wù)不可用,若是,則調(diào)用災(zāi)難恢復(fù)模塊;否則,將異常信息反饋給用戶或者維護(hù)人員。
可選的,所述調(diào)用災(zāi)難恢復(fù)模塊的步驟還包括:
按照預(yù)設(shè)次數(shù)持續(xù)調(diào)用災(zāi)難恢復(fù)模塊,直到調(diào)用成功,否則,反饋調(diào)用失敗信息。
可選的,在校驗(yàn)一致性或者進(jìn)行網(wǎng)絡(luò)切換的過程中,若是發(fā)現(xiàn)不符合一致性或者網(wǎng)絡(luò)切換失敗,則返回相應(yīng)的失敗信息給用戶或者維護(hù)人員。
從上面所述可以看出,本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)及容災(zāi)控制方法通過設(shè)置一個(gè)主數(shù)據(jù)中心的遠(yuǎn)程鏡像數(shù)據(jù)中心,即異地?cái)?shù)據(jù)中心,使得即使本地?cái)?shù)據(jù)中心發(fā)生災(zāi)難,異地?cái)?shù)據(jù)也能夠保證足夠安全。通過數(shù)據(jù)庫異步復(fù)制模塊以及分布式存儲鏡像模塊使得兩個(gè)數(shù)據(jù)中心內(nèi)的數(shù)據(jù)庫數(shù)據(jù)以及分布式存儲數(shù)據(jù)均保持實(shí)時(shí)更新,也即數(shù)據(jù)保持一致性。通過災(zāi)難監(jiān)測模塊監(jiān)測主數(shù)據(jù)中心是否發(fā)生災(zāi)難并在災(zāi)難發(fā)生后及時(shí)通知災(zāi)難恢復(fù)模塊,使得災(zāi)難恢復(fù)模塊能夠基于異地?cái)?shù)據(jù)中心內(nèi)的數(shù)據(jù)對主數(shù)據(jù)中心進(jìn)行數(shù)據(jù)恢復(fù)。這樣,使得整個(gè)系統(tǒng)具有較高的容災(zāi)能力,能夠保障數(shù)據(jù)的安全和完整性。此外,所述系統(tǒng)還通過在災(zāi)難發(fā)生后以及數(shù)據(jù)恢復(fù)之前將主數(shù)據(jù)中心對應(yīng)的應(yīng)用和服務(wù)的訪問地址切換到異地?cái)?shù)據(jù)中心,使得系統(tǒng)能夠立刻基于異地?cái)?shù)據(jù)中心實(shí)現(xiàn)系統(tǒng)的正常應(yīng)用訪問和相關(guān)數(shù)據(jù)服務(wù)。因此,本申請所述基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)及容災(zāi)控制方法能夠提高系統(tǒng)數(shù)據(jù)的安全性并且能夠維持系統(tǒng)有效運(yùn)行。
附圖說明
圖1為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖2為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)的另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖3為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)的一個(gè)實(shí)施例的設(shè)計(jì)原理示意圖;
圖4為本發(fā)明提供的分布式存儲異地鏡像復(fù)制原理示意圖;
圖5為本發(fā)明提供的正常數(shù)據(jù)訪問原理示意圖;
圖6為本發(fā)明提供的災(zāi)難恢復(fù)期間數(shù)據(jù)訪問原理示意圖;
圖7為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)控制方法的一個(gè)實(shí)施例的流程圖;
圖8為本發(fā)明提供的分布式存儲數(shù)據(jù)副本讀寫原理設(shè)計(jì)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
需要說明的是,本發(fā)明實(shí)施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個(gè)相同名稱非相同的實(shí)體或者非相同的參量,可見“第一”“第二”僅為了表述的方便,不應(yīng)理解為對本發(fā)明實(shí)施例的限定,后續(xù)實(shí)施例對此不再一一說明。
基于當(dāng)前企業(yè)級容災(zāi)系統(tǒng)存在的問題,本申請基于分布式存儲的企業(yè)級容災(zāi)技術(shù)設(shè)計(jì)了一種全新的思路。在數(shù)據(jù)存儲中,對分布式存儲系統(tǒng)的數(shù)據(jù)進(jìn)行遠(yuǎn)程鏡像,以保證數(shù)據(jù)的實(shí)時(shí)性。同時(shí)在業(yè)務(wù)層,通過遠(yuǎn)程數(shù)據(jù)復(fù)制保證業(yè)務(wù)數(shù)據(jù)的實(shí)時(shí)同步。當(dāng)發(fā)生數(shù)據(jù)中心異常時(shí),災(zāi)難監(jiān)測系統(tǒng)可以自動化的根據(jù)業(yè)務(wù)數(shù)據(jù)的情況,將主數(shù)據(jù)中心的業(yè)務(wù)系統(tǒng)快速在災(zāi)備數(shù)據(jù)中心拉起,并在網(wǎng)絡(luò)層完成切換。
具體的,本申請所述企業(yè)級容災(zāi)系統(tǒng)一般分為主數(shù)據(jù)中心和異地?cái)?shù)據(jù)中心,即備災(zāi)數(shù)據(jù)中心或者遠(yuǎn)程鏡像數(shù)據(jù)中心。兩個(gè)數(shù)據(jù)中心之間通過專線進(jìn)行數(shù)據(jù)傳輸。本申請底層分布式存儲通過鏡像(mirroring)機(jī)制來保證兩個(gè)數(shù)據(jù)中心之間分布式存儲數(shù)據(jù)的一致性;數(shù)據(jù)庫通過異步方式來保證兩個(gè)數(shù)據(jù)中心之間數(shù)據(jù)庫數(shù)據(jù)的一致性。通過災(zāi)難監(jiān)測模塊來監(jiān)控?cái)?shù)據(jù)中心的所有情況,確保在發(fā)生災(zāi)難時(shí),第一時(shí)間讓用戶知道,并且通知災(zāi)難恢復(fù)模塊,進(jìn)行災(zāi)難恢復(fù),在用戶無感知的情況下,在網(wǎng)絡(luò)層進(jìn)行切換;保證了業(yè)務(wù)的連續(xù)性。
參照圖1和圖2所示,為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)的兩個(gè)個(gè)實(shí)施例的結(jié)構(gòu)示意圖。所述基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)包括:
主數(shù)據(jù)中心1,用于在正常情況下實(shí)現(xiàn)數(shù)據(jù)的存儲及查詢服務(wù);也即,主數(shù)據(jù)中心為本地?cái)?shù)據(jù)服務(wù)中心,是本地系統(tǒng)中的重要組成部分,在沒有災(zāi)難發(fā)生時(shí),所有的數(shù)據(jù)存儲、服務(wù)均在主數(shù)據(jù)中心1實(shí)現(xiàn)。
異地?cái)?shù)據(jù)中心2,用于作為主數(shù)據(jù)中心1對應(yīng)的遠(yuǎn)程鏡像,所述異地?cái)?shù)據(jù)中心2中具有與主數(shù)據(jù)中心1完全相同的數(shù)據(jù);為了災(zāi)難發(fā)生時(shí)不會同時(shí)影響到兩個(gè)數(shù)據(jù)中心,通常將異地?cái)?shù)據(jù)中心2設(shè)置在異地,保證兩個(gè)數(shù)據(jù)中心具有一定的獨(dú)立性。
數(shù)據(jù)庫異步復(fù)制模塊3,用于通過異步復(fù)制的方式使得主數(shù)據(jù)中心1與異地?cái)?shù)據(jù)中心2兩者的數(shù)據(jù)庫數(shù)據(jù)保持一致;其中,異步復(fù)制采用集群復(fù)制方式,基于二進(jìn)制日志(binlog)和全局唯一編號(gtid,globaltransactionid),只有成功的transaction才會寫入binlog,而slave節(jié)點(diǎn)的復(fù)制不會影響master節(jié)點(diǎn)的事務(wù)處理;master和slave節(jié)點(diǎn)之間維護(hù)心跳信息,在master節(jié)點(diǎn)有更新時(shí),會向slave節(jié)點(diǎn)發(fā)送通知,給出最新的binlog和gtid,slave節(jié)點(diǎn)進(jìn)程根據(jù)最新消息對本地?cái)?shù)據(jù)庫進(jìn)行更新。
分布式存儲鏡像模塊4,用于通過鏡像機(jī)制實(shí)現(xiàn)主數(shù)據(jù)中心與異地?cái)?shù)據(jù)中心內(nèi)分布式存儲數(shù)據(jù)的異步復(fù)制,通過日志機(jī)制保證異步復(fù)制時(shí)數(shù)據(jù)的一致性;參照圖4所示,為本發(fā)明提供的分布式存儲異地鏡像復(fù)制原理示意圖。鏡像(mirroring)機(jī)制可以使rbdimages在兩個(gè)集群(cluster)之間被異步復(fù)制,使用rbdimage的日志(journaling)機(jī)制來保證異步復(fù)制時(shí)的數(shù)據(jù)一致性。
災(zāi)難監(jiān)測模塊5,用于監(jiān)測主數(shù)據(jù)中心的相關(guān)信息,并且在災(zāi)難發(fā)生后向?yàn)?zāi)難恢復(fù)模塊發(fā)送災(zāi)難信息;其中,災(zāi)難監(jiān)測模塊5可以設(shè)置為災(zāi)難監(jiān)控客戶端,可以監(jiān)控主數(shù)據(jù)中心1的應(yīng)用信息、數(shù)據(jù)庫信息、分布式存儲信息、網(wǎng)絡(luò)信息、物理環(huán)境信息、操作系統(tǒng)信息等,根據(jù)預(yù)先設(shè)置的規(guī)則和相應(yīng)的算法,在災(zāi)難發(fā)生前進(jìn)行警告或者提示,在災(zāi)難發(fā)生確認(rèn)后,若主數(shù)據(jù)中心不可用,則將災(zāi)難信息發(fā)送到災(zāi)難恢復(fù)模塊6。并接受災(zāi)難恢復(fù)模塊6返回的消息并且將相關(guān)消息返回給用戶或者維護(hù)人員。
災(zāi)難恢復(fù)模塊6,用于接收災(zāi)難監(jiān)測模塊5發(fā)送的災(zāi)難信息,利用異地?cái)?shù)據(jù)中心2在網(wǎng)絡(luò)層對主數(shù)據(jù)中心1進(jìn)行數(shù)據(jù)恢復(fù)。其中,所述災(zāi)難恢復(fù)模塊6可以設(shè)置為當(dāng)發(fā)生災(zāi)難時(shí),災(zāi)難監(jiān)控客戶端將發(fā)送災(zāi)難恢復(fù)指令,以及監(jiān)控?cái)?shù)據(jù),災(zāi)難恢復(fù)客戶端根據(jù)監(jiān)控?cái)?shù)據(jù)和災(zāi)難恢復(fù)策略進(jìn)行恢復(fù),包括切換分布式存儲、切換數(shù)據(jù)庫、切換應(yīng)用層,這些恢復(fù)都是在網(wǎng)絡(luò)層完成。
參照圖3所示,為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)的一個(gè)實(shí)施例的設(shè)計(jì)原理示意圖。由圖可知,兩個(gè)數(shù)據(jù)中心內(nèi)的數(shù)據(jù)通過異步復(fù)制以及鏡像機(jī)制實(shí)現(xiàn)了數(shù)據(jù)庫以及分布數(shù)據(jù)兩個(gè)方面的一致性。其中,osd(object-basedstoragedevice)為基于對象存儲技術(shù)的對象存儲設(shè)備。
由上述實(shí)施例可知,本申請所述基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)通過設(shè)置一個(gè)主數(shù)據(jù)中心的遠(yuǎn)程鏡像數(shù)據(jù)中心,即異地?cái)?shù)據(jù)中心,使得即使本地?cái)?shù)據(jù)中心發(fā)生災(zāi)難,異地?cái)?shù)據(jù)也能夠保證足夠安全。通過數(shù)據(jù)庫異步復(fù)制模塊以及分布式存儲鏡像模塊使得兩個(gè)數(shù)據(jù)中心內(nèi)的數(shù)據(jù)庫數(shù)據(jù)以及分布式存儲數(shù)據(jù)均保持實(shí)時(shí)更新,也即數(shù)據(jù)保持一致性。通過災(zāi)難監(jiān)測模塊監(jiān)測主數(shù)據(jù)中心是否發(fā)生災(zāi)難并在災(zāi)難發(fā)生后及時(shí)通知災(zāi)難恢復(fù)模塊,使得災(zāi)難恢復(fù)模塊能夠基于異地?cái)?shù)據(jù)中心內(nèi)的數(shù)據(jù)對主數(shù)據(jù)中心進(jìn)行數(shù)據(jù)恢復(fù)。這樣,使得整個(gè)系統(tǒng)具有較高的容災(zāi)能力,能夠保障數(shù)據(jù)的安全和完整性。此外,所述系統(tǒng)還通過在災(zāi)難發(fā)生后以及數(shù)據(jù)恢復(fù)之前將主數(shù)據(jù)中心對應(yīng)的應(yīng)用和服務(wù)的訪問地址切換到異地?cái)?shù)據(jù)中心,使得系統(tǒng)能夠立刻基于異地?cái)?shù)據(jù)中心實(shí)現(xiàn)系統(tǒng)的正常應(yīng)用訪問和相關(guān)數(shù)據(jù)服務(wù)。因此,本申請所述基于分布式存儲的企業(yè)級容災(zāi)系統(tǒng)能夠提高系統(tǒng)數(shù)據(jù)的安全性并且能夠維持系統(tǒng)有效運(yùn)行。
在本申請一些可選的實(shí)施例中,所述主數(shù)據(jù)中心1與異地?cái)?shù)據(jù)中心2之間采用專用數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸。這樣,能夠保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性和安全性。
在本申請一些可選的實(shí)施例中,所述災(zāi)難監(jiān)測模塊還用于根據(jù)預(yù)設(shè)的規(guī)則和算法對主數(shù)據(jù)中心的相關(guān)信息進(jìn)行處理,在災(zāi)難發(fā)生之前對用戶或管理員發(fā)出警告或提示信息。也即,可以通過一些災(zāi)難相關(guān)信息或信號的預(yù)測,提前感知可能發(fā)生的災(zāi)難,從而提示用戶或維護(hù)人員提前準(zhǔn)備。
在本申請一些可選的實(shí)施例中,所述災(zāi)難監(jiān)測模塊5還用于當(dāng)災(zāi)難發(fā)生后,檢測并判斷主數(shù)據(jù)中心1內(nèi)的相關(guān)信息是否可用,若不可用才向?yàn)?zāi)難恢復(fù)模塊發(fā)送災(zāi)難信息;也即,當(dāng)有一些災(zāi)難發(fā)生后并沒有影響到主數(shù)據(jù)中心內(nèi)的數(shù)據(jù)或者相關(guān)服務(wù)的使用時(shí),可以不需要災(zāi)難恢復(fù)。
所述災(zāi)難恢復(fù)模塊還用于向?yàn)?zāi)難監(jiān)測模塊發(fā)送災(zāi)難恢復(fù)狀況信息;
所述災(zāi)難監(jiān)測模塊還用于根據(jù)災(zāi)難恢復(fù)模塊發(fā)送的災(zāi)難恢復(fù)狀況信息,將相關(guān)狀態(tài)反饋給用戶或者維護(hù)人員。這樣,可以使得用戶或者維護(hù)人員知道數(shù)據(jù)恢復(fù)狀況,有利于后續(xù)相關(guān)操作。
在本申請一些可選的實(shí)施例中,系統(tǒng)還包括網(wǎng)絡(luò)切換模塊,用于在災(zāi)難發(fā)生后將應(yīng)用和服務(wù)的訪問地址切換到異地?cái)?shù)據(jù)中心。這樣,使得即使在災(zāi)難恢復(fù)期間,用戶也可以進(jìn)行正常的數(shù)據(jù)訪問服務(wù)。
參照圖5所示,為本發(fā)明提供的正常數(shù)據(jù)訪問原理示意圖。在未發(fā)生災(zāi)難前,應(yīng)用和服務(wù)正常訪問路徑如下:用戶通過網(wǎng)絡(luò)訪問應(yīng)用或者服務(wù),此應(yīng)用或者服務(wù)在主數(shù)據(jù)中心部署。然后應(yīng)用訪問數(shù)據(jù)庫,取得用戶需要訪問的所有數(shù)據(jù),此數(shù)據(jù)庫部署在主數(shù)據(jù)中心。應(yīng)用訪問分布式存儲數(shù)據(jù),如塊存儲、對象存儲,次分布式存儲也是部署在主數(shù)據(jù)中心。所有主數(shù)據(jù)中心的服務(wù)全部正??捎?。
參照圖6所示,為本發(fā)明提供的災(zāi)難恢復(fù)期間數(shù)據(jù)訪問原理示意圖。在災(zāi)難發(fā)生后,應(yīng)用和服務(wù)正常訪問路徑已經(jīng)切換到異地?cái)?shù)據(jù)中心,訪問路徑如下:用戶通過網(wǎng)絡(luò)訪問應(yīng)用或者服務(wù),此應(yīng)用或者服務(wù)在異地?cái)?shù)據(jù)中心部署。然后應(yīng)用訪問數(shù)據(jù)庫,取得用戶需要訪問的所有數(shù)據(jù),此數(shù)據(jù)庫部署在異地?cái)?shù)據(jù)中心。此應(yīng)用訪問分布式存儲數(shù)據(jù),如塊存儲、對象存儲,次分布式存儲也是部署在異地?cái)?shù)據(jù)中心。所有異地?cái)?shù)據(jù)中心的數(shù)據(jù)與主數(shù)據(jù)中心的數(shù)據(jù)一致。
參照圖7所示,為本發(fā)明提供的基于分布式存儲的企業(yè)級容災(zāi)控制方法的一個(gè)實(shí)施例的流程圖。所述基于分布式存儲的企業(yè)級容災(zāi)控制方法包括:
監(jiān)控主數(shù)據(jù)中心內(nèi)的相關(guān)數(shù)據(jù)和信息并判斷主數(shù)據(jù)中心數(shù)據(jù)是否異常;
若監(jiān)測到數(shù)據(jù)異常,則調(diào)用災(zāi)難恢復(fù)模塊使其處于激活可用狀態(tài);
校驗(yàn)異地?cái)?shù)據(jù)中心與主數(shù)據(jù)中心分布式存儲數(shù)據(jù)的一致性,以及異地?cái)?shù)據(jù)中心與主數(shù)據(jù)中心數(shù)據(jù)庫的一致性;
進(jìn)行網(wǎng)絡(luò)切換,將應(yīng)用和服務(wù)的訪問地址切換到異地?cái)?shù)據(jù)中心;
利用災(zāi)難恢復(fù)模塊對主數(shù)據(jù)中心進(jìn)行數(shù)據(jù)恢復(fù),恢復(fù)成功后返回信息給用戶或維護(hù)人員;
根據(jù)用戶指令或者恢復(fù)成功反饋信息,將網(wǎng)絡(luò)地址再次切換到主數(shù)據(jù)中心。
可選的,所述判斷主數(shù)據(jù)中心數(shù)據(jù)是否異常的步驟還包括:
按照預(yù)設(shè)策略或算法,判斷數(shù)據(jù)是否異常;
若數(shù)據(jù)異常,進(jìn)一步判斷是否導(dǎo)致數(shù)據(jù)或者服務(wù)不可用,若是,則調(diào)用災(zāi)難恢復(fù)模塊;否則,將異常信息反饋給用戶或者維護(hù)人員。
可選的,所述調(diào)用災(zāi)難恢復(fù)模塊的步驟還包括:按照預(yù)設(shè)次數(shù)持續(xù)調(diào)用災(zāi)難恢復(fù)模塊,直到調(diào)用成功,否則,反饋調(diào)用失敗信息。
可選的,在校驗(yàn)一致性或者進(jìn)行網(wǎng)絡(luò)切換的過程中,若是發(fā)現(xiàn)不符合一致性或者網(wǎng)絡(luò)切換失敗,則返回相應(yīng)的失敗信息給用戶或者維護(hù)人員。
在本申請另一些可選的實(shí)施例中,所述災(zāi)難控制方法或者處理流程如下:
(1)用戶或者維護(hù)人員調(diào)用監(jiān)控客戶端,實(shí)時(shí)監(jiān)控主數(shù)據(jù)中心服務(wù)。
(2)監(jiān)控客戶端對主數(shù)據(jù)中心進(jìn)行實(shí)時(shí)監(jiān)控,監(jiān)控內(nèi)容包括網(wǎng)絡(luò)、存儲、應(yīng)用、物理環(huán)境等信息。
(3)根據(jù)相應(yīng)的策略或者算法,監(jiān)測數(shù)據(jù)是否發(fā)生異常,如果未發(fā)生異常,則繼續(xù)監(jiān)控,如果數(shù)據(jù)發(fā)生異常,導(dǎo)致環(huán)境或者服務(wù)不可用,則觸發(fā)下一步流程,調(diào)用災(zāi)難恢復(fù)模塊。
(4)如果調(diào)用災(zāi)難恢復(fù)模塊失敗,則進(jìn)行重新調(diào)用災(zāi)難恢復(fù)模塊,如果調(diào)用成功,則進(jìn)入下一步流程。
(5)調(diào)用災(zāi)難恢復(fù)模塊成功后,災(zāi)難恢復(fù)模塊進(jìn)行災(zāi)難恢復(fù)前準(zhǔn)備。
(6)校驗(yàn)異地分布式存儲一致性,如果校驗(yàn)失敗,則返回失敗信息到客戶端或者用戶,如果校驗(yàn)成功,則進(jìn)入下一步。
(7)校驗(yàn)數(shù)據(jù)庫一致性,如果校驗(yàn)失敗,則返回失敗信息到客戶端或者用戶,如果校驗(yàn)成功,則進(jìn)入下一步。
(8)網(wǎng)絡(luò)切換,當(dāng)分布式存儲和數(shù)據(jù)庫一致性校驗(yàn)成功,則進(jìn)行網(wǎng)絡(luò)層切換,包括應(yīng)用的訪問地址、數(shù)據(jù)庫地址、分布式存儲地址。如果切換失敗,則返回失敗信息到客戶端或者用戶,如果切換成功,用戶訪問應(yīng)用無感知的已經(jīng)轉(zhuǎn)移到了異地?cái)?shù)據(jù)中心。
(9)災(zāi)難恢復(fù)成功后,返回成功信息到監(jiān)控客戶端或者用戶。
最后根據(jù)用戶控制或者自動將異地?cái)?shù)據(jù)中心切換回到主數(shù)據(jù)中心。
通過上述控制或者流程,使得災(zāi)難發(fā)生后主數(shù)據(jù)中心不僅可以及時(shí)得到恢復(fù),而且在恢復(fù)期間也可以基于異地?cái)?shù)據(jù)中心數(shù)顯數(shù)據(jù)的正常訪問。
由上述實(shí)施例可知,本申請至少包括以下內(nèi)容:(1)分布式存儲的企業(yè)級存儲多副本機(jī)制設(shè)計(jì)(2)分布式存儲的企業(yè)級容災(zāi)技術(shù)數(shù)據(jù)復(fù)制網(wǎng)絡(luò)的專有化設(shè)計(jì)(3)分布式存儲的企業(yè)級容災(zāi)技術(shù)數(shù)據(jù)復(fù)制中斷之后的續(xù)傳設(shè)計(jì)(4)分布式存儲的企業(yè)級容災(zāi)技術(shù)日志特性,為作用在存儲卷上的每一個(gè)事務(wù)啟用日志(5)分布式存儲的企業(yè)級容災(zāi)技術(shù)日志特性存儲卷,通過存儲復(fù)制組進(jìn)程復(fù)制該存儲卷。
在本申請一些可選的實(shí)施例中,分布式存儲異地鏡像過程如下:(1)io進(jìn)入塊存儲的存儲卷的日志;(2)存儲復(fù)制組服務(wù)進(jìn)行同步,將本地分布式存儲中存儲卷日志信息同步到遠(yuǎn)程(異地)分布式存儲集群的存儲卷中。(3)存儲復(fù)制組服務(wù)支持?jǐn)帱c(diǎn)續(xù)傳、支持多組復(fù)制,保證了數(shù)據(jù)的完整性和高效性。
在本申請一些可選的實(shí)施例中,參照圖8所示,為本發(fā)明提供的分布式存儲數(shù)據(jù)副本讀寫原理設(shè)計(jì)示意圖。通過分布式存儲的企業(yè)級存儲多副本機(jī)制,開發(fā)完成針對保證可靠性對其存儲的數(shù)據(jù)無差錯(cuò)地保存能力,對數(shù)據(jù)存儲獲得高可靠性,通過多副本技術(shù)將用戶的數(shù)據(jù)在存儲體中存放多份。這種情況下,只要在數(shù)據(jù)不是全部丟失,用戶的數(shù)據(jù)就不會丟失。
在用戶接口端計(jì)算出三個(gè)數(shù)據(jù)盤后,直接和主數(shù)據(jù)盤通信,發(fā)起寫入操作。主數(shù)據(jù)盤收到請求后,分別向從數(shù)據(jù)盤發(fā)起寫入操作。當(dāng)從數(shù)據(jù)盤各自完成寫入操作后,將分別向主數(shù)據(jù)盤發(fā)送確認(rèn)信息。當(dāng)主數(shù)據(jù)盤收到其他兩個(gè)從數(shù)據(jù)盤的寫入確認(rèn)后,并自己也完成數(shù)據(jù)寫入,則向用戶接口確認(rèn)數(shù)據(jù)寫入操作完成。
此外本申請所述系統(tǒng)還包括:
存儲復(fù)制組:設(shè)置對應(yīng)高可用組站點(diǎn)的存儲復(fù)制組的pools選擇、設(shè)置存儲復(fù)制組的復(fù)制方向、設(shè)置相關(guān)的存儲復(fù)制組復(fù)制的參數(shù),例如:復(fù)制塊大小,斷點(diǎn)續(xù)傳、網(wǎng)絡(luò)帶寬參數(shù)設(shè)置等??稍O(shè)置多存儲復(fù)制組。
遠(yuǎn)程集群管理:存儲復(fù)制組功能需要在同伴集群(peerclusters)中的每一個(gè)對應(yīng)的pool上進(jìn)行配置,可設(shè)定自動容災(zāi)某個(gè)存儲池內(nèi)的所有存儲卷也支持指定容災(zāi)單一存儲卷的一個(gè)特定子集。
存儲復(fù)制組的強(qiáng)一致性:采用一致性哈希算法或者數(shù)據(jù)同步算法,保證兩端集群數(shù)據(jù)的一致性,保證數(shù)據(jù)可用性和安全性。其中,一致性哈希算法給系統(tǒng)中每個(gè)節(jié)點(diǎn)分配一個(gè)隨機(jī)token,這些token構(gòu)成一個(gè)哈希環(huán)。執(zhí)行數(shù)據(jù)存放操作時(shí),先計(jì)算key的哈希值,然后存放到順時(shí)針方向第一個(gè)大于或者等于該哈希值的token所在的節(jié)點(diǎn)。
存儲復(fù)制組監(jiān)控:存儲復(fù)制的過程進(jìn)程中的狀態(tài)、流量、進(jìn)度、時(shí)間的信息進(jìn)行監(jiān)控保證數(shù)據(jù)的可靠性。
斷點(diǎn)續(xù)傳:在實(shí)現(xiàn)斷點(diǎn)續(xù)傳的整個(gè)過程中,保證整個(gè)分布式存儲災(zāi)備系統(tǒng)的安全穩(wěn)定,同時(shí)保證數(shù)據(jù)的一致性和完整性。等待網(wǎng)絡(luò)恢復(fù)后。無需重新開始原始量數(shù)據(jù)的傳輸,而是從斷網(wǎng)時(shí)刻起,繼續(xù)傳輸剩余數(shù)據(jù),全過程無數(shù)據(jù)溢出,無數(shù)據(jù)丟失。
主存儲站點(diǎn)服務(wù)器根據(jù)生產(chǎn)站點(diǎn)及容災(zāi)站點(diǎn)中的存儲系統(tǒng)的狀態(tài)信息生產(chǎn)數(shù)據(jù)安全分布式的信息保證,將信息互相同步。
當(dāng)主站點(diǎn)故障時(shí),主站點(diǎn)存儲服務(wù)器將原數(shù)據(jù)安全分布信息中的n分區(qū)分別對應(yīng)從存儲盤同步狀態(tài)信息進(jìn)行更新,生成新的數(shù)據(jù)按期分布信息。
當(dāng)從站故障時(shí),從站點(diǎn)存儲服務(wù)器將原數(shù)據(jù)安全分布信息中的n分區(qū)分別對應(yīng)主站點(diǎn)存儲盤同步狀態(tài)信息進(jìn)行更新,記錄同步信息,待從站點(diǎn)恢復(fù)后,根據(jù)最后同步信息,繼續(xù)更主站點(diǎn)進(jìn)行數(shù)據(jù)同步。
復(fù)制網(wǎng)絡(luò)優(yōu)化,對帶寬進(jìn)行優(yōu)化,支持站點(diǎn)間的組播,減少多余復(fù)制,優(yōu)化數(shù)據(jù)傳輸,提高傳輸效率,優(yōu)化復(fù)制網(wǎng)絡(luò)策略,提供多種復(fù)制策略,對不同要求可以靈活變更,提高網(wǎng)絡(luò)利用率,降低傳輸時(shí)延。
所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細(xì)節(jié)中提供。
另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(ic)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實(shí),即關(guān)于這些框圖裝置的實(shí)施方式的細(xì)節(jié)是高度取決于將要實(shí)施本發(fā)明的平臺的(即,這些細(xì)節(jié)應(yīng)當(dāng)完全處于本領(lǐng)域技術(shù)人員的理解范圍內(nèi))。在闡述了具體細(xì)節(jié)(例如,電路)以描述本發(fā)明的示例性實(shí)施例的情況下,對本領(lǐng)域技術(shù)人員來說顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下或者這些具體細(xì)節(jié)有變化的情況下實(shí)施本發(fā)明。因此,這些描述應(yīng)被認(rèn)為是說明性的而不是限制性的。
盡管已經(jīng)結(jié)合了本發(fā)明的具體實(shí)施例對本發(fā)明進(jìn)行了描述,但是根據(jù)前面的描述,這些實(shí)施例的很多替換、修改和變型對本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。例如,其它存儲器架構(gòu)(例如,動態(tài)ram(dram))可以使用所討論的實(shí)施例。
本發(fā)明的實(shí)施例旨在涵蓋落入所附權(quán)利要求的寬泛范圍之內(nèi)的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。