基于網格的數據移動性的制作方法
【專利摘要】本發明公開了將數據從源服務器遷移到目標服務器的數據遷移系統和方法。該系統包括索引,該索引包含標準化數據模型中的多個數據遷移操作,每個數據遷移操作與屬性相關聯地存儲,且數據移動器可通信地連接到該索引。該數據移動器適于根據索引中包含的數據遷移操作將數據從源服務器移動到目標服務器。數據移動器具有與索引中包含的至少一個數據遷移操作的相關聯的屬性對應的屬性,該屬性指示可以由數據移動器進行的數據遷移操作的類型。該索引適于獲取數據移動器的屬性,并適于從索引中包含的數據遷移操作之中向數據移動器傳送具有與數據移動器的屬性對應的屬性的數據遷移操作。該數據移動器適于根據傳送的數據遷移操作從源服務器向目標服務器移動數據。
【專利說明】基于網格的數據移動性
【技術領域】
[0001]本發明涉及用于以更加可擴展和靈活的方式將數據從源服務器移動到目標服務器的系統和過程。
【背景技術】
[0002]不同物理系統和數據模型之間的大量數據的遷移對產業界而言變得越來越重要。這類遷移對于從現在廢棄不用的遺留硬件或數據模型移動數據而言是必要的。遷移對于提供數據的備份和將數據移動到更容易訪問的物理位置而言也是必要的。
[0003]之前使用勞動力密集的手動收集數據以及必須為每個個別的遷移量身定做的轉換過程進行數據遷移。這使得該過程昂貴、緩慢,且易于出錯。
[0004]任何類型的數據移動性(mobility)操作都涉及大量的、必須被操縱以最大化數據移動效率并減少操作的總體持續時間的源和目標資源。構建大的數據基礎架構以供用戶訪問數據并在存儲基礎架構中創建新的數據。
[0005]數據遷移操作與以上的多線程基礎架構不同,傾向為單線程。該單線程操作并沒有充分最優化源基礎架構資產來使能快速且高效的數據移動。
【發明內容】
[0006]根據本發明的一個方面,提供了一種用于將數據從源服務器遷移到目標服務器的數據遷移系統,其包括:包含標準化數據模型中的多個數據遷移操作的索引,每個數據遷移操作與屬性相關聯地存儲,以及可通信地連接到該索引的數據移動器,該數據移動器適于根據索引中包含的數據遷移操作將數據從源服務器移動到目標服務器;其中:該數據移動器具有與索引中包含的至少一個數據遷移操作的相關聯的屬性對應的屬性,該屬性指示可以由數據移動器進行的數據遷移操作的類型;該索引適于獲取該數據移動器的屬性,并適于從索引中包含的數據遷移操作之中,向數據移動器傳送具有與數據移動器的屬性對應的屬性的數據遷移操作;以及該數據移動器適于根據傳送的數據遷移操作從源服務器向目標服務器移動數據。
[0007]本發明提供了一種通過使用中心工作倉庫和分離出的(abstracted)數據移動器應用,允許數據移動性和數據移動操作的巨大可擴展性的邏輯機構。
[0008]為了使能數據遷移操作的多個線程,本發明人意識到多個分離出的數據移動器可被用來幫助多個請求到源基礎架構。該結構有效地提高聚合吞吐量。然而,可能并不總需要多個數據移動器且數據移動器的適當的數目會在遷移之間改變。本發明的系統允許數據移動器如所需被添加到系統或從系統中移除,從而使得系統的吞吐量可以匹配其工作負荷。
[0009]優選地,所述數據移動器包括數據提取命令生成引擎,其適于從傳送的數據遷移操作生成源服務器的源語言的數據提取命令。適當地,所述數據移動器包括數據提交命令生成引擎,其適于從傳送的數據遷移操作生成目標服務器的目標語言的數據提交命令。
[0010]優選地,所述數據移動器適于在傳送的數據遷移操作完成之后向索引發送完成報生口 O
[0011]適當地,所述索引適于在傳送的數據遷移操作完成之后,確定在數據遷移的當前階段,具有與數據移動器的屬性對應的屬性的所有數據遷移操作是否已經完成;以及如果在數據遷移的當前階段中并非具有該屬性的所有數據遷移操作都已經完成,則索引適于從索引中包含的數據遷移操作之中,傳送具有該屬性的另一數據遷移操作;以及如果在數據遷移的當前階段具有該屬性的所有數據遷移操作都已經完成,則索引適于指示數據移動器進入暫停狀態。
[0012]更優選地,數據移動器具有多個屬性,且每個數據遷移操作與多個屬性相關聯;數據移動器的屬性對應于索引中包含的至少一個數據遷移操作的屬性;以及索引適于從索引中包含的數據遷移操作之中,向數據移動器傳送具有與數據移動器的屬性對應的屬性的數據遷移操作。
[0013]適當地,所述系統包括:多個具有不同屬性的數據移動器,其中索引將數據遷移操作分發到具有分別匹配所述數據遷移操作的屬性的屬性的數據移動器。
[0014]本發明人已經發現本發明提供的聚合吞吐量的增加比與使用多個數據移動器相關聯的額外的復雜性要重要得多,額外的復雜性是由管理和配置多個元件從而避免沖突和避免重復操作造成的。
[0015]根據本發明的另一方面,提供了一種用于將數據從源服務器遷移到目標服務器的方法,其包括:在索引中存儲標準化數據模型中的數據遷移操作的集合,每個數據遷移操作與屬性相關聯地存儲;將屬性存儲在可通信地連接到該索引的數據移動器中,該屬性指示可以由數據移動器進行的數據遷移操作的類型;在索引處獲取數據移動器中存儲的屬性;從索引向數據移動器傳送具有與該數據移動器中存儲的屬性對應的相關聯的屬性的數據遷移操作;將該數據遷移操作轉換為源服務器的源語言的數據提取命令;將該數據提取命令傳送到源服務器;將該數據遷移操作轉換為目標服務器的目標語言的數據提交命令;將該數據提交命令傳送到目標服務器;以及將數據從該源服務器移動到該目標服務器。
[0016]優選地,具有不同屬性的多個數據移動器連接到索引,該方法還包括:估計完成將數據從源服務器移動到目標服務器所需的時間;以及如果估計的時間超過預定的上閾值,則將額外的數據移動器連接到索引或激活額外的數據移動器。
[0017]適當地,具有不同屬性的多個數據移動器連接到索引,該方法還包括:估計完成將數據從源服務器移動到目標服務器所需的時間;以及如果估計的時間低于預定的下閾值,則將該數據移動器從索引斷開或無效該數據移動器。
【專利附圖】
【附圖說明】
[0018]將通過更多僅是示例的例子參照附圖描述本發明的實施例,在附圖中:
[0019]圖1示出根據本發明的一個實施例的數據遷移系統;
[0020]圖2是示出在本發明的一個實施例中用于進行數據遷移操作的數據移動器的操作的流程圖;
[0021]圖3是示出在本發明的一個實施例用于進行數據遷移操作的索引的操作的流程圖;
[0022]圖4示出數據移動器的主要部件的示意圖;以及[0023]圖5示出可以在上面實現本發明的數據遷移系統的示例性計算機體系架構1100。【具體實施方式】
[0024]圖1提供了根據本發明的一個實施例的索引-數據移動器關系的概述。參照圖1,源服務器300包含源數據,所述源數據將被遷移到目標服務器400中的目標數據。
[0025]索引200包含源服務器300中的源數據的索引。所述索引200使用獨立于源服務器300中數據實際被保存的格式的標準化數據模型。所述索引200使用自動化數據收集器和導入器(importer)生成。
[0026]數據移動器100是基于有關索引200總包含的源數據的信息將數據從源服務器300移動到目標服務器400的部件。系統可以包含任意數目(any number of)的數據移動器100。數據移動器100從索引200取走標準化的工作負荷。術語“標準化”意味著索引200中的所有數據符合數據移動器100理解的單一的標準數據模型。換言之,索引200對源和目標服務器中保存的數據的格式和類型是不可知的(agnostic)。在數據移動器100上進行所有產品-特定的翻譯(translation)和管理。
[0027]在本發明的該實施例中,索引200是存儲所有需要的數據移動操作的中心索引(central index)。這些操作已經被數學地創建并處理,其每個具有諸如源位置、目標目的地、平臺類型和數據類型的若干屬性。用這些屬性對每個遷移操作加標簽,意味著存在控制每個數據操作的元數據。然后輸入所述遷移操作作為中心索引200上的符合條件的操作,從而有效地將每個遷移操作標記為應該完成的一件工作,如果數據移動器100與該特定的遷移操作所要求的屬性一致的話。
[0028]例如,數據遷移操作可以存儲在索引200中,具有以下屬性:源A、目標B、類型C和平臺D。可以提供許多數據移動器100,僅其子集具有屬性源A、目標B、類型C和平臺D。數據移動器的該子集中的任何一個可以進行該數據遷移操作。可以用控制文件中的屬性預配置數據移動器100,或可由中心索引200完成數據移動器100的屬性的配置。
[0029]這允許許多數據移動器對一個索引200的關系。當新的數據移動器與中心索弓I 200通信并使其自身可用于工作時,遷移操作被分配給數據移動器100。連接中的(onconnection)數據移動器100自動地自身登記有相關聯的屬性,如果這些屬性與具有等效屬性的遷移操作匹配,則使得這些遷移操作可用于分配給數據移動器100。
[0030]一旦遷移操作被分配給數據移動器100,數據移動器除了向索引200推送進程和成功報告以確保中心索引200知曉所有操作的完成,就不再依賴于中心索引200。數據移動器100保障源和目標點與相關聯的基礎架構的關系,即數據移動器100和源服務器300之間的連接,以及數據移動器100和目標服務器400之間的連接。數據移動器100還處理所需的操作到源服務器和目標服務器的語言的所有翻譯,所述源服務器的語言和目標服務器的語言的被稱作源服務器語言和目標服務器語言。
[0031]換言之,中心索引200在標準化數據模型中存儲遷移操作的陣列。每個數據移動器取決于其屬性,將具有匹配其自己屬性的屬性的遷移操作轉換為適當的源語言和目標語言。例如,以上描述的數據移動器100會基于索引200中的數據遷移操作的條目,產生源A的語言的用于獲取(retrieve)數據的請求,并將該請求發送給數據移動器100連接的、適當的源服務器A。由此數據移動器100從源服務器300獲取相關的數據。[0032]隨后,數據移動器100將同樣基于索引200中的數據遷移操作的條目,生成目標B的語言的用于提交(commit),即上載數據的請求。該請求被發送到數據移動器100連接的目標服務器B,并且由此以對于目標服務器B適當的格式提交相關的數據。
[0033]典型地,每個數據移動器100具有翻譯邏輯,用于將索引200的標準化數據模型(即語言)中的數據遷移操作分別轉換為一個或多個特定的源服務器的語言的請求或一個或多個特定的目標服務器的語言的請求。該翻譯邏輯構成數據提取命令生成和數據提交命令生成引擎。作為結果,索引僅需確保數據遷移操作被發送到適當的數據移動器,從而確保操作被翻譯為正確的語言。
[0034]一旦每個數據移動器100已經完成了當前的遷移操作,隨后其可以或者取走額外的工作負荷,或者暫停其操作并被從激活的(active)配置中去除。數據移動器的該可選擇的暫停確保當源環境通過數據遷移減少時,聚合能力可以得以伸縮(flexed)。
[0035]由于中心索引200對每個遷移操作保存標準化、共有的屬性,因此數據移動器的向外擴展能力是各個屬性簡況的數目和索引200中遷移操作的數目。
[0036]本實施例系統的加強的可伸縮性是由于數據移動器都是具有明確定義的屬性的獨立的自動化部件。這意味著可以向系統添加額外的數據移動器從而增加吞吐量(throughput)而不會干擾系統的操作。新數據移動器僅僅以與已經存在的數據移動器同樣的方式從索引200接收工作,由此減輕已經存在的數據移動器上的負荷而不干擾其操作。索引200通過將可用的數據遷移操作的屬性與新數據移動器的屬性匹配而立即知道如何向新的數據移動器分配工作。
[0037]圖1示出數據移動器層的可擴展性。該圖示出具有特定屬性的可用的遷移操作,以及符合最優化聚合數據傳輸帶寬和減少總持續時間的數據移動器的縮放(scaling)。本實施例的解決方案確保數據移動性層總是超過源環境的聚合帶寬能力,這意味著數據移動性層對于數據移動操作決不是瓶頸。數據移動器可以如需要被調整為不同的身份。數據移動器還可以如需要動態添加或移除。這允許如以上討論的遷移能力的縮放。
[0038]根據本發明的一個實施例的數據遷移的過程描述如下,并且在圖2和3中示出。圖2示出數據移動器100的操作,而圖3示出索引200的操作。
[0039]一旦已經完成對中心索引的遷移操作設置和配置,工作負荷列表對于遷移操作可用。將所有符合條件的數據打包(package)到所需操作的標準化工作負荷列表中。一旦完成該列表,則可以配置并啟動數據移動器。
[0040]當數據移動器已經在步驟SlO連接到中心索引之后,在步驟S30和S32,定義并相對工作負荷列表上的每個數據遷移操作的屬性檢查數據移動器的屬性。可以開啟數據移動器,即其數據遷移功能被激活,并且當這個完成時,適當的工作負荷,即數據遷移操作將在步驟S34被分配給數據移動器。在步驟S12由數據移動器接收該工作負荷。該工作負荷本質上是以索引的標準化語言由索引提供的、駐留在源服務器中數據對象的列表。隨后在步驟S14和S16,該數據移動器將該標準化內容翻譯為用于源環境的提取命令和用于目標環境的提交命令。隨后數據移動器在步驟S18根據提取命令和提交命令協調(orchestrate)移動數據的過程,并向中心索引發回報告,從而維持操作的中心日志。
[0041]一旦完成遷移操作,在步驟S20數據移動器向索引報告數據遷移操作的完成。該索引在步驟S36從數據移動器接收操作完成報告,并在步驟S38記錄操作的完成。[0042]如果剩余有任何這類操作,數據移動器會進行到遷移的特定階段中的所有其它操作。假定還沒有完成當前階段中的所有數據遷移操作,則索引返回到步驟S32并將更多的工作分配給數據移動器。一旦當前階段中的所有數據遷移操作完成,索引指示數據移動器在步驟S40移動到暫停狀態,此時數據移動器在等待獲取下一個符合條件的遷移操作。這確保中心索引關于源環境中存儲的每一個遷移對象的狀態得以更新。在遷移程序自始至終,如需要可以跟蹤并且重新運行操作。
[0043]圖4示出數據移動器100的主要部件。通信接口 110與源服務器300、目標服務器400和索引200通信。數據提取命令生成引擎106基于經通信接口 110從索引200接收的數據遷移操作,生成源服務器300的語言的數據提取命令。數據提交命令生成引擎108基于從索引200接收的數據遷移操作,生成目標服務器400的語言的數據提交命令。
[0044]數據存儲器102存儲在源服務器300和目標服務器400之間移動的數據。屬性存儲器104存儲與索引200中數據遷移操作的屬性比較的數據移動器100的屬性。
[0045]可以在任何時間點啟動額外的數據移動器,從而增加遷移流和聚合可用移動性帶寬。此外,一旦數據移動器完成遷移操作之后已經返回到暫停狀態,就可以將該數據移動器從激活的(active)配置中移除。可以從中心索引200安排這些操作,從而確保可以基于策略而動態地使能和禁用數據移動器。
[0046]在一個實施例中,數據遷移系統估計完成當前從源服務器300到目標服務器400的數據遷移中涉及的所有數據的移動所需的時間。這可以通過以下實現:從數據移動器獲得從數據遷移開始通過每個數據移動器100的數據傳輸的平均速率,并且相加這些平均吞吐量以獲得數據遷移系統的總平均吞吐量。將剩余要遷移的數據量除以總平均吞吐量,然后得出估計的完成時間。
[0047]數據遷移系統將估計的完成時間與事先輸入到系統中的期望的數據遷移完成時間相比較。如果估計的完成時間大于期望的時間,則該系統激活當前無效的(deactivated)數據移動器或將額外的數據移動器連接到系統。這使得總體數據傳輸速率增加,并且確保遷移的及時完成。
[0048]相反地,如果估計的完成時間比期望的時間小超過某現有的量,則系統無效一個或多個數據移動器或將一個或多個數據移動器從索引斷開連接。這在當不需要能量和系統資源時保留能量和系統資源。
[0049]在以上的實施例中,索引200可以向數據移動器100發送對屬性的請求,且數據移動器100可以響應該請求向索引200傳送其屬性。然而,數據移動器100也能夠在與索引200連接時未被提示地或以固定的間隔向索引200傳送其屬性。索引200還可以存儲連接到索引的所有數據移動器100的列表及其屬性。
[0050]在以上的實施例中,索引200向數據移動器100分配并發送數據遷移操作。然而,索引200可以在向數據移動器100分配數據遷移操作之前,首先等待從該數據移動器100發送工作請求。
[0051]以上的方法允許較大規模數據移動性的靈活能力被縮放(scale)到任何源基礎結構的大小和能力。該基于網格的數據移動的靈活形式意味著超出現有技術中可能的能力的具有更復雜數據類型和平臺的更大量的數據能夠被遷移。本發明中使用的數據移動器的數目不受限制,且可以根據遷移項目的大小和計劃的持續時間來自由地選擇。[0052]根據該實施例的本系統的設計允許單個的中心索引或倉庫來保持遷移項目的所有相關聯的元數據。這允許用于管理所有數據移動器的管理和控制的單個點。
[0053]在該實施例中,數據移動器與用于源和目標軟件的客戶端模型交互。這允許將該過程應用到要求可擴展的數據移動性的其它應用。本發明可能的應用包括提供數據內容的有索引的備份/歸檔、較大規模物理-虛擬服務器環境的遷移以及存儲資產向更現代技術的移動性。
[0054]圖5示出示例性計算機體系架構1100,通過其可實現根據本發明的數據遷移系統,特別是索引或數據移動器。計算機體系架構1100可以是或形成臺式計算機或膝上型計算機、服務器或任何類似的計算機設備的部分,但是索引優選地實現為獨立的服務器。
[0055]計算機體系架構1100可以通過調制解調器或網絡接口 1102(諸如模擬調制解調器、ISDN調制解調器、纜線調制解調器、令牌環接口或衛星傳輸接口)與外部設備(諸如源服務器300或目標服務器400)相接口。如圖5所示,計算機體系架構1100包括處理單元1104、其可以是傳統的微處理器,諸如Intel Pentium微處理器、Intel Core Duo微處理器或Motorola Power PC微處理器,其為計算機【技術領域】的普通技術人員所知。系統存儲器1106通過系統總線1108耦接到處理單元1104。系統存儲器1106可以是DRAM、RAM、靜態RAM(SRAM)或其任意組合。總線1108將處理單元1104耦接到系統存儲器1106,到非易失性存儲器1110、到圖形子系統1112以及到輸入/輸出(1/0)控制器1114。圖形子系統1112控制顯示設備1116,諸如液晶顯示器,其可以是圖形子系統1112的部分。1/0設備1118可以包括計算機【技術領域】的普通技術人員所知的鍵盤、盤驅動、打印機、鼠標、觸摸屏等中的一個或多個。
[0056]索引或數據移動器控制軟件將通常存儲在非易失性存儲器1110上。因此,其可以存儲在機器的硬驅或可能存儲在外部可連接的存儲介質上,諸如USB記憶棒或⑶。這兩個設備然后將構成如圖5中示出為1118的1/0設備的部分。非易失性存儲器還可以存儲形成部分索引的索引數據。
[0057]僅僅通過示例給出了以上描述,且本領域的技術人員應當理解在不偏離本發明的范圍內可以進行修改。
【權利要求】
1.一種用于將數據從源服務器遷移到目標服務器的數據遷移系統,該系統包括: 包含標準化數據模型中的多個數據遷移操作的索引,每個數據遷移操作與屬性相關聯地存儲,以及 可通信地連接到該索引的數據移動器,該數據移動器適于根據索引中包含的數據遷移操作將數據從源服務器移動到目 標服務器;其中: 該數據移動器具有與索引中包含的至少一個數據遷移操作的相關聯的屬性對應的屬性,該屬性指示能夠由數據移動器進行的數據遷移操作的類型; 該索引適于獲取該數據移動器的屬性,并適于從索引中包含的數據遷移操作之中,向數據移動器傳送具有與數據移動器的屬性對應的屬性的數據遷移操作;以及 該數據移動器適于根據傳送的數據遷移操作從源服務器向目標服務器移動數據。
2.根據權利要求1所述的數據遷移系統,其中數據移動器包括數據提取命令生成引擎,其適于從傳送的數據遷移操作生成源服務器的源語言的數據提取命令。
3.根據權利要求1或2所述的數據遷移系統,其中數據移動器包括數據提交命令生成引擎,其適于從傳送的數據遷移操作生成目標服務器的目標語言的數據提交命令。
4.根據權利要求1至3中任一所述的數據遷移系統,其中數據移動器適于在傳送的數據遷移操作完成之后向索引發送完成報告。
5.根據權利要求1至4中任一所述的數據遷移系統,其中索引適于在傳送的數據遷移操作完成之后,確定在數據遷移的當前階段,具有與數據移動器的屬性對應的屬性的所有數據遷移操作是否已經完成;以及 如果在數據遷移的當前階段中并非具有該屬性的所有數據遷移操作都已經完成,則索引適于從索引中包含的數據遷移操作之中,傳送具有該屬性的另一數據遷移操作;以及如果在數據遷移的當前階段具有該屬性的所有數據遷移操作都已經完成,則索引適于指示數據移動器進入暫停狀態。
6.根據權利要求1至5中任一所述的數據遷移系統,其中: 數據移動器具有多個屬性,且每個數據遷移操作與多個屬性相關聯; 數據移動器的屬性對應于索引中包含的至少一個數據遷移操作的屬性;以及索引適于從索引中包含的數據遷移操作之中,向數據移動器傳送具有與數據移動器的屬性對應的屬性的數據遷移操作。
7.根據權利要求1至6中任一所述的數據遷移系統,包括:多個具有不同屬性的數據移動器,其中索引將數據遷移操作分發到具有分別匹配所述數據遷移操作的屬性的屬性的數據移動器。
8.一種用于將數據從源服務器遷移到目標服務器的方法,該方法包括: 在索引中存儲標準化數據模型中的數據遷移操作的集合,每個數據遷移操作與屬性相關聯地存儲; 將屬性存儲在可通信地連接到該索引的數據移動器中,該屬性指示可以由數據移動器進行的數據遷移操作的類型; 在索引處獲取數據移動器中存儲的屬性; 從索引向數據移動器傳送具有與該數據移動器中存儲的屬性對應的相關聯的屬性的數據遷移操作;將該數據遷移操作轉換為源服務器的源語言的數據提取命令; 將該數據提取命令傳送到源服務器; 將該數據遷移操作轉換為目標服務器的目標語言的數據提交命令; 將該數據提交命令傳送到目標服務器;以及 將數據從該源服務器移動到該目標服務器。
9.根據權利要求8所述的方法,其中具有不同屬性的多個數據移動器連接到索引,該方法還包括: 估計完成將數據從源服務器移動到目標服務器所需的時間;以及如果估計的時間超過預定的上閾值,則將額外的數據移動器連接到索引或激活額外的數據移動器。
10.根據權利要求8或權利要求9所述的方法,其中具有不同屬性的多個數據移動器連接到索引,該方法還包括: 估計完成將數據從源服務器移動到目標服務器所需的時間;以及 如果估計的時間低于預定的下閾值,則將該數據移動器從索引斷開或無效該數據移動 器。
【文檔編號】H04L29/08GK103957226SQ201310341785
【公開日】2014年7月30日 申請日期:2013年8月7日 優先權日:2012年8月7日
【發明者】I.T.史密斯 申請人:國際商業機器公司