一種分布式數(shù)據(jù)的存儲方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法、裝置及系統(tǒng),將絕大部分?jǐn)?shù)據(jù)讀寫操作限制在指定的DC內(nèi)進(jìn)行,從而提升分布式IMDG數(shù)據(jù)的存儲性能。該方案包括:第一DC獲取本地用戶發(fā)起的對第一文件的寫操作指令;若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,且第一DC中有存儲第一文件的存儲資源,則為第一文件在第一DC中分配存儲地址,以便將第一文件寫入第一DC中的存儲地址;若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,且第一DC沒有存儲第一文件的存儲資源,則將第一文件的寫操作指令為第一文件分配發(fā)送寫入給第二DC;第一DC將第一文件的標(biāo)識和第一文件在第二DC的存儲地址的對應(yīng)關(guān)系保存至跨DC數(shù)據(jù)地址信息中。
【專利說明】一種分布式數(shù)據(jù)的存儲方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)存儲【技術(shù)領(lǐng)域】,尤其涉及一種分布式數(shù)據(jù)的存儲方法、裝置及系 統(tǒng)。
【背景技術(shù)】
[0002] 內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory Data GricUMDG),是分布式數(shù)據(jù)技術(shù)中的一種典型代 表,它可以將數(shù)據(jù)存儲到內(nèi)存中,并使數(shù)據(jù)均衡分布到多個服務(wù)器上,具有良好的擴(kuò)展性, 因而被廣泛應(yīng)用于高性能、大規(guī)模、易擴(kuò)展的分布式數(shù)據(jù)業(yè)務(wù)處理領(lǐng)域。
[0003] 具體的,如圖1所示,為頂DG數(shù)據(jù)服務(wù)的架構(gòu)示意圖,運(yùn)營商在 IaaS(Infrastructure as a Service,基礎(chǔ)設(shè)施即服務(wù))層部署IMDG軟件以形成數(shù)據(jù)中 心(Data Center,DC),并統(tǒng)一對PaaS (Platform as a Service,平臺即服務(wù))層不同租戶 的虛擬機(jī)提供MDG數(shù)據(jù)的訪問和存儲服務(wù)。租戶在發(fā)送虛擬機(jī)創(chuàng)建請求后,DC會根據(jù)虛 擬機(jī)創(chuàng)建請求中該租戶所在的物理地域位置優(yōu)先在指定的本地DC內(nèi)進(jìn)行虛擬機(jī)的數(shù)據(jù)存 取,當(dāng)發(fā)生本地DC資源遷移等異常場景時,需要跨Internet (因特網(wǎng))對租戶的虛擬機(jī)進(jìn) 行跨DC的數(shù)據(jù)處理。
[0004] 為了解決MDG數(shù)據(jù)的跨DC處理問題,如圖2所示,現(xiàn)有技術(shù)中通常在DC之間配 置VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò))通道,從而將跨Internet連接的DC形 成一個虛擬局域網(wǎng),這樣一來,頂DG數(shù)據(jù)可以在VPN通道內(nèi)流通至其他DC。這樣一來,所有 DC內(nèi)的MDG數(shù)據(jù)會在所有服務(wù)器內(nèi)均衡分布,因此,當(dāng)DCl的租戶需要調(diào)度DCl內(nèi)的MDG 數(shù)據(jù)時,會出現(xiàn)近一半的頂DG數(shù)據(jù)訪問操作都需要通過VPN通道進(jìn)行跨DC通訊,降低了分 布式IMDG數(shù)據(jù)的存儲性能。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法、裝置及系統(tǒng),將絕大部分?jǐn)?shù)據(jù) 讀寫操作限制在指定的DC內(nèi)進(jìn)行,避免頻繁使用VPN通道進(jìn)行跨DC數(shù)據(jù)通信,從而提升 MDG數(shù)據(jù)的存儲性能。
[0006] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0007] 第一方面,本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法,所述方法應(yīng)用于分 布式數(shù)據(jù)存儲系統(tǒng)中N個數(shù)據(jù)中心DC的任一個DC,N > 1,所述方法包括:
[0008] 第一 DC獲取本地用戶發(fā)起的對第一文件的寫操作指令,所述寫操作指令至少包 括第一文件的標(biāo)識,所述第一 DC為所述N個DC中的任一個;
[0009] 若跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且所述第一 DC中有存儲所 述第一文件的存儲資源,所述第一 DC則為所述第一文件在所述第一 DC中分配存儲地址,以 便將所述第一文件寫入所述第一 DC中的存儲地址;
[0010] 若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且所述第一 DC沒有存 儲所述第一文件的存儲資源,所述第一 DC則將所述第一文件的寫操作指令發(fā)送給第二DC, 以使得所述第二DC寫入所述第一文件,并發(fā)送所述第一文件在所述第二DC內(nèi)的存儲地址 至所述第一 DC,所述第二DC為所述N個DC中除所述第一 DC中的任一個;
[0011] 所述第一 DC將所述第一文件的標(biāo)識和所述第一文件在所述第二DC的存儲地址的 對應(yīng)關(guān)系保存至所述跨DC數(shù)據(jù)地址信息中;
[0012] 其中,所述跨DC數(shù)據(jù)地址信息中保存有存儲在所述第二DC中的本地用戶文件的 標(biāo)識,及所述本地用戶文件存儲在所述第二DC中的存儲地址的對應(yīng)關(guān)系。
[0013] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,在第一 DC接收本地用戶 發(fā)起的對第一文件的寫操作指令之后,還包括:
[0014] 若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo)識,所述第一 DC則在所述跨 DC數(shù)據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址;
[0015] 所述第一 DC將所述第一文件的寫操作指令和所述第一文件在所述第二DC中的存 儲地址發(fā)送至所述第二DC,以使得所述第二DC將所述第一文件寫入所述第二DC中的存儲 地址。
[0016] 結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的 實(shí)現(xiàn)方式中,所述第一 DC獲取本地用戶發(fā)起的對第一文件的寫操作指令,包括:
[0017] 所述第一 DC查詢發(fā)起所述第一文件的寫操作指令的用戶的信息;
[0018] 若所述用戶的信息符合預(yù)置的本地用戶信息,所述第一 DC則確定所述第一文件 的寫操作指令為本地用戶發(fā)起的對第一文件的寫操作指令。
[0019] 結(jié)合第一方面或第一方面的第一至第二種可能的實(shí)現(xiàn)方式中的任一種可能的實(shí) 現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0020] 所述第一 DC獲取本地用戶發(fā)起的對第一文件的讀操作指令,所述讀操作指令至 少包括第一文件的標(biāo)識;
[0021] 若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,所述第一 DC則根據(jù)所 述第一文件的標(biāo)識在所述第一 DC中讀取所述第一文件。
[0022] 結(jié)合前述的第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn) 方式中,在所述第一 DC獲取本地用戶發(fā)起的對第一文件的讀操作指令之后,還包括:
[0023] 若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo)識,所述第一 DC則在所述跨 DC數(shù)據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址;
[0024] 所述第一 DC將所述第一文件的讀操作指令和所述第一文件在所述第二DC中的存 儲地址發(fā)送至所述第二DC,以使得所述第二DC所述第二DC中的存儲地址處讀取所述第一 文件。
[0025] 結(jié)合前述的第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn) 方式中,在所述第一 DC將所述第一文件的讀操作指令和所述第一文件在所述第二DC中的 存儲地址發(fā)送至所述第二DC之后,還包括:
[0026] 所述第一 DC從所述第二DC獲取所述第一文件;
[0027] 所述第一 DC將所述第一文件和所述第一文件的標(biāo)識保存至所述第一 DC的高速緩 存中,以便所述第一 DC再次接收到所述第一文件的讀操作指令時,從所述第一 DC的高速緩 存中讀取所述第一文件。
[0028] 結(jié)合前述的第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn) 方式中,在所述第一 DC獲取本地用戶發(fā)起的對第一文件的讀操作指令之后,還包括:
[0029] 若所述第一 DC的高速緩存中包含有所述第一文件的標(biāo)識,所述第一 DC則從所述 第一 DC的高速緩存中讀取所述第一文件。
[0030] 結(jié)合前述的第一方面的第一至第六種可能的實(shí)現(xiàn)方式中的任一種可能的實(shí)現(xiàn)方 式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0031] 所述第一 DC獲取備份策略信息,所述備份策略信息用于指示分別對其他M個DC 中的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份,N-I > M > 1 ;
[0032] 所述第一 DC根據(jù)所述備份策略信息建立與所述其他M個DC建立備份通道,以便 根據(jù)所述備份策略信息將所述其他M個DC中的數(shù)據(jù)備份至所述第一 DC。
[0033] 結(jié)合前述的第一方面的第七種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn) 方式中,所述方法還包括:
[0034] 若所述第二DC發(fā)生故障,所述第一 DC則獲取針對所述第二DC的數(shù)據(jù)恢復(fù)指令;
[0035] 所述第一 DC根據(jù)所述數(shù)據(jù)恢復(fù)指令,將所述第一 DC內(nèi)已備份的所述第二DC的數(shù) 據(jù)恢復(fù)至所述第一 DC ;
[0036] 所述第一 DC將已恢復(fù)的所述第二DC的數(shù)據(jù)在所述第一 DC的存儲地址更新至所 述跨DC數(shù)據(jù)地址信息。
[0037] 第二方面,本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法,所述方法應(yīng)用于分 布式數(shù)據(jù)存儲系統(tǒng)中N個數(shù)據(jù)中心DC的任一個DC,N > 1,所述方法包括:
[0038] 轉(zhuǎn)發(fā)設(shè)備獲取第一文件的寫操作指令或讀操作指令;
[0039] 所述轉(zhuǎn)發(fā)設(shè)備查詢發(fā)起所述第一文件的寫操作指令或讀操作指令的用戶的信 息;
[0040] 所述轉(zhuǎn)發(fā)設(shè)備根據(jù)所述用戶的信息以及預(yù)置的所述N個DC的用戶信息,確定所述 第一文件的寫操作指令或讀操作指令為針對第一 DC的寫操作指令或讀操作指令,所述第 一 DC為所述N個DC中的任一個,N > 1 ;
[0041] 所述轉(zhuǎn)發(fā)設(shè)備將所述第一文件的寫操作指令或讀操作指令發(fā)送至所述第一 DC。
[0042] 第三方面,本發(fā)明的實(shí)施例提供一種數(shù)據(jù)中心DC,所述DC應(yīng)用于包含有N個DC的 分布式數(shù)據(jù)存儲系統(tǒng),其中,所述DC中存儲有跨DC數(shù)據(jù)地址信息,N > 1,所述DC包括: [0043] 獲取單元,用于獲取本地用戶發(fā)起的對第一文件的寫操作指令,所述寫操作指令 至少包括第一文件的標(biāo)識;
[0044] 本地讀寫單元,用于若跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且第一 DC中有存儲所述第一文件的存儲資源,則為所述第一文件在所述第一 DC中分配存儲地址, 以便將所述第一文件寫入所述第一 DC中的存儲地址,所述第一 DC為所述N個DC中的任一 個;
[0045] 跨DC讀寫單元,用于若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且 所述第一 DC沒有存儲所述第一文件的存儲資源,則將所述第一文件的寫操作指令發(fā)送給 第二DC,以使得所述第二DC寫入所述第一文件,并發(fā)送所述第一文件在所述第二DC內(nèi)的存 儲地址至所述第一 DC,所述第二DC為所述N個DC中除所述第一 DC中的任一個;
[0046] 存儲單元,用于將所述第一文件的標(biāo)識和所述第一文件在所述第二DC的存儲地 址的對應(yīng)關(guān)系保存至所述跨DC數(shù)據(jù)地址信息中;
[0047] 其中,所述跨DC數(shù)據(jù)地址信息中保存有存儲在所述第二DC中的本地用戶文件的 標(biāo)識,及所述本地用戶文件存儲在所述第二DC中的存儲地址的對應(yīng)關(guān)系。
[0048] 結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述DC還包括發(fā)送單 元,其中,
[0049] 所述跨DC讀寫單元,還用于若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo) 識,則在所述跨DC數(shù)據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址;
[0050] 所述發(fā)送單元,用于將所述第一文件的寫操作指令和所述第一文件在所述第二DC 中的存儲地址發(fā)送至所述第二DC,以使得所述第二DC將所述第一文件寫入所述第二DC中 的存儲地址。
[0051] 結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的 實(shí)現(xiàn)方式中,
[0052] 所述獲取單元,具體用于查詢發(fā)起所述第一文件的寫操作指令的用戶的信息;若 所述用戶的信息符合預(yù)置的本地用戶信息,則確定所述第一文件的寫操作指令為本地用戶 發(fā)起的對第一文件的寫操作指令。
[0053] 結(jié)合第三方面以及第三方面的第一至第二種可能的實(shí)現(xiàn)方式,在第三方面的第三 種可能的實(shí)現(xiàn)方式中,
[0054] 所述獲取單元,還用于獲取本地用戶發(fā)起的對第一文件的讀操作指令,所述讀操 作指令至少包括第一文件的標(biāo)識;
[0055] 所述本地讀寫單元,還用于若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的 標(biāo)識,則根據(jù)所述第一文件的標(biāo)識在所述第一 DC中讀取所述第一文件。
[0056] 結(jié)合第三方面以及第三方面的第一至第三種可能的實(shí)現(xiàn)方式,在第三方面的第四 種可能的實(shí)現(xiàn)方式中,
[0057] 所述跨DC讀寫單元,還用于若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo) 識,則在所述跨DC數(shù)據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址;
[0058] 所述地發(fā)送單元,還用于將所述第一文件的讀操作指令和所述第一文件在所述第 二DC中的存儲地址發(fā)送至所述第二DC,以使得所述第二DC所述第二DC中的存儲地址處讀 取所述第一文件。
[0059] 結(jié)合第三方面以及第三方面的第一至第四種可能的實(shí)現(xiàn)方式,在第三方面的第五 種可能的實(shí)現(xiàn)方式中,
[0060] 所述獲取單元,還用于從所述第二DC獲取所述第一文件;
[0061] 所述存儲單元,還用于將所述第一文件和所述第一文件的標(biāo)識保存至所述第一 DC 的高速緩存中,以便所述第一 DC再次接收到所述第一文件的讀操作指令時,從所述第一 DC 的高速緩存中讀取所述第一文件。
[0062] 結(jié)合前述的第三方面的第一至第五種可能的實(shí)現(xiàn)方式,在第三方面的第六種可能 的實(shí)現(xiàn)方式中,
[0063] 所述本地讀寫單元,還用于若所述第一 DC的高速緩存中包含有所述第一文件的 標(biāo)識,則從所述第一 DC的高速緩存中讀取所述第一文件。
[0064] 結(jié)合前述的第三方面的第一至第六種可能的實(shí)現(xiàn)方式,在第三方面的第七種可能 的實(shí)現(xiàn)方式中,所述DC還包括備份單元,其中,
[0065] 所述獲取單元,還用于獲取備份策略信息,所述備份策略信息用于指示分別對其 他M個DC中的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份,N-I彡M彡1 ;
[0066] 所述備份單元,用于根據(jù)所述備份策略信息建立與所述其他M個DC建立備份通 道,以便根據(jù)所述備份策略信息將所述其他M個DC中的數(shù)據(jù)備份至所述第一 DC。
[0067] 結(jié)合前述的第三方面的第七種可能的實(shí)現(xiàn)方式,在第三方面的第八種可能的實(shí)現(xiàn) 方式中,所述DC還包括容災(zāi)單元,其中,
[0068] 所述獲取單元,還用于若所述第二DC發(fā)生故障,則獲取針對所述第二DC的數(shù)據(jù)恢 復(fù)指令;
[0069] 所述容災(zāi)單元,用于根據(jù)所述數(shù)據(jù)恢復(fù)指令,將所述第一 DC內(nèi)已備份的所述第二 DC的數(shù)據(jù)恢復(fù)至所述第一 DC ;
[0070] 所述存儲單元,還用于將已恢復(fù)的所述第二DC的數(shù)據(jù)在所述第一 DC的存儲地址 更新至所述跨DC數(shù)據(jù)地址信息。
[0071] 第四方面,本發(fā)明實(shí)施例提供一種轉(zhuǎn)發(fā)設(shè)備,包括:
[0072] 獲取單元,用于獲取第一文件的寫操作指令或讀操作指令;
[0073] 查找單元,用于查詢發(fā)起所述第一文件的寫操作指令或讀操作指令的用戶的信 息;
[0074] 確定單元,用于根據(jù)所述用戶的信息以及預(yù)置的N個數(shù)據(jù)中心DC的用戶信息,確 定所述第一文件的寫操作指令或讀操作指令為針對第一 DC的寫操作指令或讀操作指令, 所述第一 DC為所述N個DC中的任一個,N > 1 ;
[0075] 轉(zhuǎn)發(fā)單元,用于將所述第一文件的寫操作指令或讀操作指令發(fā)送至所述第一 DC。
[0076] 第五方面,本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)存儲系統(tǒng),所述系統(tǒng)包含至少一 個如第三方面以及第三方面的第一至第八種可能的實(shí)現(xiàn)方式中的任一種所述的數(shù)據(jù)中心 DC,其中,
[0077] 每一個DC中存儲有跨DC數(shù)據(jù)地址信息,所述跨DC數(shù)據(jù)地址信息中保存有存儲在 其他DC中的本地用戶文件的標(biāo)識,及所述本地用戶文件存儲在所述其他DC中的存儲地址 的對應(yīng)關(guān)系信息,N > 1。
[0078] 結(jié)合第五方面,在第五方面的第一種可能實(shí)現(xiàn)的方式中,所述系統(tǒng)還包括如第四 方面所述的轉(zhuǎn)發(fā)設(shè)備,所述轉(zhuǎn)發(fā)設(shè)備與所述每一個DC均相連。
[0079] 本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法、裝置及系統(tǒng),通過獲取本地用 戶發(fā)起的對第一文件的寫操作指令,并根據(jù)本地的第一 DC自身的存儲資源和已存儲的跨 DC數(shù)據(jù)地址信息,確定所述第一文件的寫入操作是否屬于第一 DC,若屬于第一 DC則直接執(zhí) 行第一文件的寫操作指令,若屬于第二DC則確定寫入第二DC的存儲地址,并且更新該跨DC 數(shù)據(jù)地址信息,以便再次接收到第一文件的寫操作指令時及時將第一文件的寫操作指令轉(zhuǎn) 發(fā)至第二DC中執(zhí)行,這樣一來,第一 DC將絕大部分本地用戶發(fā)起寫操作指令的執(zhí)行操作限 制在本地第一 DC內(nèi)進(jìn)行,同時,在因存儲資源不足等異常場景需要對寫操作指令進(jìn)行跨DC 操作時,及時根據(jù)跨DC數(shù)據(jù)地址信息將寫操作指令調(diào)度至其他DC內(nèi)進(jìn)行,避免了在現(xiàn)有技 術(shù)中,對于使用VPN通道將各個DC內(nèi)的數(shù)據(jù)均衡存儲至各個DC的服務(wù)器中的數(shù)據(jù)進(jìn)行訪 問時,可能帶來的VPN通道擁塞或者M(jìn)DG數(shù)據(jù)的存儲性能降低的問題。
【專利附圖】
【附圖說明】
[0080] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0081] 圖1為現(xiàn)有技術(shù)中內(nèi)存數(shù)據(jù)網(wǎng)格服務(wù)的架構(gòu)示意圖;
[0082] 圖2為現(xiàn)有技術(shù)中跨DC內(nèi)存數(shù)據(jù)網(wǎng)格服務(wù)的架構(gòu)示意圖;
[0083] 圖3為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的存儲系統(tǒng)的架構(gòu)示意圖一;
[0084] 圖4為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的存儲系統(tǒng)的架構(gòu)示意圖二;
[0085] 圖5為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的存儲方法的流程示意圖一;
[0086] 圖6為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的存儲方法的流程示意圖二;
[0087] 圖7為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的存儲方法的流程示意圖三
[0088] 圖8為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的讀取方法的流程示意圖;
[0089] 圖9為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的備份方法的流程示意圖;
[0090] 圖10為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)的恢復(fù)方法的流程示意圖;
[0091] 圖11為本發(fā)明實(shí)施例提供的一種DC的硬件示意圖;
[0092] 圖12為本發(fā)明實(shí)施例提供的一種轉(zhuǎn)發(fā)設(shè)備的硬件示意圖;
[0093] 圖13為本發(fā)明實(shí)施例提供的一種DC的結(jié)構(gòu)示意圖一;
[0094] 圖14為本發(fā)明實(shí)施例提供的一種DC的結(jié)構(gòu)示意圖二;
[0095] 圖15為本發(fā)明實(shí)施例提供的一種DC的結(jié)構(gòu)示意圖三;
[0096] 圖16為本發(fā)明實(shí)施例提供的一種DC的結(jié)構(gòu)示意圖四;
[0097] 圖17為本發(fā)明實(shí)施例提供的一種轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0098] 以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之 類的具體細(xì)節(jié),以便透徹理解本發(fā)明。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體 細(xì)節(jié)的其它實(shí)施例中也可以實(shí)現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的裝置、電路以及 方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
[0099] 實(shí)施例一
[0100] 本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲系統(tǒng),如圖3所示,該分布式數(shù)據(jù)的 存儲系統(tǒng)包括至少一個數(shù)據(jù)中心DC (例如第一 DCOl和第二DC02),其中,每一個DC中還可 以包括收發(fā)模塊、備份模塊以及高速緩存等。
[0101] 為方便描述,本發(fā)明的實(shí)施例中的分布式數(shù)據(jù)的存儲系統(tǒng)以兩個數(shù)據(jù)中心(即第 一 DCOl和第二DC02)為例進(jìn)行詳細(xì)說明。另外,本發(fā)明實(shí)施例以及后續(xù)實(shí)施例中所涉及的 文件(例如第一文件)中所包括含的數(shù)據(jù)可以是以MDG數(shù)據(jù)為代表的分布式數(shù)據(jù),也可以 是其他格式的數(shù)據(jù),而本發(fā)明對比不做限定。
[0102] 具體的,由于數(shù)據(jù)中心DC通常是根據(jù)用戶物理地域信息使用就近原則在與物理 地域信息對應(yīng)的本地DC內(nèi)進(jìn)行數(shù)據(jù)讀寫,只有在所屬DC資源不足或數(shù)據(jù)發(fā)生遷移的異常 場景下才會存在少量同一個用戶跨DC讀寫數(shù)據(jù)的場景,因此,可以將這些本應(yīng)在第一 DCOl 內(nèi)進(jìn)行讀寫的數(shù)據(jù),卻因?yàn)榈谝?DCOl資源不足或數(shù)據(jù)發(fā)生遷移而發(fā)放至第二DC02內(nèi)進(jìn)行 讀寫的數(shù)據(jù)稱為跨DC數(shù)據(jù)。
[0103] 其中,第一 DCOl中存儲有跨DC數(shù)據(jù)地址信息,該跨DC數(shù)據(jù)地址信息中保存有存 儲在第二DC02中的本地用戶文件的標(biāo)識(例如文件所對應(yīng)的KEY值,即文件所對應(yīng)的虛 擬編碼),及本地用戶文件存儲在第二DC02中的存儲地址(例如文件的在DC內(nèi)的存儲塊 datablock位置)的對應(yīng)關(guān)系信息。
[0104] 相應(yīng)的,第二DC02中也存儲有相應(yīng)的跨DC數(shù)據(jù)地址信息,該跨DC數(shù)據(jù)地址信息 中保存有存儲在第一 DCOl中的本地用戶文件的標(biāo)識(例如文件所對應(yīng)的KEY值),及本地 用戶文件存儲在第一 DCOl中的存儲地址(例如文件的在DC內(nèi)的存儲塊位置)的對應(yīng)關(guān)系 信息。
[0105] 當(dāng)然,為了方便實(shí)施,該跨DC數(shù)據(jù)地址信息可以將該分布式數(shù)據(jù)的存儲系統(tǒng)中所 有的跨DC數(shù)據(jù)地址信息制成表格進(jìn)行保存,而每一個DC只需要緩存自己的跨DC數(shù)據(jù)地址 信息即可。
[0106] 在本發(fā)明的實(shí)施例中,第一 DCOl獲取本地用戶發(fā)起的對第一文件的寫操作指令, 該寫操作指令至少包括第一文件的標(biāo)識(例如第一文件的KEY值);若跨DC數(shù)據(jù)地址信息 中不包括第一文件的標(biāo)識,且第一 DCOl中有存儲第一文件的存儲資源,第一 DCOl則為第一 文件在第一 DCOl中分配存儲地址,以便將第一文件寫入第一 DCOl中的存儲地址;若跨DC 數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,且第一 DCOl沒有存儲第一文件的存儲資源,第一 DCOl則將第一文件的寫操作指令發(fā)送給第二DC02,以使得第二DC02寫入該第一文件,并 且,第二DC02將第一文件在第二DC02內(nèi)的存儲地址發(fā)送至第一 DCOl,這樣,第一 DCOl將 第一文件的標(biāo)識和第一文件在第二DC02的存儲地址的對應(yīng)關(guān)系保存至跨DC數(shù)據(jù)地址信息 中,以便于第一 DCOl再次接收到該第一文件的寫操作指令時及時將該寫操作指令發(fā)送至 第二DC02進(jìn)行寫操作。
[0107] 進(jìn)一步地,在第一 DCOl接收本地用戶發(fā)起的對第一文件的寫操作指令之后,還可 以具體包括:若跨DC數(shù)據(jù)地址信息中包括第一文件的標(biāo)識,第一 DCOl則在跨DC數(shù)據(jù)地址 信息中查找第一文件在第二DC02中的存儲地址;第一 DCOl將第一文件的寫操作指令和第 一文件在第二DC02中的存儲地址發(fā)送至第二DC02,以使得第二DC02將第一文件寫入第二 DC02中的存儲地址。
[0108] 進(jìn)一步地,第一 DCOl獲取本地用戶發(fā)起的對第一文件的寫操作指令,可以具體包 括:第一 DCOl首先查詢發(fā)起第一文件的寫操作指令的用戶的信息;若用戶的信息符合預(yù)置 的本地用戶信息,第一 DCOl則確定第一文件的寫操作指令為本地用戶發(fā)起的對第一文件 的寫操作指令。
[0109] 當(dāng)然,第一 DCOl內(nèi)還可以存儲有其他DC的用戶信息,如果第一 DCOl查詢到的發(fā) 起第一文件的寫操作指令的用戶的信息符合其他DC的用戶信息,第一 DCOl還可以將該寫 操作指令發(fā)送至其他DC,以使得其他DC根據(jù)該寫操作指令寫入第一文件。
[0110] 進(jìn)一步地,第一DCOl獲取第一DCOl的寫操作指令,可以具體包括:第一DCOl通過 統(tǒng)一 API接口 03獲取所述寫操作指令所屬的用戶的信息;并根據(jù)預(yù)置的用戶物理地域信息 和所述用戶的信息確定所述寫操作指令為所述第一 DCOl的寫操作指令。
[0111] 本發(fā)明的實(shí)施例提供的一種分布式數(shù)據(jù)的存儲方法,還可以包括步驟:第一 DCOl 獲取本地用戶發(fā)起的對第一文件的讀操作指令,該讀操作指令至少包括第一文件的標(biāo)識; 若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,第一 DCOl則根據(jù)第一文件的標(biāo)識在第一 DCOl中讀取第一文件。
[0112] 進(jìn)一步地,在第一 DCOl獲取本地用戶發(fā)起的對第一文件的讀操作指令之后,若跨 DC數(shù)據(jù)地址信息中包括第一文件的標(biāo)識,第一 DCOl則在跨DC數(shù)據(jù)地址信息中查找第一文 件在第二DC02中的存儲地址;第一 DCOl將第一文件的讀操作指令和第一文件在第二DC02 中的存儲地址發(fā)送至第二DC02,以使得第二DC02從該第二DC02中的存儲地址處讀取第一 文件。
[0113] 進(jìn)一步地,在第一 DCOl將第一文件的讀操作指令和第一文件在第二DC02中的存 儲地址發(fā)送至第二DC02之后,還可以包括步驟:第一 DCOl從第二DC02獲取第一文件;第一 DCOl將第一文件和第一文件的標(biāo)識保存至第一 DCOl的高速緩存中,以便第一 DCOl再次接 收到第一文件的讀操作指令時,直接從第一 DCOl的高速緩存中讀取第一文件,無需進(jìn)行跨 DC操作。
[0114] 相應(yīng)的,在第一 DCOl獲取本地用戶發(fā)起的對第一文件的讀操作指令之后,還可 以包括步驟:若第一 DCOl的高速緩存中包含有第一文件的標(biāo)識,第一 DCOl則直接從第一 DCOl的高速緩存中讀取第一文件。
[0115] 本發(fā)明的實(shí)施例提供的一種分布式數(shù)據(jù)的存儲方法,還可以包括步驟:第一 DCOl 獲取第一 DCOl的備份策略信息,所述備份策略信息用于指示分別對第二DC02中的數(shù)據(jù)進(jìn) 行數(shù)據(jù)備份;第一 DCOl根據(jù)所述備份策略信息與所述第二DC02建立備份通道,以便根據(jù)所 述備份策略信息將所述第二DC02中的數(shù)據(jù)備份至所述第一 DCOl,這樣,每一個DC都可以獲 取針對其他DC的備份策略,在自身DC內(nèi)設(shè)置備份模塊,并建立與其他DC的備份通道,使用 該備份通道按照備份策略對其他DC的數(shù)據(jù)進(jìn)行備份,一旦分布式數(shù)據(jù)的存儲系統(tǒng)中某個 DC發(fā)生故障,數(shù)據(jù)遭到破壞,其他DC可以快速的從自己的備份模塊獲取發(fā)生故障的DC內(nèi)的 數(shù)據(jù),提高了頂DG數(shù)據(jù)的存儲性能,并提高了整個分布式數(shù)據(jù)的存儲系統(tǒng)的穩(wěn)定性。
[0116] 進(jìn)一步地,本發(fā)明的實(shí)施例提供的一種分布式數(shù)據(jù)的存儲方法,還可以包括步驟: 若第二DC02發(fā)生故障,第一 DCOl則獲取針對第二DC02的數(shù)據(jù)恢復(fù)指令;第一 DCOl根據(jù)數(shù) 據(jù)恢復(fù)指令,將第一 DCOl內(nèi)已備份的第二DC02的數(shù)據(jù)恢復(fù)至第一 DCOl ;進(jìn)而,第一 DCOl將 已恢復(fù)的第二DC02的數(shù)據(jù)在第一 DCOl的存儲地址更新至跨DC數(shù)據(jù)地址信息。
[0117] 至此,第一 DC通過獲取本地用戶發(fā)起的對第一文件的寫操作指令,并根據(jù)本地的 第一 DC自身的存儲資源和已存儲的跨DC數(shù)據(jù)地址信息,確定所述第一文件的寫入操作是 否屬于本地的第一 DC,若屬于第一 DC則直接執(zhí)行第一文件的寫操作指令,若屬于第二DC則 確定寫入第二DC的存儲地址,并且更新該跨DC數(shù)據(jù)地址信息,以便再次接收到第一文件的 寫操作指令時及時將第一文件的寫操作指令轉(zhuǎn)發(fā)至第二DC執(zhí)行,這樣一來,第一 DC將絕大 部分本地用戶發(fā)起寫操作指令的執(zhí)行操作限制在本地第一 DC內(nèi)進(jìn)行,同時,在因存儲資源 不足等異常場景需要對寫操作指令進(jìn)行跨DC操作時,及時根據(jù)跨DC數(shù)據(jù)地址信息將寫操 作指令調(diào)度至其他DC內(nèi)進(jìn)行,避免了在現(xiàn)有技術(shù)中,對于使用VPN通道將各個DC內(nèi)的數(shù)據(jù) 均衡存儲至各個DC的服務(wù)器中的數(shù)據(jù)進(jìn)行訪問時,可能帶來的VPN通道擁塞或者M(jìn)DG數(shù) 據(jù)的存儲性能降低的問題。
[0118] 進(jìn)一步地,如圖4所示,本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲系統(tǒng)中還 可以包括轉(zhuǎn)發(fā)設(shè)備03,該轉(zhuǎn)發(fā)設(shè)備03分別于第一 DCOl和第二DC02相連,其中,轉(zhuǎn)發(fā)設(shè) 備03中存儲有預(yù)置的第一 DCOl和第二DC02的用戶信息,該轉(zhuǎn)發(fā)設(shè)備03中還可以設(shè)有 API (Application Programming Interface,應(yīng)用程序編程接口),可以為各個DC轉(zhuǎn)發(fā)用戶 下發(fā)的讀/寫操作指令、用戶的信息、數(shù)據(jù)備份指令以及數(shù)據(jù)恢復(fù)指令等,實(shí)現(xiàn)對各個DC的 同一調(diào)度。
[0119] 具體的,該轉(zhuǎn)發(fā)設(shè)備03可以獲取用戶發(fā)起的第一文件的寫操作指令或讀操作指 令;轉(zhuǎn)發(fā)設(shè)備03查詢發(fā)起所述第一文件的寫操作指令或讀操作指令的用戶的信息;并根據(jù) 所述用戶的信息以及預(yù)置的第一 DCOl和第二DC02的用戶信息,確定所述第一文件的寫操 作指令或讀操作指令為針對第一 DCOl或第二DC02的寫操作指令或讀操作指令;此時,轉(zhuǎn)發(fā) 設(shè)備03將所述第一文件的寫操作指令或讀操作指令發(fā)送至第一 DCOl或第二DC02。
[0120] 進(jìn)一步地,該轉(zhuǎn)發(fā)設(shè)備03還可以接收管理員為第一 DCOl和第二DC02配置的備份 策略信息,該策略信息用于指示對第一 DCOl和第二DC02中的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份,然后,轉(zhuǎn) 發(fā)設(shè)備03將備份策略信息分別發(fā)送給第一DCOl和第二DC02,以使得第一 DCOl和第二DC02 根據(jù)該備份策略信息的備份策略進(jìn)行數(shù)據(jù)備份。
[0121] 再進(jìn)一步地,若第一 DCOl發(fā)生故障后,轉(zhuǎn)發(fā)設(shè)備03還可以接收第一 DCOl或管理 員下發(fā)的數(shù)據(jù)恢復(fù)指令,進(jìn)而將該數(shù)據(jù)恢復(fù)指令發(fā)送至第二DC02,以使得第二DC02根據(jù)所 述數(shù)據(jù)恢復(fù)指令將第二DC02中已備份的第一 DCOl的數(shù)據(jù)恢復(fù)至第二DC02,防止第一 DCOl 的數(shù)據(jù)丟失,提高了 IMDG數(shù)據(jù)的存儲性能。
[0122] 至此,轉(zhuǎn)發(fā)設(shè)備通過查詢發(fā)起寫操作指令或讀操作指令的用戶的信息,根據(jù)已經(jīng) 預(yù)置的N個DC的用戶信息,確定接收到的寫操作指令或讀操作指令是針對哪一個DC的寫 操作指令或讀操作指令,進(jìn)而將寫操作指令或讀操作指令轉(zhuǎn)發(fā)至對應(yīng)的DC中執(zhí)行寫操作 指令或讀操作指令,這樣一來,各個DC可以為所有用戶提供統(tǒng)一的轉(zhuǎn)發(fā)設(shè)備接收寫操作指 令或讀操作指令,不用區(qū)分用戶的地域區(qū)別,轉(zhuǎn)發(fā)設(shè)備又可以針對各個DC根據(jù)已經(jīng)預(yù)置的 N個DC的用戶信息定向的確定寫操作指令或讀操作指令是針對哪一個指定DC的,這樣一 來,可以將絕大部分本地用戶發(fā)起寫操作指令的執(zhí)行操作限制在指定的本地DC內(nèi)進(jìn)行,無 需像現(xiàn)有技術(shù)那樣頻繁執(zhí)行跨DC數(shù)據(jù)的讀/寫操作指令,提高提升數(shù)據(jù)的存儲性能。
[0123] 實(shí)施例二
[0124] 本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法,如圖5所示,所述方法應(yīng)用于 分布式數(shù)據(jù)存儲系統(tǒng),該系統(tǒng)中包括N個DC,其中,每一個DC中存儲有跨DC數(shù)據(jù)地址信息, 本實(shí)施例中以第一 DC和第二DC為例進(jìn)行說明,所述方法包括:
[0125] 101、第一 DC獲取本地用戶發(fā)起的對第一文件的寫操作指令,該寫操作指令至少 包括第一文件的標(biāo)識。
[0126] 102、若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,且第一 DC中有存儲第一文 件的存儲資源,第一 DC則為第一文件在第一 DC中分配存儲地址,以便將第一文件寫入第一 DC中的存儲地址。
[0127] 103、若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,且第一 DC沒有存儲第一文 件的存儲資源,第一 DC則將第一文件的寫操作指令發(fā)送給第二DC,以使得第二DC寫入第一 文件,并將第一文件在第二DC內(nèi)的存儲地址發(fā)送至第一 DC。
[0128] 104、第一 DC將第一文件的標(biāo)識和該第一文件在第二DC的存儲地址的對應(yīng)關(guān)系保 存至跨DC數(shù)據(jù)地址信息中。
[0129] 針對以IMDG數(shù)據(jù)為代表的分布式數(shù)據(jù),為了對分布式數(shù)據(jù)的存儲系統(tǒng)中各個DC 內(nèi)的數(shù)據(jù)進(jìn)行統(tǒng)一管理,同時實(shí)現(xiàn)將絕大部分?jǐn)?shù)據(jù)讀寫操作限制在本地DC內(nèi)進(jìn)行,可以在 每一個DC中存儲有跨DC數(shù)據(jù)地址信息,這里,以第一 DC和第二DC為例進(jìn)行說明,由于DC 通常是根據(jù)用戶物理地域信息使用就近原則在與物理地域信息對應(yīng)的本地DC內(nèi)進(jìn)行數(shù)據(jù) 讀寫,只有在所屬DC資源不足或數(shù)據(jù)發(fā)生遷移的異常場景下才會存在少量同一個用戶跨 DC讀寫數(shù)據(jù)的場景,因此,可以將這些本應(yīng)在第一 DC內(nèi)進(jìn)行讀寫的數(shù)據(jù),卻因?yàn)榈谝?DC資 源不足或數(shù)據(jù)發(fā)生遷移而發(fā)放至第二DC內(nèi)進(jìn)行讀寫的數(shù)據(jù)稱為跨DC數(shù)據(jù)。
[0130] 例如,第一 DC中存儲有跨DC數(shù)據(jù)地址信息,該跨DC數(shù)據(jù)地址信息中保存有存儲 在第二DC中的本地用戶文件的標(biāo)識(例如文件所對應(yīng)的KEY值),及本地用戶文件存儲在 第二DC中的存儲地址(例如文件的在DC內(nèi)的存儲塊位置)的對應(yīng)關(guān)系信息。
[0131] 在步驟101中,第一 DC獲取本地用戶發(fā)起的對第一文件的寫操作指令,該寫操作 指令至少包括第一文件的標(biāo)識,該第一文件的標(biāo)識,可以為第一文件的KEY值,即對待寫入 的第一文件的邏輯編址,以便于第一 DC確定待寫入的第一文件實(shí)際存儲的DC和物理位置。
[0132] 具體的,當(dāng)接收到用戶A的寫操作指令時,第一DC獲取該寫操作指令所屬的用戶A 的信息,由于每個DC內(nèi)的數(shù)據(jù)都是為固定的一些用戶服務(wù)的,因此,第一DC可以根據(jù)用戶A 的信息在預(yù)置的第一 DC的用戶信息中確定該用戶A的寫操作指令是否為本地用戶(即第 一 DC對應(yīng)的用戶)發(fā)起的寫操作指令。
[0133] 若第一 DC確定該第一文件的寫操作指令為本地用戶發(fā)起的寫操作指令,那么,第 一 DC就可以根據(jù)該寫操作指令中的第一文件的標(biāo)識和第一 DC中已存儲的跨DC數(shù)據(jù)地址 信息確定寫入第一文件的具體物理位置,以便于將該第一文件寫入該物理位置,從而完成 用戶A的寫操作指令。
[0134] 在步驟102中,在獲取第一文件的寫操作指令之后,第一 DC根據(jù)跨DC數(shù)據(jù)地址信 息、第一文件的標(biāo)識以及第一 DC內(nèi)可用的存儲資源,確定第一文件應(yīng)該寫入哪一個DC,以 及在確定寫入的DC中第一文件的存儲地址。其中,該存儲地址可以為第一文件的存儲塊位 置。
[0135] 由于,第一 DC內(nèi)數(shù)據(jù)可能會發(fā)生遷移等異常場景,此時,該第一 DC的寫操作指令 可能需要進(jìn)行跨DC數(shù)據(jù)處理,即在第二DC內(nèi)完成寫操作指令,因此,在獲取到第一文件的 寫操作指令之后需要確定該第一文件所屬的DC是哪一個。
[0136] 而且,在每一個DC內(nèi)可能會設(shè)置有多個節(jié)點(diǎn)存儲數(shù)據(jù)(參見圖3),因此,在 確定寫入的D C中第一文件的存儲地址時,還需要確定第一文件在D C內(nèi)的存儲塊位置 (datablock),這樣一來,第一 DC就可以準(zhǔn)確的將第一文件寫入相應(yīng)DC內(nèi)的相應(yīng)存儲塊位 置處。
[0137] 具體的,在獲取第一文件的寫操作指令之后,第一 DC判斷第一文件的標(biāo)識是否在 跨DC數(shù)據(jù)地址信息中,若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識(即第一文件是第 一次寫入的文件),第一 DC則判斷第一 DC中是否有存儲第一文件的存儲資源,若第一 DC中 有存儲第一文件的存儲資源,第一 DC則為第一文件在第一 DC中分配存儲地址,以便將第一 文件寫入第一 DC中的存儲地址,從而完成用戶發(fā)起的對第一文件的寫操作指令。
[0138] 在步驟103中,與步驟102對應(yīng)的,在獲取第一文件的寫操作指令之后,若跨DC數(shù) 據(jù)地址信息中不包括第一文件的標(biāo)識(即第一文件是第一次寫入的文件),但是,第一 DC中 沒有存儲第一文件的存儲資源,此時,第一 DC則將第一文件的寫操作指令發(fā)送給第二DC, 以使得第二DC寫入第一文件,從而完成用戶發(fā)起的對第一文件的寫操作指令,同時第二DC 在寫入第一文件之后還可以將第一文件在第二DC內(nèi)的存儲地址發(fā)送至第一 DC,以使得第 一 DC將第一文件在第二DC的存儲地址和第一文件的標(biāo)識的對應(yīng)關(guān)系保存至跨DC數(shù)據(jù)地 址信息中。
[0139] 具體的,可以在第一 DC內(nèi)配置向其他DC轉(zhuǎn)發(fā)寫操作指令的轉(zhuǎn)發(fā)策略,例如,優(yōu)先 選取與第一 DC的物理位置靠近的DC或者存儲資源豐富的DC為第一 DC的備選DC(即第二 DC),這樣,當(dāng)跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,同時,第一 DC中沒有存儲第一 文件的存儲資源時,第一 DC就可以根據(jù)該轉(zhuǎn)發(fā)策略,將第一文件的寫操作指令發(fā)送給第二 DC,以使得第二DC寫入第一文件,從而完成用戶發(fā)起的對第一文件的寫操作指令。
[0140] 在步驟104中,由于第一文件本來是屬于第一 DC的數(shù)據(jù),但因?yàn)榇鎯Y源不足寫 入了第二DC,因此,第一文件可作為跨DC數(shù)據(jù)更新至跨DC數(shù)據(jù)地址信息中,即將第一文件 的標(biāo)識和第二DC的存儲地址的對應(yīng)關(guān)系保存至跨DC數(shù)據(jù)地址信息中,以便第一 DC在此接 收到第一文件的寫操作指令之后,根據(jù)更新后的跨DC數(shù)據(jù)地址信息將該寫操作指令發(fā)送 至第二DC,以便于第二DC將第一文件寫入所述第二DC中的存儲地址。
[0141] 另外,在第一 DC接收本地用戶發(fā)起的對第一文件的寫操作指令之后,第一 DC判斷 第一文件的標(biāo)識是否在跨DC數(shù)據(jù)地址信息中,若跨DC數(shù)據(jù)地址信息中包括第一文件的標(biāo) 識(即第一文件之前已經(jīng)寫入過第二DC),此時,由于跨DC數(shù)據(jù)地址信息中包含有第一文件 的標(biāo)識與第一文件的存儲地址的對應(yīng)關(guān)系,第一 DC根據(jù)第一文件的標(biāo)識在跨DC數(shù)據(jù)地址 信息中查找第一文件在第二DC中的存儲地址;并將第一文件的寫操作指令和第一文件在 第二DC中的存儲地址發(fā)送至第二DC,以使得第二DC將第一文件寫入第二DC中的存儲地 址,這樣,在完成本地用戶的寫操作指令的同時,對寫入的第一文件完成跨DC操作。
[0142] 類似的,第一 DC獲取本地用戶發(fā)起的對第一文件的讀操作指令,讀操作指令至少 包括第一文件的標(biāo)識(例如KEY值);相應(yīng)的,第一 DC在獲取到第一文件的讀操作指令之 后,在跨DC數(shù)據(jù)地址信息中查詢是否包含該第一文件的標(biāo)識,若跨DC數(shù)據(jù)地址信息中不包 括第一文件的標(biāo)識(即第一文件沒有存儲第二DC中),第一 DC則根據(jù)第一文件的標(biāo)識在第 一 DC中讀取第一文件。
[0143] 相應(yīng)的,若跨DC數(shù)據(jù)地址信息中包含第一文件的標(biāo)識,由于跨DC數(shù)據(jù)地址信息中 包含有第一文件的標(biāo)識與第一文件的存儲地址的對應(yīng)關(guān)系,第一 DC就可以在跨DC數(shù)據(jù)地 址信息中查找第一文件在第二DC中的存儲地址;然后,第一DC將第一文件的讀操作指令和 第一文件在第二DC中的存儲地址發(fā)送至第二DC,以使得第二DC從第二DC中的存儲地址處 讀取第一文件。
[0144] 另外,在第一 DC將第一文件的讀操作指令和第一文件在第二DC中的存儲地址發(fā) 送至第二DC之后,第一 DC還可以從第二DC獲取第一文件;并將第一文件和第一文件的標(biāo) 識保存至第一 DC的高速緩存中,以便第一 DC再次接收到第一文件的讀操作指令時,可以直 接從第一 DC的高速緩存中讀取第一文件。這樣一來,用戶下一次觸發(fā)相同的讀操作指令 時,第一 DC可以根據(jù)高速緩存中以保存的該文件的標(biāo)識,及時為用戶獲取該待讀的文件。 而高速緩存中緩存的其他DC的數(shù)據(jù)可以定期的進(jìn)行更新,以保證待讀取的數(shù)據(jù)的訂閱關(guān) 系的時效性。
[0145] 另外,本發(fā)明的后續(xù)實(shí)施例中還提供了為避免某個DC出現(xiàn)故障導(dǎo)致該DC內(nèi)數(shù)據(jù) 不能及時恢復(fù)的解決方案,故此處不再贅述。
[0146] 至此,第一 DC通過獲取本地用戶發(fā)起的對第一文件的寫操作指令,并根據(jù)本地的 第一 DC自身的存儲資源和已存儲的跨DC數(shù)據(jù)地址信息,確定所述第一文件的寫入操作是 否屬于本地的第一 DC,若屬于第一 DC則直接執(zhí)行第一文件的寫操作指令,若屬于第二DC則 確定寫入第二DC的存儲地址,并且更新該跨DC數(shù)據(jù)地址信息,以便再次接收到第一文件的 寫操作指令時及時將第一文件的寫操作指令轉(zhuǎn)發(fā)至第二DC執(zhí)行,這樣一來,第一 DC將絕大 部分本地用戶發(fā)起寫操作指令的執(zhí)行操作限制在本地第一 DC內(nèi)進(jìn)行,同時,在因存儲資源 不足等異常場景需要對寫操作指令進(jìn)行跨DC操作時,及時根據(jù)跨DC數(shù)據(jù)地址信息將寫操 作指令調(diào)度至其他DC內(nèi)進(jìn)行,避免了在現(xiàn)有技術(shù)中,對于使用VPN通道將各個DC內(nèi)的數(shù)據(jù) 均衡存儲至各個DC的服務(wù)器中的數(shù)據(jù)進(jìn)行訪問時,可能帶來的VPN通道擁塞或者M(jìn)DG數(shù) 據(jù)的存儲性能降低的問題。
[0147] 本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法,如圖6所示,包括:
[0148] 201、轉(zhuǎn)發(fā)設(shè)備獲取第一文件的寫操作指令或讀操作指令。
[0149] 具體的,該轉(zhuǎn)發(fā)設(shè)備心可以應(yīng)用于N(N> 1)個DC構(gòu)成的分布式數(shù)據(jù)存儲系統(tǒng)中, 該轉(zhuǎn)發(fā)設(shè)備與N個DC分別相連,具體的,該轉(zhuǎn)發(fā)設(shè)備中可以設(shè)有API接口,為各個DC轉(zhuǎn)發(fā) 用戶下發(fā)的讀/寫操作指令、用戶的信息、數(shù)據(jù)備份指令以及數(shù)據(jù)恢復(fù)指令等,實(shí)現(xiàn)對各個 DC的同一調(diào)度。
[0150] 這樣一來,屬于不同DC的不同用戶可以不用區(qū)分地域的不同,同一向轉(zhuǎn)發(fā)設(shè)備發(fā) 送第一文件的寫操作指令或讀操作指令,轉(zhuǎn)發(fā)設(shè)備可進(jìn)一步根據(jù)寫操作指令或讀操作指令 所對應(yīng)的用戶的信息,將寫操作指令或讀操作指令轉(zhuǎn)發(fā)至相應(yīng)的DC中。
[0151] 202、轉(zhuǎn)發(fā)設(shè)備查詢發(fā)起第一文件的寫操作指令或讀操作指令的用戶的信息。
[0152] 具體的,在轉(zhuǎn)發(fā)設(shè)備獲取用戶A發(fā)起的第一文件的寫操作指令或讀操作指令之 后,由于每個DC內(nèi)的數(shù)據(jù)都是為固定的一些用戶服務(wù)的,因此,轉(zhuǎn)發(fā)設(shè)備可以查詢發(fā)起第 一文件的寫操作指令或讀操作指令的用戶A的信息。
[0153] 203、轉(zhuǎn)發(fā)設(shè)備根據(jù)用戶的信息以及預(yù)置的N個DC的用戶信息,確定第一文件的寫 操作指令或讀操作指令為針對第一 DC的寫操作指令或讀操作指令,該第一 DC為N個DC中 的任一個,N > 1。
[0154] 轉(zhuǎn)發(fā)設(shè)備內(nèi)存儲有N個DC的用戶信息,因此,轉(zhuǎn)發(fā)設(shè)備得到用戶A的信息之后,根 據(jù)預(yù)置的N個DC的用戶信息,確定第一文件的寫操作指令或讀操作指令為針對第一 DC的 寫操作指令或讀操作指令,該第一 DC為N個DC中的任一個,N > 1。
[0155] 204、轉(zhuǎn)發(fā)設(shè)備將第一文件的寫操作指令或讀操作指令發(fā)送至第一 DC,以使得第一 DC執(zhí)行該寫操作指令或讀操作指令。
[0156] 具體的,第一 DC執(zhí)行該寫操作指令或讀操作指令的步驟可參見步驟101至103。
[0157] 至此,轉(zhuǎn)發(fā)設(shè)備通過查詢發(fā)起寫操作指令或讀操作指令的用戶的信息,根據(jù)已經(jīng) 預(yù)置的N個DC的用戶信息,確定接收到的寫操作指令或讀操作指令是針對哪一個DC的寫 操作指令或讀操作指令,進(jìn)而將寫操作指令或讀操作指令轉(zhuǎn)發(fā)至對應(yīng)的DC中執(zhí)行寫操作 指令或讀操作指令,這樣一來,各個DC可以為所有用戶提供統(tǒng)一的轉(zhuǎn)發(fā)設(shè)備接收寫操作指 令或讀操作指令,不用區(qū)分用戶的地域區(qū)別,轉(zhuǎn)發(fā)設(shè)備又可以針對各個DC根據(jù)已經(jīng)預(yù)置的 N個DC的用戶信息定向的確定寫操作指令或讀操作指令是針對哪一個指定DC的,這樣一 來,可以將絕大部分本地用戶發(fā)起寫操作指令的執(zhí)行操作限制在指定的本地DC內(nèi)進(jìn)行,無 需像現(xiàn)有技術(shù)那樣頻繁執(zhí)行跨DC數(shù)據(jù)的讀/寫操作指令,提高提升數(shù)據(jù)的存儲性能。
[0158] 實(shí)施例三
[0159] 本發(fā)明的實(shí)施例提供一種分布式數(shù)據(jù)的存儲方法,如圖7所示,方法應(yīng)用于分布 式數(shù)據(jù)存儲系統(tǒng),分布式數(shù)據(jù)存儲系統(tǒng)中可以包含多個DC和轉(zhuǎn)發(fā)設(shè)備,本發(fā)明實(shí)施例以第 一 DC和第二DC為例進(jìn)行說明,其中,每一個DC中存儲有跨DC數(shù)據(jù)地址信息表,例如,第一 DC的跨DC數(shù)據(jù)地址信息中保存有存儲在第二DC中的本地用戶文件的標(biāo)識,及本地用戶文 件存儲在第二DC中的存儲地址的對應(yīng)關(guān)系信息,該方法包括:
[0160] 301、第一 DC獲取轉(zhuǎn)發(fā)設(shè)備發(fā)送的第一文件的寫操作指令,該寫操作指令至少包 括第一文件的標(biāo)識。
[0161] 302a、若跨DC數(shù)據(jù)地址信息表中不包含第一文件的標(biāo)識,且第一 DC中有存儲第一 文件的存儲資源,第一 DC則為第一文件在第一 DC中分配存儲地址,以便將第一文件寫入第 一 DC中的存儲塊位置。
[0162] 302b、若跨DC數(shù)據(jù)地址信息中不包括第一文件的標(biāo)識,且第一 DC沒有存儲第一文 件的存儲資源,第一DC將第一文件的寫操作指令發(fā)送給第二DC,以使得第二DC寫入該第一 文件,并將第一文件在第二DC內(nèi)的存儲塊位置發(fā)送至第一 DC。
[0163] 302c、第一 DC將第一文件的標(biāo)識和第一文件在第二DC的存儲塊位置的對應(yīng)關(guān)系 保存至跨DC數(shù)據(jù)地址信息中,以便將第一文件寫入第二DC中的存儲塊位置。
[0164] 303a、若跨DC數(shù)據(jù)地址信息表中包含第一文件的標(biāo)識,第一 DC則根據(jù)跨DC數(shù)據(jù) 地址信息獲取寫入第一文件的第二DC和第一文件在第二DC內(nèi)的存儲塊位置。
[0165] 303b、第一 DC將第一文件的寫操作指令和第一文件在第二DC中的存儲塊位置發(fā) 送至第二DC,以使得第二DC將第一文件寫入第二DC中的存儲塊位置。
[0166] 本發(fā)明實(shí)施例中涉及的第一 DC和第二DC可以分別與轉(zhuǎn)發(fā)設(shè)備相連,組成分布式 數(shù)據(jù)的存儲系統(tǒng),該轉(zhuǎn)發(fā)設(shè)備中包括API接口,該API接口可以用于為DC轉(zhuǎn)發(fā)用戶下發(fā)的 讀/寫操作指令、用戶物理地域信息、數(shù)據(jù)備份指令以及數(shù)據(jù)恢復(fù)指令等,實(shí)現(xiàn)對DC的同一 調(diào)度。
[0167] 在步驟301中,第一 DC獲取轉(zhuǎn)發(fā)設(shè)備發(fā)送的第一文件的寫操作指令,該寫操作指 令至少包括第一文件的標(biāo)識。
[0168] 具體的,轉(zhuǎn)發(fā)設(shè)備接收到第一文件的寫操作指令后,查詢發(fā)起第一文件的寫操作 指令的用戶的信息;若轉(zhuǎn)發(fā)設(shè)備根據(jù)用戶的信息以及預(yù)置的N個DC的用戶信息,確定第一 文件的寫操作指令為針對第一 DC的寫操作指令,轉(zhuǎn)發(fā)設(shè)備則將第一文件的寫操作指令發(fā) 送至第一 DC。
[0169] 其中,該寫操作指令至少包括第一文件的標(biāo)識,該第一文件的標(biāo)識可以為待寫入 的第一文件的KEY值。
[0170] 另外,第一 DC內(nèi)存儲有跨DC數(shù)據(jù)地址信息表,該第一 DC的跨DC數(shù)據(jù)地址信息表 如表1所示。
[0171] 表 1
[0172]
【權(quán)利要求】
1. 一種分布式數(shù)據(jù)的存儲方法,其特征在于,所述方法應(yīng)用于分布式數(shù)據(jù)存儲系統(tǒng)中 N個數(shù)據(jù)中也DC的任一個DC,N > 1,所述方法包括: 第一 DC獲取本地用戶發(fā)起的對第一文件的寫操作指令,所述寫操作指令至少包括第 一文件的標(biāo)識,所述第一 DC為所述N個DC中的任一個; 若跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且所述第一 DC中有存儲所述第 一文件的存儲資源,所述第一 DC則為所述第一文件在所述第一 DC中分配存儲地址,W便將 所述第一文件寫入所述第一 DC中的存儲地址; 若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且所述第一 DC沒有存儲所 述第一文件的存儲資源,所述第一 DC則將所述第一文件的寫操作指令發(fā)送給第二DC,W使 得所述第二DC寫入所述第一文件,并發(fā)送所述第一文件在所述第二DC內(nèi)的存儲地址至所 述第一 DC,所述第二DC為所述N個DC中除所述第一 DC中的任一個; 所述第一 DC將所述第一文件的標(biāo)識和所述第一文件在所述第二DC的存儲地址的對應(yīng) 關(guān)系保存至所述跨DC數(shù)據(jù)地址信息中; 其中,所述跨DC數(shù)據(jù)地址信息中保存有存儲在所述第二DC中的本地用戶文件的標(biāo)識, 及所述本地用戶文件存儲在所述第二DC中的存儲地址的對應(yīng)關(guān)系。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在第一 DC接收本地用戶發(fā)起的對第一文 件的寫操作指令之后,還包括: 若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo)識,所述第一 DC則在所述跨DC數(shù) 據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址; 所述第一 DC將所述第一文件的寫操作指令和所述第一文件在所述第二DC中的存儲地 址發(fā)送至所述第二DC,W使得所述第二DC將所述第一文件寫入所述第二DC中的存儲地址。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述第一 DC獲取本地用戶發(fā)起的對 第一文件的寫操作指令,包括: 所述第一 DC查詢發(fā)起所述第一文件的寫操作指令的用戶的信息; 若所述用戶的信息符合預(yù)置的本地用戶信息,所述第一 DC則確定所述第一文件的寫 操作指令為本地用戶發(fā)起的對第一文件的寫操作指令。
4. 根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 所述第一 DC獲取本地用戶發(fā)起的對第一文件的讀操作指令,所述讀操作指令至少包 括第一文件的標(biāo)識; 若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,所述第一 DC則根據(jù)所述第 一文件的標(biāo)識在所述第一 DC中讀取所述第一文件。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第一 DC獲取本地用戶發(fā)起的對第 一文件的讀操作指令之后,還包括: 若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo)識,所述第一 DC則在所述跨DC數(shù) 據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址; 所述第一 DC將所述第一文件的讀操作指令和所述第一文件在所述第二DC中的存儲地 址發(fā)送至所述第二DC,W使得所述第二DC從所述第二DC中的存儲地址處讀取所述第一文 件。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述第一 DC將所述第一文件的讀操作 指令和所述第一文件在所述第二DC中的存儲地址發(fā)送至所述第二DC之后,還包括: 所述第一 DC從所述第二DC獲取所述第一文件; 所述第一 DC將所述第一文件和所述第一文件的標(biāo)識保存至所述第一 DC的高速緩存 中,W便所述第一 DC再次接收到所述第一文件的讀操作指令時,從所述第一 DC的高速緩存 中讀取所述第一文件。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,在所述第一 DC獲取本地用戶發(fā)起的對第 一文件的讀操作指令之后,還包括: 若所述第一 DC的高速緩存中包含有所述第一文件的標(biāo)識,所述第一 DC則從所述第一 DC的高速緩存中讀取所述第一文件。
8. 根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 所述第一 DC獲取備份策略信息,所述備份策略信息用于指示分別對其他M個DC中的 數(shù)據(jù)進(jìn)行數(shù)據(jù)備份,N-1 > M > 1 ; 所述第一 DC根據(jù)所述備份策略信息建立與所述其他M個DC建立備份通道,W便根據(jù) 所述備份策略信息將所述其他M個DC中的數(shù)據(jù)備份至所述第一 DC。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 若所述第二DC發(fā)生故障,所述第一 DC則獲取針對所述第二DC的數(shù)據(jù)恢復(fù)指令; 所述第一 DC根據(jù)所述數(shù)據(jù)恢復(fù)指令,將所述第一 DC內(nèi)已備份的所述第二DC的數(shù)據(jù)恢 復(fù)至所述第一 DC ; 所述第一 DC將已恢復(fù)的所述第二DC的數(shù)據(jù)在所述第一 DC的存儲地址更新至所述跨 DC數(shù)據(jù)地址信息。
10. -種分布式數(shù)據(jù)的存儲方法,其特征在于,所述方法應(yīng)用于分布式數(shù)據(jù)存儲系統(tǒng)中 N個數(shù)據(jù)中也DC的任一個DC,N > 1,所述方法包括: 轉(zhuǎn)發(fā)設(shè)備獲取第一文件的寫操作指令或讀操作指令; 所述轉(zhuǎn)發(fā)設(shè)備查詢發(fā)起所述第一文件的寫操作指令或讀操作指令的用戶的信息; 所述轉(zhuǎn)發(fā)設(shè)備根據(jù)所述用戶的信息W及預(yù)置的所述N個DC的用戶信息,確定所述第一 文件的寫操作指令或讀操作指令為針對第一 DC的寫操作指令或讀操作指令,所述第一 DC 為所述N個DC中的任一個,N > 1 ; 所述轉(zhuǎn)發(fā)設(shè)備將所述第一文件的寫操作指令或讀操作指令發(fā)送至所述第一 DC。
11. 一種數(shù)據(jù)中也DC,其特征在于,所述DC應(yīng)用于包含有N個DC的分布式數(shù)據(jù)存儲系 統(tǒng),其中,所述DC中存儲有跨DC數(shù)據(jù)地址信息,N > 1,所述DC包括: 獲取單元,用于獲取本地用戶發(fā)起的對第一文件的寫操作指令,所述寫操作指令至少 包括第一文件的標(biāo)識; 本地讀寫單元,用于若跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且第一 DC中 有存儲所述第一文件的存儲資源,則為所述第一文件在所述第一 DC中分配存儲地址,W便 將所述第一文件寫入所述第一 DC中的存儲地址,所述第一 DC為所述N個DC中的任一個; 跨DC讀寫單元,用于若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識,且所述 第一 DC沒有存儲所述第一文件的存儲資源,則將所述第一文件的寫操作指令發(fā)送給第二 DC,W使得所述第二DC寫入所述第一文件,并將所述第一文件在所述第二DC內(nèi)的存儲地址 發(fā)送至所述第一 DC,所述第二DC為所述N個DC中除所述第一 DC中的任一個; 存儲單元,用于將所述第一文件的標(biāo)識和所述第一文件在所述第二DC的存儲地址的 對應(yīng)關(guān)系保存至所述跨DC數(shù)據(jù)地址信息中; 其中,所述跨DC數(shù)據(jù)地址信息中保存有存儲在所述第二DC中的本地用戶文件的標(biāo)識, 及所述本地用戶文件存儲在所述第二DC中的存儲地址的對應(yīng)關(guān)系。
12. 根據(jù)權(quán)利要求11所述的DC,其特征在于,所述DC還包括發(fā)送單元,其中, 所述跨DC讀寫單元,還用于若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo)識,貝U 在所述跨DC數(shù)據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址; 所述發(fā)送單元,用于將所述第一文件的寫操作指令和所述第一文件在所述第二DC中 的存儲地址發(fā)送至所述第二DC,W使得所述第二DC將所述第一文件寫入所述第二DC中的 存儲地址。
13. 根據(jù)權(quán)利要求11或12所述的DC,其特征在于, 所述獲取單元,具體用于查詢發(fā)起所述第一文件的寫操作指令的用戶的信息;若所述 用戶的信息符合預(yù)置的本地用戶信息,則確定所述第一文件的寫操作指令為本地用戶發(fā)起 的對第一文件的寫操作指令。
14. 根據(jù)權(quán)利要求11至13中任一項(xiàng)所述的DC,其特征在于, 所述獲取單元,還用于獲取本地用戶發(fā)起的對第一文件的讀操作指令,所述讀操作指 令至少包括第一文件的標(biāo)識; 所述本地讀寫單元,還用于若所述跨DC數(shù)據(jù)地址信息中不包括所述第一文件的標(biāo)識, 則根據(jù)所述第一文件的標(biāo)識在所述第一 DC中讀取所述第一文件。
15. 根據(jù)權(quán)利要求14所述的DC,其特征在于, 所述跨DC讀寫單元,還用于若所述跨DC數(shù)據(jù)地址信息中包括所述第一文件的標(biāo)識,貝U 在所述跨DC數(shù)據(jù)地址信息中查找所述第一文件在所述第二DC中的存儲地址; 所述地發(fā)送單元,還用于將所述第一文件的讀操作指令和所述第一文件在所述第二DC 中的存儲地址發(fā)送至所述第二DC, W使得所述第二DC所述第二DC中的存儲地址處讀取所 述第一文件。
16. 根據(jù)權(quán)利要求15所述的DC,其特征在于, 所述獲取單元,還用于從所述第二DC獲取所述第一文件; 所述存儲單元,還用于將所述第一文件和所述第一文件的標(biāo)識保存至所述第一 DC的 高速緩存中,W便所述第一 DC再次接收到所述第一文件的讀操作指令時,從所述第一 DC的 高速緩存中讀取所述第一文件。
17. 根據(jù)權(quán)利要求16所述的DC,其特征在于, 所述本地讀寫單元,還用于若所述第一 DC的高速緩存中包含有所述第一文件的標(biāo)識, 則從所述第一 DC的高速緩存中讀取所述第一文件。
18. 根據(jù)權(quán)利要求11至17中任一項(xiàng)所述的DC,其特征在于,所述DC還包括備份單元, 其中, 所述獲取單元,還用于獲取備份策略信息,所述備份策略信息用于指示分別對其他M 個DC中的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份,N-1 > M > 1 ; 所述備份單元,用于根據(jù)所述備份策略信息建立與所述其他M個DC建立備份通道,W 便根據(jù)所述備份策略信息將所述其他M個DC中的數(shù)據(jù)備份至所述第一 DC。
19. 根據(jù)權(quán)利要求18所述的DC,其特征在于,所述DC還包括容災(zāi)單元,其中, 所述獲取單元,還用于若所述第二DC發(fā)生故障,則獲取針對所述第二DC的數(shù)據(jù)恢復(fù)指 令; 所述容災(zāi)單元,用于根據(jù)所述數(shù)據(jù)恢復(fù)指令,將所述第一 DC內(nèi)已備份的所述第二DC的 數(shù)據(jù)恢復(fù)至所述第一 DC; 所述存儲單元,還用于將已恢復(fù)的所述第二DC的數(shù)據(jù)在所述第一 DC的存儲地址更新 至所述跨DC數(shù)據(jù)地址信息。
20. -種轉(zhuǎn)發(fā)設(shè)備,其特征在于,包括: 獲取單元,用于獲取第一文件的寫操作指令或讀操作指令; 查找單元,用于查詢發(fā)起所述第一文件的寫操作指令或讀操作指令的用戶的信息; 確定單元,用于根據(jù)所述用戶的信息W及預(yù)置的N個數(shù)據(jù)中也DC的用戶信息,確定所 述第一文件的寫操作指令或讀操作指令為針對第一 DC的寫操作指令或讀操作指令,所述 第一 DC為所述N個DC中的任一個,N > 1 ; 轉(zhuǎn)發(fā)單元,用于將所述第一文件的寫操作指令或讀操作指令發(fā)送至所述第一 DC。
21. -種分布式數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)包含至少一個如權(quán)利要求11至 19中任一項(xiàng)所述的數(shù)據(jù)中也DC,其中, 每一個DC中存儲有跨DC數(shù)據(jù)地址信息,所述跨DC數(shù)據(jù)地址信息中保存有存儲在其他 DC中的本地用戶文件的標(biāo)識,及所述本地用戶文件存儲在所述其他DC中的存儲地址的對 應(yīng)關(guān)系信息,N> 1。
22. 根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括如權(quán)利要求20所述的 轉(zhuǎn)發(fā)設(shè)備,所述轉(zhuǎn)發(fā)設(shè)備與所述每一個DC均相連。
【文檔編號】G06F3/06GK104461779SQ201410713367
【公開日】2015年3月25日 申請日期:2014年11月28日 優(yōu)先權(quán)日:2014年11月28日
【發(fā)明者】張森 申請人:華為技術(shù)有限公司