跨集群文件系統(tǒng)同步更新的制作方法
【專利摘要】本發(fā)明的各實施例涉及可配置計算機(jī)資源的共享池中的數(shù)據(jù)的同步。以一致性點的形式捕獲包括數(shù)據(jù)和元數(shù)據(jù)的文件系統(tǒng)更改的映像。創(chuàng)建連續(xù)一致性點,其中在連續(xù)一致性點之間的對所述文件系統(tǒng)中的數(shù)據(jù)和元數(shù)據(jù)的更改被捕獲且放置于隊列中,以便傳送給目標(biāo)站點處的目標(biāo)文件系統(tǒng)。作為文件系統(tǒng)操作來傳送所述更改,其中所述傳送限于在所述一致性點中捕獲和反映的更改。
【專利說明】跨集群文件系統(tǒng)同步更新
【背景技術(shù)】
[0001]本發(fā)明涉及跨集群文件系統(tǒng)的數(shù)據(jù)同步。更具體地說,本發(fā)明涉及跟蹤文件系統(tǒng)中的更改以及使用標(biāo)準(zhǔn)協(xié)議將所述更改重放至另一文件系統(tǒng)。
[0002]在緩存遠(yuǎn)程文件數(shù)據(jù)的可伸縮且可寫的緩存系統(tǒng)中,自遠(yuǎn)程站點取回數(shù)據(jù)且在緩存站點(亦稱為源站點)進(jìn)行更新,并且在遠(yuǎn)程站點(亦稱為目標(biāo)站點)重放數(shù)據(jù)。已知源站點與目標(biāo)站點之間的網(wǎng)絡(luò)連接性可能經(jīng)受臨時斷開連接。當(dāng)兩個站點之間的斷開連接發(fā)生時,源站點應(yīng)仍可用于存取先前被緩存的數(shù)據(jù),且因此,源站點繼續(xù)支持?jǐn)?shù)據(jù)及元數(shù)據(jù)更新。此時,由于兩個站點之間的連接性恢復(fù),因此數(shù)據(jù)及元數(shù)據(jù)更新需要與目標(biāo)站點同步。
【發(fā)明內(nèi)容】
[0003]本發(fā)明包括用于從與可配置計算資源的共享池通信的源數(shù)據(jù)站點向目標(biāo)數(shù)據(jù)站點同步更新數(shù)據(jù)及元數(shù)據(jù)的方法、系統(tǒng)及制品。
[0004]在一個方面中,提供一種用于同步更新數(shù)據(jù)的方法。在周期性基礎(chǔ)上在源文件系統(tǒng)中創(chuàng)建一致性點。每個一致性點表示在一時間點的文件系統(tǒng)數(shù)據(jù)及元數(shù)據(jù),并且被用于建立恢復(fù)點。更具體地說,一致性點的周期性地創(chuàng)建包括在第一時間點創(chuàng)建第一一致性點及在第二時間點創(chuàng)建第二一致性點。比較所述第一與第二一致性點以標(biāo)識任何差別。另外,基于對象之間的對應(yīng)關(guān)系將源文件系統(tǒng)對象映射到目標(biāo)文件系統(tǒng)對象。應(yīng)用在所述第一與第二一致性點之間的所標(biāo)識的差別。更具體地說,差別的應(yīng)用包括作為一個或多個文件系統(tǒng)操作來重放所標(biāo)識的差別。
[0005]在另一方面中,系統(tǒng)具備工具以支持一致性數(shù)據(jù)的同步??膳渲糜嬎銠C(jī)資源的共享池具備與其通信的功能單元,所述功能單元在其中具有工具以支持所述同步。所述工具包括數(shù)據(jù)管理器、差異(delta)管理器及數(shù)據(jù)移動器。所述數(shù)據(jù)管理器在所述共享池中的源站點處處理數(shù)據(jù)并且在所述源站點的源文件系統(tǒng)中周期性地創(chuàng)建一致性點。每個一致性點表示在一時間點的源文件系統(tǒng)數(shù)據(jù)及元數(shù)據(jù)以便建立恢復(fù)點。更具體地說,所述數(shù)據(jù)管理器在第一時間點創(chuàng)建第一一致性點及在第二時間點創(chuàng)建第二一致性點。與所述數(shù)據(jù)管理器通信的所述差異管理器用于比較所述第一一致性點與所述第二一致性點。更具體地說,所述差異管理器標(biāo)識所述第一與第二一致性點之間的任何差別。與所述差異及應(yīng)用管理器通信的所述數(shù)據(jù)移動器應(yīng)用所述第一與第二一致性點之間的所標(biāo)識的差別。差別的應(yīng)用包括基于源文件系統(tǒng)對象至目標(biāo)文件系統(tǒng)對象的映射而重放所標(biāo)識的差別。
[0006]在又一方面中,經(jīng)由網(wǎng)絡(luò)連接作為服務(wù)而傳遞計算機(jī)程序產(chǎn)品。所述計算機(jī)程序產(chǎn)品包括具有計算機(jī)可讀程序代碼的計算機(jī)可讀存儲介質(zhì)。提供計算機(jī)可讀程序代碼來處理可配置資源的共享池中的源站點處的數(shù)據(jù),包括在所述源站點的源文件系統(tǒng)中周期性地創(chuàng)建一致性點。每個所創(chuàng)建的一致性點表示在一時間點的源文件系統(tǒng)數(shù)據(jù)及元數(shù)據(jù),并且被用作恢復(fù)點。更具體地說,所述程序代碼在第一時間點創(chuàng)建第一一致性點及在第二時間點創(chuàng)建第二一致性點。還提供計算機(jī)可讀程序代碼來比較所述第一一致性點與所述第二一致性點,并且具體地說標(biāo)識所述第一與第二一致性點之間的任何差別。另外,提供計算機(jī)可讀程序代碼來將源文件系統(tǒng)對象映射至目標(biāo)文件系統(tǒng)對象,其中所述映射基于所述對象之間的關(guān)系。提供計算機(jī)可讀程序代碼來應(yīng)用所述第一與第二一致性點之間的所標(biāo)識的差另IJ。更具體地說,所述程序代碼基于所述映射而作為一個或多個文件系統(tǒng)操作來重放所標(biāo)識的差別。
[0007]在再一方面中,提供一種方法來同步更新數(shù)據(jù)。更具體地說,在第一時間點在源文
件系統(tǒng)中創(chuàng)建第--致性點,及在第二時間點在所述源文件系統(tǒng)中創(chuàng)建第二一致性點。所
述第一一致性點表示在第一時間點的文件系統(tǒng)數(shù)據(jù)及元數(shù)據(jù),并且用于建立第一恢復(fù)點。所述第二一致性點表示在第二時間點的文件系統(tǒng)數(shù)據(jù)及元數(shù)據(jù),并且用于建立第二恢復(fù)點。在與所述源文件系統(tǒng)相關(guān)聯(lián)的通信故障之后,比較所述第一一致性點與所述第二一致性點。所述比較包括標(biāo)識所述第一與第二一致性點之間的更改。應(yīng)用所述第一與第二一致性點之間的所標(biāo)識的更改來支持所述同步。更具體地說,所述應(yīng)用包括基于源文件系統(tǒng)對象至目標(biāo)文件系統(tǒng)對象的映射,作為文件系統(tǒng)操作而重放所述更改。
[0008]結(jié)合附圖, 自本發(fā)明的目前優(yōu)選實施例的以下詳細(xì)描述中,本發(fā)明的其他特征及優(yōu)點將變得顯而易見。
【專利附圖】
【附圖說明】
[0009]本文中所參看的圖式形成本說明書的一部分。除非另有明確指示,否則在圖式中所示的特征意欲作為本發(fā)明的僅僅一些實施例的說明,而非本發(fā)明的全部實施例的說明,這些附圖是:
[0010]圖1描繪根據(jù)本發(fā)明的實施例的云計算節(jié)點;
[0011]圖2描繪根據(jù)本發(fā)明的實施例的云計算環(huán)境;
[0012]圖3描繪根據(jù)本發(fā)明的實施例的抽象模型層;
[0013]圖4描繪示出將對源站點處的數(shù)據(jù)及元數(shù)據(jù)的更改放置于隊列中以傳送至目標(biāo)站點的過程的流程圖;
[0014]圖5描繪示出管理源站點處的一致性點的過程的流程圖;
[0015]圖6描繪示出檢測源站點與目標(biāo)站點之間的通信故障的過程以及使用源站點中的數(shù)據(jù)及元數(shù)據(jù)使目標(biāo)站點最新的恢復(fù)管理的第一方面的流程圖;
[0016]圖7描繪示出調(diào)解在源站點處的兩個一致性點中的目錄項的過程的流程圖;
[0017]圖8描繪示出內(nèi)嵌于計算機(jī)系統(tǒng)中以支持?jǐn)?shù)據(jù)同步的工具的方塊圖;
[0018]圖9描繪展示用于實施本發(fā)明的實施例的系統(tǒng)的方塊圖。
【具體實施方式】
[0019]應(yīng)易于理解,可以各種各樣的不同配置來布置及設(shè)計如本文中的圖式中大體所描述及說明的本發(fā)明的組件。因此,如圖式中所呈現(xiàn)的對本發(fā)明的裝置、系統(tǒng)及方法的實施例的以下詳細(xì)說明不意欲限制如所要求保護(hù)的本發(fā)明的范圍,而僅僅是本發(fā)明的選定實施例的代表。
[0020]在本說明書中描述的功能單元已被標(biāo)為管理器。可在諸如場可編程門陣列、可編程陣列邏輯、可編程邏輯器件或類似者的可編程硬件器件中實施管理器。亦可在用于由各種類型的處理器處理的軟件中實施管理器??蓤?zhí)行程序代碼的所標(biāo)識管理器可例如包括計算機(jī)指令的一個或多個物理或邏輯塊,所述塊可例如組織為對象、程序、功能或其他構(gòu)造。然而,所標(biāo)識管理器的可執(zhí)行碼不需要在物理上定位在一起,而可包括存儲于不同位置的全異指令,所述指令當(dāng)在邏輯上被接合至一起時包括管理器且實現(xiàn)管理器的設(shè)定目的。
[0021]實際上,可執(zhí)行程序代碼的管理器可為單一指令或許多指令,并且甚至可被分布于若干不同碼段的上、在不同應(yīng)用間及跨若干存儲器件。類似地,在本文中,操作數(shù)據(jù)可被標(biāo)識并例示于管理器內(nèi),且可以任何合適的形式體現(xiàn)且組織于任何合適類型的數(shù)據(jù)結(jié)構(gòu)內(nèi)。操作數(shù)據(jù)可被收集以作為單一數(shù)據(jù)集或可分布于不同位置上(包括在不同存儲器件上),且可至少部分地作為電子信號存在于系統(tǒng)或網(wǎng)絡(luò)上。
[0022]貫穿本說明書引用的“選擇實施例”、“一個實施例”或“實施例”意謂結(jié)合該實施例所描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一實施例中。因此,貫穿本發(fā)明在各種位置出現(xiàn)的短語“選擇實施例”、“在一個實施例中”或“在實施例中”未必指同一實施例。
[0023]此外,所描述的特征、結(jié)構(gòu)或特性可在一個或多個實施例中以任何合適的方式組合。在以下描述中,提供許多具體細(xì)節(jié),諸如數(shù)據(jù)移動器、復(fù)制管理器、遷移管理器等的實例,從而提供對本發(fā)明的實施例的詳盡理解。然而,本領(lǐng)域技術(shù)人員將認(rèn)識到,可在無需具體細(xì)節(jié)中的一個或多個的情況下或者可用其他方法、組件、材料等來實踐本發(fā)明。在其他情況下,未詳細(xì)展示或描述公知的結(jié)構(gòu)、材料或操作,以免使本發(fā)明的各方面模糊不清。
[0024]通過參看圖式將最佳地理解本發(fā)明的所例示實施例,在所述圖式中相同部分貫穿全文由相同數(shù)字指定。以下描述意欲僅為舉例而言,且僅說明與如本文中所要求保護(hù)的本發(fā)明一致的器件、系統(tǒng)及程序的某些選定實施例。
[0025]云計算環(huán)境是面向服務(wù)的,聚焦于無狀態(tài)、低耦合度、模塊性及語義互操作性。在云計算的核心處為包括互連節(jié)點的網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu)?,F(xiàn)在參考圖1,其中顯示了云計算節(jié)點的一個例子。云計算節(jié)點10僅僅是適合的云計算節(jié)點的一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制??傊?,云計算節(jié)點10能夠被用來實現(xiàn)和/或執(zhí)行以上所述的任何功能。云計算節(jié)點10具有計算機(jī)系統(tǒng)/服務(wù)器12,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。眾所周知,適于與計算機(jī)系統(tǒng)/服務(wù)器12 —起操作的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個人計算機(jī)系統(tǒng)、服務(wù)器計算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機(jī)系統(tǒng)、大型計算機(jī)系統(tǒng)和包括上述任意系統(tǒng)的分布式云計算技術(shù)環(huán)境,
坐坐寸寸ο
[0026]計算機(jī)系統(tǒng)/服務(wù)器12可以在由計算機(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ù)器12可以在通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計算環(huán)境中實施。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠(yuǎn)程計算系統(tǒng)存儲介質(zhì)上。
[0027]如圖1所示,云計算節(jié)點10中的計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18??偩€18表示幾類總線結(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)總線。計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0028]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM)30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。如以下將進(jìn)一步描繪和說明的,存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0029]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在存儲器28中,這樣的程序模塊42包括但不限于操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0030]計算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進(jìn)行。并且,計算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,其它硬件和/或軟件模塊可以與計算機(jī)系統(tǒng)/服務(wù)器12—起操作,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)
坐寸ο
[0031]現(xiàn)在參考圖2,其中顯示了示例性的云計算環(huán)境50。如圖所示,云計算環(huán)境50包括云計算消費者使用的本地計算設(shè)備可以與其相通信的一個或者多個云計算節(jié)點10,本地計算設(shè)備例如可以是個人數(shù)字助理(PDA)或移動電話54A,臺式電腦54B、筆記本電腦54C和/或汽車計算機(jī)系統(tǒng)54N。云計算節(jié)點10之間可以相互通信??梢栽诎ǖ幌抻谌缟纤龅乃接性?、共同體云、公共云或混合云或者它們的組合的一個或者多個網(wǎng)絡(luò)中將云計算節(jié)點10進(jìn)行物理或虛擬分組(圖中未顯示)。這樣,云的消費者無需在本地計算設(shè)備上維護(hù)資源就能請求云計算環(huán)境50提供的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)和/或軟件即服務(wù)(SaaS)。應(yīng)當(dāng)理解,圖2顯示的各類計算設(shè)備54A-N僅僅是示意性的,云計算節(jié)點10以及云計算環(huán)境50可以與任意類型網(wǎng)絡(luò)上和/或網(wǎng)絡(luò)可尋址連接的任意類型的計算設(shè)備(例如使用網(wǎng)絡(luò)瀏覽器)通信。
[0032]現(xiàn)在參考圖3,其中顯示了云計算環(huán)境50 (圖2)提供的一組功能抽象層。首先應(yīng)當(dāng)理解,圖3所示的組件、層以及功能都僅僅是示意性的,
[0033]本發(fā)明的實施例不限于此。如圖3所示,提供下列層和對應(yīng)功能:硬件和軟件層60、虛擬層62、管理層64及工作負(fù)載層66。硬件和軟件層60包括硬件和軟件組件。硬件
組件的例子包括:主機(jī),在一個示例中為IBM? zSeries?系統(tǒng);基于Risc (精簡指令集計算機(jī))體系結(jié)構(gòu)的服務(wù)器,在一個示例中為IBM pSeries?系統(tǒng);ibm xSeries?系統(tǒng);IBM BladeCenter?系統(tǒng);存儲設(shè)備;網(wǎng)絡(luò)和網(wǎng)絡(luò)組件。軟件組件的例子包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,在一個示例中為IBM WebSphere?應(yīng)用服務(wù)器軟件;數(shù)據(jù)庫軟件,在一個不例中為 IBM DB2?數(shù)據(jù)庫軟件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是國際商業(yè)機(jī)器公司在全世界各地的注冊商標(biāo))。
[0034]虛擬層62提供一個抽象層,該層可以提供下列虛擬實體的例子:虛擬服務(wù)器、虛擬存儲、虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò))、虛擬應(yīng)用和操作系統(tǒng),以及虛擬客戶端。
[0035]在一個實例中,管理層64可提供以下功能:資源供應(yīng)、計量和定價、用戶門戶、月艮務(wù)水平管理,以及服務(wù)水平協(xié)議(SLA)計劃和履行。在下文中描述所述功能。資源供應(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)。
[0036]工作負(fù)載層66提供云計算環(huán)境可能實現(xiàn)的功能的示例。在該層中,可提供的工作負(fù)載或功能的示例包括但不限于:地圖繪制與導(dǎo)航;軟件開發(fā)及生命周期管理;虛擬教室的教學(xué)提供;數(shù)據(jù)分析處理;操作處理;以及維持一致的應(yīng)用數(shù)據(jù)以支持云計算環(huán)境內(nèi)的遷移。
[0037]在本文中所描述的可配置計算機(jī)資源的共享池(下文中稱為云計算環(huán)境)中,應(yīng)用可遷移動到任何數(shù)據(jù)中心(本文中亦稱為數(shù)據(jù)站點)。存在兩個一般情形,其中應(yīng)用經(jīng)受遷移,包括計劃遷移及非計劃遷移。在計劃遷移中,應(yīng)用遷移動到云中的任何數(shù)據(jù)中心(亦即,目標(biāo)站點),同時維持災(zāi)難恢復(fù)支持,并且在非計劃遷移中,應(yīng)用經(jīng)受故障且在云中的任何數(shù)據(jù)中心中恢復(fù),同時維持災(zāi)難恢復(fù)支持。因此,計劃遷移與非計劃遷移之間的差別是故障應(yīng)用的故障及隨后的恢復(fù)。
[0038]源站點為數(shù)據(jù)的主要位置,且目標(biāo)站點提供源數(shù)據(jù)的復(fù)本。在一個實施例中,源站點以讀寫模式操作以支持讀取操作及寫入操作兩者,且目標(biāo)站點以只讀模式操作且限于支持讀取操作。提供源數(shù)據(jù)與目標(biāo)站點的連續(xù)同步。在一個實施例中,源站點故障之后是目標(biāo)站點被升級至新的源站點,從而支持讀取操作及寫入操作兩者。此類升級可要求應(yīng)用和/或工具被遷移動到新的源站點,從而支持新的源站點的功能性。
[0039]在文件集級別定義來自源站點的數(shù)據(jù)。在一個實施例中,文件集為文件系統(tǒng)命名空間的子樹,所述文件系統(tǒng)命名空間為數(shù)據(jù)管理提供管理邊界。因此,復(fù)制及一致性的粒度為文件集。所限定粒度的方面保證跨給定文件集內(nèi)的所有文件的所有依賴性寫入被保證為是有序的。圖4是示出將對源站點處的數(shù)據(jù)及元數(shù)據(jù)的更改放置于隊列中以傳送給目標(biāo)站點的方面的流程圖(400)。在將任何數(shù)據(jù)和/或元數(shù)據(jù)更改放置于隊列中之前,創(chuàng)建在源站點處的映射,其具有在源站點及目標(biāo)站點處的文件標(biāo)識符空間(402)。更具體地說,在源站點處的索引節(jié)點(inode)數(shù)目需要被映射到在目標(biāo)站點處的等效索引節(jié)點數(shù)目,并且在源站點處的文件名可能需要被映射到在目標(biāo)站點處的等效文件名。
[0040]應(yīng)用在源站點處運(yùn)行(404)。應(yīng)用可支持讀取和/或?qū)懭氩僮?。將自寫入操作生成的?shù)據(jù)存儲于源站點本地的數(shù)據(jù)存儲器(其中應(yīng)用正在處理)中,例如本地存儲器(406)。同時,將自寫入操作創(chuàng)建的數(shù)據(jù)自本地數(shù)據(jù)存儲器復(fù)制至在目標(biāo)站點處的備份數(shù)據(jù)存儲器,同時應(yīng)用繼續(xù)處理一個或多個操作(408)。在步驟(408)的復(fù)制包括來自寫入操作的數(shù)據(jù)及元數(shù)據(jù)兩者。可將在步驟(408)的復(fù)制自源站點中的一個或多個服務(wù)器節(jié)點同步或異步傳導(dǎo)至在目標(biāo)站點中的一個或多個服務(wù)器節(jié)點。不管在步驟(408)的復(fù)制的格式如何,在源數(shù)據(jù)存儲器及目標(biāo)數(shù)據(jù)存儲器兩者上創(chuàng)建數(shù)據(jù)一致性點。一致性點的創(chuàng)建確保一旦應(yīng)用經(jīng)受故障,應(yīng)用可自一致性數(shù)據(jù)集中恢復(fù)。
[0041]可使用本領(lǐng)域技術(shù)人員已知的若干不同方法來獲得一致性點。在一個實施例中,采用文件系統(tǒng)或存儲系統(tǒng)快照并且使用寫入時復(fù)制語義來保存某一時間點的數(shù)據(jù),而無需將應(yīng)用請求延遲一段延長的時間。在一個實施例中,可使用任何級別的一致性,包括(但不限于)應(yīng)用、系統(tǒng)故障、文件系統(tǒng)等。因此,來自一個或多個寫入操作的數(shù)據(jù)及元數(shù)據(jù)被存儲于源數(shù)據(jù)存儲器中并且被復(fù)制至目標(biāo)數(shù)據(jù)存儲器,其中在兩個數(shù)據(jù)存儲位置創(chuàng)建一個或多個一致性點。
[0042]在源位置及目標(biāo)位置兩者處創(chuàng)建及維持周期性一致性點,其中一致性點在發(fā)生站點故障的情況下充當(dāng)恢復(fù)點。更具體地說,在源站點本地選取一致性點,并且一旦在該一致性點中反映的全部數(shù)據(jù)已被傳輸至目標(biāo)站點,即在目標(biāo)站點處創(chuàng)建一致性點。因此,當(dāng)在源站點處發(fā)生對數(shù)據(jù)及元數(shù)據(jù)的更改時,這些更改被反映在源站點本地的一致性點中,并且被傳送至目標(biāo)站點,其中在目標(biāo)站點本地創(chuàng)建目標(biāo)一致性點。
[0043]為了支持網(wǎng)絡(luò)帶寬的有效使用,一致性點自源站點至目標(biāo)站點的傳輸可限于與先前一致性點的差別。圖5是示出管理源站點處的一致性點的過程的流程圖(500)。在源站點本地創(chuàng)建第一一致性點(502)。在時間間隔(504)之后,在源站點本地創(chuàng)建第二一致性點(506)。判定第——致性點與第二一致性點之間是否有任何差別(508)。對在步驟(508)的判定的肯定響應(yīng)之后為標(biāo)識具體差別(510)。更具體地說,對源站點處的一致性點的比較包括搜索如在索弓丨節(jié)點中反映的元數(shù)據(jù)及如在可能已被創(chuàng)建、刪除或修改的目錄項中反映的數(shù)據(jù)兩者。針對被標(biāo)識為具有差別的任何索引節(jié)點元數(shù)據(jù),創(chuàng)建索引節(jié)點輸出文件(512),并且針對被標(biāo)識為具有差別的任何目錄項,創(chuàng)建目錄輸出文件(514)。在一個實施例中,不需要創(chuàng)建及存儲輸出文件。更具體地說,差別(多個)可被排隊以直接在輔助站點處重放,而無需使用中間文件,例如,輸出文件。類似地,在一個實施例中,可在單次傳遞中創(chuàng)建采用隊列形式或者文件形式的輸出。作為一系列文件系統(tǒng)操作的重放輸出文件的步驟可與目標(biāo)站點同時或并行發(fā)生。在一個實施例中,文件系統(tǒng)操作(多個)可為標(biāo)準(zhǔn)和/或非專屬文件系統(tǒng)操作,諸如用于UNIX (POSIX)文件系統(tǒng)操作的攜帶性操作系統(tǒng)接口。因此,創(chuàng)建一個或多個輸出文件或者實施隊列來重放所標(biāo)識的元數(shù)據(jù)及數(shù)據(jù)差別。
[0044]在步驟(512)和/或(514)創(chuàng)建任何輸出文件之后,將輸出文件放置于源站點本地的存儲器內(nèi)隊列中(516)。同時,源站點可繼續(xù)處理讀取及寫入操作,這可包括對數(shù)據(jù)和/或元數(shù)據(jù)的進(jìn)一步更改。在步驟(516)或者對步驟(508)的判定的否定響應(yīng)之后,過程返回至步驟(504)繼續(xù),在此之后,重復(fù)隨后的一致性點的創(chuàng)建及其比較。在一個實施例中,在一致性點之間的一個或多個差別的應(yīng)用不限于連續(xù)的一致性點。更具體地說,所標(biāo)識的差別可在任意兩個一致性點之間。舉例而言,可重放兩個一致性點之間的差別以還原更改。如果SI及S2分別為在時間Tl及T2選取的連續(xù)的一致性點,并且其中Tl在T2之前出現(xiàn),則目標(biāo)站點可處于一致性點SI處并且在時間上被提前至S2,或者目標(biāo)站點可處于一致性點S2處并且在時間上被移回SI。第一及第二一致性點在時間上并非總是連續(xù)的,所述一致性點可為任意兩個一致性點。因此,在周期性基礎(chǔ)上創(chuàng)建一致性點,其中所比較的一致性點之間的差別被標(biāo)識并且被放置于隊列中以傳送給目標(biāo)站點。
[0045]認(rèn)識到源站點與目標(biāo)站點之間可能存在通信故障。故障因為各種原因而發(fā)生,并且這些故障的細(xì)節(jié)及其起因并非本發(fā)明的主題。然而,在發(fā)生故障的情況下,使用災(zāi)難恢復(fù)來建立或重建在源站點與目標(biāo)站點之間、在數(shù)據(jù)級別及元數(shù)據(jù)級別兩者上的一致性。在一個實施例中,隊列中的數(shù)據(jù)的傳輸以連續(xù)的方式異步發(fā)生。如果源站點經(jīng)歷節(jié)點或站點故障,則目標(biāo)站點將不接收在故障時可能已在隊列中的任何更改。在檢測到源站點與目標(biāo)站點之間的通信故障之后,調(diào)用算法來解釋及執(zhí)行針對源站點的操作。執(zhí)行操作包括與一致性點相關(guān)聯(lián)的兩個方面,一方面與元數(shù)據(jù)的差別有關(guān)且另一方面與數(shù)據(jù)的差別有關(guān)。
[0046]圖6是示出用于檢測源站點與目標(biāo)站點之間的通信故障的過程以及對使用源站點中的數(shù)據(jù)及元數(shù)據(jù)使目標(biāo)站點最新的恢復(fù)管理的第一方面的流程圖(600)。針對在源站點處的最新一致性點中所引用的每個索引節(jié)點,判定在源站點處的先前一致性點中是否存在該索引節(jié)點(602)。對步驟(602)的判定的否定響應(yīng)是主題索引節(jié)點為新的索引節(jié)點的指示(604)。在源站點處的新的索引節(jié)點的屬性被確定(606),并且臨時的新索引節(jié)點在目標(biāo)站點處被創(chuàng)建且被映射至在源站點處的所引用的新索引節(jié)點(608)。因此,針對在源節(jié)點處的最新一致性點中引用的每個新索引節(jié)點,在目標(biāo)站點處臨時創(chuàng)建新索引節(jié)點。
[0047]如果在步驟(602)判定主題索引節(jié)點曾存在于先前一致性點中,則通過引用,此索引節(jié)點存在于目標(biāo)站點處。對主題索引節(jié)點的引用指示與主題索引節(jié)點有關(guān)的現(xiàn)有文件已被修改(610 )。在步驟(608 )或(610 )之后,建立主題索引節(jié)點到映射后的目標(biāo)索引節(jié)點的硬鏈接(612)。在一個實施例中,硬鏈接是將名稱與文件系統(tǒng)上的現(xiàn)有文件相關(guān)聯(lián)的目錄項。一旦建立硬鏈接,接著判定是否存在在主一致性點中引用且與主題索引節(jié)點相關(guān)聯(lián)的新數(shù)據(jù)(614)。對步驟(614)的判定的肯定響應(yīng)之后為在源站點處將新的數(shù)據(jù)放置于隊列中,并且經(jīng)由硬鏈接將數(shù)據(jù)寫入至目標(biāo)索引節(jié)點(616)。在下文中所描述的圖7中展示更新目標(biāo)站點上的數(shù)據(jù)的細(xì)節(jié)。對步驟(614)的判定的否定響應(yīng)之后為判定是否存在在主一致性點中引用且與主題索引節(jié)點相關(guān)聯(lián)的新的元數(shù)據(jù)(618)。如果對步驟(618)的判定的響應(yīng)為否定,則元數(shù)據(jù)的調(diào)解過程結(jié)束(620)。相反地,對步驟(618)的判定的肯定響應(yīng)之后為自源站點中的一致性站點向目標(biāo)站點更新所有元數(shù)據(jù)屬性(622)。因此,在通信故障之后,維持且調(diào)解源站點與目標(biāo)站點之間的元數(shù)據(jù)一致性。
[0048]如在圖6中所參看,在源站點處的兩個一致性點之間的差別可相對于數(shù)據(jù)存在。圖7是示出調(diào)解源站點處的兩個一致性點中的目錄項的過程的流程圖(700)。針對每個所標(biāo)識的更改后的目錄(702),將源索引節(jié)點映射到目標(biāo)索引節(jié)點(704)。接著判定主題目錄是否位于最新一致性點中(706)。對步驟(706)的判定的否定響應(yīng)是主題目錄已被移除或重命名的指示(708)。自源站點至目標(biāo)站點建立主題目錄的鏈接(710)。因此,針對在一致性點比較中標(biāo)識為已被移除或重命名的每個目錄,在兩個站點之間建立鏈接以將更改從源站點傳送至目標(biāo)站點。
[0049]然而,對步驟(708)的判定的肯定響應(yīng)是已在目標(biāo)站點建立目錄的指示。因此,對步驟(706)的判定的肯定響應(yīng)之后為在位于目標(biāo)站點處的映射后的索引節(jié)點處查找主題目錄(712)。接著判定主題目錄是否存在于映射后的索引節(jié)點中(714)。如果目錄不存在,則在目標(biāo)站點創(chuàng)建目錄并且將目錄鏈接至源站點處的主題目錄(716)。然而,如果目錄存在,則接著判定在位于源站點處的一致性點比較中所標(biāo)注的文件級別處是否有更改(718)。對步驟(718)的判定的否定響應(yīng)是更改處于目錄級別的指示(720)。相反地,對步驟(718)的判定的肯定響應(yīng)展示更改處于數(shù)據(jù)級別并且建立自源站點至目標(biāo)站點的鏈接,從而使用更改后的數(shù)據(jù)更新適當(dāng)?shù)哪繕?biāo)索引節(jié)點及目錄(720)。因此,在目錄級別維持源站點與目標(biāo)站點之間的數(shù)據(jù)一致性。
[0050]在源站點處執(zhí)行的所有文件系統(tǒng)操作在目標(biāo)站點處以相同的次序重放,藉此保證寫入次序及讀取穩(wěn)定性。更具體地說,作為文件系統(tǒng)操作而自源站點應(yīng)用源站點一致性點與目標(biāo)站點一致性點之間的所標(biāo)識的差別。
[0051]如在圖4至圖7中的流程圖中所示范,使用方法來支持自源站點至目標(biāo)站點的數(shù)據(jù)同步。更具體地說,創(chuàng)建連續(xù)一致性點,標(biāo)識一致性點之間的差別,并且作為文件系統(tǒng)操作而自源站點至目標(biāo)站點重放所述差別。在一個實施例中,支持同步的工具均在源站點本地,同步包括創(chuàng)建一致性點、確定連續(xù)一致性點之間的差別、及將所確定的差別轉(zhuǎn)換成文件系統(tǒng)操作以傳送至目標(biāo)站點。圖8是示出內(nèi)嵌于計算機(jī)系統(tǒng)中以支持如上文所描述的數(shù)據(jù)同步的工具的方塊圖(800)。更具體地說,可配置計算機(jī)資源的共享池被示為具有第一數(shù)據(jù)中心(810)及第二數(shù)據(jù)中心(850)。為了描述的目的,第一數(shù)據(jù)中心(810)被稱為源站點及第二數(shù)據(jù)中心(850)被稱為目標(biāo)站點。盡管在本文中的實例中僅展示兩個數(shù)據(jù)中心,但本發(fā)明不應(yīng)限于在計算機(jī)系統(tǒng)中的此數(shù)據(jù)中心量。因此,可使用兩個或兩個以上數(shù)據(jù)中心來支持?jǐn)?shù)據(jù)同步。
[0052]所述系統(tǒng)中的每個數(shù)據(jù)中心具備與數(shù)據(jù)存儲器通信的至少一個服務(wù)器。更具體地說,第一數(shù)據(jù)中心(810)具備服務(wù)器(820),所述服務(wù)器(820)具有處理單元(822),所述處理單元(822)跨越總線(826)與存儲器(824)通信,并且與第一本地存儲器(828)通信;及第二數(shù)據(jù)中心(850 )具備服務(wù)器(860 ),所述服務(wù)器(860 )具有處理單元(862 ),所述處理單元(862 )跨越總線(866 )與存儲器(864 )通信,并且與第三本地存儲器(868 )通信。
[0053]在本文中所示的實例中,應(yīng)用(880)處理在第一數(shù)據(jù)中心(810)本地的讀取及寫入操作。讀取操作由第一本地存儲器(828)中的數(shù)據(jù)支持。類似地,來自寫入操作的數(shù)據(jù)被寫入第一本地存儲器(828)中。提供若干工具來支持自第一數(shù)據(jù)中心(810)至第二數(shù)據(jù)中心(850)的寫入數(shù)據(jù)同步。更具體地說,功能單元(830)被設(shè)置在共享池中的第一數(shù)據(jù)中心(810)本地,并且與服務(wù)器(820)的存儲器(824)通信。功能單元(830)管理支持?jǐn)?shù)據(jù)同步的工具。所述工具包括(但不限于)數(shù)據(jù)管理器(832)、差異管理器(834)及數(shù)據(jù)移動器(836)。數(shù)據(jù)管理器(832)用于借助一致性點處理在源站點(810)處的數(shù)據(jù)。更具體地說,數(shù)據(jù)管理器(832)在周期性基礎(chǔ)上在源站點(810)本地創(chuàng)建文件系統(tǒng)(亦即,源文件系統(tǒng))的一致性點。
[0054]每個所創(chuàng)建的一致性點表示在一時間點的文件系統(tǒng)數(shù)據(jù)及元數(shù)據(jù),并且在發(fā)生故障的情況下用于建立恢復(fù)點。數(shù)據(jù)管理器(832)至少在第一時間點創(chuàng)建第一一致性點及在第二時間點創(chuàng)建第二一致性點。在一個實施例中,在第二一致性點被生成且復(fù)制至目標(biāo)站點(850)之后,可自源站點(810)刪除第一一致性點。因此,數(shù)據(jù)管理器(832)用于在不同的時間點捕獲源文件系統(tǒng)的至少兩個映像。
[0055]因為存在源文件系統(tǒng)的至少兩個一致性點,所以在發(fā)生第一數(shù)據(jù)中心(810)與第二數(shù)據(jù)中心(850)之間的通信故障的情況下,需要將一致性點傳送至第二數(shù)據(jù)中心(850)。為了減輕帶寬利用,所述傳送可限于兩個一致性點之間的差別。提供差異管理器(834)以與數(shù)據(jù)管理器(832)通信,其中差異管理器(834)的功能性是支持這些差別的標(biāo)識及管理。更具體地說,差異管理器(834)比較第一一致性點與第二一致性點,并標(biāo)識第一一致性點與第二一致性點之間的任何差別。因此,差異管理器(834)用于標(biāo)識在兩個一致性點之間、在元數(shù)據(jù)級別及數(shù)據(jù)級別兩者上的差別。
[0056]最后,提供數(shù)據(jù)移動器(836)以與差異管理器(834)通信,從而管理差異管理器(834)所標(biāo)識的兩個一致性點之間的差別的應(yīng)用。更具體地說,數(shù)據(jù)移動器(836)生成含有所標(biāo)識的差別的輸出文件,將所標(biāo)識的差別放置于隊列中,并且作為文件系統(tǒng)操作而重放所述輸出文件。在一個實施例中,自源站點(810)至目標(biāo)站點(850)重放文件系統(tǒng)操作,其中操作包括采用同時方式的多個文件系統(tǒng)操作。由數(shù)據(jù)移動器(836)使用的文件系統(tǒng)操作僅重放在差異管理器(834)所創(chuàng)建的精確差異中反映的那些更改。在一個實施例中,數(shù)據(jù)移動器(836)允許合并兩個或兩個以上文件更新并且忽略瞬間元數(shù)據(jù)操作,例如,暫時文件。因為數(shù)據(jù)移動器(836)替換文件系統(tǒng)操作以傳送文件系統(tǒng)更改,所以源站點(810)及目標(biāo)站點(850)不限于同構(gòu)文件系統(tǒng)。在一個實施例中,源站點(810)及目標(biāo)站點(850)可為異構(gòu)文件系統(tǒng)。因此,數(shù)據(jù)移動器(836)負(fù)責(zé)以文件系統(tǒng)操作的形式自源站點(810)至目標(biāo)站點(850)傳送所標(biāo)識的文件系統(tǒng)更改。
[0057]如本文中所示,標(biāo)識文件系統(tǒng)更改且自資源共享池中的源站點(810)至目標(biāo)站點(850)同步文件系統(tǒng)更改。更具體地說,由數(shù)據(jù)管理器(832)、差異管理器(834)及數(shù)據(jù)移動器(836)支持同步。在一個實施例中,自源站點(810)的數(shù)據(jù)同步響應(yīng)于自源站點(810)的通信故障而發(fā)生,從而確保目標(biāo)站點(850)處的一致數(shù)據(jù)版本得到維持且發(fā)展。因此,在云中的兩個位置處維持?jǐn)?shù)據(jù)一致性,從而確保來自源站點的數(shù)據(jù)的復(fù)本在輔助位置可用。
[0058]如所示出的,在源站點(810)本地的可配置計算機(jī)資源的共享池(亦即,云)中提供工具(832)至(836)。在一個實施例中,目標(biāo)站點不需要任何額外工具來使計算機(jī)程序代碼支持同步功能性。如上文所標(biāo)識,數(shù)據(jù)管理器(832)、差異管理器(834)及數(shù)據(jù)移動器(836)分別示為駐留在源數(shù)據(jù)中心(810)本地的服務(wù)器(820)的存儲器(824)中。盡管在一個實施例中,數(shù)據(jù)管理器(832)、差異管理器(834)及數(shù)據(jù)移動器(836)分別可作為服務(wù)器(820)的存儲器(824)的外部硬件工具而駐留,或它們可作為硬件與軟件的組合實施。類似地,在一個實施例中,管理器(832)至(836)可被組合成結(jié)合了分離項的功能性的單一功能項。如本文中所示,管理器(多個)中的每個管理器被示為在一個數(shù)據(jù)中心本地。然而,在一個實施例中,所述管理器可集體或個別分布于可配置計算機(jī)資源的共享池間,且充當(dāng)管理一致性數(shù)據(jù)自源站點至目標(biāo)站點的同步的單元。因此,所述管理器可實施為軟件工具、硬件工具或軟件及硬件工具的組合。
[0059]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各方面可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明的各方面可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各方面還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0060]可以采用一個或多個計算機(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é)合使用。
[0061]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0062]計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0063]可以以一種或多種程序設(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)連接)。
[0064]下面將參照本發(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ī)定的功能/操作的裝置。
[0065]也可以把這些計算機(jī)程序指令存儲在能使得計算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機(jī)可讀介質(zhì)中,這樣,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0066]也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0067]現(xiàn)參看圖9,其是示出用于實施本發(fā)明的實施例的系統(tǒng)的方塊圖(900)。所述計算機(jī)系統(tǒng)包括一個或多個處理器,諸如處理器(902)。處理器(902)連接至通信基礎(chǔ)結(jié)構(gòu)(904)(例如,通信總線、跨接叉線(cross-over bar)或網(wǎng)絡(luò))。所述計算機(jī)系統(tǒng)可包括顯示接口(906),所述顯示接口(906)自通信基礎(chǔ)結(jié)構(gòu)(904)(或自未圖示的幀緩沖器)轉(zhuǎn)發(fā)圖形、文字及其他數(shù)據(jù)以在顯示單元(908)上顯示。所述計算機(jī)系統(tǒng)亦包括主存儲器(910)(優(yōu)選為隨機(jī)存取存儲器(RAM)),且亦可包括輔助存儲器(912)。輔助存儲器(912)可包括(例如)硬盤驅(qū)動器(914)和/或可移除存儲驅(qū)動器(916),后者表示為(例如)軟盤驅(qū)動器、磁帶驅(qū)動器或光盤驅(qū)動器??梢瞥鎯︱?qū)動器(916)以本領(lǐng)域技術(shù)人員所熟知的方式自可移除存儲單元(918)讀取和/或?qū)懭胫量梢瞥鎯卧?918)??梢瞥鎯卧?918)表示(例如)軟盤、光盤、磁帶或光盤等,所述單元由可移除存儲驅(qū)動器(916)讀取及寫入。如將理解的,可移除存儲單元(918)包括計算機(jī)可讀介質(zhì),所述計算機(jī)存儲介質(zhì)具有存儲于其中的計算機(jī)軟件和/或數(shù)據(jù)。
[0068]在備選實施例中,輔助存儲器(912)可包括其他類似構(gòu)件,用于允許計算機(jī)程序或其他指令被加載計算機(jī)系統(tǒng)中。這些構(gòu)件可包括(例如)可移除存儲單元(920)及接口(922)。這些構(gòu)件的實例可包括(諸如在視頻游戲設(shè)備中找到的)程序包及封裝接口,可移除存儲器芯片(諸如EPROM或PR0M)及相關(guān)聯(lián)的插座,及允許軟件及數(shù)據(jù)自可移除存儲單元(920)傳輸?shù)接嬎銠C(jī)系統(tǒng)的其他可移除存儲單元(920)及接口(922)。
[0069]所述計算機(jī)系統(tǒng)亦可包括通信接口(924)。通信接口(924)允許軟件及數(shù)據(jù)在計算機(jī)系統(tǒng)與外部設(shè)備之間傳輸。通信接口(924)的實例可包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如以太網(wǎng)卡)、通信端口或PCMCIA插槽及卡等。經(jīng)由通信接口(924)傳輸?shù)能浖皵?shù)據(jù)采取信號的形式,所述信號可為(例如)能夠由通信接口(924)接收的電子、電磁、光學(xué)或其他信號。經(jīng)由通信路徑(亦即,信道)(926)將這些信號提供給通信接口(924)。此通信路徑(926)承載信號且可使用電線或纜線、光纖、電話線、蜂窩電話鏈路、射頻(RF)鏈路和/或其他通信信道來實施。
[0070]在此文件中,術(shù)語“計算機(jī)程序介質(zhì)”、“計算機(jī)可用介質(zhì)”及“計算機(jī)可讀介質(zhì)”用于通常指諸如主存儲器(910)及輔助存儲器(912)、可移除存儲驅(qū)動器(916)及安裝于硬盤驅(qū)動器(914)中的硬盤的介質(zhì)。
[0071]計算機(jī)程序(亦稱為計算機(jī)控制邏輯)存儲于主存儲器(910)和/或輔助存儲器(912)中。計算機(jī)程序亦可經(jīng)由通信接口(924)接收。這些計算機(jī)程序在執(zhí)行時使計算機(jī)系統(tǒng)能夠執(zhí)行如本文中所討論的本發(fā)明的特征。具體地說,計算機(jī)程序在執(zhí)行時使處理器(902)能夠執(zhí)行計算機(jī)系統(tǒng)的特征。因此,這些計算機(jī)程序表示計算機(jī)系統(tǒng)的控制器。
[0072]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0073]本文所使用的術(shù)語僅為了描述特定實施例,且并不意欲限制本發(fā)明。如本文中所使用,單數(shù)形式“一”、“一個”及“該”意欲亦包括復(fù)數(shù)形式,除非上下文另有清晰指示。應(yīng)進(jìn)一步理解,術(shù)語“包括”和/或“包含”在用于本說明書中時指定所陳述的特征、整數(shù)、步驟、操作、元件和/或組件的存在,但不排除一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或其組合的存在或添加。
[0074]以下的權(quán)利要求中的對應(yīng)結(jié)構(gòu)、材料、操作以及所有功能性限定的裝置(means)或步驟的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它單元相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。所給出的對本發(fā)明的描述其目的在于示意和描述,并非是窮盡性的,也并非是要把本發(fā)明限定到所表述的形式。對于所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不偏離本發(fā)明范圍和精神的情況下,顯然可以作出許多修改和變型。對實施例的選擇和說明,是為了最好地解釋本發(fā)明的原理和實際應(yīng)用,使所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員能夠明了,本發(fā)明可以有適合所要的特定用途的具有各種改變的各種實施方式。因此,增強(qiáng)的云計算模型支持相對于應(yīng)用處理及災(zāi)難恢復(fù)的靈活性,包括(但不限于)支持?jǐn)?shù)據(jù)的位置與應(yīng)用位置的分離及適當(dāng)恢復(fù)站點的選擇。
[0075]備選實施例
[0076]應(yīng)了解,盡管為了說明在本文中已描述本發(fā)明的具體實施例,但可在不脫離本發(fā)明的精神及范圍的情況下進(jìn)行各種修改。具體地說,所述系統(tǒng)可被配置為支持在第一數(shù)據(jù)中心操作的數(shù)據(jù)及元數(shù)據(jù)的計劃及非計劃同步。因此,本發(fā)明的保護(hù)范圍僅由以下權(quán)利要求及其等效物限制。
【權(quán)利要求】
1.一種方法,包括: 在源文件系統(tǒng)中周期性地創(chuàng)建一致性點,每個一致性點表示在一時間點的文件系統(tǒng)數(shù)據(jù)和元數(shù)據(jù)以便建立恢復(fù)點,所述一致性點的周期性地創(chuàng)建包括在第一時間點創(chuàng)建第一一致性點和在第二時間點創(chuàng)建第二一致性點; 比較所述第一一致性點與所述第二一致性點,包括標(biāo)識所述第一一致性點與所述第二一致性點之間的差別; 基于源文件系統(tǒng)對象與目標(biāo)文件系統(tǒng)對象之間的對應(yīng)關(guān)系,將所述源文件系統(tǒng)對象映射到所述目標(biāo)文件系統(tǒng)對象; 應(yīng)用所述第一一致性點與所述第二一致性點之間的所標(biāo)識的差別,包括作為一個或多個文件系統(tǒng)操作而重放所標(biāo)識的差別。
2.如權(quán)利要求1的方法,其中應(yīng)用所標(biāo)識的差別的步驟采用源文件系統(tǒng)索引節(jié)點至目標(biāo)文件系統(tǒng)索引節(jié)點的映射。
3.如權(quán)利要求1的方法,其中應(yīng)用所標(biāo)識的差別的步驟包括:使用文件名來標(biāo)識針對文件系統(tǒng)對象的文件系統(tǒng)操作。
4.如權(quán)利要求1的方法,其中應(yīng)用所述第--致性點與所述第二一致性點之間的所標(biāo)識的差別的步驟包括:產(chǎn)生任何元數(shù)據(jù)更改和任何數(shù)據(jù)更改的精確差異,以及僅重放在所述精確差異中反映的那些更改。
5.如權(quán)利要求1的方法,還包括針對所標(biāo)識的差別生成輸出文件以及作為一系列文件系統(tǒng)操作而重放所述輸出文件,其中可向目標(biāo)站點同時重放所述操作中的一些操作。
6.如權(quán)利要求1的方法,還包括在所述源文件系統(tǒng)與所述目標(biāo)文件系統(tǒng)之間的通信故障之后重放所述輸出文件。
7.如權(quán)利要求1的方法,其中所述源文件系統(tǒng)與所述目標(biāo)文件系統(tǒng)為異構(gòu)文件系統(tǒng)。
8.如權(quán)利要求1的方法,還包括通過移動到較舊的一致性點來還原在所述目標(biāo)文件系統(tǒng)處的更改。
9.如權(quán)利要求1的方法,其中所述第一一致性點與所述第二一致性點不限于連續(xù)的一致性點。
10.一種系統(tǒng),包括: 可配置計算機(jī)資源的共享池; 與所述共享池通信的功能單元,所述功能單元包括: 數(shù)據(jù)管理器,其處理在所述共享池中的源站點處的數(shù)據(jù),包括在所述源站點的源文件系統(tǒng)中周期性地創(chuàng)建一致性點,每個一致性點表示在一時間點的源文件系統(tǒng)數(shù)據(jù)和元數(shù)據(jù)以便建立恢復(fù)點,所述數(shù)據(jù)管理器創(chuàng)建所述一致性點包括:所述數(shù)據(jù)管理器在第一時間點創(chuàng)建第一一致性點和在第二時間點創(chuàng)建第二一致性點; 差異管理器,其與所述數(shù)據(jù)管理器通信,所述差異管理器比較所述第一一致性點與所述第二一致性點,包括標(biāo)識所述第一一致性點與所述第二一致性點之間的任何差別;以及 數(shù)據(jù)移動器,其與所述差異管理器通信,所述數(shù)據(jù)移動器應(yīng)用所述第一一致性點與所述第二一致性點之間的所標(biāo)識的差別,包括基于源文件系統(tǒng)對象至目標(biāo)文件系統(tǒng)對象的映射而重放所標(biāo)識的差別。
11.如權(quán)利要求10的系統(tǒng),其中所述數(shù)據(jù)移動器采用源文件系統(tǒng)索引節(jié)點至目標(biāo)文件系統(tǒng)索引節(jié)點的映射來應(yīng)用所標(biāo)識的差別。
12.如權(quán)利要求10的系統(tǒng),其中由所述數(shù)據(jù)移動器應(yīng)用所標(biāo)識的差別包括:使用文件名來標(biāo)識針對文件系統(tǒng)對象的文件系統(tǒng)操作。
13.如權(quán)利要求10的系統(tǒng),其中所述差異管理器從所標(biāo)識的差別產(chǎn)生精確差異,所述精確差異包括任何元數(shù)據(jù)更改和任何數(shù)據(jù)更改,以及所述數(shù)據(jù)移動器僅重放在所述精確差異中反映的那些更改。
14.如權(quán)利要求10的系統(tǒng),還包括所述數(shù)據(jù)移動器針對所標(biāo)識的差別生成輸出文件并且支持向目標(biāo)站點同時重放一系列文件系統(tǒng)操作。
15.如權(quán)利要求10的系統(tǒng),還包括所述數(shù)據(jù)移動器在所述源站點與目標(biāo)站點之間的通信故障之后重放所述輸出文件。
16.一種計算機(jī)程序產(chǎn)品,其包括具有計算機(jī)可讀程序代碼的計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀程序代碼包括: 配置為處理在可配置資源的共享池中的源站點處的數(shù)據(jù)的計算機(jī)可讀程序代碼,包括在所述源站點的源文件系統(tǒng)中周期性地創(chuàng)建一致性點,每個一致性點表示在一時間點的源文件系統(tǒng)數(shù)據(jù)和元數(shù)據(jù)以便建立恢復(fù)點,所述一致性點的周期性地創(chuàng)建包括在第一時間點創(chuàng)建第一一致性點和在第二時間點創(chuàng)建第二一致性點; 配置為比較所述第一一致性點與所述第二一致性點的計算機(jī)可讀程序代碼,包括標(biāo)識所述第一一致性點與所述第二一致性點之間的任何差別;以及 配置為基于源文件系統(tǒng)對象與目標(biāo)文件系統(tǒng)對象之間的對應(yīng)關(guān)系,將所述源文件系統(tǒng)對象映射到所述目標(biāo)文件系統(tǒng)對象的計算機(jī)可讀程序代碼; 配置為應(yīng)用所述第一一致性點與所述第二一致性點之間的所標(biāo)識的差別的計算機(jī)可讀程序代碼,包括基于所述源文件系統(tǒng)對象至所述目標(biāo)文件系統(tǒng)對象的映射,作為一個或多個文件系統(tǒng)操作而重放所標(biāo)識的差別。
17.如權(quán)利要求16的計算機(jī)程序產(chǎn)品,其中應(yīng)用所標(biāo)識的差別的所述程序代碼采用源文件系統(tǒng)索引節(jié)點至目標(biāo)文件系統(tǒng)索引節(jié)點的映射。
18.如權(quán)利要求16的計算機(jī)程序產(chǎn)品,其中應(yīng)用所標(biāo)識的差別的所述程序代碼包括:使用文件名標(biāo)識針對文件系統(tǒng)對象的文件系統(tǒng)操作的程序代碼。
19.如權(quán)利要求16的計算機(jī)程序產(chǎn)品,其中配置為應(yīng)用所述第一一致性點與所述第二一致性點之間的所標(biāo)識的差別的所述程序代碼產(chǎn)生任何元數(shù)據(jù)更改和任何數(shù)據(jù)更改的精確差異,并且僅重放在所述精確差異中反映的那些更改。
20.如權(quán)利要求16的計算機(jī)程序產(chǎn)品,還包括配置為針對所標(biāo)識的差別生成輸出文件并且同時應(yīng)用所述第一一致性點與所述第二一致性點之間的所標(biāo)識的差別以支持多個同時文件系統(tǒng)操作的計算機(jī)程序代碼。
21.如權(quán)利要求16的計算機(jī)程序產(chǎn)品,還包括配置為在所述源站點與目標(biāo)站點之間的通信故障之后重放所述輸出文件的計算機(jī)程序代碼。
22.如權(quán)利要求16的計算機(jī)程序產(chǎn)品,其中所述第一一致性點與所述第二一致性點不限于連續(xù)的一致性點。
23.如權(quán)利要 求16的計算機(jī)程序產(chǎn)品,還包括配置為通過移動到較舊的一致性點來還原在所述目標(biāo)文件系統(tǒng)處的更改的計算機(jī)程序代碼。
24. —種方法,包括: 在第一時間點在源文件系統(tǒng)中創(chuàng)建第一一致性點和在第二時間點在所述源文件系統(tǒng)中創(chuàng)建第二一致性點,所述第一一致性點表示在第一時間點的文件系統(tǒng)數(shù)據(jù)和元數(shù)據(jù)以便建立第一恢復(fù)點,以及所述第二一致性點表示在第二時間點的文件系統(tǒng)數(shù)據(jù)和元數(shù)據(jù)以便建立第二恢復(fù)點; 在與所述源文件系統(tǒng)相關(guān)聯(lián)的通信故障之后,比較所述第一一致性點與所述第二一致性點,包括標(biāo)識所述第一一致性點與所述第二一致性點之間的更改;以及 應(yīng)用所述第一一致性點與所述第二一致性點之間的所標(biāo)識的更改,包括基于源文件系統(tǒng)對象至目標(biāo)文件系統(tǒng)對象的映射,作為文件系統(tǒng)操作而重放所標(biāo)識的更改。
25.如權(quán)利要求24的方法,還包括:在第三時間點在所述源文件系統(tǒng)中創(chuàng)建第三一致性點,所述第三一致性點與所述第一一致性點和所述第二一致性點連續(xù);以及移除所述第--致性點。
【文檔編號】G06F17/30GK103946844SQ201280057128
【公開日】2014年7月23日 申請日期:2012年10月17日 優(yōu)先權(quán)日:2011年11月29日
【發(fā)明者】K·古普塔, M·P·耐克, F·B·施穆克, M·A·沙阿, R·特瓦里 申請人:國際商業(yè)機(jī)器公司