專(zhuān)利名稱(chēng):分布式目錄、數(shù)據(jù)庫(kù)和索引的制作方法
分布式目錄、數(shù)據(jù)庫(kù)和索引相關(guān)申請(qǐng)的交叉引用本申請(qǐng)要求于2010年3月12日提交的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)61/313,316的優(yōu)先權(quán),此處引用該申請(qǐng)的全部?jī)?nèi)容作為參考。 發(fā)明領(lǐng)域本公開(kāi)涉及數(shù)據(jù)管理系統(tǒng)。
背景技術(shù):
諸如備份服務(wù)器和文件服務(wù)器之類(lèi)的數(shù)據(jù)管理系統(tǒng)典型地被設(shè)計(jì)成被集中地存儲(chǔ)、管理和搜索。這種系統(tǒng)僅在用戶(hù)連接到系統(tǒng)時(shí)對(duì)用戶(hù)可用。這些集中式系統(tǒng)還傾向于是昂貴系統(tǒng),這些昂貴系統(tǒng)需要大量計(jì)算和存儲(chǔ)能力以及高吞吐量以服務(wù)于成千上萬(wàn)的遠(yuǎn)程用戶(hù)的訪(fǎng)問(wèn)工作負(fù)荷。對(duì)于訪(fǎng)問(wèn)集中式數(shù)據(jù)的人們來(lái)說(shuō),安全性可能是一個(gè)問(wèn)題。某種程度上,這是有問(wèn)題的,因?yàn)榧惺綌?shù)據(jù)不僅可能含有適于被特定用戶(hù)查看或操作的那些文件,還包含特定用戶(hù)不應(yīng)訪(fǎng)問(wèn)的文件。例如,集中數(shù)據(jù)管理系統(tǒng)可以包含來(lái)自其它用戶(hù)的文件,以及安全訪(fǎng)問(wèn)級(jí)別高于授權(quán)給特定用戶(hù)的安全級(jí)別的文件。與集中式系統(tǒng)對(duì)照,數(shù)據(jù)管理系統(tǒng)也可以是分布式的,具有彼此斷開(kāi)的存儲(chǔ)節(jié)點(diǎn)。然而,這種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)一般并不能很好地工作,且在端點(diǎn)需要更多的存儲(chǔ)和計(jì)算能力。這些計(jì)算需求可能隨著系統(tǒng)支持的用戶(hù)數(shù)目而快速地增加。
圖I說(shuō)明根據(jù)一些實(shí)施例管理用于一個(gè)或更多客戶(hù)端設(shè)備的分布式備份目錄的實(shí)施方式。圖2說(shuō)明根據(jù)一些實(shí)施例在備份期間管理分布式備份高速緩存的實(shí)施方式。圖3說(shuō)明根據(jù)一些實(shí)施例使用虛擬文件指針的分布式索引的實(shí)施方式。概述在第一組實(shí)施例中,一種方法包括將第一計(jì)算機(jī)系統(tǒng)上的本地目錄與產(chǎn)品文件系統(tǒng)進(jìn)行比較以識(shí)別第一文件,該第一文件具有元數(shù)據(jù)且存在于產(chǎn)品文件系統(tǒng)內(nèi);識(shí)別代表第一文件的一組存儲(chǔ)塊;將第一文件轉(zhuǎn)移到第一計(jì)算機(jī)系統(tǒng)上的本地高速緩存,其中第一文件在本地高速緩存中表達(dá)為存儲(chǔ)塊組,且其中存儲(chǔ)塊組是代表產(chǎn)品文件系統(tǒng)內(nèi)的其他文件的本地高速緩存塊的較大集合的子集,且其中本地高速緩存塊中的每一個(gè)能夠被存儲(chǔ)在本地高速緩存內(nèi)和第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器上;在第一計(jì)算機(jī)系統(tǒng)的本地目錄中生成delta條目,其中delta條目包括涉及第一文件且與生成delta條目的時(shí)間指示相關(guān)的元數(shù)據(jù);通過(guò)將存儲(chǔ)塊組轉(zhuǎn)移到存儲(chǔ)服務(wù)器,將第一文件轉(zhuǎn)移到存儲(chǔ)服務(wù)器;以及更新第二計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程目錄以在delta條目中反應(yīng)元數(shù)據(jù)。這些實(shí)施例中的某一些還包含確定本地高速緩存是否到達(dá)大小限制;如果本地高速緩存到達(dá)大小限制,則在本地高速緩存中的本地高速緩存塊的集合內(nèi)識(shí)別原先成功備份到存儲(chǔ)服務(wù)器的候選塊,其中識(shí)別候選塊包括將候選塊的時(shí)間戳與本地高速緩存到存儲(chǔ)服務(wù)器的最后成功存儲(chǔ)的時(shí)間進(jìn)行比較;以及刪除候選塊以減小本地高速緩存的大小。這些實(shí)施例中的某一些還包括在本地高速緩存中重新存入原先從本地高速緩存刪除的存儲(chǔ)塊。其他實(shí)施例還包括在第一計(jì)算機(jī)系統(tǒng)上構(gòu)建文件的可搜索索引,該文件包括第一文件,其中文件指針與第一文件相關(guān),且其中文件指針還與代表第一文件的存儲(chǔ)塊組的身份相關(guān);使用索引識(shí)別到第一文件的文件指針;使用第一指針識(shí)別代表第一文件的存儲(chǔ)塊組,其中存儲(chǔ)塊組包括位于第一計(jì)算機(jī)系統(tǒng)上的本地塊的子集,以及沒(méi)有位于第一計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程塊的子集;將遠(yuǎn)程塊的子集轉(zhuǎn)移到第一計(jì)算機(jī)系統(tǒng);以及基于本地和遠(yuǎn)程塊的組合重構(gòu)第一文件,其中在一些這種實(shí)施例中,構(gòu)建文件的可搜索索引包括使用文件指針抓取文件內(nèi)容。在另外的其他實(shí)施例中,第一文件在第一時(shí)間點(diǎn)之后被修改,且僅在第一時(shí)間點(diǎn)之后進(jìn)入的本地目錄中的那些條目被發(fā)送到第二計(jì)算機(jī)系統(tǒng)。附加實(shí)施例包括其中第一文件至少被部分地識(shí)別,因?yàn)榈谝晃募漠a(chǎn)品文件系統(tǒng)刪除,其中第一文件被至少部分地識(shí)別,因?yàn)榈谝晃募惶砑拥疆a(chǎn)品文件系統(tǒng)中或在其中被修改;其中本地目錄配置成包括對(duì)應(yīng)于多個(gè)存儲(chǔ)客戶(hù)端的條目;其中將第一文件轉(zhuǎn)移到存儲(chǔ)服務(wù)器包括確定第一文件是否可以被發(fā)送到第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器;以及在第一文件可以被發(fā)送到存儲(chǔ)服務(wù)器時(shí)將第一文件轉(zhuǎn)移到存儲(chǔ)服務(wù)器且更新遠(yuǎn)程目錄;其中將本地目錄與產(chǎn)品文件系統(tǒng)進(jìn)行比較、識(shí)別一組存儲(chǔ)塊、轉(zhuǎn)移到本地高速 緩存、在本地目錄中生成delta條目、轉(zhuǎn)移到存儲(chǔ)服務(wù)器以及更新遠(yuǎn)程目錄的步驟是通過(guò)第三和第四計(jì)算機(jī)系統(tǒng)執(zhí)行,使得第三和第四計(jì)算機(jī)系統(tǒng)使用與第一計(jì)算機(jī)系統(tǒng)相同的存儲(chǔ)服務(wù)器和遠(yuǎn)程目錄。第二組實(shí)施例包括編碼在一個(gè)或更多非臨時(shí)介質(zhì)中的邏輯,該邏輯包括用于執(zhí)行的代碼,且當(dāng)被處理器執(zhí)行時(shí),該代碼可操作為執(zhí)行包含上述實(shí)施例中任意一個(gè)或更多個(gè)實(shí)施例的操作。第三組實(shí)施例包括第一計(jì)算機(jī)系統(tǒng)上的本地目錄;第一計(jì)算機(jī)系統(tǒng)上的本地高速緩存;產(chǎn)品文件系統(tǒng);第二計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程目錄;第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器;運(yùn)行在第一計(jì)算機(jī)上的代理;第一計(jì)算機(jī)系統(tǒng)上能夠存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器;以及第一計(jì)算機(jī)系統(tǒng)上配置成執(zhí)行包含上述實(shí)施例中的任意一個(gè)或更多個(gè)實(shí)施例的操作的處理器。
具體實(shí)施例方式I.分布式目錄備份系統(tǒng)具有用于跟蹤什么數(shù)據(jù)已經(jīng)被備份的目錄。該目錄是一個(gè)存儲(chǔ)庫(kù),其中存儲(chǔ)在系統(tǒng)中備份的數(shù)據(jù)的元數(shù)據(jù)。該目錄典型地按照以下方式在集中式備份服務(wù)器上產(chǎn)生(a)作為每個(gè)備份會(huì)話(huà)的一部分,每個(gè)備份客戶(hù)端向備份服務(wù)器發(fā)送其整個(gè)目錄和文件結(jié)構(gòu)的快照;以及(b)備份服務(wù)器然后將如此接收的快照與當(dāng)前版本的目錄進(jìn)行比較以確定備份目錄的添加和刪除。在該系統(tǒng)中,整個(gè)快照可能需要被發(fā)送到集中式備份服務(wù)器,作為例如確定何時(shí)刪除文件的辦法。當(dāng)客戶(hù)端需要執(zhí)行恢復(fù)時(shí),它連接到備份服務(wù)器以通過(guò)整個(gè)集中式目錄搜索它所需要的文件。該方法可能導(dǎo)致昂貴的處理需求;當(dāng)用戶(hù)離線(xiàn)時(shí)缺少對(duì)備份的訪(fǎng)問(wèn);安全性問(wèn)題;以及使集中式備份服務(wù)器作為單點(diǎn)故障,這意味著如果備份服務(wù)器不能操作或不可達(dá),則整個(gè)備份設(shè)置不可用。每天發(fā)送整個(gè)目錄和文件結(jié)構(gòu)(或整個(gè)本地目錄)可能導(dǎo)致備份服務(wù)器上相當(dāng)大數(shù)量的日常處理,包括即使每天變化的目錄條目的數(shù)目很小,仍需要每天遍歷數(shù)以百萬(wàn)計(jì)的目錄條目。另外,所有目錄訪(fǎng)問(wèn)還需要在備份服務(wù)器上完成,要求備份服務(wù)器具有足夠的處理馬力以服務(wù)成千上萬(wàn)個(gè)用戶(hù)的工作負(fù)荷。例如,假設(shè)機(jī)器具有以下目錄結(jié)構(gòu)C —文件夾I〇具有修改時(shí)間TlO的文件I-A 〇具有修改時(shí)間T20的文件I-B〇文件夾1-1·具有修改時(shí)間T30的文件1-1-A·具有修改時(shí)間T40的文件1-1-B〇文件夾1-2·具有修改時(shí)間T50的文件1-2-A·具有修改時(shí)間T60的文件1-2-B—文件夾2〇具有修改時(shí)間T70的文件2-A〇具有修改時(shí)間T80的文件2-B〇文件夾2-1·具有修改時(shí)間T90的文件2-1-A·具有修改時(shí)間TlOO的文件2-1-B〇文件夾2-2·具有修改時(shí)間TllO的文件2-2-A·具有修改時(shí)間T120的文件2-2-B首次完成備份時(shí),整個(gè)備份目錄從本地機(jī)器移向服務(wù)器,即,移動(dòng)下面的備份目錄條目I. C 2.文件夾I是C的子文件夾3.文件I-A是文件夾I的子文件,具有修改時(shí)間TlO4.文件I-B是文件夾I的子文件,具有修改時(shí)間T205.文件夾1-1是文件夾I的子文件夾6.文件1-1-A是文件夾1-1的子文件,具有修改時(shí)間T307.文件1-1-B是文件夾1-1的子文件,具有修改時(shí)間T408.文件夾1-2是文件夾2的子文件夾9.文件1-2-A是文件夾1-2的子文件,具有修改時(shí)間T5010.文件1-2-B是文件夾1-2的子文件,具有修改時(shí)間T6011.文件夾2是C的子文件夾12.文件2-A是文件夾2的子文件,具有修改時(shí)間T70
13.文件2-B是文件夾2的子文件,具有修改時(shí)間T8014.文件夾2-1是文件夾2的子文件夾15.文件2-1-A是文件夾2_1的子文件,具有修改時(shí)間T90
16.文件2-1-B是文件夾2_1的子文件,具有修改時(shí)間TlOO17.文件夾2-2是文件夾2的子文件夾18.文件2-2-A是文件夾2_2的子文件,具有修改時(shí)間TllO19.文件2-2-B是文件夾2_2的子文件,具有修改時(shí)間T120現(xiàn)在假設(shè)在機(jī)器上發(fā)生以下行為I.在時(shí)間T150,文件1-2-C被添加到文件夾1_22.在時(shí)間T160,文件1-1-A從文件夾1_1刪除3.在時(shí)間T170,文件夾2-1中的文件2_1_B更新到較新的版本作為上述行為的結(jié)果,文件結(jié)構(gòu)看上去如下C —文件夾I〇具有修改時(shí)間TlO的文件I-A〇具有修改時(shí)間T20的文件I-B〇文件夾1-1·具有修改時(shí)間T30的文件1-1-B〇文件夾1-2·具有修改時(shí)間T50的文件1-2-A 具有修改時(shí)間T60的文件1-2-B·具有修改時(shí)間T150的文件1-2-C—文件夾2〇具有修改時(shí)間T70的文件2-A〇具有修改時(shí)間T80的文件2-B〇文件夾2-1·具有修改時(shí)間T90的文件2-1-A·具有修改時(shí)間T170的文件2-1-B〇文件夾2-2·具有修改時(shí)間TllO的文件2-2-A·具有修改時(shí)間T120的文件2-2-B因此,常規(guī)備份客戶(hù)端將向備份服務(wù)器發(fā)送以下新備份目錄(或相當(dāng)?shù)奈募Y(jié)構(gòu))I. C 2.文件夾I是C的子文件夾3.文件I-A是文件夾I的子文件,具有修改時(shí)間TlO4.文件I-B是文件夾I的子文件,具有修改時(shí)間T205.文件夾1-1是文件夾I的子文件夾6.文件1-1-A是文件夾1-1的子文件,具有修改時(shí)間T30
7.文件夾1-2是文件夾2的子文件夾8.文件1-2-A是文件夾1-2的子文件,具有修改時(shí)間T509.文件1-2-B是文件夾1-2的子文件,具有修改時(shí)間T6010.文件1-2-C是文件夾1-2的子文件,具有修改時(shí)間T15011.文件夾2是C的子文件夾12.文件2-A是文件夾2的子文件,具有修改時(shí)間T7013.文件2-B是文件夾2的子文件,具有修改時(shí)間T80 14.文件夾2-1是文件夾2的子文件夾15.文件2-1-A是文件夾2_1的子文件,具有修改時(shí)間T9016.文件2-1-B是文件夾2_1的子文件,具有修改時(shí)間T17017.文件夾2-2是文件夾2的子文件夾18.文件2-2-A是文件夾2-2的子文件,具有修改時(shí)間TllO19.文件2-2-B是文件夾2-2的子文件,具有修改時(shí)間T120備份服務(wù)器現(xiàn)在將兩組目錄整體地進(jìn)行比較以確定發(fā)生什么變化且然后在備份目錄中記錄變化。即使在對(duì)于3個(gè)條目的改變的簡(jiǎn)單示例中,19個(gè)條目被發(fā)送到備份服務(wù)器。在真實(shí)系統(tǒng)中,被發(fā)送到備份服務(wù)器的條目的數(shù)目將比變化條目的數(shù)目大兩個(gè)或三個(gè)量級(jí)。當(dāng)乘以成千上萬(wàn)個(gè)機(jī)器時(shí),這意味著數(shù)以百萬(wàn)計(jì)的目錄條目被常規(guī)地發(fā)送和常規(guī)地分析,要求備份服務(wù)器上巨大的處理和存儲(chǔ)能力。對(duì)于備份的非離線(xiàn)訪(fǎng)問(wèn)對(duì)于頻繁離線(xiàn)的機(jī)器,如果機(jī)器不處于企業(yè)網(wǎng)絡(luò)上,則備份系統(tǒng)是不可訪(fǎng)問(wèn)的。安全件典型地,在整個(gè)目錄執(zhí)行用戶(hù)搜索,且然后根據(jù)應(yīng)用于目錄條目的訪(fǎng)問(wèn)控制列表(ACL)過(guò)濾結(jié)果。如果在過(guò)濾機(jī)制中存在小錯(cuò)誤,則終端用戶(hù)可能獲得對(duì)整個(gè)備份目錄的訪(fǎng)問(wèn),因而強(qiáng)加了明顯的安全性風(fēng)險(xiǎn)。單點(diǎn)故障如果備份服務(wù)器宕機(jī),則整個(gè)備份組不可用。分布式目錄在此處描述的某些實(shí)施例中,專(zhuān)用于每個(gè)備份客戶(hù)端的備份目錄的拷貝被保存在備份客戶(hù)端上。備份目錄的比較以分布式方式在備份客戶(hù)端本身處發(fā)生,使得僅備份目錄中的變化被發(fā)送到備份服務(wù)器。目錄可以配置成包括用于單個(gè)備份客戶(hù)端和多個(gè)備份客戶(hù)端的目錄。在上面引用的簡(jiǎn)單示例中,僅下面的信息將被發(fā)送到備份服務(wù)器I.在時(shí)間T150,在文件夾1-2中添加文件1_2_C2.從文件夾1-1刪除文件1-1-A3.在時(shí)間T170,文件夾2-1中的文件2_1_B變化到較新的版本在源處保存?zhèn)浞菽夸浀谋镜乜截惽覍⑺c生產(chǎn)文件系統(tǒng)進(jìn)行比較以確定delta變化的這種方法可以在源處檢測(cè)以下條件,且僅向備份服務(wù)器發(fā)送屬于這些變化的那些delta變化I.文件的重命名
2.文件的刪除3.文件的修改4.文件夾/目錄的重命名5.文件夾/目錄的刪除6.文件夾/目錄的修改圖I示出用于管理一個(gè)或多個(gè)客戶(hù)端設(shè)備的分布式備份目錄的系統(tǒng)的實(shí)現(xiàn)。備份代理100在客戶(hù)端計(jì)算機(jī)上或其他客戶(hù)端設(shè)備上實(shí)施且作為計(jì)算機(jī)或其他客戶(hù)端設(shè)備的一部分。多個(gè)客戶(hù)端可以典型地具有與單個(gè)集中式服務(wù)器110通信的代理。在一些 實(shí)施例中,代理100接收開(kāi)始備份的消息,這導(dǎo)致代理啟動(dòng)代理備份目錄120與產(chǎn)品庫(kù)(production volume)文件/文件夾結(jié)構(gòu)130的比較。在比較之后,代理100向服務(wù)器110發(fā)送備份目錄的delta(變化)。服務(wù)器向服務(wù)器備份目錄140應(yīng)用delta。服務(wù)器110(或服務(wù)器系統(tǒng))可以從包括多于1000個(gè)客戶(hù)端的很多客戶(hù)端設(shè)備獲得應(yīng)用delta。代理100和服務(wù)器110均可以通過(guò)硬件和軟件邏輯的某種組合提供,這種硬件和軟件邏輯包括通用目的和/或?qū)S媚康奶幚砉δ苄砸蕴峁┲辽僖粋€(gè)處理器,該處理器可以包括微控制器、微處理器或能夠?qū)嵤┕δ艿囊恍┢渌壿嫞T如能夠執(zhí)行存儲(chǔ)指令的邏輯。服務(wù)器可以實(shí)施為一個(gè)服務(wù)器或彼此通信的多個(gè)服務(wù)器且可以包括多個(gè)處理器。代理和服務(wù)器均可以在軟件中通過(guò)執(zhí)行存儲(chǔ)在機(jī)器可讀介質(zhì)中的指令來(lái)實(shí)施??蛻?hù)端設(shè)備(具有代理)和服務(wù)器可以處于相同的位置且例如通過(guò)LAN通信或可以以地理上遠(yuǎn)程方式布置且通過(guò)廣域網(wǎng)(WAN)通信。代理備份目錄、產(chǎn)品庫(kù)和服務(wù)器備份目錄均由數(shù)據(jù)庫(kù)表達(dá),但是可以包括任意形式的合適存儲(chǔ)器,諸如磁性、光學(xué)或固態(tài)存儲(chǔ)器。分布式備份目錄的優(yōu)點(diǎn)可以包括以下一個(gè)或多個(gè)I.效率備份服務(wù)器并不必須花費(fèi)很大地比較用于系統(tǒng)中的每個(gè)備份客戶(hù)端的備份目錄。而是,每個(gè)備份客戶(hù)端可以確定自己的變化。該方法可以明顯減小備份服務(wù)器上的工作負(fù)荷,減小對(duì)于高性能備份基礎(chǔ)設(shè)施的需要。因?yàn)閮H通過(guò)網(wǎng)絡(luò)發(fā)送delta,其還減小了網(wǎng)絡(luò)帶寬需求。2.對(duì)于目錄的離線(xiàn)訪(fǎng)問(wèn)即使備份客戶(hù)端不處于企業(yè)網(wǎng)絡(luò)上,終端用戶(hù)仍可以訪(fǎng)問(wèn)備份目錄以進(jìn)行瀏覽和恢復(fù)。3.高可用性如果備份服務(wù)器臨時(shí)宕機(jī),終端用戶(hù)仍可以訪(fǎng)問(wèn)備份目錄和數(shù)據(jù)以進(jìn)行瀏覽和恢復(fù)。4.安全性終端用戶(hù)使用其本地備份目錄拷貝執(zhí)行備份目錄瀏覽和恢復(fù),該本地備份目錄拷貝僅含有用于其自己機(jī)器的目錄。這確保了每個(gè)終端用戶(hù)僅可以瀏覽該目錄和用戶(hù)自己的條目,且一個(gè)機(jī)器上的用戶(hù)不應(yīng)對(duì)于整個(gè)公司的整個(gè)備份目錄具有訪(fǎng)問(wèn)權(quán)限。當(dāng)向終端用戶(hù)提供自服務(wù)恢復(fù)時(shí),這種特征是尤其重要的。5.災(zāi)難恢復(fù)假設(shè)備份服務(wù)器丟失備份目錄,它可以通過(guò)從分布式備份目錄獲得備份目錄進(jìn)行重構(gòu)。6.減小備份服務(wù)器上的負(fù)荷大多數(shù)備份目錄瀏覽請(qǐng)求可以通過(guò)本地備份目錄滿(mǎn)足;因此用于瀏覽備份目錄的服務(wù)器工作負(fù)荷急劇減小。II.分布式備份數(shù)據(jù)
當(dāng)前備份系統(tǒng)中的備份數(shù)據(jù)典型地僅存儲(chǔ)在備份服務(wù)器上。這種方案具有以下缺
占-
^ \\\ ·備份服務(wù)器上的重負(fù)荷恢復(fù)和瀏覽操作需要備份服務(wù)器從備份服務(wù)器發(fā)送大量數(shù)據(jù)。這在備份服務(wù)器上輸入了明顯的負(fù)荷,需要高端基礎(chǔ)設(shè)施。WAN 低效所有恢復(fù)和瀏覽操作需要備份服務(wù)器從備份服務(wù)器發(fā)送大量數(shù)據(jù)。頻繁地,這種 數(shù)據(jù)通過(guò)廣域網(wǎng)(WAN),諸如從云備份服務(wù)器或向用于恢復(fù)的遠(yuǎn)程站點(diǎn)發(fā)發(fā)送,使得處理既昂貴又耗時(shí)。WAN恢復(fù)可能變得不切實(shí)際。對(duì)于備份的非離線(xiàn)訪(fǎng)問(wèn)對(duì)于頻繁離線(xiàn)的機(jī)器,例如,具有便攜式電腦的養(yǎng)路工,他們不能恢復(fù)其文件,除非他們?cè)谄髽I(yè)網(wǎng)絡(luò)上。單點(diǎn)故障如果備份服務(wù)器宕機(jī),則整個(gè)備份組不可用。而且,如果備份服務(wù)器磁盤(pán)損壞,則整個(gè)備份數(shù)據(jù)丟失。分布式數(shù)據(jù)存儲(chǔ)在此處描述的實(shí)施例中的一些中,備份服務(wù)器數(shù)據(jù)存儲(chǔ)是分布式的。每個(gè)備份客戶(hù)端備份數(shù)據(jù)也存儲(chǔ)在其作為高速緩存的本地存儲(chǔ)器中。高速緩存的大小可以被配置成在備份客戶(hù)端上僅存儲(chǔ)最新備份或存儲(chǔ)所有備份版本。高速緩存還可以配置成包括用于單個(gè)備份客戶(hù)端或多個(gè)備份客戶(hù)端的數(shù)據(jù)。使得備份數(shù)據(jù)不僅存儲(chǔ)在備份服務(wù)器上而且還存儲(chǔ)在備份客戶(hù)端上的分布備份數(shù)據(jù)存儲(chǔ)可以提供以下優(yōu)點(diǎn)其中的一個(gè)或更多個(gè)I. WAN高效因?yàn)槭褂脕?lái)自本地高速緩存的備份數(shù)據(jù)完成大多數(shù)恢復(fù),恢復(fù)較快且不需要消耗原來(lái)的WAN帶寬。2.未連接時(shí)用于連續(xù)數(shù)據(jù)保護(hù)的備份即使機(jī)器未連接到備份服務(wù)器,對(duì)于用戶(hù)而言,可以將變化備份到本地高速緩存。如果備份系統(tǒng)需要連續(xù)數(shù)據(jù)保護(hù),則這是尤其需要。在當(dāng)今世界,很多終端用戶(hù)喜歡在從公司網(wǎng)絡(luò)斷開(kāi)的同時(shí)在便攜式電腦上工作,這可能是非常有用的特征。3.未連接時(shí)的恢復(fù)即使機(jī)器未連接到備份服務(wù)器,終端用戶(hù)可以執(zhí)行恢復(fù)。4.高可用性如果由于某種原因備份數(shù)據(jù)庫(kù)臨時(shí)離線(xiàn),仍存在對(duì)備份數(shù)據(jù)的訪(fǎng)問(wèn)。5.災(zāi)難恢復(fù)如果本地備份高速緩存足夠大以保持用于每個(gè)備份客戶(hù)端的整個(gè)備份數(shù)據(jù),其可以用于在備份服務(wù)器備份數(shù)據(jù)丟失時(shí)實(shí)現(xiàn)災(zāi)難恢復(fù)。6.服務(wù)器上的負(fù)荷的減小因?yàn)槭褂脕?lái)自本地高速緩存的備份數(shù)據(jù)完成大多數(shù)恢復(fù),這急劇地減小了備份服務(wù)器上的工作負(fù)荷,備份服務(wù)器在恢復(fù)期間讀取備份數(shù)據(jù)且將備份數(shù)據(jù)發(fā)送到機(jī)器。圖2示出在備份期間執(zhí)行為管理備份高速緩存的行為的實(shí)施。在備份操作期間,執(zhí)行以下步驟I.如有可能,連接到備份服務(wù)器
2.將文件備份到本地高速緩存和(如果連接備份服務(wù)器)備份服務(wù)器上3.如果本地高速緩存在備份期間空間已滿(mǎn),則刪除已經(jīng)發(fā)送給備份服務(wù)器的一些較舊的高速緩存數(shù)據(jù)4.如果在上述步驟中生成足夠的空間,則再次開(kāi)始文件的備份5.如果在高速緩存沒(méi)有生成足夠的空間,則檢查代理是否連接到備份服務(wù)器6.如果代理連接到備份服務(wù)器,則向備份服務(wù)器發(fā)送未被發(fā)送的數(shù)據(jù)且刪除已經(jīng)被發(fā)送給備份服務(wù)器的一些較舊的高速緩存數(shù)據(jù)7.如果代理未連接到備份服務(wù)器,則向終端用戶(hù)顯示連接到備份服務(wù)器的消息。確定已經(jīng)發(fā)送給備份服務(wù)器的較舊的高速緩存數(shù)據(jù)
確定哪個(gè)高速緩存數(shù)據(jù)是舊的一個(gè)方法是首先產(chǎn)生用于備份文件的塊的列表。在代理高速緩存處的這些參考?jí)K中的每一個(gè)在備份期間被更新具有當(dāng)前時(shí)間戳。該方法還跟蹤成功發(fā)送到備份服務(wù)器的最后備份的時(shí)間。如果需要更多的空間來(lái)執(zhí)行新備份,則具有比成功發(fā)送的最后一個(gè)備份更早的時(shí)間戳的所有塊可以被刪除?;謴?fù)期間的備份數(shù)據(jù)高速緩存重新裝入在文件的恢復(fù)需要從備份服務(wù)器取出備份數(shù)據(jù)時(shí),備份數(shù)據(jù)高速緩存還被智能地重新裝入。它可以這樣發(fā)生代理上的備份數(shù)據(jù)高速緩存不具有執(zhí)行恢復(fù)所需的塊。在這種情況中,這些塊被從服務(wù)器備份數(shù)據(jù)存儲(chǔ)庫(kù)取出且用于使用來(lái)自服務(wù)器的那些取出的塊來(lái)重新裝入代理備份高速緩存。該方法使得對(duì)后續(xù)恢復(fù)操作無(wú)需取出塊且因而減小了服務(wù)器上的工作負(fù)荷。III分布式索引一些備份系統(tǒng)索引每個(gè)備份文件以用于在服務(wù)器上進(jìn)行搜索。搜索可以是基于元數(shù)據(jù)的搜索或基于全文的搜索。在備份服務(wù)器上或在可以分析和索引備份數(shù)據(jù)的另一相關(guān)機(jī)器上生成索引。執(zhí)行針對(duì)特定文件的搜索的用戶(hù)登錄到備份服務(wù)器且執(zhí)行搜索。使用這種方法,針對(duì)文件的終端用戶(hù)搜索必須在備份服務(wù)器上搜索文件。該方法產(chǎn)生了安全性問(wèn)題即,終端用戶(hù)可能偶然地獲得對(duì)其他用戶(hù)的文件的訪(fǎng)問(wèn)。另外,需要構(gòu)建可調(diào)整大小的索引,且用戶(hù)必須在多個(gè)地方(自己的PC、備份服務(wù)器、文件服務(wù)器等)進(jìn)行搜索。備份服務(wù)器上的重負(fù)荷在服務(wù)器上執(zhí)行索引和搜索操作。這需要備份服務(wù)器上相當(dāng)大的馬力來(lái)執(zhí)行初始和進(jìn)行中的索引加上服務(wù)于搜索的工作負(fù)荷。高度可調(diào)整索引典型的備份服務(wù)器可以具有數(shù)以百萬(wàn)計(jì)的單獨(dú)文件。如果備份服務(wù)器支持全文搜索,它將需要可以索引數(shù)以百萬(wàn)計(jì)的文件的高度可調(diào)整索引。典型地,搜索該索引返回滿(mǎn)足搜索標(biāo)準(zhǔn)的所有文件,除非從索引可以知道每個(gè)文件的ACL。這導(dǎo)致潛在的安全性擔(dān)心終端用戶(hù)在搜索其自己的文檔時(shí),偶然地顯示來(lái)自其他用戶(hù)文件的結(jié)果。圖3示出代理300上的索引器如何可以具有虛擬文件指針310以提供在代理機(jī)器上的搜索的實(shí)施方式。
在此處描述的某些實(shí)施例中,在代理索引器300在終端用戶(hù)機(jī)器完成索引。終端用戶(hù)機(jī)器處的代理索引器300被賦予虛擬文件指針310。當(dāng)抓取文件內(nèi)容時(shí),索引器使用虛擬文件指針。當(dāng)終端用戶(hù)執(zhí)行搜索操作時(shí),如果在索引期間文本是文件的一部分,則索引器顯示虛擬文件。當(dāng)終端用戶(hù)執(zhí)行諸如打開(kāi)虛擬文件的操作時(shí),首先使用本地備份數(shù)據(jù)高速緩存320中的塊來(lái)構(gòu)建用于該文件的數(shù)據(jù)。如果在本地備份數(shù)據(jù)高速緩存中沒(méi)有發(fā)現(xiàn)一些塊,則從備份服務(wù)器塊存儲(chǔ)庫(kù)330無(wú)縫地恢復(fù)這些塊。這些實(shí)施例可以提供以下優(yōu)點(diǎn)其中一個(gè)或更多個(gè)I.安全搜索操作僅在客戶(hù)端用戶(hù)機(jī)器上發(fā)生,該客戶(hù)端機(jī)器僅知道源于該機(jī)器的文件。無(wú)需搜索整個(gè)服務(wù)器數(shù)據(jù)庫(kù)。2.未連接時(shí)搜索文件即使當(dāng)機(jī)器未連接到備份服務(wù)器時(shí),終端用戶(hù)也可以執(zhí)行全文搜索。3.服務(wù)器上搜索負(fù)荷的減小因?yàn)樗阉鞑僮髟诳蛻?hù)端用戶(hù)機(jī)器上完成,不使用服 務(wù)器資源。4.高可用性即使服務(wù)器臨時(shí)離線(xiàn),終端用戶(hù)仍可以執(zhí)行搜索操作。盡管在上面的示例實(shí)施例中描述和說(shuō)明了本公開(kāi),應(yīng)當(dāng)理解,僅以舉例的方式說(shuō)明本公開(kāi),且可以在不偏離本公開(kāi)的精神和范圍的條件下做出本公開(kāi)的實(shí)施方式的細(xì)節(jié)中的各種變化,本公開(kāi)僅由下面的權(quán)利要求限制。其他實(shí)施例處于下述權(quán)利要求的范圍內(nèi)。例如,本地高速緩存和目錄可以配置成維持用于本地機(jī)器的備份信息的完整拷貝,該備份信息也維持在遠(yuǎn)程備份服務(wù)器上。
權(quán)利要求
1.一種方法 ,包括 將第一計(jì)算機(jī)系統(tǒng)上的本地目錄與產(chǎn)品文件系統(tǒng)進(jìn)行比較以識(shí)別第一文件,該第一文件具有元數(shù)據(jù)且存在于所述產(chǎn)品文件系統(tǒng)內(nèi); 識(shí)別代表所述第一文件的存儲(chǔ)塊組; 將所述第一文件轉(zhuǎn)移到所述第一計(jì)算機(jī)系統(tǒng)上的本地高速緩存, 其中所述第一文件在所述本地高速緩存中被表達(dá)為所述存儲(chǔ)塊組,并且其中所述存儲(chǔ)塊組是代表所述產(chǎn)品文件系統(tǒng)內(nèi)的其他文件的本地高速緩存塊的較大集合的子集,并且 其中所述本地高速緩存塊中的每一個(gè)能夠被存儲(chǔ)在所述本地高速緩存內(nèi)和第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器上; 在第一計(jì)算機(jī)系統(tǒng)上的本地目錄中生成delta條目,其中delta條目包括涉及所述第一文件且與生成delta條目的時(shí)間指示相關(guān)的元數(shù)據(jù); 通過(guò)將所述存儲(chǔ)塊組轉(zhuǎn)移到所述存儲(chǔ)服務(wù)器,將所述第一文件轉(zhuǎn)移到所述存儲(chǔ)服務(wù)器;以及 更新所述第二計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程目錄以反應(yīng)所述delta條目中的所述元數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的方法,還包括 確定所述本地高速緩存是否到達(dá)大小限制; 如果所述本地高速緩存到達(dá)所述大小限制,則在所述本地高速緩存中的本地高速緩存塊的集合內(nèi)識(shí)別之前已經(jīng)被成功備份到所述存儲(chǔ)服務(wù)器的候選塊,其中識(shí)別所述候選塊包括將所述候選塊的時(shí)間戳與所述本地高速緩存到所述存儲(chǔ)服務(wù)器的最后成功存儲(chǔ)的時(shí)間進(jìn)行比較;以及 刪除所述候選塊以減小所述本地高速緩存的大小。
3.根據(jù)權(quán)利要求2所述的方法,還包括在所述本地高速緩存中重新存入之前已經(jīng)從所述本地高速緩存刪除的存儲(chǔ)塊。
4.根據(jù)權(quán)利要求I所述的方法,還包括 在所述第一計(jì)算機(jī)系統(tǒng)上構(gòu)建文件的可搜索索引,該文件包括所述第一文件,其中文件指針與所述第一文件相關(guān),且其中所述文件指針還與代表所述第一文件的所述存儲(chǔ)塊組的身份相關(guān); 使用所述索引識(shí)別所述第一文件的所述文件指針; 使用所述文件指針識(shí)別代表所述第一文件的所述存儲(chǔ)塊組,其中所述存儲(chǔ)塊組包括位于所述第一計(jì)算機(jī)系統(tǒng)上的本地塊的子集,以及沒(méi)有位于所述第一計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程塊的子集; 將所述遠(yuǎn)程塊的子集轉(zhuǎn)移到所述第一計(jì)算機(jī)系統(tǒng);以及 基于所述本地塊和所述遠(yuǎn)程塊的組合重構(gòu)所述第一文件。
5.根據(jù)權(quán)利要求4所述的方法,其中構(gòu)建文件的可搜索索引包括使用所述文件指針抓取文件內(nèi)容。
6.根據(jù)權(quán)利要求I所述的方法,其中所述第一文件在第一時(shí)間點(diǎn)之后被修改,且僅在第一時(shí)間點(diǎn)之后進(jìn)入的本地目錄中的那些條目被發(fā)送到所述第二計(jì)算機(jī)系統(tǒng)。
7.根據(jù)權(quán)利要求I所述的方法,其中,由于所述第一文件從所述產(chǎn)品文件系統(tǒng)中刪除,所述第一文件至少被部分地識(shí)別。
8.根據(jù)權(quán)利要求I所述的方法,其中,由于所述第一文件被添加到所述產(chǎn)品文件系統(tǒng)中或在所述產(chǎn)品文件系統(tǒng)中被修改,所述第一文件被至少部分地識(shí)別。
9.根據(jù)權(quán)利要求I所述的方法,其中,所述本地目錄配置成包括對(duì)應(yīng)于多個(gè)存儲(chǔ)客戶(hù)端的條目。
10.根據(jù)權(quán)利要求I所述的方法,其中,將所述第一文件轉(zhuǎn)移到所述存儲(chǔ)服務(wù)器包括 確定所述第一文件是否可以被發(fā)送到所述第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器;以及 在所述第一文件可被發(fā)送到所述存儲(chǔ)服務(wù)器時(shí)將所述第一文件轉(zhuǎn)移到所述存儲(chǔ)服務(wù)器且更新所述遠(yuǎn)程目錄。
11.根據(jù)權(quán)利要求I所述的方法,其中,通過(guò)第三和第四計(jì)算機(jī)系統(tǒng)執(zhí)行將本地目錄與產(chǎn)品文件系統(tǒng)進(jìn)行比較、識(shí)別存儲(chǔ)塊組、轉(zhuǎn)移到本地高速緩存、在本地目錄中生成delta條目、轉(zhuǎn)移到存儲(chǔ)服務(wù)器以及更新遠(yuǎn)程目錄的步驟,使得所述第三和第四計(jì)算機(jī)系統(tǒng)使用與所述第一計(jì)算機(jī)系統(tǒng)使用的相同的存儲(chǔ)服務(wù)器和遠(yuǎn)程目錄。
12.—種系統(tǒng),包括 第一計(jì)算機(jī)系統(tǒng)上的本地目錄; 第一計(jì)算機(jī)系統(tǒng)上的本地高速緩存; 產(chǎn)品文件系統(tǒng); 第二計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程目錄; 第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器; 運(yùn)行在所述第一計(jì)算機(jī)上的代理; 所述第一計(jì)算機(jī)系統(tǒng)上能夠存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器;以及 所述第一計(jì)算機(jī)系統(tǒng)上的處理器,配置成 將第一計(jì)算機(jī)系統(tǒng)上的本地目錄與產(chǎn)品文件系統(tǒng)進(jìn)行比較以識(shí)別第一文件,該第一文件具有元數(shù)據(jù)且存在于所述產(chǎn)品文件系統(tǒng)內(nèi); 識(shí)別代表所述第一文件的存儲(chǔ)塊組; 將所述第一文件轉(zhuǎn)移到所述第一計(jì)算機(jī)系統(tǒng)上的本地高速緩存, 其中所述第一文件在所述本地高速緩存中被表達(dá)為所述存儲(chǔ)塊組,并且其中所述存儲(chǔ)塊組是代表所述產(chǎn)品文件系統(tǒng)內(nèi)的其他文件的本地高速緩存塊的較大集合的子集,并且 其中所述本地高速緩存塊中的每一個(gè)能夠被存儲(chǔ)在所述本地高速緩存內(nèi)和第二計(jì)算機(jī)系統(tǒng)上的存儲(chǔ)服務(wù)器上; 在所述第一計(jì)算機(jī)系統(tǒng)的本地目錄中生成delta條目,其中所述delta條目包括涉及所述第一文件且與生成所述delta條目的時(shí)間指示相關(guān)的元數(shù)據(jù); 通過(guò)將所述存儲(chǔ)塊組轉(zhuǎn)移到所述存儲(chǔ)服務(wù)器,將所述第一文件轉(zhuǎn)移到所述存儲(chǔ)服務(wù)器;以及 更新所述第二計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程目錄以反應(yīng)delta條目中的元數(shù)據(jù)。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括 確所述定本地高速緩存是否到達(dá)大小限制; 如果所述本地高速緩存到達(dá)大小限制,則在所述本地高速緩存中的本地高速緩存塊的集合內(nèi)識(shí)別之前已經(jīng)成功備份到所述存儲(chǔ)服務(wù)器的候選塊,其中識(shí)別所述候選塊包括將所述候選塊的時(shí)間戳與所述本地高速緩存到所述存儲(chǔ)服務(wù)器的最后成功轉(zhuǎn)移的時(shí)間進(jìn)行比較;以及 刪除所述候選塊以減小所述本地高速緩存的大小。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),還包括在所述本地高速緩存中重新存入之前從所述本地高速緩存刪除的存儲(chǔ)塊。
15.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括 在所述第一計(jì)算機(jī)系統(tǒng)上構(gòu)建文件的可搜索索引,該文件包括所述第一文件,其中文件指針與所述第一文件相關(guān),且其中所述文件指針還與代表所述第一文件的存儲(chǔ)塊組的身份相關(guān); 使用所述索引識(shí)別指向所述第一文件的所述文件指針; 使用所述文件指針識(shí)別代表所述第一文件的存儲(chǔ)塊組,其中所述存儲(chǔ)塊組包括位于所述第一計(jì)算機(jī)系統(tǒng)上的本地塊的子集,以及沒(méi)有位于所述第一計(jì)算機(jī)系統(tǒng)上的遠(yuǎn)程塊的子集; 將所述遠(yuǎn)程塊的子集轉(zhuǎn)移到所述第一計(jì)算機(jī)系統(tǒng);以及 基于本地和遠(yuǎn)程塊的組合重構(gòu)所述第一文件。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,構(gòu)建文件的可搜索索引包括使用所述文件指針抓取文件內(nèi)容。
17.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述第一文件在第一時(shí)間點(diǎn)之后被修改,且僅在第一時(shí)間點(diǎn)之后進(jìn)入的所述本地目錄中的那些條目被發(fā)送到所述第二計(jì)算機(jī)系統(tǒng)。
18.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,由于所述第一文件從所述產(chǎn)品文件系統(tǒng)刪除,所述第一文件至少被部分地識(shí)別。
19.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,由于所述第一文件被添加到所述產(chǎn)品文件系統(tǒng)中或在所述產(chǎn)品文件系統(tǒng)中被修改,所述第一文件被至少部分地識(shí)別。
全文摘要
本發(fā)明涉及用于分布式目錄處理、數(shù)據(jù)高速緩存和索引以生成有效、可調(diào)整、安全、高度可用、能夠?yàn)?zāi)難恢復(fù)的備份和存儲(chǔ)系統(tǒng)的系統(tǒng)和方法。
文檔編號(hào)G06F17/40GK102934115SQ201180023657
公開(kāi)日2013年2月13日 申請(qǐng)日期2011年3月14日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者P.喬德利, S.賈因 申請(qǐng)人:科派恩股份有限公司