国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在網(wǎng)絡(luò)上傳輸文件系統(tǒng)變化的制作方法

      文檔序號:6484442閱讀:210來源:國知局
      在網(wǎng)絡(luò)上傳輸文件系統(tǒng)變化的制作方法
      【專利摘要】公開了在網(wǎng)絡(luò)上傳輸文件系統(tǒng)變化。在客戶機(jī)系統(tǒng)處計(jì)算數(shù)據(jù)的散列,其包括目錄要素的組塊,目錄要素的組塊包括按規(guī)范順序分類的一組要素中的一個或多個連續(xù)的目錄要素。在至少部分地基于計(jì)算的散列而確定存儲在遠(yuǎn)程服務(wù)器上的對應(yīng)的目錄要素與存儲在客戶機(jī)系統(tǒng)上的、包括組塊的目錄要素不同的情況下,將包括組塊的一個或多個目錄要素發(fā)送到遠(yuǎn)程服務(wù)器。
      【專利說明】在網(wǎng)絡(luò)上傳輸文件系統(tǒng)變化
      【背景技術(shù)】
      [0001]跨過網(wǎng)絡(luò)使遠(yuǎn)程(“服務(wù)器”)文件系統(tǒng)與本地(“客戶機(jī)”)文件系統(tǒng)同步的技術(shù)是已知的。遠(yuǎn)程文件系統(tǒng)可為本地文件系統(tǒng)的近拷貝;例如,它可表示本地文件系統(tǒng)的近期備份。為了使遠(yuǎn)程文件系統(tǒng)與本地文件系統(tǒng)同步,例如為了反映本地文件系統(tǒng)自從上一次同步以來的任何變化,更新遠(yuǎn)程文件系統(tǒng)的結(jié)構(gòu)、命名空間和元數(shù)據(jù)是必要的。
      [0002]典型的“完全”同步方法使用最大網(wǎng)絡(luò)帶寬但不使用額外的本地存儲來使文件系統(tǒng)的結(jié)構(gòu)、命名空間和元數(shù)據(jù)同步。比較本地文件系統(tǒng)上的每個文件的修改時間(“mtime”)和大小與服務(wù)器上的文件的mtime和大小。如果文件不存在,或者文件的mtime和/或大小與服務(wù)器上的不同,則客戶機(jī)在服務(wù)器上創(chuàng)建文件,并且使文件內(nèi)容同步??蛻魴C(jī)還更新與文件相關(guān)聯(lián)的任何其它元數(shù)據(jù)(用戶ID( “瓜0”)、群組10( “610”)、文件許可等)。月艮務(wù)器刪除不是由客戶機(jī)規(guī)定的任何文件。流行工具“rsync”使用這種方法。
      [0003]典型的“遞增”同步方法使用較少網(wǎng)絡(luò)帶寬,但使用一些本地存儲。在完全同步之后,客戶機(jī)將當(dāng)前文件系統(tǒng)結(jié)構(gòu)、命名空間和元數(shù)據(jù)存儲在“編目”(典型地?cái)?shù)據(jù)庫)中。在遞增同步期間,對于每個文件,客戶機(jī)首先詢問編目數(shù)據(jù)庫。如果在編目中未表示文件,或者文件的mtime和/或大小不同,則客戶機(jī)在服務(wù)器上創(chuàng)建文件,并且使文件內(nèi)容同步。如果在編目中表示了文件,而且文件的mtime和大小相同,則假設(shè)文件的內(nèi)容不變,而如果與編目中表示的不同,則客戶機(jī)只更新與文件相關(guān)聯(lián)的任何其它元數(shù)據(jù)。客戶機(jī)在服務(wù)器上刪除在編目中有表示但在本地文件系統(tǒng)上不再存在的任何文件。
      [0004]另一種遞增方法使用大致相同量的網(wǎng)絡(luò)帶寬但(通常)使用較少本地存儲。自從上一次備份以來對每個文件的每個操作都記錄在文件系統(tǒng)“日志”中。為了使遠(yuǎn)程文件系統(tǒng)同步,日志在實(shí)質(zhì)上如記錄那樣回放。這消除對于存儲每個文件的元數(shù)據(jù)的需要(因?yàn)榇蟛糠治募牟桓淖?,但它更復(fù)雜且易于有同步錯誤。
      【專利附圖】

      【附圖說明】
      [0005]在以下詳細(xì)描述和附圖中公開本發(fā)明的多種實(shí)施例。
      [0006]圖1是示出數(shù)據(jù)存儲系統(tǒng)的實(shí)施例的框圖。
      [0007]圖2是示出數(shù)據(jù)存儲系統(tǒng)的實(shí)施例的框圖。
      [0008]圖3是示出用以使文件系統(tǒng)信息同步的過程的實(shí)施例的流程圖。
      [0009]圖4是示出用于使文件系統(tǒng)信息同步的過程的實(shí)施例的流程圖。
      [0010]圖5是示出用于使用目錄要素的組塊來使目錄同步的過程的實(shí)施例的流程圖。
      [0011]圖6是示出用于使目錄服務(wù)要素的組塊的區(qū)間同步的過程的實(shí)施例的流程圖。
      [0012]圖7是示出用于使目錄服務(wù)要素的組塊同步的過程的實(shí)施例的流程圖。
      [0013]圖8是示出用于基于目錄信息來計(jì)算和比較散列值的過程的實(shí)施例的流程圖。
      [0014]圖9是示出用以使包括整個目錄的區(qū)間同步的過程的實(shí)施例的流程圖。
      [0015]圖10是示出計(jì)算機(jī)系統(tǒng)的實(shí)施例的框圖?!揪唧w實(shí)施方式】
      [0016]可用許多方式實(shí)施本發(fā)明,包括將本發(fā)明實(shí)施為過程、設(shè)備、系統(tǒng)、物的組合、包含在計(jì)算機(jī)可讀存儲介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,以及/或者處理器,諸如配置成執(zhí)行存儲在耦接到處理器上的存儲器上的以及/或者由該存儲器提供的指令的處理器。在本說明書中,這些實(shí)現(xiàn)或者本發(fā)明可采取的任何其它形式可被稱為技術(shù)。一般而言,在本發(fā)明的范圍內(nèi)可更改公開的過程的步驟的順序。除非另有說明,否則諸如處理器或存儲器的、被描述為配置成執(zhí)行任務(wù)的構(gòu)件可被實(shí)現(xiàn)臨時配置成在給定時間執(zhí)行任務(wù)的一般構(gòu)件,或者制造成執(zhí)行任務(wù)的特定構(gòu)件。如本文所用,術(shù)語“處理器”指的是配置成處理數(shù)據(jù)(諸如計(jì)算機(jī)程序指令)的一個或多個裝置、電路和/或處理核。
      [0017]在下面與附圖一起提供本發(fā)明的一個或多個實(shí)施例的詳細(xì)描述,附圖示出本發(fā)明的原理。與這樣的實(shí)施例結(jié)合起來描述本發(fā)明,但本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求限制,而且本發(fā)明包括許多備選方案、修改和等效物。在以下描述中闡述了許多具體細(xì)節(jié),以便提供本發(fā)明的詳盡理解。提供這些細(xì)節(jié)是為示例的目的,而且在有或沒有這些具體細(xì)節(jié)中的一些或全部的情況下,可根據(jù)權(quán)利要求來實(shí)踐本發(fā)明。為了清楚的目的,未詳細(xì)描述與本發(fā)明有關(guān)的【技術(shù)領(lǐng)域】中已知的技術(shù)材料,使得本發(fā)明不會不必要地模糊不清。
      [0018]公開了跨過網(wǎng)絡(luò)傳輸文件系統(tǒng)變化。跨過網(wǎng)絡(luò)將本地文件系統(tǒng)從例如備份客戶機(jī)系統(tǒng)(其本身可為生產(chǎn)服務(wù)器,諸如文件服務(wù)器)復(fù)制到遠(yuǎn)程服務(wù)器。保持文件系統(tǒng)信息(例如目錄結(jié)構(gòu)和其它元數(shù)據(jù))的同步。在一些實(shí)施例中,在備份或其它客戶機(jī)處,為了使文件系統(tǒng)信息或其一部分同步,創(chuàng)建關(guān)于每個節(jié)點(diǎn)(例如,目錄中的每個文件)的元數(shù)據(jù)的規(guī)范表示,并且按規(guī)范順序(例如按文件ID)對產(chǎn)生的目錄(或其它)要素分類。將目錄要素的產(chǎn)生的分類列表分成組塊。使包括每個組塊的數(shù)據(jù)散列,并且比較結(jié)果與關(guān)于存儲在服務(wù)器上的對應(yīng)的目錄信息而確定的對應(yīng)的值。如果該信息不匹配,則將相關(guān)聯(lián)的目錄要素發(fā)送到服務(wù)器。如果信息匹配,則在一些實(shí)施例中,比較在組塊的區(qū)間上的散列與基于服務(wù)器處的對應(yīng)的文件系統(tǒng)信息而確定的對應(yīng)的值,以確保服務(wù)器不會仍然存儲剛好落到例如關(guān)于已經(jīng)在客戶機(jī)處刪除的節(jié)點(diǎn)或一定范圍的節(jié)點(diǎn)的組塊之間的廢棄信息。在一些實(shí)施例中,一旦確定組塊(或者在一些實(shí)施例中,區(qū)間)散列匹配,將值存儲在客戶機(jī)處的散列高速緩沖存儲器中,以避免不得不與之通信,以及在相關(guān)聯(lián)的目錄要素在同步之間保持不變的情況下,在服務(wù)器處使用處理循環(huán)。在一些實(shí)施例中,一旦確定包括整個目錄的組塊同步,則計(jì)算包括整個目錄的目錄要素的分類列表的散列,并且將其存儲在散列高速緩沖存儲器中,作為關(guān)于其中一些或甚至許多整個目錄在同步之間保持不變的常見情況的進(jìn)一步優(yōu)化。
      [0019]圖1是示出數(shù)據(jù)存儲系統(tǒng)的實(shí)施例的框圖。在顯示的示例中,備份客戶機(jī)102通過連接104而連接到互聯(lián)網(wǎng)(或其它網(wǎng)絡(luò))106。配置成備份客戶機(jī)102上的文件系統(tǒng)數(shù)據(jù)(例如,文件和相關(guān)聯(lián)的文件系統(tǒng)結(jié)構(gòu)和其它元數(shù)據(jù))的備份服務(wù)器108也連接到互聯(lián)網(wǎng)(或其它網(wǎng)絡(luò))106。文件和文件系統(tǒng)信息通過互聯(lián)網(wǎng)(或其它網(wǎng)絡(luò))106從客戶機(jī)102發(fā)送到服務(wù)器108,以保持存儲在服務(wù)器108上的文件系統(tǒng)拷貝和客戶機(jī)102上的本地文件系統(tǒng)之間的同步。在這個示例中,顯示了單個客戶機(jī),但在多種實(shí)施例中,可通過網(wǎng)絡(luò)106將多個客戶機(jī)和/或文件系統(tǒng)復(fù)制到服務(wù)器108。在顯示的示例中,備份服務(wù)器108被表示為單個框,但在多種實(shí)施例中,服務(wù)器108可包括多個系統(tǒng),例如協(xié)調(diào)服務(wù)器,其通過網(wǎng)絡(luò)106而連接,或者以別的方式連接,例如通過獨(dú)立的網(wǎng)絡(luò)(諸如存儲區(qū)域網(wǎng)(SAN))連接到配置成存儲文件和/或其它復(fù)制的文件系統(tǒng)數(shù)據(jù)的一個或多個存儲節(jié)點(diǎn)上。
      [0020]圖2是示出數(shù)據(jù)存儲系統(tǒng)的實(shí)施例的框圖。在顯示的示例中,跨過網(wǎng)絡(luò)將客戶機(jī)系統(tǒng)上的目錄202a復(fù)制到服務(wù)器,并且將由目錄202b表示的相關(guān)聯(lián)的文件系統(tǒng)信息發(fā)送到服務(wù)器,并且隨著在客戶機(jī)處對本地文件系統(tǒng)作出改變,如果有任何改變的話,與對應(yīng)的目錄信息202a保持同步。在顯示的示例中,目錄202a包括五個文件,由0_4標(biāo)示且分別標(biāo)記為文件A、B、C、E和F,如圖2中顯示的那樣。由目錄202b表示的、服務(wù)器處的對應(yīng)信息在這個示例中變得與目錄信息202a不同步。在目錄202b處,目錄信息指示目錄包括六個節(jié)點(diǎn),由圖2中的0-5標(biāo)示,并且被標(biāo)識為文件A、B、C、D、E和F??僧a(chǎn)生圖2中顯示的狀態(tài)的示例為在同步之間從本地文件系統(tǒng)中刪除文件,諸如文件D。
      [0021]在多種實(shí)施例中,與典型的遞增方法相比,本文描述的方法使用大致相同量的網(wǎng)絡(luò)帶寬,但使用更少本地存儲器,并且不像日志方法那樣易于出錯。不是將每個文件的全部元數(shù)據(jù)存儲在編目中,此方法僅將〈文件路徑、mtime、大小 > 至〈文件ID>的映射存儲在“文件高速緩沖存儲器”中。像編目那樣,文件高速緩沖存儲器允許客戶機(jī)檢測自從上一次備份以來哪個文件不變。如果在文件高速緩沖存儲器中發(fā)現(xiàn)文件,則文件內(nèi)容在服務(wù)器上不變,并且僅需要更新元數(shù)據(jù)(例如WD、GID、許可等)。但是,為了最小化本地存儲,元數(shù)據(jù)不存儲在文件高速緩沖存儲器中。相反,元數(shù)據(jù)只是假設(shè)為很少有變化,并且正好得到核實(shí)。
      [0022]一旦要么在目錄中已經(jīng)創(chuàng)建(如果是新的)所有文件,要么已經(jīng)更新(如果有變化)所有文件,要么在文件高速緩沖存儲器(如果無變化)中已經(jīng)發(fā)現(xiàn)所有文件,則從文件系統(tǒng)中讀取它們的相關(guān)聯(lián)的元數(shù)據(jù)。每個文件的規(guī)范表示(“DIRELEM”)由其元數(shù)據(jù)形成。按文件ID對目錄中的DIRELEM的列表分類,并且將其分成組塊。然后使每個組塊“散列”(或“采指紋”),并且咨詢(consult) “散列高速緩沖存儲器”,以確定服務(wù)器上是否同樣存在由組塊表示的文件。
      [0023]如果在散列高速緩沖存儲器中未發(fā)現(xiàn)組塊的散列,則不知道服務(wù)器上是否存在由組塊表示的文件。組塊的散列、由組塊表示的第一文件的偏移以及由組塊表示的文件的數(shù)量被發(fā)送到服務(wù)器供核實(shí)。服務(wù)器形成待同步的目錄中的每個文件的相同規(guī)范表示,而且還按文件ID對DIRELEM的列表分類。服務(wù)器以特定偏移按照DIRELEM計(jì)算散列,并且將其與客戶機(jī)提供的散列比較。如果散列相同,則不需要更新文件。如果散列不同,則客戶機(jī)發(fā)送特定組塊的DIRELEM,使得服務(wù)器可更新文件的元數(shù)據(jù),以及/或者刪除在由組塊表示的文件ID的區(qū)間內(nèi)不再存在的文件。然后客戶機(jī)將組塊的散列添加到散列高速緩沖存儲器。
      [0024]如果在散列高速緩沖存儲器中發(fā)現(xiàn)組塊的散列,則肯定在服務(wù)器上存在由組塊表示的文件,但服務(wù)器仍然需要刪除存在于由組塊表示的文件和由前面的組塊(如果有的話)表示的那些之間的舊文件。因而,當(dāng)在散列高速緩沖存儲器中發(fā)現(xiàn)組塊的散列時,組塊添加到“區(qū)間”,或者運(yùn)行全部都存在于服務(wù)器上的組塊的列表。如果在散列高速緩沖存儲器中未發(fā)現(xiàn)后面的組塊的散列,則區(qū)間在組塊之前與服務(wù)器同步。作為優(yōu)化,如果到達(dá)目錄的末尾,而且區(qū)間覆蓋目錄中的所有文件,則區(qū)間的散列可添加到散列高速緩沖存儲器(通常將僅添加組塊的散列),使得服務(wù)器根本不需要針對整個目錄在備份之間保持不變的普通情況進(jìn)行咨詢。
      [0025]進(jìn)一步參照圖2,在顯示的示例中,以相同的規(guī)范順序,S卩,基于顯示的單個字母的文件ID的A-F的字母數(shù)字順序,表示目錄202a和目錄202b中的文件的文件系統(tǒng)信息。在多種實(shí)施例中,客戶機(jī)202a將目錄要素流分成組塊。在顯示的示例中,目錄要素A、B、C、E、F已經(jīng)分為第一組塊AB和第二組塊CEF。在客戶機(jī)處計(jì)算包括第一組塊AB中的目錄要素的數(shù)據(jù)的散列。在一些實(shí)施例中,檢查客戶機(jī)處的散列高速緩沖存儲器,以確定相同組塊以前(例如在同步之前)是否確認(rèn)存儲于服務(wù)器處。如果在高速緩沖存儲器中發(fā)現(xiàn)散列,則客戶機(jī)處理下一個組塊。如果在散列高速緩沖存儲器中未發(fā)現(xiàn)散列(例如,因?yàn)槟夸浶畔⒆詮纳弦淮瓮揭詠硪呀?jīng)改變),或者在其中未使用散列高速緩沖存儲器的實(shí)施例中,則散列和標(biāo)識目錄要素的順序列表內(nèi)的組塊的位置的相關(guān)聯(lián)的偏移(例如在顯示的示例中,指示組塊所包含的范圍的偏移信息0-1)被發(fā)送到服務(wù)器。
      [0026]在服務(wù)器處,如在客戶機(jī)處那樣,按相同的規(guī)范順序?qū)?yīng)于存儲在服務(wù)器處的目錄的信息分類。服務(wù)器配置成:接收偏移和散列;計(jì)算存儲在服務(wù)器上的目錄要素的順序列表中的對應(yīng)的記錄的散列;以及對客戶機(jī)返回指示服務(wù)器處的計(jì)算是否與客戶機(jī)所發(fā)送的散列值匹配的結(jié)果。
      [0027]在客戶機(jī)處,如果來自服務(wù)器的響應(yīng)指示散列匹配,則客戶機(jī)將散列添加到散列高速緩沖存儲器(如果存在),并且處理下一個組塊。如果來自服務(wù)器的響應(yīng)指示散列不匹配,則客戶機(jī)將包括組塊的目錄要素發(fā)送到服務(wù)器,并且將散列添加到散列高速緩沖存儲器(如果存在)。在一些實(shí)施例中,如果有的話,也使在散列高速緩沖存儲器中發(fā)現(xiàn)的連續(xù)的組塊的以前產(chǎn)生的區(qū)間同步,以檢測其中孤立要素或從本地文件系統(tǒng)中刪除的要素可保持在服務(wù)器上的文件系統(tǒng)信息中、但由于它們位于組塊之間而未被檢測到的任何情況。
      [0028]在圖2中顯示的示例中,將在服務(wù)器處確定在客戶機(jī)處針對對應(yīng)于組中的記錄2-4的組塊CEF而計(jì)算的散列與服務(wù)器上的記錄2-4的對應(yīng)的散列不匹配,因?yàn)槟切┯涗洶ńM塊CDE,而不是CEF。注意,在其中使用散列高速緩沖存儲器的實(shí)施例中,組塊CEF的散列將不在高速緩沖存儲器中,因?yàn)樵谇懊娴耐讲痪弥?,不會在服?wù)器(或在高速緩沖存儲器中)上發(fā)現(xiàn)鄰近的組塊CEF。因此,服務(wù)器將對客戶機(jī)返回“不匹配”結(jié)果,并且客戶機(jī)將把包括組塊的要素C、E和F發(fā)送到服務(wù)器。在服務(wù)器處,服務(wù)器將確定要素D在客戶機(jī)處已被刪除,并且服務(wù)器將在服務(wù)器處刪除其對應(yīng)的記錄,從而使目錄202a和202b修復(fù)為同步。
      [0029]圖3是示出用以使文件系統(tǒng)信息同步的過程的實(shí)施例的流程圖。在顯示的示例中,以目錄中的第一文件開始(302),獲得(304)文件狀況信息(和/或其它文件元數(shù)據(jù))。文件狀況信息的示例包括文件的大小和它上一次被修改的時間。如果文件是新的,或者無變化(自從上一次備份或其它復(fù)制以來)(306),則文件被發(fā)送到服務(wù)器(或其它復(fù)制目的地,本地或遠(yuǎn)程)(308)。如果文件無變化,以及/或者一旦文件或其變化已被發(fā)送(306,308),則獲得(310)文件的文件ID,并且文件ID與文件狀況信息結(jié)合起來形成目錄要素的規(guī)范表示(312)。對每個文件目錄重復(fù)該過程,直到目錄中的最后一個文件處理完為止(314),此時,在顯示的示例中,在客戶機(jī)和服務(wù)器之間的目錄的同步開始(316)。
      [0030]圖4是示出用于使文件系統(tǒng)信息同步的過程的實(shí)施例的流程圖。在一些實(shí)施例中,圖4的過程實(shí)現(xiàn)圖3的316。在顯示的示例中,當(dāng)目錄準(zhǔn)備好同步時(402),S卩,對于目錄中的每個文件,相關(guān)聯(lián)的目錄要素元數(shù)據(jù)的規(guī)范表示已經(jīng)創(chuàng)建,按規(guī)范順序(例如按文件ID)對包括目錄的目錄要素分類(404)。分類列表分成組塊,組塊各自包括一個或多個目錄要素(406)。在多種實(shí)施例中,例如,基于最后的修改時間、訪問權(quán)利等,組塊的大小和/或邊界可由一個或多個預(yù)先確定的和/或動態(tài)地確定的準(zhǔn)則確定,包括組塊大小和/或指示相鄰要素之間(或不在它們之間)的關(guān)系的數(shù)據(jù)。然后相應(yīng)的組塊用來使客戶機(jī)和服務(wù)器之間的目錄信息同步(408)。
      [0031]圖5是示出用于使用目錄要素的組塊來使目錄同步的過程的實(shí)施例的流程圖。在一些實(shí)施例中,圖5的過程實(shí)現(xiàn)圖4的408。在顯示的示例中,當(dāng)準(zhǔn)備好基于按規(guī)范順序分類的一組目錄要素來使目錄同步時(502),客戶機(jī)從目錄要素的第一組塊開始,并且基于它們來計(jì)算散列(504)。如果散列存儲在本地散列高速緩沖存儲器中(506),則知道它在服務(wù)器上。在顯示的示例中,如果在高速緩沖存儲器中發(fā)現(xiàn)組塊的散列,則將其添加到在散列中發(fā)現(xiàn)的連續(xù)的組塊的區(qū)間(512)。如果散列不在散列高速緩沖存儲器中,則當(dāng)前區(qū)間(如果有任何組塊在其中)和組塊與服務(wù)器同步(508,510)。對包括目錄的組塊重復(fù)該過程的迭代,直到最后的組塊被處理完為止(514)。
      [0032]圖6是示出用于使目錄服務(wù)要素的組塊的區(qū)間同步的過程的實(shí)施例的流程圖。在多種實(shí)施例中,圖6的過程實(shí)現(xiàn)圖5的508。在顯示的示例中,為了使區(qū)間同步,區(qū)間的散列和指示目錄要素的分類列表中的區(qū)間的位置和廣度(extent)的相關(guān)聯(lián)的偏移被發(fā)送到服務(wù)器(604)。服務(wù)器計(jì)算存儲在服務(wù)器處的對應(yīng)的目錄信息(即,指示的偏移處的、指示的廣度的區(qū)間)的散列,并且告知客戶機(jī)該結(jié)果是否與客戶機(jī)所發(fā)送的值匹配。如果服務(wù)器指示散列不匹配(606),則目錄要素的區(qū)間被發(fā)送到服務(wù)器(608)。一旦區(qū)間已經(jīng)發(fā)送(608),或者如果確定散列匹配(606),則在客戶機(jī)處使區(qū)間(610)復(fù)位,并且過程結(jié)束。添加到復(fù)位的區(qū)間的下一個組塊(如果有的話)將成為區(qū)間中的第一組塊。
      [0033]圖7是示出用于使目錄服務(wù)要素的組塊同步的過程的實(shí)施例的流程圖。在多種實(shí)施例中,圖7的過程實(shí)現(xiàn)圖5的510。在顯示的示例中,為了使目錄要素的組塊同步,客戶機(jī)計(jì)算組塊的散列,并且將散列和相關(guān)聯(lián)的偏移信息發(fā)送到服務(wù)器(704)。如果客戶機(jī)從服務(wù)器中接收到關(guān)于服務(wù)器計(jì)算出的對應(yīng)的散列與客戶機(jī)發(fā)送的散列不匹配的指示(706),則客戶機(jī)將包括組塊的目錄要素發(fā)送到服務(wù)器(708)。一旦組塊已經(jīng)發(fā)送(708),或者如果確定散列匹配(706),則在客戶機(jī)處將組塊的散列添加到本地散列高速緩沖存儲器(710),并且過程結(jié)束。
      [0034]圖8是示出用于基于目錄信息來計(jì)算和比較散列值的過程的實(shí)施例的流程圖。在一些實(shí)施例中,在文件系統(tǒng)信息復(fù)制到其上的服務(wù)器上實(shí)現(xiàn)圖8的過程。在顯示的示例中,例如從客戶機(jī)中接收關(guān)于目錄要素的組塊的散列值和相關(guān)聯(lián)的目錄要素偏移和廣度信息或這樣的組塊的區(qū)間(804)。創(chuàng)建按規(guī)范順序分類的、對應(yīng)目錄的目錄要素的列表(806)。計(jì)算(808)存儲在服務(wù)器上的、對應(yīng)于接收的偏移和廣度的目錄要素的散列,并且將其與接收的散列值比較。如果它們匹配(810),則對客戶機(jī)返回“匹配”結(jié)果(812)。如果它們不匹配(810),則返回“不匹配”結(jié)果(814)。
      [0035]在返回“不匹配”結(jié)果的情況下,在多種實(shí)施例中,客戶機(jī)可發(fā)送相關(guān)聯(lián)的目錄要素。服務(wù)器配置成接收要素,以及使用它們來更新存儲在服務(wù)器處的對應(yīng)的信息。
      [0036]圖9是示出用以使包括整個目錄的區(qū)間同步的過程的實(shí)施例的流程圖。在顯示的示例中,在到達(dá)目錄的末尾,并且確定當(dāng)前區(qū)間包括包含目錄的所有組塊的情況下,執(zhí)行進(jìn)一步的優(yōu)化。這種情況的示例為這樣的情形,即,其中,在客戶機(jī)處的散列高速緩沖存儲器中發(fā)現(xiàn)包括目錄的所有組塊,例如因?yàn)樵谥暗耐街幸磺卸家呀?jīng)同步,而且目錄的文件系統(tǒng)信息從此都沒有變化。在顯示的示例中,一旦到達(dá)處理包括目錄的組塊的末尾(902),就執(zhí)行檢查,以確定當(dāng)前區(qū)間是否覆蓋整個目錄(904)。如果是的話,執(zhí)行檢查,以確定區(qū)間的散列是否存在于散列高速緩沖存儲器中(906)。如果在散列高速緩沖存儲器中發(fā)現(xiàn)目錄寬度的區(qū)間的散列,則過程結(jié)束。如果在到達(dá)目錄的末尾時,區(qū)間不覆蓋整個目錄(904),或者如果目錄寬度的區(qū)間的散列已經(jīng)不在散列高速緩沖存儲器中(908),則使同步區(qū)間(908),并且將整個目錄的散列(即,包括目錄的所有組塊)添加到散列高速緩沖存儲器(910)。
      [0037]在一些實(shí)施例中,在后續(xù)同步中,在將目錄的目錄要素分成組塊且如上面描述的那樣繼續(xù)之前,客戶機(jī)首先對目錄要素的整個順序列表計(jì)算散列,并且檢查散列高速緩沖存儲器以獲得結(jié)果。如果整個目錄上的散列都在散列高速緩沖存儲器中,則客戶機(jī)知道存儲在服務(wù)器上的目錄處于同步,并且繼續(xù)前進(jìn)到下一個目錄,如果有的話。否則,客戶機(jī)分塊,并且處理分類列表,如上面描述的那樣。
      [0038]在一些實(shí)施例中,文件高速緩沖存儲器和散列高速緩沖存儲器兩者都不需要是全面的;也就是說,如果本地存儲非常珍貴,不需要表示客戶機(jī)文件系統(tǒng)上的所有文件或元數(shù)據(jù)的所有組塊。如果在文件高速緩沖存儲器中未發(fā)現(xiàn)文件,或者在散列高速緩沖存儲器中未發(fā)現(xiàn)元數(shù)據(jù)的組塊的散列,因?yàn)橐粋€或兩者在空間上受到限制,則將只是重新發(fā)送文件或組塊。這允許有權(quán)衡本地存儲與帶寬節(jié)約的柔性,同時保持正確。相反,日志方法需要保存自從上一次備份以來的所有操作,以便保持正確。
      [0039]文件和散列高速緩沖存儲器本質(zhì)上實(shí)現(xiàn)在空間上非常高效和柔性的編目系統(tǒng)。在本文的多種實(shí)施例中描述的技術(shù)和協(xié)議允許使文件和散列高速緩沖存儲器來使大量本地文件系統(tǒng)實(shí)施(NTFS、ext3等)與大量遠(yuǎn)程文件系統(tǒng)實(shí)現(xiàn)(Avamar FS、數(shù)據(jù)域FS等)同步。
      [0040]圖10是示出計(jì)算機(jī)系統(tǒng)的實(shí)施例的框圖。在顯示的示例中,備份客戶機(jī)系統(tǒng)102 (其可為關(guān)于未顯示的一個或多個功能和/或網(wǎng)絡(luò)元件的服務(wù)器,例如文件服務(wù)器)具有通過連接104和通信接口 1006(諸如網(wǎng)絡(luò)接口卡(NIC))的網(wǎng)絡(luò)連接性。備份客戶機(jī)1008通過通信接口 1006和連接104通信,以在網(wǎng)絡(luò)上將存儲在文件系統(tǒng)1010中的文件和相關(guān)聯(lián)的文件系統(tǒng)信息復(fù)制到遠(yuǎn)程服務(wù)器。在多種實(shí)施例中,備份客戶機(jī)1008包括軟件代理和/或在包括系統(tǒng)102的處理器上運(yùn)行的其它代碼。備份客戶機(jī)1008使用存儲在例如存儲器或包括系統(tǒng)102的其它數(shù)據(jù)存儲裝置中的散列高速緩沖存儲器1012(如上面描述的那樣)來使與文件系統(tǒng)1010相關(guān)聯(lián)的文件系統(tǒng)信息與遠(yuǎn)程服務(wù)器高效地同步。
      [0041]雖然在本文描述的許多實(shí)施例中,跨過網(wǎng)絡(luò)復(fù)制文件和相關(guān)聯(lián)的文件系統(tǒng)信息,以及/或者使它們同步,但在其它實(shí)施例中,本文描述的技術(shù)可用于其它環(huán)境中,例如,備份到本地備份存儲節(jié)點(diǎn)或其它存儲節(jié)點(diǎn)。另外,雖然在多種實(shí)施例中描述了文件和文件系統(tǒng)元數(shù)據(jù),但本文描述的技術(shù)可用來使關(guān)于以分層或其它方式存儲或表示的其它存儲對象的元數(shù)據(jù)同步。
      [0042]雖然為了清楚地理解而在一些細(xì)節(jié)中描述了前述實(shí)施例,但本發(fā)明不限于所提供的細(xì)節(jié)。存在許多實(shí)現(xiàn)本發(fā)明的備選方式。公開的實(shí)施例是說明性的,而非約束性的。
      【權(quán)利要求】
      1.一種使文件系統(tǒng)變化同步的方法,包括: 在客戶機(jī)系統(tǒng)處計(jì)算包括目錄要素的組塊的數(shù)據(jù)的散列,所述目錄要素的組塊包括按規(guī)范順序分類一組要素中的一個或多個連續(xù)的目錄要素;以及 在至少部分地基于所計(jì)算的散列而確定存儲在遠(yuǎn)程服務(wù)器上的對應(yīng)的目錄要素與存儲在所述客戶機(jī)系統(tǒng)上的、包括所述組塊的所述目錄要素不同的情況下,將包括所述組塊的所述一個或多個目錄要素發(fā)送到所述遠(yuǎn)程服務(wù)器。
      2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括至少部分地基于所述計(jì)算的散列來確定存儲在所述遠(yuǎn)程服務(wù)器上的所述對應(yīng)的目錄要素與存儲在所述客戶機(jī)系統(tǒng)上的、包括所述組塊的所述目錄要素是否相同。
      3.根據(jù)權(quán)利要求2所述的方法,其中,確定包括檢查散列高速緩沖存儲器,以確定所述計(jì)算的散列之前是否存儲在所述散列高速緩沖存儲器中。
      4.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括在所述散列高速緩沖存儲器中未發(fā)現(xiàn)所述計(jì)算的散列的情況下,將所述計(jì)算的散列發(fā)送到所述遠(yuǎn)程服務(wù)器。
      5.根據(jù)權(quán)利要求4所述的方法,進(jìn)一步包括接收來自所述遠(yuǎn)程服務(wù)器的、關(guān)于對應(yīng)于所述計(jì)算的散列的且由所述服務(wù)器基于存儲在所述服務(wù)器上的對應(yīng)的文件系統(tǒng)信息而計(jì)算出的對應(yīng)的散列是否與所述計(jì)算的散列匹配的指示。
      6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括如果來自所述服務(wù)器的響應(yīng)指示所述對應(yīng)的散列與所述計(jì)算的散列匹配,則將所述計(jì)算的散列添加到所述散列高速緩沖存儲器。
      7.根據(jù)權(quán)利要求6所述的方法,進(jìn)一步包括一旦響應(yīng)于從所述服務(wù)器中接收到關(guān)于在所述服務(wù)器處計(jì)算出的所述對應(yīng)的散列與所述客戶機(jī)系統(tǒng)所發(fā)送的所述計(jì)算的散列不匹配的指示,而已經(jīng)將包括所述組塊的所述一個或多個目錄要素發(fā)送到所述遠(yuǎn)程服務(wù)器,將所述計(jì)算的散列添加到所述散列高速緩沖存儲器。
      8.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括如果有的話,將所述計(jì)算的散列添加到連續(xù)的組塊的區(qū)間,在所述散列高速緩沖存儲器中發(fā)現(xiàn)所述計(jì)算的散列的情況下,已經(jīng)在所述散列高速緩沖存儲器中發(fā)現(xiàn)所述連續(xù)的組塊的所述相應(yīng)的散列。
      9.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括如果在所述散列高速緩沖存儲器中未發(fā)現(xiàn)所述計(jì)算的散列,則使所述區(qū)間和所述組塊同步。
      10.根據(jù)權(quán)利要求9所述的方法,其中,使所述區(qū)間同步包括將包括包含在所述區(qū)間中的組塊的目錄要素的散列發(fā)送到所述遠(yuǎn)程服務(wù)器。
      11.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括在接收到關(guān)于基于存儲在所述服務(wù)器上的、對應(yīng)于包括包含 在所述區(qū)間中的所述組塊的、存儲在所述客戶機(jī)系統(tǒng)上的要素的目錄要素而計(jì)算出的對應(yīng)的散列與包括包含在所述客戶機(jī)系統(tǒng)所發(fā)送的所述區(qū)間中的組塊的目錄要素的所述散列不匹配的指示的情況下,將包括包含在所述區(qū)間中的組塊的目錄要素發(fā)送到所述遠(yuǎn)程服務(wù)器。
      12.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括: 在到達(dá)所述組要素的末尾時,確定所述區(qū)間覆蓋整組要素;以及 確保所述整組要素的散列存儲在所述散列高速緩沖存儲器中。
      13.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括在所述組要素的同步開始時檢查所述整組要素的所述散列是否存儲在所述散列高速緩沖存儲器中;以及在沒有進(jìn)一步處理的情況下,作出這樣的結(jié)論,即,如果在所述散列高速緩沖存儲器中發(fā)現(xiàn)所述整組要素的所述散列,則所述組要素在所述客戶機(jī)系統(tǒng)和所述遠(yuǎn)程服務(wù)器之間處于同步。
      14.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括如果在到達(dá)所述組要素的末尾時確定所述區(qū)間未覆蓋所述整組要素,則使所述區(qū)間同步。
      15.根據(jù)權(quán)利要求1所述的方法,其中,所述目錄要素中的每個包括與所述目錄要素與之相關(guān)聯(lián)的目錄中的對應(yīng)的文件相關(guān)聯(lián)的文件系統(tǒng)信息的規(guī)范表示。
      16.根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括產(chǎn)生所述相應(yīng)的規(guī)范表示。
      17.根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括按所述規(guī)范順序?qū)λ瞿夸浺胤诸悺?br> 18.一種計(jì)算機(jī)系統(tǒng),包括: 處理器,其配置成進(jìn)行下者:
      計(jì)算包括目錄要素的組塊的數(shù)據(jù)的散列,所述目錄要素的組塊包括按規(guī)范順序分類的一組要素中的一個或多個連續(xù)的目錄要素;以及
      在至少部分地基于所述計(jì)算的散列而確定存儲在遠(yuǎn)程服務(wù)器上的對應(yīng)的目錄要素與存儲在所述計(jì)算機(jī)系統(tǒng)上的、包括所述組塊的所述目錄要素不同的情況下,將包括所述組塊的所述一個或多個目錄要素發(fā)送到所述遠(yuǎn)程服務(wù)器;以及 存儲裝置,其耦接到所述處理器上,并且配置成存儲包括所述目錄要素的數(shù)據(jù)。
      19.根據(jù)權(quán)利要求18所述的系統(tǒng),進(jìn)一步包括通信接口,所述通信接口耦接到所述處理器上,并且配置成被所述處理器用來將包括所述組塊的所述一個或多個目錄要素發(fā)送到所述遠(yuǎn)程服務(wù)器。
      20.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述目錄要素中的每個包括與對應(yīng)的文件相關(guān)聯(lián)的文件系統(tǒng)信息,并且所述處理器配置成產(chǎn)生所述規(guī)范表示。
      21.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述處理器配置成按所述規(guī)范順序?qū)λ瞿夸浺胤诸悺?br> 22.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述處理器配置成至少部分地基于所述計(jì)算的散列來確定存儲在所述遠(yuǎn)程服務(wù)器上的所述對應(yīng)的目錄要素是否與包括所述組塊的、存儲在所述客戶機(jī)系統(tǒng)上的所述目錄要素相同。
      23.根據(jù)權(quán)利要求22所述的系統(tǒng),其中,所述過程配置成至少部分地通過檢查散列高速緩沖存儲器以確定在所述散列高速緩沖存儲器中是否發(fā)現(xiàn)所述計(jì)算的散列,來確定存儲在所述遠(yuǎn)程服務(wù)器上的所述對應(yīng)的目錄要素是否與包括所述組塊的、存儲在所述客戶機(jī)系統(tǒng)上的所述目錄要素相同。
      24.根據(jù)權(quán)利要求23所述的系統(tǒng),其中,所述處理器進(jìn)一步配置成如果包括所述組塊的所述一個或多個目錄要素被發(fā)送到所述遠(yuǎn)程服務(wù)器,則將所述計(jì)算的散列添加到所述散列高速緩沖存儲器。
      25.一種用于使文件系統(tǒng)變化同步的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含在計(jì)算機(jī)可讀存儲介質(zhì)中,并且包括用于進(jìn)行下者的計(jì)算機(jī)指令: 在客戶機(jī)系統(tǒng)處計(jì)算包括目錄要素的組塊的數(shù)據(jù)的散列,所述目錄要素的組塊包括按規(guī)范順序分類的一組要素中的一個或多個連續(xù)的目錄要素;以及 在至少部分地基于所計(jì)算的散列而確定存儲在遠(yuǎn)程服務(wù)器上的對應(yīng)的目錄要素與存儲在所述客戶機(jī)系統(tǒng)上的、包括所述組塊的所述目錄要素不同的情況下,將包括所述組塊的所述一個或多個目錄要素發(fā)送到所述遠(yuǎn)程服務(wù)器。
      26.一種使文件系統(tǒng)變化同步的方法,包括: 從客戶機(jī)系統(tǒng)中接收包括目錄要素的組塊的數(shù)據(jù)的散列,所述目錄要素的組塊包括按規(guī)范順序分類的一組要素中的一個或多個連續(xù)的目錄要素,以及標(biāo)識所述組塊在所述組內(nèi)的位置和廣度的偏移數(shù)據(jù);以及 按相同的規(guī)范順序?qū)Ρ镜卮鎯Φ膶?yīng)的目錄要素分類; 按照包括所述組內(nèi)的指示的位置中的、本地分類組中的目錄要素的數(shù)據(jù),計(jì)算對應(yīng)的散列。
      27.根據(jù)權(quán)利要求26所述的方法,進(jìn)一步包括比較所計(jì)算的對應(yīng)的散列與所接收的散列,以及對所述客戶機(jī)返回 指示所述計(jì)算的對應(yīng)的散列和所述接收的散列是否相同的結(jié)果數(shù)據(jù)。
      【文檔編號】G06F17/30GK103649946SQ201180046759
      【公開日】2014年3月19日 申請日期:2011年9月16日 優(yōu)先權(quán)日:2010年9月30日
      【發(fā)明者】M.黃, C.安德森, R.H.帕特森 申請人:Emc 公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1