一種多云間數(shù)據(jù)備份的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)備份技術(shù),特別涉及一種多云間數(shù)據(jù)備份的方法和系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,為了保證數(shù)據(jù)的安全性和完整性,通常會(huì)在同一云內(nèi)對(duì)該云內(nèi)存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,但是,當(dāng)云出現(xiàn)不可預(yù)知的錯(cuò)誤時(shí),云內(nèi)數(shù)據(jù)會(huì)完全丟失,相應(yīng)地,備份也就失去了作用。
[0003]為此,現(xiàn)有技術(shù)中又提出,可利用云外物理介質(zhì)來(lái)對(duì)云內(nèi)數(shù)據(jù)進(jìn)行備份,但是,這種方式需要人工進(jìn)行干預(yù),甚至需要終止云服務(wù),從而增大了人力成本和系統(tǒng)維護(hù)成本。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種多云間數(shù)據(jù)備份的方法和系統(tǒng),既能夠保證數(shù)據(jù)的安全性和完整性,又能夠降低人力成本和系統(tǒng)維護(hù)成本。
[0005]為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0006]一種多云間數(shù)據(jù)備份的方法,包括:
[0007]云內(nèi)的主節(jié)點(diǎn)接收來(lái)自用戶(hù)的數(shù)據(jù)存儲(chǔ)請(qǐng)求,從云內(nèi)的各數(shù)據(jù)節(jié)點(diǎn)中選出一個(gè)數(shù)據(jù)節(jié)點(diǎn),通知給用戶(hù);
[0008]所述選出的數(shù)據(jù)節(jié)點(diǎn)接收來(lái)自用戶(hù)的待存儲(chǔ)數(shù)據(jù),并劃分為若干個(gè)數(shù)據(jù)塊后進(jìn)行存儲(chǔ);
[0009]當(dāng)每次滿(mǎn)足掃描條件時(shí),所述主節(jié)點(diǎn)掃描云內(nèi)的各數(shù)據(jù)塊,當(dāng)發(fā)現(xiàn)需要備份的數(shù)據(jù)塊、且確定存在符合條件的目的云時(shí),通過(guò)該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)將該數(shù)據(jù)塊備份到目的云中。
[0010]一種云系統(tǒng),包括:主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn);
[0011 ] 所述主節(jié)點(diǎn),用于接收來(lái)自用戶(hù)的數(shù)據(jù)存儲(chǔ)請(qǐng)求,并從云內(nèi)的各數(shù)據(jù)節(jié)點(diǎn)中選出一個(gè)數(shù)據(jù)節(jié)點(diǎn),通知給用戶(hù);
[0012]所述數(shù)據(jù)節(jié)點(diǎn),用于接收來(lái)自用戶(hù)的待存儲(chǔ)數(shù)據(jù),并劃分為若干個(gè)數(shù)據(jù)塊后進(jìn)行存儲(chǔ);
[0013]所述主節(jié)點(diǎn)進(jìn)一步用于,當(dāng)每次滿(mǎn)足掃描條件時(shí),掃描云內(nèi)的各數(shù)據(jù)塊,當(dāng)發(fā)現(xiàn)需要備份的數(shù)據(jù)塊、且確定存在符合條件的目的云時(shí),通過(guò)該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)將該數(shù)據(jù)塊備份到目的云中。
[0014]可見(jiàn),采用本發(fā)明所述方案,針對(duì)每個(gè)云,可分別將其中的數(shù)據(jù)備份到其它云中,從而避免了在用一云內(nèi)進(jìn)行備份,當(dāng)云出現(xiàn)不可預(yù)知的錯(cuò)誤時(shí),云內(nèi)數(shù)據(jù)完全丟失的情況發(fā)生,進(jìn)而保證了數(shù)據(jù)的安全性和完整性;而且,備份過(guò)程可自動(dòng)完成,無(wú)需人工進(jìn)行干預(yù),且無(wú)需終止云服務(wù),從而降低了人力成本和系統(tǒng)維護(hù)成本。
【附圖說(shuō)明】
[0015]圖1為本發(fā)明多云間數(shù)據(jù)備份的方法實(shí)施例的流程圖。
[0016]圖2為本發(fā)明云系統(tǒng)實(shí)施例的組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0017]針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明中提出一種多云間數(shù)據(jù)備份的方案,既能夠保證數(shù)據(jù)的安全性和完整性,又能夠降低人力成本和系統(tǒng)維護(hù)成本。
[0018]為了使本發(fā)明的技術(shù)方案更加清楚、明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明所述方案作進(jìn)一步的詳細(xì)說(shuō)明。
[0019]圖1為本發(fā)明多云間數(shù)據(jù)備份的方法實(shí)施例的流程圖。如圖1所示,包括:
[0020]步驟11:云內(nèi)的主節(jié)點(diǎn)接收來(lái)自用戶(hù)的數(shù)據(jù)存儲(chǔ)請(qǐng)求,并從云內(nèi)的各數(shù)據(jù)節(jié)點(diǎn)中選出一個(gè)數(shù)據(jù)節(jié)點(diǎn),通知給用戶(hù);選出的數(shù)據(jù)節(jié)點(diǎn)接收來(lái)自用戶(hù)的待存儲(chǔ)數(shù)據(jù),并劃分為若干個(gè)數(shù)據(jù)塊后進(jìn)行存儲(chǔ)。
[0021]步驟12:當(dāng)每次滿(mǎn)足掃描條件時(shí),主節(jié)點(diǎn)掃描云內(nèi)的各數(shù)據(jù)塊,當(dāng)發(fā)現(xiàn)需要備份的數(shù)據(jù)塊、且確定存在符合條件的目的云時(shí),通過(guò)該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)將該數(shù)據(jù)塊備份到目的云中。
[0022]較佳地,主節(jié)點(diǎn)可以周期性地掃描云內(nèi)的各數(shù)據(jù)塊,相應(yīng)地,每次滿(mǎn)足掃描條件即指每經(jīng)過(guò)預(yù)定時(shí)長(zhǎng),所述預(yù)定時(shí)長(zhǎng)的具體取值可根據(jù)實(shí)際需要而定;當(dāng)然,也可以采用本領(lǐng)域技術(shù)人員常用的其它觸發(fā)方式,來(lái)觸發(fā)主節(jié)點(diǎn)對(duì)云內(nèi)的各數(shù)據(jù)塊進(jìn)行掃描,具體方式不限。
[0023]在實(shí)際應(yīng)用中,在云創(chuàng)建完成后,云內(nèi)的各節(jié)點(diǎn)可通過(guò)競(jìng)爭(zhēng)機(jī)制確定出一個(gè)主節(jié)點(diǎn),主節(jié)點(diǎn)同時(shí)作為數(shù)據(jù)節(jié)點(diǎn),主節(jié)點(diǎn)以外的其它節(jié)點(diǎn)均僅作為數(shù)據(jù)節(jié)點(diǎn);當(dāng)主節(jié)點(diǎn)出現(xiàn)故障或網(wǎng)絡(luò)發(fā)生異常時(shí),會(huì)自動(dòng)觸發(fā)競(jìng)爭(zhēng)機(jī)制,重新確定出一個(gè)主節(jié)點(diǎn)。主節(jié)點(diǎn)為云內(nèi)部的資源調(diào)度者以及數(shù)據(jù)管理者,數(shù)據(jù)節(jié)點(diǎn)為云內(nèi)部的數(shù)據(jù)存儲(chǔ)者。
[0024]另外,在云創(chuàng)建完成后,還需要配置云的基本信息,配置信息通常包括以下A?D。
[0025]A、云入口 IP
[0026]云入口 IP為云入口動(dòng)態(tài)虛擬IP,具有唯一性。
[0027]B、云名稱(chēng)
[0028]云名稱(chēng)用來(lái)唯一標(biāo)識(shí)一個(gè)云,其格式可與windows或Iinux系統(tǒng)中文件絕對(duì)路徑類(lèi)似,如 cloud/cloudl ο
[0029]云名稱(chēng)具有唯一性,其作用除了唯一標(biāo)識(shí)一個(gè)云之外,還可作為數(shù)據(jù)備份時(shí)選擇目的云的依據(jù)。
[0030]一個(gè)云中的數(shù)據(jù)能不能備份,取決于有沒(méi)有另外一個(gè)或多個(gè)云的云名稱(chēng)與該云的云名稱(chēng)的上級(jí)父目錄一致,如果有,則能備份,否則,不能備份。
[0031]比如,共有三個(gè)云,云名稱(chēng)分別為cloud/cloudA, cloud/cloudA/cloudB, cloud/cloudA/cloudC ;cloud/cloudA中的數(shù)據(jù)不能備份,因?yàn)闆](méi)有一個(gè)云的云名稱(chēng)是cloud/cloud*,而 cloud/cloudA/cloudB 和 cloud/cloudA/cloudC 中的數(shù)據(jù)則可以相互備份,因?yàn)樗鼈冇泄餐纳霞?jí)父目錄cloud/cloudA,在實(shí)際應(yīng)用中,可以根據(jù)云地點(diǎn)等,選擇性的修改云名稱(chēng),使之關(guān)聯(lián)備份。
[0032]C、數(shù)據(jù)存儲(chǔ)目錄
[0033]該目錄用來(lái)存儲(chǔ)用戶(hù)的數(shù)據(jù),根據(jù)實(shí)際需要,可以為一個(gè),也可以為多個(gè),并支持動(dòng)態(tài)擴(kuò)展。
[0034]D、數(shù)據(jù)備份份數(shù)M
[0035]M為正整數(shù),比如可為1,即表示每個(gè)數(shù)據(jù)塊需要備份I份,如果為3,則表示每個(gè)數(shù)據(jù)塊需要備份3份;當(dāng)對(duì)數(shù)據(jù)的安全性要求較高時(shí),則可將M的取值設(shè)置得較大。
[0036]競(jìng)爭(zhēng)出的主節(jié)點(diǎn)會(huì)存儲(chǔ)所在云的配置信息,并將該配置信息發(fā)送給云內(nèi)的各數(shù)據(jù)節(jié)點(diǎn),另外,還會(huì)將該配置信息中的云入口 IP和云名稱(chēng)廣播給所在云以外的其它云,相應(yīng)地,也會(huì)接收到其它云所廣播的自身的云入口 IP和云名稱(chēng),并可以列表的形式進(jìn)行存儲(chǔ)。
[0037]基于上述介紹,以下分別對(duì)數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)備份過(guò)程進(jìn)行詳細(xì)說(shuō)明。
[0038]一)數(shù)據(jù)存儲(chǔ)
[0039]用戶(hù)在向云內(nèi)寫(xiě)入數(shù)據(jù),即進(jìn)行數(shù)據(jù)存儲(chǔ)之前,需要先向云內(nèi)的主節(jié)點(diǎn)請(qǐng)求一個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)寫(xiě)入;相應(yīng)地,主節(jié)點(diǎn)接收到用戶(hù)的數(shù)據(jù)存儲(chǔ)請(qǐng)求后,可從云內(nèi)的各數(shù)據(jù)節(jié)點(diǎn)中選出一個(gè)數(shù)據(jù)節(jié)點(diǎn),并將該數(shù)據(jù)節(jié)點(diǎn)的物理IP地址等通知給用戶(hù);如何進(jìn)行數(shù)據(jù)節(jié)點(diǎn)選擇可根據(jù)實(shí)際需要而定,比如,可按照負(fù)載均衡的原理進(jìn)行選擇。
[0040]用戶(hù)可直接將待存儲(chǔ)數(shù)據(jù)寫(xiě)入到選出的數(shù)據(jù)節(jié)點(diǎn)中,相應(yīng)地,選出的數(shù)據(jù)節(jié)點(diǎn)接收到來(lái)自用戶(hù)的待存儲(chǔ)數(shù)據(jù)后,可將其劃分為若干個(gè)數(shù)據(jù)塊,并按照配置信息中的數(shù)據(jù)存儲(chǔ)目錄,將劃分出的各數(shù)據(jù)塊進(jìn)行存儲(chǔ)。
[0041]通常來(lái)說(shuō),各數(shù)據(jù)塊的大小是固定的,如均為20M。特殊地,如果待存儲(chǔ)數(shù)據(jù)的大小為75M,那么,在劃分為四個(gè)數(shù)據(jù)塊之后,其中三個(gè)數(shù)據(jù)塊的大小均為20M,而另外一個(gè)數(shù)據(jù)塊的大小則只有15M,那么,該15M大小的數(shù)據(jù)塊也會(huì)作為一個(gè)單獨(dú)的數(shù)據(jù)塊存在,不會(huì)補(bǔ)入其它用戶(hù)的數(shù)據(jù)等。
[0042]另外,數(shù)據(jù)節(jié)點(diǎn)還需要將劃分出的各數(shù)據(jù)塊的數(shù)據(jù)塊信息上報(bào)給主節(jié)點(diǎn)進(jìn)行存儲(chǔ),通知主節(jié)點(diǎn)數(shù)據(jù)寫(xiě)入完成;所述數(shù)據(jù)塊信息可包括:所在的數(shù)據(jù)節(jié)點(diǎn)、已備份份數(shù)N,N的初始取值為O (由于此時(shí)還未進(jìn)行備份),當(dāng)然,根據(jù)實(shí)際需要,還可進(jìn)一步包括其它信息,如:對(duì)應(yīng)的用戶(hù)等。
[0043]二)數(shù)據(jù)備份
[0044]數(shù)據(jù)備份和數(shù)據(jù)存儲(chǔ)是異步進(jìn)行的,云內(nèi)的主節(jié)點(diǎn)可周期性地掃描云內(nèi)的各數(shù)據(jù)塊,所述周期的具體時(shí)長(zhǎng)可根據(jù)實(shí)際需要而定,如果發(fā)現(xiàn)需要備份的數(shù)據(jù)塊、且確定存在符合條件的目的云,則可通過(guò)該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)將該數(shù)據(jù)塊備份到目的云中。
[0045]具體來(lái)說(shuō),針對(duì)任一數(shù)據(jù)塊,主節(jié)點(diǎn)可確定其對(duì)應(yīng)的數(shù)據(jù)塊信息中的已備份份數(shù)N是否小于配置信息中的數(shù)據(jù)備份份數(shù)M,如果是,則確定該數(shù)據(jù)塊為需要進(jìn)行備份的數(shù)據(jù)塊,否則,確定該數(shù)據(jù)塊為不需要再進(jìn)行備份的數(shù)據(jù)塊;之后,主節(jié)點(diǎn)可根據(jù)所在云以及其它云的云名稱(chēng)確定是否存在符合條件的目的云,即確定是否存在與所在云的云名稱(chēng)的上級(jí)父目錄一致的云,如果是,且符合條件的目的云的個(gè)數(shù)小于或等于M-N,則可將各符合條件的目的云的云入口 IP發(fā)送給該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn),并向該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)發(fā)出備份指令,如果符合條件的目的云的個(gè)數(shù)大于M-N,則可從符合條件的目的云中選出M-N個(gè)目的云,將選出的各目的云的云入口 IP發(fā)送給該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn),并向該數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)發(fā)出備份指令。當(dāng)符合條件的目的云的個(gè)數(shù)大于M-N