從源服務(wù)器向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)對象的制作方法
【專利摘要】從源服務(wù)器所管理的源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制對象。由在源服務(wù)器處的、將向目標(biāo)服務(wù)器復(fù)制的對象構(gòu)建源列表。查詢目標(biāo)服務(wù)器以獲得在目標(biāo)服務(wù)器處的對象的目標(biāo)列表。構(gòu)建復(fù)制列表,該復(fù)制列表指示在源列表上的、未在目標(biāo)列表上包括的、將向目標(biāo)服務(wù)器傳送的對象。對于復(fù)制列表中的每個對象,向目標(biāo)服務(wù)器發(fā)送用于尚未在目標(biāo)存儲裝置處的對象的數(shù)據(jù),并且向目標(biāo)服務(wù)器發(fā)送關(guān)于對象的元數(shù)據(jù),以使目標(biāo)服務(wù)器在目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于該對象的條目中包括元數(shù)據(jù)。向源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于該對象的條目。
【專利說明】從源服務(wù)器向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)對象
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及一種用于從源服務(wù)器向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)對象的計算機(jī)程序產(chǎn)品、系統(tǒng)和方法。
【背景技術(shù)】
[0002]數(shù)據(jù)復(fù)制被用來從一個服務(wù)器向另一服務(wù)器復(fù)制屬于多個節(jié)點的數(shù)據(jù),使得如果數(shù)據(jù)正在被備份到的主源服務(wù)器停用,則客戶端可以從復(fù)制站點恢復(fù)他們的數(shù)據(jù)。存儲管理服務(wù)器、諸如Tivoli?存儲管理器(TSM)在一個或者多個存儲池中存儲數(shù)據(jù)對象并且使用數(shù)據(jù)庫來跟蹤關(guān)于存儲的對象的元數(shù)據(jù)。(Tivoli是國際商業(yè)機(jī)器公司的全球商標(biāo))。存儲管理服務(wù)器可以出于災(zāi)難恢復(fù)目的而向遠(yuǎn)程位置復(fù)制數(shù)據(jù)對象。用來向遠(yuǎn)程位置傳送數(shù)據(jù)的方法中的一些方法包括從源站點向災(zāi)難恢復(fù)站點物理地傳輸包含數(shù)據(jù)的副本的帶(tape)、電子傳送數(shù)據(jù)(TSM導(dǎo)出/導(dǎo)入)或者使用源站點盤存儲裝置的硬件復(fù)制以創(chuàng)建數(shù)據(jù)的鏡像??捎脧?fù)制硬件設(shè)備包括使用去重復(fù)(deduplication)硬件來執(zhí)行塊級復(fù)制的虛擬帶庫(VTL)產(chǎn)品。
[0003]數(shù)據(jù)去重復(fù)是一種用于消除冗余數(shù)據(jù)以提高存儲利用率的數(shù)據(jù)壓縮技術(shù)。去重復(fù)減少所需存儲容量,這是因為僅唯一數(shù)據(jù)單元(也被稱為組塊或者區(qū)段(extent))的一個副本被存儲?;诒P的存儲系統(tǒng)、諸如存儲管理服務(wù)器和虛擬帶庫(VTL)可以實施去重復(fù)技術(shù)以檢測冗余數(shù)據(jù)組塊并且通過避免這樣的組塊的冗余存儲來減少重復(fù)。
[0004]去重復(fù)系統(tǒng)通過將文件劃分成一系列組塊或者區(qū)段來進(jìn)行操作。去重復(fù)系統(tǒng)確定是否已經(jīng)存儲了組塊中的任何組塊、然后繼續(xù)僅存儲那些非冗余組塊??梢躁P(guān)于正被存儲的文件中的組塊或者已經(jīng)存儲于系統(tǒng)中的組塊來檢查冗余性。
[0005]在本領(lǐng)域中需要用于從一個服務(wù)器向另一服務(wù)器復(fù)制對象的改進(jìn)的技術(shù)。
【發(fā)明內(nèi)容】
[0006]提供了一種用于從源服務(wù)器所管理的源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制數(shù)據(jù)對象的計算機(jī)程序產(chǎn)品、系統(tǒng)和方法。源列表由在源服務(wù)器處的、將向目標(biāo)服務(wù)器復(fù)制的對象構(gòu)建。查詢目標(biāo)服務(wù)器以獲得在目標(biāo)服務(wù)器處的對象的目標(biāo)列表。構(gòu)建復(fù)制列表,該復(fù)制列表指不在源列表上的、未被包括在目標(biāo)列表上的、將向目標(biāo)服務(wù)器傳送的對象。對于在復(fù)制列表中的每個對象,向目標(biāo)服務(wù)器發(fā)送用于尚未在目標(biāo)存儲裝置處的對象的數(shù)據(jù),并且向目標(biāo)服務(wù)器發(fā)送關(guān)于該對象的元數(shù)據(jù),以使目標(biāo)服務(wù)器在目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于該對象的條目中包括該元數(shù)據(jù)。向源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于該對象的條目。
[0007]在又一實施例中,從源服務(wù)器接收對于在目標(biāo)服務(wù)器處的對象的目標(biāo)列表的查詢。向源服務(wù)器發(fā)送在目標(biāo)服務(wù)器處的對象的目標(biāo)列表。從源服務(wù)器接收用于在目標(biāo)存儲裝置中存儲的對象的數(shù)據(jù)。從源服務(wù)器接收用于針對待復(fù)制的對象而接收的數(shù)據(jù)的元數(shù)據(jù)。對于針對其接收到數(shù)據(jù)的每個對象,向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,該條目包括針對該對象接收到的元數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0008]圖1圖示其中對實施例進(jìn)行實施的計算環(huán)境。
[0009]圖2圖示對象信息的一個實施例。
[0010]圖3圖示源和目標(biāo)復(fù)制數(shù)據(jù)庫條目的一個實施例。
[0011]圖4圖示組塊存儲信息條目的一個實施例。
[0012]圖5圖示組塊索引條目的一個實施例。
[0013]圖6、圖7a和圖7b圖示用于處理復(fù)制請求的操作的一個實施例。
[0014]圖8圖示用于使用去重復(fù)來復(fù)制對象的操作的一個實施例。
[0015]圖9圖示在網(wǎng)絡(luò)計算實施例中的節(jié)點的實現(xiàn)方式。
[0016]圖10圖示云計算環(huán)境的一個實施例。
[0017]圖11圖示云計算環(huán)境的抽象模型層的一個實施例。
【具體實施方式】
[0018]所描述的實施例以通過避免傳輸已經(jīng)在目標(biāo)服務(wù)器中可用的數(shù)據(jù)來更優(yōu)地利用傳輸帶寬的方式,從源服務(wù)器向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)對象。源服務(wù)器還發(fā)送關(guān)于具有已經(jīng)在目標(biāo)服務(wù)器處可用的數(shù)據(jù)或者組塊的對象的元數(shù)據(jù),以使目標(biāo)服務(wù)器對于已經(jīng)在目標(biāo)服務(wù)器處可用的對象,向復(fù)制數(shù)據(jù)庫添加條目并且保證數(shù)據(jù)和元數(shù)據(jù)的一致性。所描述的實施例允許用戶提供復(fù)制準(zhǔn)則,以允許在對象級選擇和過濾待復(fù)制的對象。更多實施例還采用去重復(fù)以避免額外發(fā)送正在被復(fù)制的對象中已經(jīng)在目標(biāo)服務(wù)器上存儲的組塊。
[0019]圖1圖示具有源服務(wù)器4a和目標(biāo)服務(wù)器4b的計算環(huán)境2的一個實施例,該源服務(wù)器和該目標(biāo)服務(wù)器分別包括用于向目標(biāo)存儲裝置8b復(fù)制用于源存儲裝置8a處的對象的數(shù)據(jù)的源復(fù)制管理器6a和目標(biāo)復(fù)制管理器6b。任一服務(wù)器4a、4b設(shè)備可以作為源服務(wù)器和目標(biāo)服務(wù)器工作。可以代表連接到源服務(wù)器4a的客戶端節(jié)點執(zhí)行復(fù)制以復(fù)制客戶端節(jié)點所擁有的對象。源服務(wù)器4a和目標(biāo)服務(wù)器4b維護(hù)如分別在對象信息IOa和IOb中定義的數(shù)據(jù)對象。分別在源存儲裝置8a和目標(biāo)存儲裝置Sb中維護(hù)用于數(shù)據(jù)對象的數(shù)據(jù),其可以具有被稱為組塊12a、12b的、分離數(shù)據(jù)單元的形式。每個服務(wù)器4a、4b維護(hù)組塊存儲信息14a、14b,該組塊存儲信息指示在對象信息10a、10b中定義的數(shù)據(jù)對象的組塊在存儲裝置8a、8b中所處的位置。對象信息10a、IOb包括用于每個定義的數(shù)據(jù)對象的元數(shù)據(jù)或者條目,這些元數(shù)據(jù)或者條目包括向每個對象指配的數(shù)據(jù)的組塊12a、12b的有序列表。
[0020]源服務(wù)器4a和目標(biāo)服務(wù)器4b分別維護(hù)源復(fù)制數(shù)據(jù)庫16a和目標(biāo)復(fù)制數(shù)據(jù)庫16b,其具有關(guān)于代表客戶端節(jié)點向目標(biāo)服務(wù)器4b復(fù)制的、在源服務(wù)器4a處的數(shù)據(jù)對象的信息。源服務(wù)器4a還維護(hù)和使用:具有在源服務(wù)器4a上的待復(fù)制的對象的源列表30,這些對象滿足復(fù)制準(zhǔn)則,諸如擁有客戶端節(jié)點、在客戶端節(jié)點處的文件空間和數(shù)據(jù)類型;具有在目標(biāo)服務(wù)器4b上的、滿足復(fù)制準(zhǔn)則的對象的目標(biāo)列表32 ;在目標(biāo)服務(wù)器4b中的對象的目標(biāo)清單34,包括用于唯一地標(biāo)識對象的唯一標(biāo)識符或者屬性;以及在源列表30上的、未在目標(biāo)列表32上的、將向目標(biāo)服務(wù)器4b復(fù)制的文件的復(fù)制列表36。用來構(gòu)建目標(biāo)清單34的準(zhǔn)則可以比復(fù)制準(zhǔn)則更寬泛或者與復(fù)制準(zhǔn)則相同。[0021]去重復(fù)部件24提供去重復(fù)服務(wù)用于源服務(wù)器4a和目標(biāo)4b服務(wù)器以保證在源服務(wù)器4a或者目標(biāo)服務(wù)器4b發(fā)送對象數(shù)據(jù)時,不重新發(fā)送已經(jīng)在接收服務(wù)器4a、4b中存在的重復(fù)組塊。去重復(fù)部件24包括用于執(zhí)行去重復(fù)操作的去重復(fù)管理器26和提供關(guān)于已經(jīng)被指配給對象的組塊12a、12b的信息的組塊索引28,諸如去重復(fù)索引。去重復(fù)管理器26保證在源4a服務(wù)器與目標(biāo)4b服務(wù)器之間傳送數(shù)據(jù)對象時、在源8a存儲裝置和目標(biāo)Sb存儲裝置中僅維護(hù)每個組塊的一個副本,盡管可以在針對管理一個存儲裝置8a、8b的服務(wù)器4a、4b定義的多個數(shù)據(jù)對象中包括該存儲裝置中的一個組塊。去重復(fù)管理器26也可以維護(hù)對象信息10c,該對象信息具有關(guān)于向源4a服務(wù)器和目標(biāo)4b服務(wù)器中的對象的組塊指配的信肩、O
[0022]為了執(zhí)行去重復(fù),在數(shù)據(jù)對象中具有新的或者未改變的組塊時,源復(fù)制管理器6a或者其它部件可以從數(shù)據(jù)庫獲得用于該組塊的哈希,諸如組塊存儲信息14a、14b。在一個備選實施例中,源復(fù)制管理器6a可以計算該哈希。源復(fù)制管理器6a向去重復(fù)管理器26傳遞用于組塊的被訪問的哈希以確定組塊索引28是否具有匹配哈希。如果否,則去重復(fù)管理器26向源復(fù)制管理器6a通知組塊是新的,并且源復(fù)制管理器6a向目標(biāo)服務(wù)器4b發(fā)送數(shù)據(jù)對象中的新的或者改變的組塊的完全副本以在目標(biāo)存儲裝置8b中存儲。否則,如果組塊索引28具有哈希的匹配副本,則源復(fù)制管理器6a無需傳送該組塊的完全副本。取而代之,源復(fù)制管理器6a可以傳送用于該組塊的摘要(digest)及其在對象中的位置。備選地,源復(fù)制管理器6a可以與去重復(fù)部件24交互以確定它是否需要向目標(biāo)服務(wù)器4b發(fā)送組塊。
[0023]在一個源側(cè)去重復(fù)實施例中,源復(fù)制管理器6a與去重復(fù)管理器26通信以確定是否需要向目標(biāo)服務(wù)器4b發(fā)送組塊,從而向目標(biāo)服務(wù)器4b僅發(fā)送如在目標(biāo)存儲裝置Sb中的組塊索引28中尚未指示的新組塊。在一個目標(biāo)側(cè)去重復(fù)實施例中,源服務(wù)器4a向目標(biāo)服務(wù)器4b發(fā)送待復(fù)制的數(shù)據(jù)對象的所有組塊,并且目標(biāo)復(fù)制管理器6b請求去重復(fù)部件24確定哪些組塊是需要在目標(biāo)存儲裝置8a中存儲的新組塊。
[0024]可以在通過網(wǎng)絡(luò)、諸如局域網(wǎng)(LAN)、存儲區(qū)域網(wǎng)絡(luò)(SAN)、廣域網(wǎng)(WAN)等通信的分離計算機(jī)設(shè)備中實施源服務(wù)器4a、目標(biāo)服務(wù)器4b和去重復(fù)部件24。在更多實施例中,可以在一個或者兩個計算機(jī)系統(tǒng)上實施源服務(wù)器4a、目標(biāo)服務(wù)器4b和/或去重復(fù)部件24。如果源服務(wù)器4a、目標(biāo)服務(wù)器4b和/或去重復(fù)部件24在相同系統(tǒng)中,則它們可以通過總線或者經(jīng)由存儲器通信。
[0025]可以在本領(lǐng)域已知的一個或者多個存儲設(shè)備、諸如互連的硬盤驅(qū)動(例如,配置為DASD、RAID、JBOD等)、固態(tài)存儲設(shè)備(例如,EEPROM (電可擦除可編程只讀存儲器))、閃存、閃速盤、存儲類存儲器(SCM)、電子存儲器、磁帶介質(zhì)、帶盒等中配置源8a存儲裝置和目標(biāo)Sb存儲裝置。
[0026]源復(fù)制管理器6a、目標(biāo)復(fù)制管理器6b和去重復(fù)管理器26可以在存儲器中包括處理器所執(zhí)行的軟件程序。在一個備選實施例中,可以在硬件部件,諸如專用集成電路、例如專用集成電路(ASIC)、擴(kuò)展卡等中實施程序6a、6b和26的一些部分或者全部。
[0027]雖然將源復(fù)制管理器6a、目標(biāo)復(fù)制管理器6b和去重復(fù)管理器26示出為分離部件,但是在備選實現(xiàn)方式中,可以在單個計算機(jī)系統(tǒng)中的單個程序部件中或者在多于兩個計算機(jī)設(shè)備中的多于兩個程序部件中實施這些部件6a、6b和26所執(zhí)行的功能。例如,可以在源服務(wù)器4a和目標(biāo)服務(wù)器4b或者源復(fù)制管理器6a或者目標(biāo)復(fù)制管理器6b部件的部分處分離地實施去重復(fù)部件24。在其中在每個服務(wù)器4a、4b中分離地實施去重復(fù)部件24的實施例中,每個服務(wù)器4a、4b可以具有它自己的去重復(fù)部件24并且維護(hù)對象信息IOc和組塊索引28。
[0028]源6a復(fù)制管理器和目標(biāo)6b復(fù)制管理器可以由客戶端節(jié)點用來恢復(fù)對象以作為恢復(fù)操作的一部分。
[0029]圖2圖示在對象信息10a、10b、IOc中維護(hù)的用于一個對象的對象信息50的一個實施例。用于一個對象的對象信息50包括對象的標(biāo)識符(ID) 52和用于向?qū)ο?2指配的數(shù)據(jù)的一個或者多個組塊54a、54b….54n的標(biāo)識信息。對象信息50可以維護(hù)對組塊的引用的有序列表(CV'Cn),該列表指示組塊在數(shù)據(jù)對象中出現(xiàn)的順序l-.n。對于每個組塊(Ci),對象信息54i維護(hù)組塊的摘要(Cli)和組塊的長度(IiX以該方式,對象信息50提供對在數(shù)據(jù)對象中包括的組塊的引用,諸如摘要和長度、但是并非實際數(shù)據(jù)。可以通過處理組塊以生成用于該組塊的唯一值來計算摘要(d)。例如,在一個實施例中,摘要可以包括密碼摘要,諸如MD5 (消息摘要算法5)或者SHA-1 (安全哈希算法I),該密碼摘要計算數(shù)據(jù)對象中的每個組塊的密碼哈希。
[0030]圖3圖示源16a復(fù)制數(shù)據(jù)庫和目標(biāo)16b復(fù)制數(shù)據(jù)庫中的用于正從源服務(wù)器4a向目標(biāo)服務(wù)器4b復(fù)制的每個對象的條目60的一個實施例。條目60包括對象標(biāo)識符(ID)62 ;對象唯一屬性64,該對象唯一屬性提供對象的唯一標(biāo)識符,諸如簽名、哈希值或者唯一命名約定;服務(wù)器標(biāo)識符(ID) 66,該服務(wù)器標(biāo)識符包括維護(hù)對象62的服務(wù)器4a、4b的標(biāo)識符;復(fù)制服務(wù)器ID68,該復(fù)制服務(wù)器ID標(biāo)識復(fù)制關(guān)系中的另一服務(wù)器4a、4b (例如,在源復(fù)制數(shù)據(jù)庫16a中的條目60對于字段68具有目標(biāo)服務(wù)器4b的標(biāo)識符,并且在目標(biāo)復(fù)制數(shù)據(jù)庫16b中的條目60對于字段68具有源服務(wù)器4a的標(biāo)識符);復(fù)制的對象ID70,該復(fù)制的對象ID標(biāo)識向復(fù)制服務(wù)器68中的對象指配的標(biāo)識符;服務(wù)器節(jié)點標(biāo)識符(ID)72,該服務(wù)器節(jié)點標(biāo)識符提供擁有對象60的客戶端節(jié)點的源服務(wù)器4a標(biāo)識符;文件空間ID74的源服務(wù)器4a標(biāo)識符,該文件空間ID標(biāo)識包括對象60的文件空間;復(fù)制服務(wù)器節(jié)點ID76,該復(fù)制服務(wù)器節(jié)點ID包括目標(biāo)服務(wù)器4b、即復(fù)制服務(wù)器向擁有對象60的客戶端節(jié)點指配的標(biāo)識符;復(fù)制服務(wù)器文件空間ID78,該復(fù)制服務(wù)器文件空間ID包括目標(biāo)服務(wù)器4b (復(fù)制服務(wù)器)向包括對象60的文件空間指配的標(biāo)識符;以及數(shù)據(jù)類型ID80,該數(shù)據(jù)類型ID標(biāo)識對象60的數(shù)據(jù)類型。
[0031]因此,在某些實施例中,每個服務(wù)器4a、4b分別指配它自己的用于節(jié)點72和76以及文件空間74和78的ID。
[0032]圖4圖示源服務(wù)器4a和目標(biāo)服務(wù)器4b在它們各自的組塊存儲信息14a、14b中維護(hù)的、用于在它們所管理的相應(yīng)存儲裝置8a、8b中被維護(hù)的每個組塊12a、12b的組塊存儲信息條目81的一個實施例。組塊存儲條目信息81包括組塊ID82 ;標(biāo)識的組塊在存儲裝置8a、8b中的存儲位置84,諸如邏輯或者物理地址,該存儲位置標(biāo)識組塊在存儲裝置8a、8b中存儲于何處;以及引用計數(shù)86,該引用計數(shù)指示在源4a服務(wù)器或者目標(biāo)4b服務(wù)器處引用組塊的對象的數(shù)目。未在任何對象中被引用的、取消引用的組塊12a、12b具有為零的引用計數(shù)86并且如果在存儲裝置8a、8b中需要空間則可以有資格刪除該取消引用的組塊。 [0033]圖5圖示去重復(fù)管理器26在用于在存儲裝置8a、8b中存儲的每個組塊12a、12b的組塊索引28中維護(hù)的去重復(fù)索引條目90的一個實施例。索引條目90包括存儲裝置8a、8b中的組塊的組塊標(biāo)識符(ID)92、根據(jù)組塊ID92代表的組塊計算的哈希值94和組塊的長度96。在確定是否向目標(biāo)服務(wù)器4b發(fā)送組塊12a的副本時,源復(fù)制管理器14a可以向去重復(fù)部件24提供該組塊的哈希和長度,并且去重復(fù)管理器26可以確定組塊索引28中的一個條目90是否具有與用于源復(fù)制管理器6a發(fā)送的組塊12a的那些值匹配的哈希值94和長度96以確定源復(fù)制管理器6a是否需要發(fā)送組塊12a或者僅發(fā)送組塊12a的標(biāo)識符,例如摘要和長度。組塊索引條目90還可以包括用于管理存儲裝置8a、8b中的組塊12a、12b的附加信息。
[0034]以該方式,數(shù)據(jù)對象的子部件(這里被稱為組塊)與在其中包括它們的對象分離地存儲。組塊12a、12b可以包括軌道區(qū)段、數(shù)據(jù)塊或者可以向?qū)ο笾概涞娜魏纹渌啥x的數(shù)據(jù)子單元。這些組塊12a、12b可以具有固定或者可變長度。對象可以包括任何數(shù)據(jù)單元的分組,諸如文件、對象、數(shù)據(jù)庫等。
[0035]圖6圖示源6a復(fù)制管理器和目標(biāo)6b復(fù)制管理器執(zhí)行的操作的一個實施例,這些操作用于向目標(biāo)服務(wù)器4b復(fù)制在源服務(wù)器4a處的對象。控制始于源復(fù)制管理器6a接收(在塊100)對基于一個或者多個準(zhǔn)則復(fù)制對象的復(fù)制請求,該一個或者多個準(zhǔn)則諸如是客戶端節(jié)點擁有對象、在包括對象的客戶端節(jié)點內(nèi)的文件空間和對象的數(shù)據(jù)類型。響應(yīng)于該請求,源復(fù)制管理器6a驗證目標(biāo)服務(wù)器4b配置(在塊102)以確定目標(biāo)服務(wù)器4b是否支持復(fù)制。如果(在塊104)目標(biāo)服務(wù)器4b未通過驗證,則復(fù)制操作失敗(在塊106)。否則,如果目標(biāo)服務(wù)器4b是復(fù)制兼容的,那么如果這是復(fù)制第一次在服務(wù)器4a、4b之間發(fā)生,則服務(wù)器4a、4b交換(在塊108)唯一標(biāo)識符。服務(wù)器4a、4b可以在復(fù)制數(shù)據(jù)庫16a、16b中維護(hù)可用于復(fù)制的服務(wù)器的服務(wù)器唯一標(biāo)識符。
[0036]管理員可以請求應(yīng)當(dāng)在源服務(wù)器4a與目標(biāo)服務(wù)器4b之間執(zhí)行同步以更新源16a復(fù)制數(shù)據(jù)庫和目標(biāo)16b復(fù)制數(shù)據(jù)庫從而反映已經(jīng)向目標(biāo)服務(wù)器4b導(dǎo)入的對象是復(fù)制的,以便對于已經(jīng)在目標(biāo)服務(wù)器4b處的那些對象不執(zhí)行冗余復(fù)制。如果(在塊109)需要同步,則控制前進(jìn)至塊110以進(jìn)行同步,否則如果未請求或者需要同步,則控制前進(jìn)(在塊130)至圖7a以執(zhí)行復(fù)制。
[0037]如果(在塊109)需要同步,則源復(fù)制管理器6a查詢目標(biāo)服務(wù)器4b (在塊110)以獲得在目標(biāo)服務(wù)器4b處的滿足第一準(zhǔn)則(例如,用于復(fù)制的客戶端節(jié)點)的文件的目標(biāo)清單
34。在接收到(在塊112)查詢時,目標(biāo)復(fù)制管理器6b向源服務(wù)器4a發(fā)送(在塊114)在目標(biāo)服務(wù)器4b處的滿足第一準(zhǔn)則的對象的清單34。響應(yīng)于接收到(在塊116)文件的目標(biāo)清單34,源復(fù)制管理器6a確定(在塊118)在源服務(wù)器4a處的、與來自目標(biāo)服務(wù)器4b的目標(biāo)清單34中列舉的對象匹配的對象??梢员容^在源4a服務(wù)器和目標(biāo)4b服務(wù)器處的對象的唯一屬性64 (圖3)以確定目標(biāo)4b是否具有與源4a處的對象匹配的對象,諸如簽名、唯一文件標(biāo)識符、哈希值等。
[0038]源復(fù)制管理器6a向目標(biāo)服務(wù)器4b發(fā)送(在塊120)用于所確定的與清單36中列舉的對象匹配的對象的元數(shù)據(jù)。源復(fù)制管理器6a對于確定的對象向源復(fù)制數(shù)據(jù)庫16a添力口 (在塊122)條目60 (圖3),該條目包括源復(fù)制管理器6a具有的可用信息。
[0039]響應(yīng)于接收到(在塊124)元數(shù)據(jù),目標(biāo)復(fù)制管理器6b針對與清單36中列舉的對象匹配的對象、對于針對其接收到元數(shù)據(jù)的每個對象,向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫16b添加(在塊126)條目60。以該方式,無需傳送目標(biāo)服務(wù)器4b已經(jīng)具有的那些對象作為復(fù)制的一部分,并且同步更新目標(biāo)復(fù)制數(shù)據(jù)庫16b以將那些對象反映為被復(fù)制的。目標(biāo)復(fù)制管理器6b向源復(fù)制管理器6a返回(在塊128)添加的對象的對象ID以包括在源復(fù)制數(shù)據(jù)庫16a中的用于對象的條目60中的復(fù)制的對象ID70。目標(biāo)復(fù)制管理器6b也可以向復(fù)制管理器6a返回復(fù)制服務(wù)器節(jié)點ID76和復(fù)制服務(wù)器文件空間ID78以包括在源服務(wù)器復(fù)制數(shù)據(jù)庫16a中的用于對象的條目中。
[0040]在執(zhí)行用于添加條目的操作以同步源16a復(fù)制數(shù)據(jù)庫和目標(biāo)16b復(fù)制數(shù)據(jù)庫以包括用于已經(jīng)在源4a服務(wù)器和目標(biāo)4b服務(wù)器二者上的、滿足某個準(zhǔn)則的所有對象的條目之后,控制前進(jìn)(在塊130)至圖7a中的塊150以開始復(fù)制。圖6的同步操作允許客戶同步復(fù)制數(shù)據(jù)庫16a、16b以使目標(biāo)服務(wù)器4b上存在的、在源服務(wù)器4a上具有匹配對象的對象表現(xiàn)為如同它們是被復(fù)制的一樣。
[0041]圖7a和圖7b圖示用于執(zhí)行復(fù)制操作的源6a復(fù)制管理器和目標(biāo)6b復(fù)制管理器執(zhí)行的操作的一個實施例。在發(fā)起(在塊150)復(fù)制后,源復(fù)制管理器6a構(gòu)建(在塊152)在源服務(wù)器4a處的、將向目標(biāo)服務(wù)器4b復(fù)制的對象的源列表30,這些對象滿足復(fù)制準(zhǔn)則(例如,客戶端節(jié)點、文件空間、數(shù)據(jù)類型),其中用來確定用于復(fù)制的文件的復(fù)制準(zhǔn)則可以比用來確定目標(biāo)服務(wù)器4b處的目標(biāo)清單34的準(zhǔn)則(例如,單獨的客戶端節(jié)點)更寬泛。源復(fù)制管理器6a查詢(在塊154)目標(biāo)服務(wù)器4b以獲得在目標(biāo)服務(wù)器4b處的、滿足第二準(zhǔn)則的對象的目標(biāo)列表32。響應(yīng)于該查詢,目標(biāo)復(fù)制管理器6b向源服務(wù)器4a發(fā)送(在塊158)在目標(biāo)服務(wù)器4b處的、滿足復(fù)制準(zhǔn)則的對象的目標(biāo)列表32。在接收到目標(biāo)列表32時,源復(fù)制管理器6a構(gòu)建(在塊160)復(fù)制列表36,該復(fù)制列表指示在源列表30上的、未被包括在目標(biāo)列表32上的、將向目標(biāo)服務(wù)器4b傳送的對象。
[0042]對于源列表30中的每個對象,源復(fù)制管理器6a執(zhí)行(在塊162至174)在塊164至172處的操作以向目標(biāo)服務(wù)器4b復(fù)制對象。塊162至174的循環(huán)可以在處理源列表30中的所有對象之后結(jié)束并且前進(jìn)至塊184,或者可以在出現(xiàn)某個其它條件時結(jié)束。如果(在塊164)對象在復(fù)制列表36上,則源復(fù)制管理器6a向目標(biāo)復(fù)制管理器6b發(fā)送用于對象的數(shù)據(jù)。在一個實施例中,源復(fù)制管理器6a可以僅發(fā)送用于尚未在目標(biāo)存儲裝置Sb中的對象的數(shù)據(jù)或者組塊12a。備選地,源復(fù)制管理器6a無論目標(biāo)存儲裝置Sb是否具有與在被復(fù)制的對象中的組塊匹配的組塊12b,都可以發(fā)送整個對象。在發(fā)送用于待復(fù)制的對象的數(shù)據(jù)(從塊168)之后或者如果對象未在復(fù)制列表36上,這指示目標(biāo)服務(wù)器4b已經(jīng)具有該對象,則源復(fù)制管理器6a向目標(biāo)服務(wù)器4b發(fā)送(在塊170)關(guān)于對象的元數(shù)據(jù),諸如在條目60 (圖3)中的信息。源復(fù)制管理器6a對于該對象向源復(fù)制數(shù)據(jù)庫16a添加(在塊172)條目60,其包括在圖3中所示字段中的信息。
[0043]在接收到(在塊176)元數(shù)據(jù)和數(shù)據(jù)時(如果在塊168對于在復(fù)制列表36中的對象發(fā)送了任何數(shù)據(jù)),目標(biāo)復(fù)制管理器6a在目標(biāo)存儲裝置8a中存儲(在塊178)用于該對象的任何接收的數(shù)據(jù)(如果目標(biāo)存儲裝置8b已經(jīng)具有用于該對象的組塊12b,則可能接收不到數(shù)據(jù))并且對于針對其接收到元數(shù)據(jù)的對象,向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫16b添加(在塊180)條目60,其包括在源4a服務(wù)器和目標(biāo)4b服務(wù)器中的ID62、70、72、74、76和78以及在條目60 (圖3)中的其它信息。目標(biāo)復(fù)制管理器6b還可以向源服務(wù)器4a返回(在塊182)在目標(biāo)服務(wù)器4b處的添加的對象的、復(fù)制的對象ID70、復(fù)制服務(wù)器節(jié)點ID76和復(fù)制服務(wù)器文件空間ID78以包括在源復(fù)制數(shù)據(jù)庫16a中的用于該對象的條目中。[0044]在對于用于復(fù)制的所有條目向源16a復(fù)制數(shù)據(jù)庫和目標(biāo)16b復(fù)制數(shù)據(jù)庫添加條目之后,控制前進(jìn)至(在塊184)圖7b中的塊186,其中源復(fù)制管理器6a確定(在塊186)在目標(biāo)列表32上、但是未在源列表30上的待刪除的對象或者在目標(biāo)服務(wù)器4b處的如下對象,這些對象不是源服務(wù)器4a中經(jīng)受復(fù)制的對象的一部分。源復(fù)制管理器6a與目標(biāo)服務(wù)器4b通信(在塊188)以使目標(biāo)服務(wù)器4b刪除所確定的用于從目標(biāo)服務(wù)器4b刪除的對象。響應(yīng)于該通信,目標(biāo)復(fù)制管理器6b從目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫16b刪除(在塊190)用于待刪除的對象的條目。取消引用(在塊194)未被任何其它對象引用的、刪除的對象中的任何組塊12b。在刪除對象時,遞減用于對象中的組塊12b的條目82 (圖4)中的引用計數(shù)86,并且將具有零引用計數(shù)的任何組塊82指示為被取消引用并且適合在某點移除。
[0045]圖8圖示使用去重復(fù)來復(fù)制對象的源6a復(fù)制管理器和目標(biāo)6b復(fù)制管理器執(zhí)行的操作的一個實施例。在源復(fù)制管理器6a在圖7a中的塊168向目標(biāo)服務(wù)器4b發(fā)送用于對象的數(shù)據(jù)時執(zhí)行圖8的操作。在發(fā)送對象時,源復(fù)制管理器6a調(diào)用去重復(fù)管理器26以確定(在塊202)對象中的用于發(fā)送的組塊、然后使用去重復(fù)(在塊204)以確定對象中的未在目標(biāo)存儲裝置8b中存儲的組塊12a的集合。去重復(fù)管理器26可以使用組塊索引28以進(jìn)行該確定。去重復(fù)管理器26或者源復(fù)制管理器6a向目標(biāo)服務(wù)器4b發(fā)送(在塊206)確定的組塊集合以在目標(biāo)存儲裝置8b中存儲并且發(fā)送對象中的已經(jīng)在目標(biāo)存儲裝置Sb中的組塊12a的組塊標(biāo)識符、諸如摘要(di)和長度(Ii)的列表。在接收到(在塊208)用于數(shù)據(jù)對象的組塊時,目標(biāo)復(fù)制管理器6b在目標(biāo)存儲裝置Sb中存儲(塊210)所接收的組塊。目標(biāo)復(fù)制管理器6b在目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫16b中的用于對象的條目60中指示(在塊212)指向?qū)ο笾械?、已?jīng)在目標(biāo)存儲裝置中存儲的如下組塊的鏈接,對于這些組塊提供了標(biāo)識信息、例如摘要(di)和長度(li),并且指示指向被添加到目標(biāo)存儲裝置Sb的組塊的鏈接。
[0046]在描述的實施例中,源復(fù)制管理器6a可以加密向目標(biāo)服務(wù)器4b發(fā)送的數(shù)據(jù),該數(shù)據(jù)在目標(biāo)服務(wù)器4b處被解密。另外,對象級復(fù)制允許管理員/用戶指定將復(fù)制什么數(shù)據(jù)對象并且提供僅增量復(fù)制尚未在目標(biāo)服務(wù)器4b和存儲裝置8a處存儲的待復(fù)制的那些對象組塊。
[0047]在某些實施例中,在源4a服務(wù)器和目標(biāo)4b服務(wù)器處提供分離硬件和操作系統(tǒng)以允許硬件和操作系統(tǒng)的獨立性。另外,可以用異構(gòu)硬件和操作系統(tǒng)來實施源4a服務(wù)器和目標(biāo)4b服務(wù)器。
[0048]在某些實施例中,復(fù)制目標(biāo)服務(wù)器4b可以在相對于源服務(wù)器4a的遠(yuǎn)程位置處提供熱待機(jī)。如果源服務(wù)器4a失敗,則客戶端的操作、諸如備份和恢復(fù)可以被重定向到已經(jīng)操作用于復(fù)制的目標(biāo)服務(wù)器4b。
[0049]在更多實施例中,可以向單個目標(biāo)服務(wù)器4b (例如,在中央數(shù)據(jù)中心處)復(fù)制多個源服務(wù)器4a (例如,在遠(yuǎn)程辦公室處)。
[0050]更多實施例可以提供不同對象集合的邏輯分組,從而使得在目標(biāo)服務(wù)器4b上的、不完整對象組對于客戶端節(jié)點不可見,直至該組完整。在目標(biāo)服務(wù)器4b上維護(hù)部分組以防止對象的重發(fā)。例如,可以在復(fù)制期間向目標(biāo)服務(wù)器4b發(fā)送形成邏輯組的對象。在某些情形中,可能由于錯誤或者取消過程而未發(fā)送組中的對象中的一些對象。在該情形中,復(fù)制的對象在目標(biāo)服務(wù)器處保持,并且目標(biāo)服務(wù)器將不具有所有對象的組標(biāo)記為不完整。在恢復(fù)期間不使這些不完整組可用于客戶端節(jié)點。在以后的時間,在復(fù)制已經(jīng)傳送了遺漏文件之后,該組被標(biāo)記為完成并且使該組可用于客戶端節(jié)點。
[0051]利用描述的實施例,在源與目標(biāo)之間的復(fù)制通過在對象級對已經(jīng)在目標(biāo)服務(wù)器4b處的對象進(jìn)行檢查、然后在發(fā)送對象時進(jìn)行去重復(fù)以避免發(fā)送用于已經(jīng)在目標(biāo)服務(wù)器4b處可用的數(shù)據(jù)對象的組塊來尋求最小化針對向目標(biāo)服務(wù)器發(fā)送的對象傳送的數(shù)據(jù)量。另夕卜,利用描述的實施例,源復(fù)制管理器16a向目標(biāo)復(fù)制管理器16b發(fā)送關(guān)于已經(jīng)在目標(biāo)服務(wù)器4b處存儲的待復(fù)制的對象的元數(shù)據(jù),以使目標(biāo)復(fù)制管理器6b對于已經(jīng)在目標(biāo)服務(wù)器4b處的、待復(fù)制的對象向目標(biāo)復(fù)制數(shù)據(jù)庫16b添加條目。
[0052]云計算實施例
[0053]圖1的計算環(huán)境可以是云計算服務(wù)交付模型的部分,該模型用于對共享的可配置計算資源(例如網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、存儲器、存儲裝置、應(yīng)用、虛擬機(jī)和服務(wù))池進(jìn)行方便、按需的網(wǎng)絡(luò)訪問,能夠以最小的管理成本或與服務(wù)提供者進(jìn)行最少的交互就能快速部署和釋放這些計算資源。關(guān)于圖9-1描述云計算實現(xiàn)方式。這種云模型可以包括至少五個特征、至少三個服務(wù)模型和至少四個部署模型。
[0054]特征如下:
[0055]按需自助式服務(wù):云的消費者在無需與服務(wù)提供者進(jìn)行人為交互的情況下能夠單方面自動地按需部署諸如服務(wù)器時間和網(wǎng)絡(luò)存儲等的計算能力。
[0056]廣泛的網(wǎng)絡(luò)接入:能力可以通過標(biāo)準(zhǔn)機(jī)制在網(wǎng)絡(luò)上可用和獲取,這種標(biāo)準(zhǔn)機(jī)制促進(jìn)了通過不同種類的瘦或厚源平臺(例如移動電話、膝上型電腦和PDA)對云的使用。
[0057]資源池:提供者的計算資源被歸入資源池以使用多租戶(mult1-tenant)模型來服務(wù)于多個消費者而按需將不同的實體和虛擬資源動態(tài)地分配和再分配。一般情況下,消費者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上指定位置(例如國家、州或數(shù)據(jù)中心),因此具有位置無關(guān)性。
[0058]迅速彈性:能夠迅速、有彈性地、在一些情況下自動地部署能力以實現(xiàn)快速擴(kuò)展并且迅速釋放來快速縮小。在消費者看來,用于部署的可用能力往往顯得無限并且能在任意時候以任意數(shù)量獲取。
[0059]測量的服務(wù):云系統(tǒng)通過利用適于服務(wù)類型(例如存儲、處理、帶寬和活躍用戶賬戶)的某種抽象程度的計量能力來自動地控制和優(yōu)化資源效用??梢员O(jiān)測、控制和報告資源使用從而為利用的服務(wù)的提供者和消費者雙方提供透明度。
[0060]服務(wù)模型如下:
[0061]軟件即服務(wù)(SaaS):向消費者提供的能力是使用提供者在云基礎(chǔ)架構(gòu)上運行的應(yīng)用。通過諸如網(wǎng)絡(luò)瀏覽器的瘦源接口(例如基于網(wǎng)絡(luò)的電子郵件)從各種源設(shè)備訪問應(yīng)用。除了有限的特定于用戶的應(yīng)用配置設(shè)置外,消費者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲裝置、乃至單個應(yīng)用能力等的底層云基礎(chǔ)架構(gòu)。
[0062]平臺即服務(wù)(PaaS):向消費者提供的能力是在云基礎(chǔ)架構(gòu)上部署消費者創(chuàng)建或獲得的應(yīng)用,這些應(yīng)用利用提供者支持的程序設(shè)計語言和工具來創(chuàng)建。消費者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲裝置的底層云基礎(chǔ)架構(gòu),但對其部署的應(yīng)用具有控制權(quán),對應(yīng)用托管環(huán)境配置可能也具有控制權(quán)。
[0063]基礎(chǔ)架構(gòu)即服務(wù)(IaaS):向消費者提供的能力是消費者能夠在其中部署并運行包括操作系統(tǒng)和應(yīng)用的任意軟件的處理、存儲裝置、網(wǎng)絡(luò)和其他基礎(chǔ)計算資源。消費者既不管理也不控制底層的云基礎(chǔ)架構(gòu),但是對操作系統(tǒng)、存儲裝置和其部署的應(yīng)用具有控制權(quán),對選擇的網(wǎng)絡(luò)組件(例如主機(jī)防火墻)可能具有有限的控制權(quán)。
[0064]部署模型如下:
[0065]私有云:云基礎(chǔ)架構(gòu)單獨為某個組織運行。云基礎(chǔ)架構(gòu)可以由該組織或第三方管理并且可以存在于該組織內(nèi)部或外部。
[0066]共同體云:云基礎(chǔ)架構(gòu)被若干組織共享并支持有共同利害關(guān)系(例如任務(wù)使命、安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個組織或第三方管理并且可以存在于該共同體內(nèi)部或外部。
[0067]公共云:云基礎(chǔ)架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務(wù)的組織擁有。
[0068]混合云:云基礎(chǔ)架構(gòu)由兩個或更多部署模型的云(私有云、共同體云或公共云)組成,這些云依然是獨特的實體,但是通過使數(shù)據(jù)和應(yīng)用能夠移植的標(biāo)準(zhǔn)化技術(shù)或私有技術(shù)(例如用于云之間的負(fù)載平衡的云突發(fā)流量分擔(dān)技術(shù))綁定在一起。
[0069]云計算環(huán)境是面向服務(wù)的,特點集中在無狀態(tài)性、低耦合性、模塊性和語意互操作性。在云計算的核心是包含互連節(jié)點網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)。
[0070]圖9顯示了云計算節(jié)點300的一個實施例,該云計算節(jié)點可以包括源服務(wù)器4a、目標(biāo)服務(wù)器4b和去重復(fù)24部件的實現(xiàn)方式,其中可以在節(jié)點300中的一個或者多個節(jié)點中實施部件。云計算節(jié)點300僅僅是適合的云計算節(jié)點的一個示例,不應(yīng)對這里描述的本發(fā)明實施例的功能或使用范圍帶來任何限制??傊朴嬎愎?jié)點300能夠被實現(xiàn)和/或執(zhí)行以上所述的任何功能。
[0071]云計算節(jié)點300具有計算機(jī)系統(tǒng)/服務(wù)器302,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。眾所周知,可以適于與計算機(jī)系統(tǒng)/服務(wù)器302 —起使用的計算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于:個人計算機(jī)系統(tǒng)、服務(wù)器計算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、手持或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機(jī)系統(tǒng)、大型計算機(jī)系統(tǒng)和包括上述任意系統(tǒng)或者設(shè)備的分布式云計算環(huán)境等。
[0072]計算機(jī)系統(tǒng)/服務(wù)器302可以在由計算機(jī)系統(tǒng)執(zhí)行的計算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計算機(jī)系統(tǒng)/服務(wù)器302可以在通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計算環(huán)境中實施。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地和遠(yuǎn)程計算系統(tǒng)存儲介質(zhì)二者上。
[0073]如圖9所示,云計算節(jié)點300中的計算機(jī)系統(tǒng)/服務(wù)器302以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器302的組件可以包括但不限于一個或者多個處理器或者處理單元306、系統(tǒng)存儲器308和連接不同系統(tǒng)組件(包括系統(tǒng)存儲器308到處理器304)的總線308。
[0074]總線308表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器、外圍總線、圖形加速端口、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MAC)總線、增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。[0075]計算機(jī)系統(tǒng)/服務(wù)器302典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計算機(jī)系統(tǒng)/服務(wù)器302可訪問的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì)、可移動的和不可移動的介質(zhì)。
[0076]系統(tǒng)存儲器308可以包括易失性存儲器形式的一個或者多個計算機(jī)系統(tǒng)可讀介質(zhì)、例如隨機(jī)存取存儲器(RAM) 310和/或高速緩存存儲器312。計算機(jī)系統(tǒng)/服務(wù)器302可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)313可以用于讀寫不可移動的、非易失性磁介質(zhì)(未顯示,通常稱為“硬盤驅(qū)動器”)。盡管未示出,但是可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器以及對可移動非易失性光盤(例如⑶-R0M、DVD-R0M或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線308相連。如以下將進(jìn)一步描繪和描述的那樣,存儲器306可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0077]具有一組(至少一個)程序模塊316的程序/實用工具314可以存儲在系統(tǒng)存儲器306中,這樣的程序模塊包括但不限于操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù)。操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊和程序數(shù)據(jù)中的每項或者其某個組合可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊316通常執(zhí)行如這里描述的本發(fā)明實施例的功能和/或方法。
[0078]計算機(jī)系統(tǒng)/服務(wù)器302也可以與一個或多個外部設(shè)備318 (例如鍵盤、指向設(shè)備、顯示器320等)通信;還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器302交互的設(shè)備通信;和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器302能與一個或多個其它計算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/0)接口 322進(jìn)行。備選地,計算機(jī)系統(tǒng)/服務(wù)器302可以通過網(wǎng)絡(luò)適配器324與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò)、例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器324通過總線308與計算機(jī)系統(tǒng)/服務(wù)器302的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,其它硬件和/或軟件模塊可以與計算機(jī)系統(tǒng)/服務(wù)器302結(jié)合使用。示例包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0079]現(xiàn)在參考圖10,其中顯示了示例性的云計算環(huán)境350。如圖所示,云計算環(huán)境350包括云消費者使用的本地計算設(shè)備可以與其通信的一個或者多個云計算節(jié)點300,本地計算設(shè)備例如可以是個人數(shù)字助理(PDA)或蜂窩電話354A、臺式電腦354B、膝上型電腦354C和/或汽車計算機(jī)系統(tǒng)354N。節(jié)點300可以相互通信??梢栽诎ǖ幌抻谌缟纤龅乃接性?、共同體云、公共云或混合云或者其組合的一個或者多個網(wǎng)絡(luò)中將云計算節(jié)點300進(jìn)行物理或虛擬分組。這允許云計算環(huán)境350賦予基礎(chǔ)架構(gòu)即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)和/或軟件即服務(wù)(SaaS),消費者無需為這些服務(wù)在本地計算設(shè)備上維護(hù)資源就能請求云計算環(huán)境350提供的。應(yīng)當(dāng)理解,圖10顯示的各類計算設(shè)備354A-N僅僅是示意性的,并且計算節(jié)點300以及云計算環(huán)境350可以與任意類型網(wǎng)絡(luò)和/或網(wǎng)絡(luò)可尋址連接上的任意類型的計算設(shè)備(例如使用網(wǎng)絡(luò)瀏覽器)通信。
[0080]另外,圖10示出單個云。然而某些云實施例可以提供部署模型,該部署模型除了具有客戶/生產(chǎn)數(shù)據(jù)的云織之外還包括分離的“備份”或者“數(shù)據(jù)保護(hù)”云。提供分離和不同的附加云作為數(shù)據(jù)保護(hù)云以便從數(shù)據(jù)保護(hù)云分離無論任何主要云模型(提供、共同體、混合等)可以防止單個故障點并且在分離的備份云中提供客戶數(shù)據(jù)的更大程度的保護(hù)。
[0081]現(xiàn)在參考圖11,其中顯示了云計算環(huán)境350(圖12)提供的一組功能抽象化層。先應(yīng)當(dāng)理解,圖11所示組件、層以及功能都僅僅是示意性的,并且本發(fā)明的實施例不限于此。如圖所示,提供下列層和對應(yīng)功能:
[0082]硬件和軟件層360包括硬件和軟件組件。硬件組件的示例包括:主機(jī)、例如IBM? zSeries⑧系統(tǒng);基于RISC (精簡指令集計算機(jī))體系結(jié)構(gòu)的服務(wù)器、例如iBMpSeries? 系統(tǒng);ibm xSeries? 系統(tǒng);iBMBladeCenter? 系統(tǒng);存儲裝置;網(wǎng)絡(luò)和
網(wǎng)絡(luò)組件。軟件組件的示例包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件、例如IBM WebSphere?應(yīng)用服務(wù)器軟件;以及數(shù)據(jù)庫軟件、例如IBMDB2?數(shù)據(jù)庫軟件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere以及DB2是國際商業(yè)機(jī)器公司在全世界各地的注冊商標(biāo))。
[0083]虛擬化層362提供抽象化層,該層可以提供下列虛擬實體的示例:虛擬服務(wù)器;虛擬存儲;虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò));虛擬應(yīng)用和操作系統(tǒng);以及虛擬源。
[0084]在一個示例中,管理層364可以提供下述功能。資源供應(yīng)功能提供用于在云計算環(huán)境中執(zhí)行任務(wù)的計算資源和其它資源的動態(tài)獲取。計量和定價功能在云計算環(huán)境內(nèi)對資源的使用進(jìn)行成本跟蹤并且為這些資源的消耗提供帳單和發(fā)票。在一個示例中,該資源可以包括應(yīng)用軟件許可。安全功能為云的消費者和任務(wù)提供身份認(rèn)證以及為數(shù)據(jù)和其它資源提供保護(hù)。用戶門戶功能為消費者和系統(tǒng)管理員提供對云計算環(huán)境的訪問。服務(wù)水平管理功能提供云計算資源分配和管理,從而滿足必需的服務(wù)水平。服務(wù)水平協(xié)議(SLA)計劃和履行功能為根據(jù)SLA預(yù)測的對云計算資源未來需求提供預(yù)先安排和供應(yīng)。
[0085]工作負(fù)載層366提供云計算環(huán)境可能實現(xiàn)的功能的示例。在該層中可提供的工作負(fù)載或功能的示例包括:地圖繪制與導(dǎo)航;軟件開發(fā)及生命周期管理;虛擬教室的教學(xué)提供;數(shù)據(jù)分析處理;交易處理;以及比如以上關(guān)于圖1-8描述的復(fù)制服務(wù)。
[0086]描述的操作可以使用標(biāo)準(zhǔn)編程和/或工程技術(shù)來實現(xiàn)為方法、裝置或計算機(jī)程序產(chǎn)品以產(chǎn)生軟件、固件、硬件或者其任何組合。因此,實施例的方面可以采用以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,實施例的方面還可以采用在一個或多個計算機(jī)可讀介質(zhì)中實現(xiàn)的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0087]可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的示例(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文的上下文中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0088]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一但不限于一電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0089]計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0090]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0091]以上參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計算機(jī)程序指令在通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0092]也可以把 這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)?
[0093]也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令提供實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的過程。
[0094]術(shù)語“一實施例”、“實施例”、“各實施例”、“該實施例”、“這些實施例”、“ 一個或者
多個實施例”、“一些實施例”和“一個實施例”除非另有指明則意味著“本發(fā)明的一個或者多個(但是并非所有)實施例”。
[0095]術(shù)語“包括”、“具有”及其變化除非另有指明則意味著“包括但不限于”。
[0096]項目的枚舉列舉除非另有指明則不意味著項目中的任何或者所有項目互斥。
[0097]術(shù)語“一”和“該”除非另有指明則意味著“一個或者多個”。
[0098]相互通信的設(shè)備除非另有指明則無需相互連續(xù)通信。此外,相互通信的設(shè)備可以直接或者通過一個或者多個中介間接通信。
[0099]有若干部件相互通信的一個實施例的描述不意味著需要所有這樣的部件。恰好相反,描述多種可選部件以舉例說明本發(fā)明的廣泛多種可能實施例。
[0100]另外,雖然可以按照依次順序描述過程步驟、方法步驟、算法等,但是這樣的過程、方法和算法可以被配置用于按照備選順序工作。換而言之,可以被描述的任何步驟序列或者順序未必指示要求按照該順序執(zhí)行這些步驟??梢园凑杖魏纹渌鼘嵱庙樞驁?zhí)行這里描述的過程的步驟。另外,可以同時執(zhí)行一些步驟。
[0101]在這里描述了單個設(shè)備或者物品時,將容易地想到可以使用多于一個設(shè)備/物品(無論它們是否協(xié)作)來取代單個設(shè)備/物品。相似地,在這里描述了多于一個設(shè)備或者物品(無論它們是否相互協(xié)作)時,將容易地想到可以使用單個設(shè)備/物品取代多于一個設(shè)備或者物品或者可以使用不同數(shù)目的設(shè)備/物品取代所示數(shù)目的設(shè)備或者程序。設(shè)備的功能和/或特征可以備選地由未顯式地描述為具有這樣的功能/特征的一個或者多個其它設(shè)備體現(xiàn)。因此,本發(fā)明的其它實施例無需包括設(shè)備本身。
[0102]圖6、圖7a、圖7b和圖8的所示操作示出按照某個順序出現(xiàn)的某些事件。在備選實施例中,可以按照不同順序執(zhí)行、修改或者刪除某些操作。另外,步驟可以被添加到以上描述的邏輯而仍然符合描述的實施例。另外,這里描述的操作可以依次出現(xiàn)或者可以并行地處理某些操作。另外,操作可以由單個處理單元或者由分布式處理單元執(zhí)行。
[0103]已經(jīng)出于示例和描述的目的而呈現(xiàn)了本發(fā)明的各種實施例的前文描述。不旨在于窮舉或者限制本發(fā)明為公開的精確形式。許多修改和變化按照以上教導(dǎo)是可能的。旨在于本發(fā)明的范圍不受該具體描述的限制而實際上由所附權(quán)利要求限制。以上說明書、示例和數(shù)據(jù)提供本發(fā)明的組成的制造和使用的完整描述。由于可以實現(xiàn)本發(fā)明的許多實施例而未脫離本發(fā)明的精神實質(zhì)和范圍,所以本發(fā)明存在于所附權(quán)利要求中。
【權(quán)利要求】
1.一種用于從源服務(wù)器所管理的源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制對象的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)具有在其中體現(xiàn)的計算機(jī)可讀程序代碼,所述計算機(jī)可讀程序代碼執(zhí)行以使所述源服務(wù)器執(zhí)行操作,所述操作包括: 構(gòu)建在所述源服務(wù)器處的、將向所述目標(biāo)服務(wù)器復(fù)制的對象的源列表; 查詢所述目標(biāo)服務(wù)器以獲得在所述目標(biāo)服務(wù)器處的對象的目標(biāo)列表; 構(gòu)建復(fù)制列表,所述復(fù)制列表指示在所述源列表上的、未在所述目標(biāo)列表上包括的、將向所述目標(biāo)服務(wù)器傳送的對象; 對于在所述復(fù)制列表中的每個對象,執(zhí)行: 向所述目標(biāo)服務(wù)器發(fā)送用于尚未在所述目標(biāo)存儲裝置處的所述對象的數(shù)據(jù); 向所述目標(biāo)服務(wù)器發(fā)送關(guān)于所述對象的元數(shù)據(jù)以使所述目標(biāo)服務(wù)器在目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的、用于所述對象的條目中包括所述元數(shù)據(jù); 向源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目。
2.根據(jù)權(quán)利要求1所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 對于在所述復(fù)制列表 中的每個對象,在所述源服務(wù)器復(fù)制數(shù)據(jù)庫中的、用于所述對象的所述條目中包括在所述源服務(wù)器處的所述對象的標(biāo)識符和在所述目標(biāo)服務(wù)器處的所述對象的標(biāo)識符。
3.根據(jù)權(quán)利要求1所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 對于在所述源列表和所述目標(biāo)列表二者上的每個對象,執(zhí)行: 向所述目標(biāo)服務(wù)器發(fā)送用于所述對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的、用于所述對象的條目中包括所述元數(shù)據(jù);以及向所述源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目。
4.根據(jù)權(quán)利要求1所述的計算機(jī)程序產(chǎn)品,其中每個對象由組塊組成,其中對于在所述復(fù)制列表上的每個對象執(zhí)行的所述操作還包括: 確定所述對象中的組塊;以及 確定所述對象中的、未在所述目標(biāo)存儲裝置處存儲的第一組塊集合,其中向所述目標(biāo)服務(wù)器發(fā)送用于所述數(shù)據(jù)對象的所述數(shù)據(jù)包括向所述目標(biāo)服務(wù)器發(fā)送所確定的組塊集合以在所述目標(biāo)存儲裝置中存儲;以及 確定所述對象中的、當(dāng)前在所述目標(biāo)存儲裝置處存儲的第二組塊集合;以及 向所述目標(biāo)服務(wù)器發(fā)送在所述第二組塊集合中的組塊的組塊標(biāo)識符。
5.根據(jù)權(quán)利要求1所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 向所述目標(biāo)服務(wù)器查詢在所述目標(biāo)服務(wù)器處的、滿足第一準(zhǔn)則的對象的清單; 從所述目標(biāo)服務(wù)器接收所述對象的所述清單; 確定在所述源服務(wù)器中的、與來自所述目標(biāo)服務(wù)器的所述清單中列舉的對象匹配的對象; 向所述目標(biāo)服務(wù)器發(fā)送用于所確定的與所述清單中列舉的對象匹配的對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù);以及 向所述源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目,其中所構(gòu)建的源列表包括在所述源服務(wù)器處的、滿足第二準(zhǔn)則的待復(fù)制的對象。
6.根據(jù)權(quán)利要求5所述的計算機(jī)程序產(chǎn)品,其中所述第一準(zhǔn)則包括始發(fā)待復(fù)制的所述對象的客戶端節(jié)點,并且其中所述第二準(zhǔn)則包括在所述客戶端節(jié)點處的對象的數(shù)據(jù)類型和文件空間中的至少一項。
7.根據(jù)權(quán)利要求1所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 確定在所述目標(biāo)列表上的、但是未在所述源列表上的待刪除的對象;以及 與所述目標(biāo)服務(wù)器通信,以使所述目標(biāo)服務(wù)器從所述目標(biāo)服務(wù)器和目標(biāo)存儲裝置刪除所確定的待刪除的對象。
8.根據(jù)權(quán)利要求1所述的計算機(jī)程序產(chǎn)品,其中所述源服務(wù)器和所述目標(biāo)服務(wù)器提供如下各項中的至少一項:分離的和獨立操作的硬件和操作系統(tǒng);使所述目標(biāo)服務(wù)器針對所述源服務(wù)器提供熱待機(jī)模式;以及異質(zhì)硬件和操作系統(tǒng)。
9.一種用于從源服務(wù)器所管理的源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制對象的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)具有在其中體現(xiàn)的計算機(jī)可讀程序代碼,所述計算機(jī)可讀程序代碼執(zhí)行以使所述目標(biāo)服務(wù)器執(zhí)行操作,所述操作包括: 從所述源服務(wù)器接收對于在所述目標(biāo)服務(wù)器處的對象的目標(biāo)列表的查詢; 向所述源服務(wù)器發(fā)送在所述目標(biāo)服務(wù)器處的所述對象的所述目標(biāo)列表; 從所述源服務(wù)器接收用于將在所述目標(biāo)存儲裝置中存儲的對象的數(shù)據(jù); 從所述源服務(wù)器接收用于針對待復(fù)制的所述對象接收的所述數(shù)據(jù)的元數(shù)據(jù);以及 對于針對其接收到數(shù)據(jù)的每個對象,向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,所述條目包括針對所述對象接收的所述元數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 對于在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的、用于每個對象的所述條目包括:在所述源服務(wù)器處的所述對象的標(biāo)識符和在所述目標(biāo)服務(wù)器處的所述對象的標(biāo)識符。
11.根據(jù)權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 對于已經(jīng)在所述目標(biāo)存儲裝置中存儲的、待復(fù)制的每個對象從所述源服務(wù)器接收元數(shù)據(jù);以及 向所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加用于已經(jīng)在所述目標(biāo)存儲裝置中存儲的、待復(fù)制的每個對象的條目,所述條目包括所接收的用于所述對象的元數(shù)據(jù)。
12.根據(jù)權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中每個對象由組塊組成,其中接收用于至少一個對象的所述數(shù)據(jù)包括:僅從所述源服務(wù)器接收用于所述對象的、尚未在所述目標(biāo)存儲裝置中存儲的那些組塊,其中所述操作還包括: 從所述源服務(wù)器接收所述對象中的、當(dāng)前在所述目標(biāo)存儲裝置中存儲的組塊的列表;以及 對于每個如 下對象,針對該對象從所述目標(biāo)服務(wù)器接收到少于所述對象中的所有組塊的組塊,在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的、用于所述對象的所述條目中指示指向所述組塊的列表中的、已經(jīng)在所述目標(biāo)存儲裝置中存儲的所述組塊的鏈接。
13.根據(jù)權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 從所述源服務(wù)器接收對于在所述目標(biāo)服務(wù)器處的、滿足第一準(zhǔn)則的對象的清單的查詢; 向所述源服務(wù)器發(fā)送在所述目標(biāo)服務(wù)器處的、滿足所述第一準(zhǔn)則的所述對象的所述清單; 接收用于在所述源服務(wù)器處的、與所述清單中列舉的對象匹配的對象的元數(shù)據(jù);以及針對與所述清單中列舉的對象匹配的所述對象、對于針對其接收到元數(shù)據(jù)的每個對象,向所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,其中所述條目包括用于所述對象的所述元數(shù)據(jù),其中所述目標(biāo)列表包括在所述目標(biāo)服務(wù)器處的、滿足第二準(zhǔn)則的對象。
14.根據(jù)權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中多個源服務(wù)器被復(fù)制到所述目標(biāo)服務(wù)器。
15.根據(jù)權(quán)利要求9所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 維護(hù)在所述目標(biāo)存儲裝置中存儲的對象的組;以及 響應(yīng)于確定已經(jīng)在所述目標(biāo)服務(wù)器處接收到所述對象的組中的并非所有對象,而將所述對象的組指示為不完整,其中在恢復(fù)操作期間不使被指示為不完整的所述對象的組可用于客戶端節(jié)點。
16.根據(jù)權(quán)利要求15所述的計算機(jī)程序產(chǎn)品,其中所述操作還包括: 接收用于被指示為不完整的所述對象的組的對象;以及 響應(yīng)于已經(jīng)接收到所述對象的組中的所有對象,而將所述對象的組指示為完整,其中在恢復(fù)操作期間使被指示為完整的所述組中的對象可用于所述客戶端節(jié)點。
17.一種用于從源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制對象的系統(tǒng),所述系統(tǒng)包括: 處理器;以及 具有代碼的計算機(jī)可讀存儲介質(zhì),所述代碼由所述處理器執(zhí)行以執(zhí)行操作,所述操作包括: 構(gòu)建在所述源存儲裝置處的、將向所述目標(biāo)服務(wù)器復(fù)制的對象的源列表; 查詢所述目標(biāo)服務(wù)器以獲得在所述目標(biāo)服務(wù)器處的對象的目標(biāo)列表; 構(gòu)建復(fù)制列表,所述復(fù)制列表指示在所述源列表上的、未在所述目標(biāo)列表上包括的、將向所述目標(biāo)服務(wù)器傳送的對象;對于在所述復(fù)制列表中的每個對象,執(zhí)行: 向所述目標(biāo)服務(wù)器發(fā)送用于尚未在所述目標(biāo)存儲裝置處的所述對象的數(shù)據(jù); 向所述目標(biāo)服務(wù)器發(fā)送關(guān)于所述對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù); 向源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述操作還包括: 對于在所述源列表和所述目標(biāo)列表二者上的每個對象,執(zhí)行: 向所述目標(biāo)服務(wù)器發(fā)送用于所述對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù);以及向所述源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中每個對象由組塊組成,其中對于所述復(fù)制列表上的每個對象執(zhí)行的所述操作還包括: 確定所述對象中的組塊;以及確定所述對象中的、未在所述目標(biāo)存儲裝置處存儲的第一組塊集合,其中向所述目標(biāo)服務(wù)器發(fā)送用于所述數(shù)據(jù)對象的所述數(shù)據(jù)包括:向所述目標(biāo)服務(wù)器發(fā)送所確定的組塊集合以在所述目標(biāo)存儲裝置中存儲;以及 確定所述對象中的、當(dāng)前在所述目標(biāo)存儲裝置處存儲的第二組塊集合;以及 向所述目標(biāo)服務(wù)器發(fā)送在所述第二組塊集合中的組塊的組塊標(biāo)識符。
20.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述操作還包括: 向所述目標(biāo)服務(wù)器查詢在所述目標(biāo)服務(wù)器處的、滿足第一準(zhǔn)則的對象的清單; 從所述目標(biāo)服務(wù)器接收所述對象的所述清單; 確定在所述源服務(wù)器中的、與來自所述目標(biāo)服務(wù)器的所述清單中列舉的對象匹配的對象; 向所述目標(biāo)服務(wù)器發(fā)送用于所確定的與所述清單中列舉的對象匹配的對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù);以及 向所述源服務(wù)器 復(fù)制數(shù)據(jù)庫添加用于所述對象的條目,其中所構(gòu)建的源列表包括在所述源服務(wù)器處的、滿足第二準(zhǔn)則的待復(fù)制的對象。
21.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述操作還包括: 確定在所述目標(biāo)列表上的、但是未在所述源列表上的待刪除的對象;以及與所述目標(biāo)服務(wù)器通信,以使所述目標(biāo)服務(wù)器從所述目標(biāo)服務(wù)器和目標(biāo)存儲裝置刪除所確定的待刪除的對象。
22.一種用于從源服務(wù)器所管理的源存儲裝置向目標(biāo)存儲裝置復(fù)制對象的系統(tǒng),所述系統(tǒng)包括: 處理器;以及 具有代碼的計算機(jī)可讀存儲介質(zhì),所述代碼由所述處理器執(zhí)行以執(zhí)行操作,所述操作包括: 從所述源服務(wù)器接收對于在所述目標(biāo)服務(wù)器處的對象的目標(biāo)列表的查詢; 向所述源服務(wù)器發(fā)送在所述目標(biāo)服務(wù)器處的所述對象的所述目標(biāo)列表; 從所述源服務(wù)器接收用于將在所述目標(biāo)存儲裝置中存儲的對象的數(shù)據(jù); 從所述源服務(wù)器接收用于針對待復(fù)制的所述對象接收的所述數(shù)據(jù)的元數(shù)據(jù);以及對于針對其接收到數(shù)據(jù)的每個對象向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,所述條目包括針對所述對象接收的所述元數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述操作還包括: 對于已經(jīng)在所述目標(biāo)存儲裝置中存儲的待復(fù)制的每個對象,從所述源服務(wù)器接收元數(shù)據(jù);以及 向所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加用于已經(jīng)在所述目標(biāo)存儲裝置中存儲的待復(fù)制的每個對象的條目,所述條目包括所接收的用于所述對象的元數(shù)據(jù)。
24.根據(jù)權(quán)利要求22所述的系統(tǒng),其中每個對象由組塊組成,其中接收用于至少一個對象的所述數(shù)據(jù)包括:僅從所述源服務(wù)器接收用于所述對象的、尚未在所述目標(biāo)存儲裝置中存儲的那些組塊,其中所述操作還包括: 從所述源服務(wù)器接收所述對象中的、當(dāng)前在所述目標(biāo)存儲裝置中存儲的組塊的列表;以及 對于每個如下對象,針對該對象從所述目標(biāo)服務(wù)器接收到少于所述對象中的所有組塊的組塊,在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的所述條目中指示指向所述組塊列表中的、已經(jīng)在所述目標(biāo)存儲裝置中存儲的所述組塊的鏈接。
25.根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述操作還包括: 從所述源服務(wù)器接收對于在所述目標(biāo)服務(wù)器處的、滿足第一準(zhǔn)則的對象的清單的查詢; 向所述源服務(wù)器發(fā)送在所述目標(biāo)服務(wù)器處的、滿足所述第一準(zhǔn)則的所述對象的所述清單; 接收用于在所述源服務(wù)器處的、與所述清單中列舉的對象匹配的對象的元數(shù)據(jù);以及針對與所述清單中列舉的對象匹配的所述對象、對于針對其接收到元數(shù)據(jù)的每個對象,向所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,其中所述條目包括用于所述對象的所述元數(shù)據(jù),其中所述目標(biāo)列表包括在所述目標(biāo)服務(wù)器處的、滿足第二準(zhǔn)則的對象。
26.根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述操作還包括: 維護(hù)在所述目標(biāo)存儲裝置中存儲的對象的組;以及 響應(yīng)于確定已經(jīng)在所述目標(biāo)服務(wù)器處接收到所述對象的組中的并非所有對象,而將所述對象的組指示為不完整,其中在恢復(fù)操作期間不使被指示為不完整的所述對象的組可用于客戶端節(jié)點。
27.一種用于從源服務(wù)器所管理的源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制對象的方法,包括: 構(gòu)建在所述源服務(wù)器處的、將向所述目標(biāo)服務(wù)器復(fù)制的對象的源列表; 查詢所述目標(biāo)服務(wù)器以獲得在所述目標(biāo)服務(wù)器處的對象的目標(biāo)列表; 構(gòu)建復(fù)制列表,所述復(fù)制列表指示在所述源列表上的、未在所述目標(biāo)列表上包括的、將向所述目標(biāo)服務(wù)器傳送的對象; 對于在所述復(fù)制列表中的每個對象,執(zhí)行: 向所述目標(biāo)服務(wù)器發(fā)送用于尚未在所述目標(biāo)存儲裝置處的所述對象的數(shù)據(jù); 向所述目標(biāo)服務(wù)器發(fā)送關(guān)于所述對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù); 向源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目。
28.根據(jù)權(quán)利要求27所述的方法,還包括: 對于在所述源列表和所述目標(biāo)列表二者上的每個對象,執(zhí)行: 向所述目標(biāo)服務(wù)器發(fā)送用于所述對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù);以及向所述源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目。
29.根據(jù)權(quán)利要求27所述的方法,其中每個對象由組塊組成,其中對于在所述復(fù)制列表上的每個對象執(zhí)行的所述操作還包括: 確定所述對象中的組塊;以及 確定所述對象中的、未在所述目標(biāo)存儲裝置處存儲的第一組塊集合,其中向所述目標(biāo)服務(wù)器發(fā)送用于所述數(shù)據(jù)對象的所述數(shù)據(jù)包括:向所述目標(biāo)服務(wù)器發(fā)送所確定的組塊集合以在所述目標(biāo)存儲裝置中存儲;以及 確定所述對象中的、當(dāng)前在所述目標(biāo)存儲裝置處存儲的第二組塊集合;以及 向所述目標(biāo)服務(wù)器發(fā)送在所述第二組塊集合中的組塊的組塊標(biāo)識符。
30.根據(jù)權(quán)利要求27所述的方法,還包括: 向所述目標(biāo)服務(wù)器查詢在所述目標(biāo)服務(wù)器處的、滿足第一準(zhǔn)則的對象的清單; 從所述目標(biāo)服務(wù)器接收所述對象的所述清單; 確定在所述源服務(wù)器中的、與來自所述目標(biāo)服務(wù)器的所述清單中列舉的對象匹配的對象; 向所述目標(biāo)服務(wù)器發(fā)送用于所確定的與所述清單中列舉的對象匹配的對象的元數(shù)據(jù),以使所述目標(biāo)服務(wù)器在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的條目中包括所述元數(shù)據(jù);以及 向所述源服務(wù)器復(fù)制數(shù)據(jù)庫添加用于所述對象的條目,其中所構(gòu)建的源列表包括在所述源服務(wù)器處的、滿足第二準(zhǔn)則的待復(fù)制的對象。
31.根據(jù)權(quán)利要求27所述的方法,還包括: 確定在所述目標(biāo) 列表上的、但是未在所述源列表上的待刪除的對象;以及與所述目標(biāo)服務(wù)器通信以使所述目標(biāo)服務(wù)器從所述目標(biāo)服務(wù)器和目標(biāo)存儲裝置刪除所確定的待刪除的對象。
32.一種用于從源服務(wù)器所管理的源存儲裝置向目標(biāo)服務(wù)器所管理的目標(biāo)存儲裝置復(fù)制對象的方法,包括: 從所述源服務(wù)器接收對于在所述目標(biāo)服務(wù)器處的對象的目標(biāo)列表的查詢; 向所述源服務(wù)器發(fā)送在所述目標(biāo)服務(wù)器處的所述對象的所述目標(biāo)列表; 從所述源服務(wù)器接收用于將在所述目標(biāo)存儲裝置中存儲的對象的數(shù)據(jù); 從所述源服務(wù)器接收用于針對待復(fù)制的所述對象接收的所述數(shù)據(jù)的元數(shù)據(jù);以及對于針對其接收到數(shù)據(jù)的每個對象,向目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,所述條目包括針對所述對象接收的所述元數(shù)據(jù)。
33.根據(jù)權(quán)利要求32所述的方法,還包括: 對于已經(jīng)在所述目標(biāo)存儲裝置中存儲的待復(fù)制的每個對象,從所述源服務(wù)器接收元數(shù)據(jù);以及 向所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加用于已經(jīng)在所述目標(biāo)存儲裝置中存儲的待復(fù)制的每個對象的條目,所述條目包括所接收的用于所述對象的元數(shù)據(jù)。
34.根據(jù)權(quán)利要求32所述的方法,其中每個對象由組塊組成,其中接收用于至少一個對象的所述數(shù)據(jù)包括:僅從所述源服務(wù)器接收用于所述對象的、尚未在所述目標(biāo)存儲裝置中存儲的那些組塊,所述方法還包括: 從所述源服務(wù)器接收所述對象中的、當(dāng)前在所述目標(biāo)存儲裝置中存儲的組塊的列表;以及 對于每個如下對象,針對該對象從所述目標(biāo)服務(wù)器接收到少于所述對象中的所有組塊的組塊,在所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫中的用于所述對象的所述條目中指示指向所述組塊列表中的、已經(jīng)在所述目標(biāo)存儲裝置中存儲的所述組塊的鏈接。
35.根據(jù)權(quán)利要求32所述的方法,還包括:從所述源服務(wù)器接收對于在所述目標(biāo)服務(wù)器處的、滿足第一準(zhǔn)則的對象的清單的查詢; 向所述源服務(wù)器發(fā)送在所述目標(biāo)服務(wù)器處的、滿足所述第一準(zhǔn)則的所述對象的所述清單; 接收用于在所述源服務(wù)器處的、與所述清單中列舉的對象匹配的對象的元數(shù)據(jù);以及針對與所述清單中列舉的對象匹配的所述對象、對于針對其接收到元數(shù)據(jù)的每個對象,向所述目標(biāo)服務(wù)器復(fù)制數(shù)據(jù)庫添加條目,其中所述條目包括用于所述對象的所述元數(shù)據(jù),其中所述目標(biāo)列表包括在所述目標(biāo)服務(wù)器處的、滿足第二準(zhǔn)則的對象。
36.根據(jù)權(quán)利要求32所述的方法,還包括: 維護(hù)在所述目標(biāo)存儲裝置中存儲的對象的組;以及 響應(yīng)于確定已經(jīng)在所述目標(biāo)服務(wù)器處接收到所述對象的組中的并非所有對象,而將所述對象的組指示為不完整 ,其中在恢復(fù)操作期間不使被指示為不完整的所述對象的組可用于客戶端節(jié)點。
【文檔編號】G06F17/30GK103765817SQ201280041913
【公開日】2014年4月30日 申請日期:2012年8月28日 優(yōu)先權(quán)日:2011年8月30日
【發(fā)明者】M·J·安格林, D·M·卡農(nóng), C·S·道森, B·弗魯赫特曼, M·A·海, H·N·馬丁 申請人:國際商業(yè)機(jī)器公司