一種分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)同步方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,尤其涉及一種分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)同步方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]云計(jì)算(CloudComputing)是網(wǎng)格計(jì)算(GridComputing)、分布式計(jì)算(DistributedComputing)、并行計(jì)算(ParallelComputing)、效用計(jì)算(UtilityComputing)網(wǎng)絡(luò)存儲(chǔ)(NetworkStorageTechnologies)、虛擬化(Virtualizat1n)、負(fù)載均衡(LoadBalance)等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡(luò)把多個(gè)成本相對(duì)較低的計(jì)算實(shí)體整合成一個(gè)具有強(qiáng)大計(jì)算能力的系統(tǒng)。分布式存儲(chǔ)是云計(jì)算范疇中的一個(gè)領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲(chǔ)服務(wù)以及高速讀寫訪問的能力。分布式存儲(chǔ)系統(tǒng)是由若干服務(wù)器節(jié)點(diǎn)和客戶端互相連接構(gòu)成的;服務(wù)器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),客戶端可以對(duì)服務(wù)器做數(shù)據(jù)的寫入、讀取、更新、刪除等操作。
[0003]在分布式存儲(chǔ)系統(tǒng)中,異地容災(zāi)是比較難以解決的關(guān)鍵問題,尤其是需要雙向數(shù)據(jù)同步的異地容災(zāi)。異地容災(zāi)是指,將服務(wù)器節(jié)點(diǎn)分布式的部署于相隔較遠(yuǎn)的兩地,至少有其中一地的分布式存儲(chǔ)集群對(duì)外提供數(shù)據(jù)的讀寫服務(wù)。當(dāng)某一地出現(xiàn)大范圍故障或?yàn)?zāi)害時(shí),可盡快將業(yè)務(wù)切換至另一地繼續(xù)提供服務(wù)。所謂雙向數(shù)據(jù)同步,是指當(dāng)兩地同時(shí)提供數(shù)據(jù)讀寫服務(wù)時(shí),需要將發(fā)生變更的數(shù)據(jù)從本地集群同步到對(duì)方的集群。
[0004]現(xiàn)有技術(shù)中,異地容災(zāi)只有單向數(shù)據(jù)同步的機(jī)制。即兩地的分布式存儲(chǔ)服務(wù)集群,其中一地提供數(shù)據(jù)的讀寫服務(wù),另外一地僅提供數(shù)據(jù)的讀服務(wù)。這種技術(shù)的缺點(diǎn)在于:首先,無法充分利用所有的計(jì)算資源,不能在有限的計(jì)算資源基礎(chǔ)上實(shí)現(xiàn)異地容災(zāi);其次,如果只提供讀服務(wù)的一地的業(yè)務(wù)應(yīng)用需要對(duì)數(shù)據(jù)進(jìn)行寫操作,需要實(shí)時(shí)的訪問異地的分布式存儲(chǔ)服務(wù)集群,延遲會(huì)很高。
【發(fā)明內(nèi)容】
[0005]針對(duì)相關(guān)技術(shù)中兩地的分布式存儲(chǔ)服務(wù)集群只有單向數(shù)據(jù)同步的問題,本發(fā)明提供了一種分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)同步方法、裝置及系統(tǒng),以至少解決上述問題。
[0006]根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)同步方法,包括:第一存儲(chǔ)服務(wù)集群接收來自第一客戶端的第一數(shù)據(jù)變更請(qǐng)求;所述第一存儲(chǔ)服務(wù)集群根據(jù)所述第一數(shù)據(jù)變更請(qǐng)求,變更第一存儲(chǔ)服務(wù)集群中的對(duì)應(yīng)數(shù)據(jù);所述第一存儲(chǔ)服務(wù)集群將變更數(shù)作為據(jù)第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群;所述第一存儲(chǔ)服務(wù)集群接收所述第二存儲(chǔ)服務(wù)集群發(fā)送的第二同步數(shù)據(jù);所述第一存儲(chǔ)服務(wù)集群根據(jù)所述第二同步數(shù)據(jù)進(jìn)行數(shù)據(jù)同步。
[0007]優(yōu)選地,所述第一存儲(chǔ)服務(wù)集群根據(jù)所述第一數(shù)據(jù)變更請(qǐng)求,變更第一存儲(chǔ)服務(wù)集群中的對(duì)應(yīng)數(shù)據(jù),還包括:同時(shí)生成與所述變更數(shù)據(jù)對(duì)應(yīng)的第一同步日志。所述第一存儲(chǔ)服務(wù)集群將變更數(shù)據(jù)對(duì)應(yīng)的第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群,包括:所述第一存儲(chǔ)服務(wù)集群將所述第一同步日志對(duì)應(yīng)的第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群。
[0008]優(yōu)選地,所述第一存儲(chǔ)服務(wù)集群將第一同步日志對(duì)應(yīng)的第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群,包括:讀取所述第一同步日志,根據(jù)所述第一同步日志讀取對(duì)應(yīng)的所述第一存儲(chǔ)服務(wù)集群存儲(chǔ)的數(shù)據(jù),并將所述讀取數(shù)據(jù)同步至所述第二存儲(chǔ)服務(wù)集群。
[0009]優(yōu)選地,所述讀取第一同步日志,還包括:定時(shí)檢查是否有新的第一同步日志生成。
[0010]優(yōu)選地,所述第一同步日志包含所述變更數(shù)據(jù)的元數(shù)據(jù)。
[0011]優(yōu)選地,第一存儲(chǔ)服務(wù)集群根據(jù)所述第一數(shù)據(jù)變更請(qǐng)求,變更第一存儲(chǔ)服務(wù)集群中的對(duì)應(yīng)數(shù)據(jù),還包括:將變更結(jié)果通知所述第一客戶端。
[0012]根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)同步裝置,位于第一存儲(chǔ)服務(wù)集群中,包括:第一接收模塊,用于接收來自第一客戶端的第一數(shù)據(jù)變更請(qǐng)求;第一數(shù)據(jù)管理模塊,用于根據(jù)所述第一數(shù)據(jù)變更請(qǐng)求,變更第一存儲(chǔ)服務(wù)集群中對(duì)應(yīng)的數(shù)據(jù);同步模塊,用于將變更數(shù)據(jù)作為第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群;第二接收模塊,用于接收所述第二存儲(chǔ)服務(wù)集群發(fā)送的第二同步數(shù)據(jù);第二數(shù)據(jù)管理模塊,用于根據(jù)所述第二同步數(shù)據(jù)進(jìn)行數(shù)據(jù)同步。
[0013]優(yōu)選地,所述第一數(shù)據(jù)管理模塊,還包括:同時(shí)生成與所述變更數(shù)據(jù)對(duì)應(yīng)的第一同步日志;所述同步模塊,還包括:將所述第一同步日志對(duì)應(yīng)的第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群。
[0014]優(yōu)選地,所述同步模塊包括:讀取單元,用于讀取所述第一同步日志,根據(jù)所述第一同步日志讀取對(duì)應(yīng)的所述第一存儲(chǔ)服務(wù)集群存儲(chǔ)的數(shù)據(jù);同步單元,用于將所述讀取的對(duì)應(yīng)所述第一存儲(chǔ)服務(wù)集群的數(shù)據(jù)同步至所述第二存儲(chǔ)服務(wù)集群。
[0015]優(yōu)選地,所述讀取單元還包括:定時(shí)元件,用于定時(shí)檢查是否有新的第一同步日志生成。
[0016]優(yōu)選地,所述第一同步日志包含所述變更數(shù)據(jù)的元數(shù)據(jù)。
[0017]優(yōu)選地,所述第一數(shù)據(jù)管理模塊包括:反饋單元,用于將變更結(jié)果通知所述第一客戶端。
[0018]根據(jù)本發(fā)明的再一個(gè)方面,提供了一種分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)同步系統(tǒng),包括:至少兩個(gè)存儲(chǔ)服務(wù)集群和對(duì)應(yīng)的客戶端;所述客戶端,用于向?qū)?yīng)的存儲(chǔ)服務(wù)集群發(fā)送數(shù)據(jù)變更請(qǐng)求;所述存儲(chǔ)服務(wù)集群,用于接收所述客戶端發(fā)送的數(shù)據(jù)變更請(qǐng)求,變更對(duì)應(yīng)的數(shù)據(jù),并同步所述對(duì)應(yīng)數(shù)據(jù)至另一存儲(chǔ)服務(wù)集群;所述存儲(chǔ)服務(wù)集群,還用于接收所述另一存儲(chǔ)服務(wù)集群發(fā)送的同步數(shù)據(jù),并進(jìn)行對(duì)應(yīng)的數(shù)據(jù)同步。
[0019]優(yōu)選地,如果所述存儲(chǔ)服務(wù)集群和所述另一存儲(chǔ)服務(wù)集群變更的數(shù)據(jù)分別針對(duì)同一數(shù)據(jù)的不同部分,雙向同步后:所述存儲(chǔ)服務(wù)集群和所述另一存儲(chǔ)服務(wù)集群分別對(duì)應(yīng)的客戶端,還用于讀取所述同一數(shù)據(jù)的不同部分,按照預(yù)先設(shè)定的邏輯整合。
[0020]通過本發(fā)明,第一存儲(chǔ)服務(wù)集群接收來自第一客戶端的第一數(shù)據(jù)變更請(qǐng)求;所述第一存儲(chǔ)服務(wù)集群根據(jù)所述第一數(shù)據(jù)變更請(qǐng)求,變更第一存儲(chǔ)服務(wù)集群中的對(duì)應(yīng)數(shù)據(jù);所述第一存儲(chǔ)服務(wù)集群將變更數(shù)據(jù)作為第一同步數(shù)據(jù)同步至第二存儲(chǔ)服務(wù)集群;所述第一存儲(chǔ)服務(wù)集群接收所述第二存儲(chǔ)服務(wù)集群發(fā)送的第二同步數(shù)據(jù);所述第一存儲(chǔ)服務(wù)集群根據(jù)所述第二同步數(shù)據(jù)進(jìn)行數(shù)據(jù)同步。使得異地分布式存儲(chǔ)服務(wù)集群之間實(shí)現(xiàn)數(shù)據(jù)雙向同步,充分利用所有的計(jì)算資源,在有限的計(jì)算資源基礎(chǔ)上實(shí)現(xiàn)異地容災(zāi);其次,避免了業(yè)務(wù)應(yīng)用進(jìn)行數(shù)據(jù)的寫操作需要實(shí)時(shí)訪問異地分布式存儲(chǔ)服務(wù)集群的問題,克服了異地訪問網(wǎng)絡(luò)延遲較高、帶寬有限等問題。
【附圖說明】
[0021]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0022]圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)同步方法的流程圖;
[0023]圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)同步方法的流程圖二 ;
[0024]圖3是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)同步裝置的結(jié)構(gòu)框圖;
[0025]圖4是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)同步裝置同步模塊的結(jié)構(gòu)框圖;
[0026]圖5是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0027]下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互