国产精品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>

      云存儲系統(tǒng)間的數(shù)據(jù)遷移的制作方法

      文檔序號:11732133閱讀:220來源:國知局
      云存儲系統(tǒng)間的數(shù)據(jù)遷移的制作方法與工藝

      本發(fā)明涉及數(shù)據(jù)遷移的技術(shù)領(lǐng)域,尤其涉及一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移的技術(shù)。



      背景技術(shù):

      云存儲服務(wù)提供了穩(wěn)定、安全、高效以及高擴(kuò)展的存儲服務(wù),不僅直接面向用戶提供服務(wù),同時(shí)也為上層業(yè)務(wù)提供了強(qiáng)大支持,是公有云服務(wù)中一項(xiàng)非常重要的基礎(chǔ)服務(wù)。

      市場上云存儲產(chǎn)品眾多,隨著市場或者云存儲用戶的需求的不斷變動,云存儲用戶可能會選擇使用不同的云存儲服務(wù)。這就會產(chǎn)生數(shù)據(jù)在不同的云存儲間進(jìn)行遷移的需求,例如從阿里云oss將數(shù)據(jù)遷移到百度云bos等。對于云存儲系統(tǒng)間的數(shù)據(jù)遷移,目前都是針對特定系統(tǒng)、特定場景下開發(fā)的不同工具,如七牛云的遷移工具qrsync、阿里云oss的importer等,這些遷移工具將數(shù)據(jù)從指定的源端讀取,然后寫到目的端,進(jìn)而校驗(yàn)數(shù)據(jù)是否正確寫入目的端,這樣就完成了一個(gè)數(shù)據(jù)遷移的動作。此外,基于上述各種遷移工具的方法,均需要將數(shù)據(jù)寫入一次磁盤,從而產(chǎn)生了不必要的磁盤i/o,且在遷移速度和規(guī)模上進(jìn)行控制的難度高。

      然而,在云存儲系統(tǒng)中,數(shù)據(jù)量是非常大的,并且由于云存儲系統(tǒng)間的數(shù)據(jù)遷移,其本質(zhì)上是網(wǎng)絡(luò)交互,有很多的不確定性,因此,數(shù)據(jù)遷移過程中需要考慮幾個(gè)非常重要的方面:

      1)在數(shù)據(jù)量非常大的情況下,如何能在不對當(dāng)前系統(tǒng)造成影響下以最快的速度完成數(shù)據(jù)遷移---即性能高,速度可控,擴(kuò)展性強(qiáng)的需求;

      2)在網(wǎng)絡(luò)等情況不確定因素繁多復(fù)雜的情況下,能夠自動/準(zhǔn)確的完成數(shù)據(jù)的遷移---即自動化,強(qiáng)校驗(yàn)的需求;

      3)市面上有許多不同的云存儲產(chǎn)品,如果為每兩個(gè)云存儲系統(tǒng)間數(shù)據(jù)遷移都開發(fā)一個(gè)要支持以上兩點(diǎn)的遷移工具,顯然開發(fā)量是重復(fù)而巨大的---即遷移框架的通用性的需求。

      基于以上幾個(gè)方面考慮,云存儲系統(tǒng)間的數(shù)據(jù)遷移就有了對性能、靈活性、可擴(kuò)展性、自動化、數(shù)據(jù)校驗(yàn)以及框架通用性等有了巨大的挑戰(zhàn)。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的目的是提供一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移的方法、設(shè)備與系統(tǒng)以及計(jì)算機(jī)設(shè)備與計(jì)算機(jī)可讀存儲介質(zhì)。

      根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移方法,其中,在用戶設(shè)備,該方法包括以下步驟:

      -根據(jù)待遷移的文件列表,生成其中每個(gè)文件的描述信息;

      -將一個(gè)或多個(gè)數(shù)據(jù)遷移請求分別發(fā)送至可用的服務(wù)器,以由相應(yīng)的服務(wù)器在不同云存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)遷移,其中,每個(gè)數(shù)據(jù)遷移請求中包括對數(shù)據(jù)遷移的源端和目的端的指示信息以及一個(gè)或多個(gè)待遷移文件的描述信息。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移方法,其中,在網(wǎng)絡(luò)設(shè)備,該方法包括以下步驟:

      -根據(jù)自用戶設(shè)備接收的數(shù)據(jù)遷移請求,確定所述數(shù)據(jù)遷移請求所指示的數(shù)據(jù)遷移的源端和目的端;

      -從所述數(shù)據(jù)遷移請求中獲取一個(gè)或多個(gè)待遷移文件的描述信息;

      -按照所述一個(gè)或多個(gè)待遷移文件的描述信息,從所述源端獲取所述一個(gè)或多個(gè)待遷移文件并將其寫入所述目的端。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種用于云存儲系統(tǒng)間數(shù)據(jù)遷移的裝置,其中,該裝置被裝于用戶設(shè)備,該裝置包括:

      用于根據(jù)待遷移的文件列表,生成其中每個(gè)文件的描述信息的裝置;

      用于將一個(gè)或多個(gè)數(shù)據(jù)遷移請求分別發(fā)送至可用的服務(wù)器的裝置,以由相應(yīng)的服務(wù)器在不同云存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)遷移,其中,每個(gè)數(shù)據(jù)遷移請求中包括對數(shù)據(jù)遷移的源端和目的端的指示信息以及一個(gè)或多個(gè)待遷移文件的描述信息。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種用于云存儲系統(tǒng)間數(shù)據(jù)遷移的裝置,其中,該裝置被裝置于網(wǎng)絡(luò)設(shè)備,該裝置包括:

      用于根據(jù)自用戶設(shè)備接收的數(shù)據(jù)遷移請求,確定所述數(shù)據(jù)遷移請求所指示的數(shù)據(jù)遷移的源端和目的端的裝置;

      用于從所述數(shù)據(jù)遷移請求中獲取一個(gè)或多個(gè)待遷移文件的描述信息的裝置;

      用于按照所述一個(gè)或多個(gè)待遷移文件的描述信息,從所述源端獲取所述一個(gè)或多個(gè)待遷移文件并將其寫入所述目的端的裝置。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種計(jì)算機(jī)設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,其中,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)根據(jù)本發(fā)明的一個(gè)方面的在用戶設(shè)備用于云存儲系統(tǒng)間的數(shù)據(jù)遷移的方法。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種計(jì)算機(jī)設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,其中,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)根據(jù)本發(fā)明的一個(gè)方面的在網(wǎng)絡(luò)設(shè)備用于云存儲系統(tǒng)間的數(shù)據(jù)遷移的方法。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)根據(jù)本發(fā)明的一個(gè)方面的在用戶設(shè)備用于云存儲系統(tǒng)間的數(shù)據(jù)遷移的方法。

      根據(jù)本發(fā)明的一個(gè)方面,還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)根據(jù)本發(fā)明的一個(gè)方面的在網(wǎng)絡(luò)設(shè)備用于云存儲系統(tǒng)間的數(shù)據(jù)遷移的方法。

      與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種通用的云存儲系統(tǒng)間進(jìn)行數(shù)據(jù)遷移的方案。本發(fā)明使得在各種云存儲系統(tǒng)之間數(shù)據(jù)遷移的核心流程得到了復(fù)用,并可對各種數(shù)據(jù)源端以及數(shù)據(jù)目的端進(jìn)行擴(kuò)展,從而提供了對性能、靈活性、可擴(kuò)展性、自動化、數(shù)據(jù)校驗(yàn)以及框架通用性等各項(xiàng)性能要求均可以滿足的在不同云存儲系統(tǒng)之間進(jìn)行數(shù)據(jù)遷移的方案。

      附圖說明

      通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:

      圖1示出適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖;

      圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移方法的流程圖;

      圖3示出根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移系統(tǒng)的示意圖。

      附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。

      具體實(shí)施方式

      在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項(xiàng)操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各項(xiàng)操作的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。

      在上下文中所稱“計(jì)算機(jī)設(shè)備”,也稱為“電腦”,是指可以通過運(yùn)行預(yù)定程序或指令來執(zhí)行數(shù)值計(jì)算和/或邏輯計(jì)算等預(yù)定處理過程的智能電子設(shè)備,其可以包括處理器與存儲器,由處理器執(zhí)行在存儲器中預(yù)存的程序指令來執(zhí)行預(yù)定處理過程,或是由asic、fpga、dsp等硬件執(zhí)行預(yù)定處理過程,或是由上述二者組合來實(shí)現(xiàn)。計(jì)算機(jī)設(shè)備包括但不限于服務(wù)器、個(gè)人計(jì)算機(jī)(pc)、筆記本電腦、平板電腦、智能手機(jī)等。

      所述計(jì)算機(jī)設(shè)備例如包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但不限于個(gè)人計(jì)算機(jī)(pc)、筆記本電腦、移動終端等,所述移動終端包括但不限于智能手機(jī)、pda等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計(jì)算(cloudcomputing)的由大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級虛擬計(jì)算機(jī)。其中,所述計(jì)算機(jī)設(shè)備可單獨(dú)運(yùn)行來實(shí)現(xiàn)本發(fā)明,也可接入網(wǎng)絡(luò)并通過與網(wǎng)絡(luò)中的其他計(jì)算機(jī)設(shè)備的交互操作來實(shí)現(xiàn)本發(fā)明。其中,所述計(jì)算機(jī)設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。

      需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的計(jì)算機(jī)設(shè)備或網(wǎng)絡(luò)如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。

      本文后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實(shí)施。當(dāng)用軟件、固件、中間件或微代碼來實(shí)施時(shí),用以實(shí)施必要任務(wù)的程序代碼或代碼段可以被存儲在機(jī)器或計(jì)算機(jī)可讀介質(zhì)(比如存儲介質(zhì))中。(一個(gè)或多個(gè))處理器可以實(shí)施必要的任務(wù)。

      這里所公開的具體結(jié)構(gòu)和功能細(xì)節(jié)僅僅是代表性的,并且是用于描述本發(fā)明的示例性實(shí)施例的目的。但是本發(fā)明可以通過許多替換形式來具體實(shí)現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實(shí)施例。

      應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個(gè)單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個(gè)單元與另一個(gè)單元進(jìn)行區(qū)分。舉例來說,在不背離示例性實(shí)施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個(gè)或更多所列出的相關(guān)聯(lián)項(xiàng)目的任意和所有組合。

      這里所使用的術(shù)語僅僅是為了描述具體實(shí)施例而不意圖限制示例性實(shí)施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個(gè)”、“一項(xiàng)”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個(gè)或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。

      還應(yīng)當(dāng)提到的是,在一些替換實(shí)現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實(shí)際上可以基本上同時(shí)執(zhí)行或者有時(shí)可以按照相反的順序來執(zhí)行。

      在云存儲間進(jìn)行數(shù)據(jù)遷移,從本質(zhì)上來說就是將數(shù)據(jù)從源端讀取之后,再寫入目的端。

      因此,數(shù)據(jù)源端知道有哪些數(shù)據(jù)需要進(jìn)行遷移,并且有獲取數(shù)據(jù)的方法以及獲取數(shù)據(jù)“摘要”(描述該數(shù)據(jù)的一些基本信息)的方法;數(shù)據(jù)目的端需要有存放數(shù)據(jù)的方法,以及獲取數(shù)據(jù)“摘要”的方法。

      據(jù)此,本發(fā)明提出了一種通用的數(shù)據(jù)遷移框架。該數(shù)據(jù)遷移框架由3個(gè)主要部分組成:數(shù)據(jù)源端(datasource)、數(shù)據(jù)目的端(datadestination)以及數(shù)據(jù)遷移系統(tǒng)(包括客戶端和遷移服務(wù)器)。進(jìn)一步地,本發(fā)明還定義了描述數(shù)據(jù)的基本信息的數(shù)據(jù)“摘要”(fd)。

      如前所述,無論是從哪個(gè)云存儲服務(wù)將數(shù)據(jù)遷移到另一個(gè)云存儲服務(wù),整個(gè)過程就是讀取數(shù)據(jù)以及寫入數(shù)據(jù),可以通過控制并發(fā)數(shù)來實(shí)現(xiàn)對遷移速度的控制。并且,整個(gè)框架核應(yīng)是業(yè)務(wù)無關(guān)的,數(shù)據(jù)遷移系統(tǒng)根據(jù)數(shù)據(jù)源端給出的fd用遷移服務(wù)器的寫入方法將數(shù)據(jù)寫入。整個(gè)讀取數(shù)據(jù)和寫入數(shù)據(jù)的流程中不需要將源端的數(shù)據(jù)寫入一次磁盤,而是將數(shù)據(jù)通過遷移服務(wù)器直接傳給遷移服務(wù)器的方法,寫入目的端。進(jìn)一步地,在寫入目的端完成后,數(shù)據(jù)遷移系統(tǒng)還可以按照其校驗(yàn)(verify)方法對寫入數(shù)據(jù)進(jìn)行校驗(yàn),因此,verify方法是業(yè)務(wù)相關(guān)的,就是實(shí)現(xiàn)該框架的業(yè)務(wù)邏輯需要實(shí)現(xiàn)的。

      本發(fā)明所提出的數(shù)據(jù)遷移框架,可以擴(kuò)展至各種數(shù)據(jù)源端以及數(shù)據(jù)目的端。由于在各種云存儲系統(tǒng)之間進(jìn)行數(shù)據(jù)遷移的核心流程得到了復(fù)用,當(dāng)有新的遷移需求時(shí),按照本發(fā)明所提出的數(shù)據(jù)遷移框架的規(guī)定來實(shí)現(xiàn)源端、目的端以及相應(yīng)的數(shù)據(jù)遷移系統(tǒng)即可,例如按照新的源端來生成fd,按照新的目的端的寫入方法進(jìn)行數(shù)據(jù)寫入等。

      在云存儲系統(tǒng)中,需要遷移的數(shù)據(jù)量是非常大的,通常都是tb至pb級別的,所以需要多個(gè)同構(gòu)的遷移核心來完成這些任務(wù)。本發(fā)明提出了一種基于c-s結(jié)構(gòu)可橫向擴(kuò)展遷移能力的通用數(shù)據(jù)遷移方案。其中,遷移服務(wù)器和遷移客戶端使用開源框架thriftrpc進(jìn)行通信,遷移核心在遷移服務(wù)器上實(shí)現(xiàn),實(shí)際的數(shù)據(jù)遷移任務(wù)在遷移服務(wù)器上完成,多個(gè)同構(gòu)的遷移服務(wù)器來接收客戶端發(fā)來的遷移請求,在遷移服務(wù)器上可以實(shí)現(xiàn)多種不同的數(shù)據(jù)源和目的端之間的數(shù)據(jù)遷移,接受各種不同類型的數(shù)據(jù)遷移請求。

      下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。

      本發(fā)明提供了一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移系統(tǒng)。該數(shù)據(jù)遷移系統(tǒng)包括客戶端和服務(wù)器。其中,客戶端被典型地裝置于用戶設(shè)備(如個(gè)人計(jì)算機(jī))中。

      在此,用戶設(shè)備和服務(wù)器均可以為通用計(jì)算設(shè)備,其中分別存儲有各自運(yùn)行來配合實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)遷移方法的計(jì)算機(jī)程序。

      圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。

      如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元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ì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。

      存儲器28可以包括易失性存儲器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(ram)30和/或高速緩存存儲器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未示出,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如cd-rom,dvd-rom或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個(gè)驅(qū)動器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。

      具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。

      計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖1中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、raid系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。

      處理單元16通過運(yùn)行存儲在存儲器28中的程序,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。例如,當(dāng)一計(jì)算機(jī)系統(tǒng)/服務(wù)器12為用戶設(shè)備,其中存儲有用于執(zhí)行本發(fā)明的客戶端的各項(xiàng)功能和處理的計(jì)算機(jī)程序,至少另一計(jì)算機(jī)系統(tǒng)/服務(wù)器12為服務(wù)器,其中存儲有用于執(zhí)行本發(fā)明的服務(wù)器的各項(xiàng)功能和處理的計(jì)算機(jī)程序,當(dāng)用戶設(shè)備的處理單元16和服務(wù)器的處理單元分別執(zhí)行相應(yīng)設(shè)備中的計(jì)算機(jī)程序時(shí),本發(fā)明的用于云存儲系統(tǒng)間的數(shù)據(jù)遷移方法被實(shí)現(xiàn)。

      以下將詳細(xì)描述本發(fā)明在客戶端和服務(wù)器分別實(shí)現(xiàn)的具體功能/步驟。

      圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,其中具體示出一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移方法。

      該數(shù)據(jù)遷移方法由本發(fā)明提供的數(shù)據(jù)遷移系統(tǒng)來執(zhí)行。該數(shù)據(jù)遷移系統(tǒng)包括客戶端和網(wǎng)絡(luò)端??蛻舳藶檫w移任務(wù)的發(fā)起方,網(wǎng)絡(luò)端為遷移任務(wù)的執(zhí)行方。其中,客戶端典型地裝置于各用戶設(shè)備中,網(wǎng)絡(luò)端典型地如遷移服務(wù)器。為便于說明,本說明書中客戶端與用戶設(shè)備等同使用,網(wǎng)絡(luò)端與遷移服務(wù)器等同使用。

      如圖2所示,在步驟s1中,根據(jù)待遷移的文件列表,客戶端生成其中每個(gè)文件的描述信息;在步驟s2中,客戶端將一個(gè)或多個(gè)數(shù)據(jù)遷移請求分別發(fā)送至可用的服務(wù)器,以由相應(yīng)的服務(wù)器在不同云存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)遷移,其中,每個(gè)數(shù)據(jù)遷移請求中包括對數(shù)據(jù)遷移的源端和目的端的指示信息以及一個(gè)或多個(gè)待遷移文件的描述信息;在步驟s3中,網(wǎng)絡(luò)端根據(jù)自用戶設(shè)備接收的數(shù)據(jù)遷移請求,確定所述數(shù)據(jù)遷移請求所指示的數(shù)據(jù)遷移的源端和目的端;在步驟s4中,網(wǎng)絡(luò)端從所述數(shù)據(jù)遷移請求中獲取一個(gè)或多個(gè)待遷移文件的描述信息;在步驟s5中,網(wǎng)絡(luò)端按照所述一個(gè)或多個(gè)待遷移文件的描述信息,從所述源端獲取所述一個(gè)或多個(gè)待遷移文件并將其寫入所述目的端。

      具體地,在步驟s1中,根據(jù)待遷移的文件列表,客戶端生成其中每個(gè)文件的描述信息。

      在此,待遷移的文件列表例如可以依賴于數(shù)據(jù)源端來生成。例如,用戶擬將其存儲于阿里云oss(數(shù)據(jù)源端)的多個(gè)文件遷移至百度云bos(數(shù)據(jù)目的端),文件列表的格式可以由用戶根據(jù)預(yù)配置的規(guī)則來定義,將列表格式schema填寫在遷移任務(wù)配置當(dāng)中,生成好的文件列表以文件的形式被提供給數(shù)據(jù)遷移系統(tǒng)的客戶端來讀取。

      典型地,文件列表中的每一行對應(yīng)于一個(gè)待遷移文件,其中包含有該待遷移文件的基本信息。

      客戶端對每一行的信息進(jìn)行解析,以生成相應(yīng)待遷移文件的描述信息。該描述信息例如可以標(biāo)記為filedescriptor,簡稱fd,也可以被理解為待遷移文件的摘要信息。

      在此,fd可以是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)類型,并可以通過map的方式擴(kuò)展,從而可以描述幾乎所有的待遷移數(shù)據(jù)的元信息。

      典型地,fd例如可以包括文件名(name)、大小(size)、內(nèi)容驗(yàn)證信息(例如md5)。優(yōu)選地,fd例如還可以包括標(biāo)識(id)、uri和鑒權(quán)信息等。其中,鑒權(quán)信息例如可以包括用戶在源端的用戶名和密碼。

      優(yōu)選地,客戶端可以緩存fd,例如將所生成的fd放入一個(gè)fd隊(duì)列(fdqueue)中,如果該fdqueue已滿,則等待,否則直接放入fdqueue中,直到文件列表讀取完。

      在步驟s2中,客戶端將一個(gè)或多個(gè)數(shù)據(jù)遷移請求分別發(fā)送至可用的服務(wù)器,以由相應(yīng)的服務(wù)器在不同云存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)遷移,其中,每個(gè)數(shù)據(jù)遷移請求中包括對數(shù)據(jù)遷移的源端和目的端的指示信息以及一個(gè)或多個(gè)待遷移文件的描述信息。

      在此,可用的服務(wù)器從預(yù)配置的服務(wù)器列表中確定。例如,服務(wù)器列表以配置的方式加載到發(fā)起遷移任務(wù)的客戶端中,從而客戶端可以檢查該服務(wù)器列表中的服務(wù)器是否可用。這可以讓服務(wù)器列表中的服務(wù)器資源被最大化利用,同時(shí)管理不可用的服務(wù)器。典型地,該服務(wù)器列表可以由客戶端中的一個(gè)服務(wù)器管理裝置(servermanager)來維護(hù)。

      其中,一個(gè)數(shù)據(jù)遷移請求中可以包括對一個(gè)或多個(gè)待遷移文件的指示。優(yōu)選地,客戶端從fdqueue讀取待遷移文件的fd,并將其包含在數(shù)據(jù)遷移請求中發(fā)送至相應(yīng)的服務(wù)器。

      例如,客戶端從fdqueue中獲取fd(單個(gè)文件的遷移任務(wù)),如果fdqueue為空或者讀取到的fd數(shù)量沒有達(dá)到一定的閾值,則繼續(xù)讀或者等待;當(dāng)從fdqueue讀取到滿足閾值數(shù)量的fd后,客戶端就向服務(wù)器管理裝置申請一個(gè)可用的服務(wù)器,并向該服務(wù)器發(fā)送一個(gè)數(shù)據(jù)遷移請求,該數(shù)據(jù)遷移請求對應(yīng)于這一批次的遷移子任務(wù),如果服務(wù)器管理裝置管理的所有服務(wù)器都忙或者所有服務(wù)器都不可用,則阻塞等待直到有可用的服務(wù)器,再將數(shù)據(jù)遷移請求發(fā)送出去,直至文件列表已經(jīng)讀完并且所有數(shù)據(jù)遷移請求均已發(fā)出。

      在步驟s3中,遷移服務(wù)器根據(jù)自用戶設(shè)備接收的數(shù)據(jù)遷移請求,確定該數(shù)據(jù)遷移請求所指示的數(shù)據(jù)遷移的源端和目的端。

      在此,數(shù)據(jù)遷移系統(tǒng)可以根據(jù)不同的源端和目的端來定義不同的請求類型。

      典型地,客戶端與遷移服務(wù)器(網(wǎng)絡(luò)端)之間通過thriftrpc協(xié)議進(jìn)行通信,從而遷移服務(wù)器可以通過rpc接口類型來區(qū)分?jǐn)?shù)據(jù)遷移請求的類型,以確定此次數(shù)據(jù)遷移的源端和目的端。

      在步驟s4中,遷移服務(wù)器從數(shù)據(jù)遷移請求中獲取一個(gè)或多個(gè)待遷移文件的描述信息。

      例如,遷移服務(wù)器從數(shù)據(jù)遷移請求中逐個(gè)讀取各待遷移文件的fd。

      優(yōu)選地,客戶端所發(fā)送的數(shù)據(jù)遷移請求中還包括對待遷移文件的遷移方式。據(jù)此,遷移服務(wù)器根據(jù)數(shù)據(jù)遷移請求中指定的遷移方式,確定數(shù)據(jù)遷移請求所指示的待遷移文件中需要實(shí)際執(zhí)行數(shù)據(jù)遷移的待遷移文件,進(jìn)而獲取這些實(shí)際需要執(zhí)行數(shù)據(jù)遷移的一個(gè)或多個(gè)待遷移文件的描述信息。

      例如,用戶在客戶端發(fā)起數(shù)據(jù)遷移任務(wù)時(shí),可以配置遷移方式,諸如不重復(fù)方式、更新方式和覆蓋方式。其中,不重復(fù)方式例如對目的端已有的文件不再遷移,具體如待遷移的源端文件包括a、b和c,目的端已有c,則遷移服務(wù)器僅遷移a和b。更新方式例如對比待遷移文件在源端和目的端的版本信息,當(dāng)源端有更新時(shí),遷移服務(wù)器則對該文件進(jìn)行遷移,具體如文件a在源端的最后更新日期為2017年2月13日,而在目的端的最后更新日期為2017年2月1日,遷移服務(wù)器則對該文件進(jìn)行遷移。覆蓋方式例如無論目的端是否存在該文件,均對該文件進(jìn)行遷移,具體如遷移列表包括文件a、b和c,遷移服務(wù)器則直接將這些文件從源端遷移至目的端,如果目的端已有部分文件,遷移服務(wù)器則直接進(jìn)行覆蓋。

      在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,盡管此處給出了3種遷移方式的示例,但這僅應(yīng)被理解為對本發(fā)明的解釋說明,而不應(yīng)被理解為對本發(fā)明的任何限制,其他任何遷移方式如可適用于本發(fā)明,均應(yīng)被包含在本發(fā)明的專利保護(hù)范圍之內(nèi)。

      據(jù)此,遷移服務(wù)器根據(jù)數(shù)據(jù)遷移請求中指定的遷移方式,確定實(shí)際執(zhí)行數(shù)據(jù)遷移的待遷移文件,并從數(shù)據(jù)遷移請求中提取該(等)待遷移文件的fd。

      在步驟s5中,遷移服務(wù)器按照所提取的一個(gè)或多個(gè)待遷移文件的描述信息,從源端獲取該(等)待遷移文件并將其寫入目的端。

      例如,遷移服務(wù)器根據(jù)各待遷移文件的fd,從源端獲取各待遷移文件并按照目的端的寫入(putfile)方法將數(shù)據(jù)寫入目的端。從而,整個(gè)讀取數(shù)據(jù)和寫入數(shù)據(jù)的流程中不需要將源端的數(shù)據(jù)寫入一次磁盤,而是將數(shù)據(jù)通過遷移服務(wù)器直接傳給目的端。

      在此,遷移服務(wù)器可以并發(fā)地執(zhí)行對多個(gè)文件的遷移。優(yōu)選地,如果文件的大小超過一定的閾值,遷移服務(wù)器可以對文件進(jìn)行切塊,進(jìn)而對各文件分塊執(zhí)行數(shù)據(jù)遷移。

      優(yōu)選地,在寫入完成后,在步驟s6中(未示出),遷移服務(wù)器可以根據(jù)描述信息中待遷移文件的內(nèi)容驗(yàn)證信息以及目的端返回的該待遷移文件的內(nèi)容驗(yàn)證信息,對待遷移文件進(jìn)行校驗(yàn)。

      例如,fd中可以包括待遷移文件的md5值,目的端在成功寫入待遷移文件后也會對該文件計(jì)算其md5值并返回給遷移服務(wù)器,據(jù)此,遷移服務(wù)器可以比較兩個(gè)md5值,以對該待遷移文件校驗(yàn)其完整性和一致性。

      更優(yōu)選地,在步驟s6的校驗(yàn)之前,遷移服務(wù)器對從源端獲取的待遷移文件計(jì)算內(nèi)容驗(yàn)證信息,并將所獲得的內(nèi)容驗(yàn)證信息加入該待遷移文件的描述信息。

      在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,盡管此處以md5值作為待遷移文件的內(nèi)容驗(yàn)證信息的示例,但這僅應(yīng)被理解為對本發(fā)明的解釋說明,而不應(yīng)被理解為對本發(fā)明的任何限制,其他任何基于待遷移文件內(nèi)容所生成的內(nèi)容驗(yàn)證信息或其生成算法如可適用于本發(fā)明,均應(yīng)被包含在本發(fā)明的專利保護(hù)范圍之內(nèi)。

      根據(jù)圖2所示方法的一個(gè)優(yōu)選實(shí)施例,在遷移服務(wù)器完成對目的端的數(shù)據(jù)寫入之后,在步驟s7中(未示出),遷移服務(wù)器合并各待遷移文件的遷移結(jié)果,將合并后的遷移結(jié)果信息發(fā)送至用戶設(shè)備。相應(yīng)地,客戶端從遷移服務(wù)器接收到數(shù)據(jù)遷移請求所對應(yīng)的遷移結(jié)果信息。

      例如,遷移服務(wù)器記錄每個(gè)待遷移文件的遷移結(jié)果,并將一個(gè)數(shù)據(jù)遷移請求所對應(yīng)的各待遷移文件的遷移結(jié)果進(jìn)行合并,進(jìn)而將合并后的遷移結(jié)果信息發(fā)送至該數(shù)據(jù)遷移請求所對應(yīng)的客戶端。

      更優(yōu)選地,在步驟s8中(未示出),客戶端匯總從各遷移服務(wù)器接收的遷移結(jié)果信息,以生成此次遷移任務(wù)的遷移進(jìn)度信息。

      在此,一個(gè)待遷移的文件列表對應(yīng)于一個(gè)遷移任務(wù),其中每個(gè)待遷移文件被作為一個(gè)子任務(wù),一個(gè)數(shù)據(jù)遷移請求中包括一個(gè)或多個(gè)遷移子任務(wù),從而一個(gè)遷移任務(wù)可能被拆分多個(gè)遷移子任務(wù)并被包含在多個(gè)數(shù)據(jù)遷移請求中被發(fā)送至多個(gè)遷移服務(wù)器。因此,客戶端從這些遷移服務(wù)器接收其各自所執(zhí)行的遷移結(jié)果信息,以匯總后獲得此次遷移任務(wù)的遷移進(jìn)度信息,例如,已完成遷移的文件數(shù)量x、正在執(zhí)行遷移的文件數(shù)量x以及尚未執(zhí)行遷移的文件數(shù)據(jù)z。該遷移進(jìn)度信息可以日志的形式輸出。

      更優(yōu)選地,在步驟s9中(未示出),客戶端根據(jù)各遷移服務(wù)器對數(shù)據(jù)遷移請求的響應(yīng)時(shí)間,實(shí)時(shí)調(diào)整此次遷移任務(wù)的壓力分布。

      在此,遷移服務(wù)器對數(shù)據(jù)遷移請求的響應(yīng)時(shí)間例如可以根據(jù)數(shù)據(jù)遷移請求的發(fā)送時(shí)間與遷移結(jié)果信息的接收時(shí)間之間的間隔來確定。

      客戶端根據(jù)各遷移服務(wù)器的響應(yīng)時(shí)間,可以實(shí)時(shí)來調(diào)整此次遷移任務(wù)的壓力分布,諸如遷移(子)任務(wù)的啟動、暫停、遷移速度等。其中,遷移速度可以通過配置各遷移服務(wù)器中子任務(wù)的并發(fā)數(shù)量來調(diào)整。

      此外,客戶端的各項(xiàng)遷移任務(wù)配置信息都在遷移過程中進(jìn)行熱加載,以達(dá)到實(shí)時(shí)控制對遷移任務(wù)進(jìn)行速度調(diào)整的目的。其中,遷移任務(wù)配置信息包括但不限于待遷移的文件列表、遷移、方式、服務(wù)器列表以及遷移的速度控制。

      圖3示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,其中具體示出一種用于云存儲系統(tǒng)間的數(shù)據(jù)遷移系統(tǒng)。

      如圖3所示,該數(shù)據(jù)遷移系統(tǒng)包括客戶端和網(wǎng)絡(luò)端??蛻舳藶檫w移任務(wù)的發(fā)起方,網(wǎng)絡(luò)端為遷移任務(wù)的執(zhí)行方。其中,客戶端典型地裝置于各用戶設(shè)備中,網(wǎng)絡(luò)端典型地如遷移服務(wù)器。為便于說明,本說明書中客戶端與用戶設(shè)備等同使用,網(wǎng)絡(luò)端與遷移服務(wù)器等同使用。

      參閱圖3,客戶端31包括fd生成裝置311和請求發(fā)送裝置312;遷移服務(wù)器32包括請求接收裝置321、請求解析裝置322和遷移執(zhí)行裝置323。

      具體地,在客戶端31,根據(jù)待遷移的文件列表,fd生成裝置311生成其中每個(gè)文件的描述信息;隨后,請求發(fā)送裝置312將一個(gè)或多個(gè)數(shù)據(jù)遷移請求分別發(fā)送至可用的服務(wù)器,以由相應(yīng)的服務(wù)器在不同云存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)遷移,其中,每個(gè)數(shù)據(jù)遷移請求中包括對數(shù)據(jù)遷移的源端和目的端的指示信息以及一個(gè)或多個(gè)待遷移文件的描述信息。之后,在遷移服務(wù)器32,請求接收裝置321自用戶設(shè)備接收數(shù)據(jù)遷移請求;隨后,請求解析裝置322確定所述數(shù)據(jù)遷移請求所指示的數(shù)據(jù)遷移的源端和目的端,以及從所述數(shù)據(jù)遷移請求中獲取一個(gè)或多個(gè)待遷移文件的描述信息;接著,遷移執(zhí)行裝置323根據(jù)所述一個(gè)或多個(gè)待遷移文件的描述信息,從所述源端獲取所述一個(gè)或多個(gè)待遷移文件并將其寫入所述目的端。

      客戶端31

      fd生成裝置311根據(jù)待遷移的文件列表,生成其中每個(gè)文件的描述信息。

      在此,待遷移的文件列表例如可以依賴于數(shù)據(jù)源端來生成。例如,用戶擬將其存儲于阿里云oss(數(shù)據(jù)源端)的多個(gè)文件遷移至百度云bos(數(shù)據(jù)目的端),文件列表的格式可以由用戶根據(jù)預(yù)配置的規(guī)則來定義,將列表格式schema填寫在遷移任務(wù)配置當(dāng)中,生成好的文件列表以文件的形式被提供給客戶端中的fd生成裝置311來讀取。

      典型地,文件列表中的每一行對應(yīng)于一個(gè)待遷移文件,其中包含有該待遷移文件的基本信息。

      fd生成裝置311對每一行的信息進(jìn)行解析,以生成相應(yīng)待遷移文件的描述信息。該描述信息例如可以標(biāo)記為filedescriptor,簡稱fd,也可以被理解為待遷移文件的摘要信息。

      在此,fd可以是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)類型,并可以通過map的方式擴(kuò)展,從而可以描述幾乎所有的待遷移數(shù)據(jù)的元信息。

      典型地,fd例如可以包括文件名(name)、大小(size)、內(nèi)容驗(yàn)證信息(例如md5)。優(yōu)選地,fd例如還可以包括標(biāo)識(id)、uri和鑒權(quán)信息等。其中,鑒權(quán)信息例如可以包括用戶在源端的用戶名和密碼。

      優(yōu)選地,客戶端還可以包括一fd緩存裝置(未示出),用于緩存fd,例如fd生成裝置311將所生成的fd放入該fd緩存裝置中的fd隊(duì)列(fdqueue)中,如果該fdqueue已滿,則等待,否則直接放入fdqueue中,直到文件列表讀取完。

      隨后,請求發(fā)送裝置312將一個(gè)或多個(gè)數(shù)據(jù)遷移請求分別發(fā)送至可用的服務(wù)器,以由相應(yīng)的服務(wù)器在不同云存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)遷移,其中,每個(gè)數(shù)據(jù)遷移請求中包括對數(shù)據(jù)遷移的源端和目的端的指示信息以及一個(gè)或多個(gè)待遷移文件的描述信息。

      在此,可用的服務(wù)器從預(yù)配置的服務(wù)器列表中確定。例如,服務(wù)器列表以配置的方式加載到發(fā)起遷移任務(wù)的客戶端中,從而客戶端可以檢查該服務(wù)器列表中的服務(wù)器是否可用。這可以讓服務(wù)器列表中的服務(wù)器資源被最大化利用,同時(shí)管理不可用的服務(wù)器。典型地,該服務(wù)器列表可以由客戶端中的一個(gè)服務(wù)器管理裝置(servermanager)來維護(hù)。

      其中,一個(gè)數(shù)據(jù)遷移請求中可以包括對一個(gè)或多個(gè)待遷移文件的指示。優(yōu)選地,請求發(fā)送裝置312從fdqueue讀取待遷移文件的fd,并將其包含在數(shù)據(jù)遷移請求中發(fā)送至相應(yīng)的服務(wù)器。

      例如,請求發(fā)送裝置312從fdqueue中獲取fd(單個(gè)文件的遷移任務(wù)),如果fdqueue為空或者讀取到的fd數(shù)量沒有達(dá)到一定的閾值,則繼續(xù)讀或者等待;當(dāng)從fdqueue讀取到滿足閾值數(shù)量的fd后,請求發(fā)送裝置312就向服務(wù)器管理裝置申請一個(gè)可用的服務(wù)器,并向該服務(wù)器發(fā)送一個(gè)數(shù)據(jù)遷移請求,該數(shù)據(jù)遷移請求對應(yīng)于這一批次的遷移子任務(wù),如果服務(wù)器管理裝置管理的所有服務(wù)器都忙或者所有服務(wù)器都不可用,則阻塞等待直到有可用的服務(wù)器,再將數(shù)據(jù)遷移請求發(fā)送出去,直至文件列表已經(jīng)讀完并且所有數(shù)據(jù)遷移請求均已發(fā)出。

      遷移服務(wù)器32

      請求接收裝置321自用戶設(shè)備接收數(shù)據(jù)遷移請求。

      隨后,請求解析裝置322根據(jù)數(shù)據(jù)遷移請求,確定該數(shù)據(jù)遷移請求所指示的數(shù)據(jù)遷移的源端和目的端。

      在此,數(shù)據(jù)遷移系統(tǒng)可以根據(jù)不同的源端和目的端來定義不同的請求類型。

      典型地,客戶端31與遷移服務(wù)器(網(wǎng)絡(luò)端)32之間通過thriftrpc協(xié)議進(jìn)行通信,從而請求解析裝置322可以通過rpc接口類型來區(qū)分?jǐn)?shù)據(jù)遷移請求的類型,以確定此次數(shù)據(jù)遷移的源端和目的端。

      請求解析裝置322從數(shù)據(jù)遷移請求中獲取一個(gè)或多個(gè)待遷移文件的描述信息。

      例如,請求解析裝置322從數(shù)據(jù)遷移請求中逐個(gè)讀取各待遷移文件的fd。

      優(yōu)選地,請求解析裝置322還可以進(jìn)一步包括兩個(gè)單元來分別執(zhí)行對數(shù)據(jù)遷移的源端和目的端的確定以及對fd的讀取。

      優(yōu)選地,客戶端31所發(fā)送的數(shù)據(jù)遷移請求中還包括對待遷移文件的遷移方式。據(jù)此,請求解析裝置322根據(jù)數(shù)據(jù)遷移請求中指定的遷移方式,確定數(shù)據(jù)遷移請求所指示的待遷移文件中需要實(shí)際執(zhí)行數(shù)據(jù)遷移的待遷移文件,進(jìn)而獲取這些實(shí)際需要執(zhí)行數(shù)據(jù)遷移的一個(gè)或多個(gè)待遷移文件的描述信息。

      例如,用戶在客戶端31發(fā)起數(shù)據(jù)遷移任務(wù)時(shí),可以配置遷移方式,諸如不重復(fù)方式、更新方式和覆蓋方式。其中,不重復(fù)方式例如對目的端已有的文件不再遷移,具體如待遷移的源端文件包括a、b和c,目的端已有c,則遷移服務(wù)器32僅遷移a和b。更新方式例如對比待遷移文件在源端和目的端的版本信息,當(dāng)源端有更新時(shí),遷移服務(wù)器32則對該文件進(jìn)行遷移,具體如文件a在源端的最后更新日期為2017年2月13日,而在目的端的最后更新日期為2017年2月1日,遷移服務(wù)器32則對該文件進(jìn)行遷移。覆蓋方式例如無論目的端是否存在該文件,均對該文件進(jìn)行遷移,具體如遷移列表包括文件a、b和c,遷移服務(wù)器32則直接將這些文件從源端遷移至目的端,如果目的端已有部分文件,遷移服務(wù)器32則直接進(jìn)行覆蓋。

      在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,盡管此處給出了3種遷移方式的示例,但這僅應(yīng)被理解為對本發(fā)明的解釋說明,而不應(yīng)被理解為對本發(fā)明的任何限制,其他任何遷移方式如可適用于本發(fā)明,均應(yīng)被包含在本發(fā)明的專利保護(hù)范圍之內(nèi)。

      據(jù)此,請求解析裝置322根據(jù)數(shù)據(jù)遷移請求中指定的遷移方式,確定實(shí)際執(zhí)行數(shù)據(jù)遷移的待遷移文件,并從數(shù)據(jù)遷移請求中提取該(等)待遷移文件的fd。優(yōu)選地,請求解析裝置322也可包括一特定的過濾單元來執(zhí)行該對實(shí)際遷移文件的篩選功能。

      接著,遷移執(zhí)行裝置323按照請求解析裝置322所提取的一個(gè)或多個(gè)待遷移文件的描述信息,從源端獲取該(等)待遷移文件并將其寫入目的端。

      例如,遷移執(zhí)行裝置323根據(jù)各待遷移文件的fd,從源端獲取各待遷移文件并按照目的端的寫入(putfile)方法將數(shù)據(jù)寫入目的端。從而,整個(gè)讀取數(shù)據(jù)和寫入數(shù)據(jù)的流程中不需要將源端的數(shù)據(jù)寫入一次磁盤,而是將數(shù)據(jù)通過遷移執(zhí)行裝置323直接傳給目的端。

      在此,遷移執(zhí)行裝置323可以并發(fā)地執(zhí)行對多個(gè)文件的遷移。優(yōu)選地,如果文件的大小超過一定的閾值,遷移執(zhí)行裝置323可以對文件進(jìn)行切塊,進(jìn)而對各文件分塊執(zhí)行數(shù)據(jù)遷移。

      優(yōu)選地,遷移服務(wù)器32還可以包括一內(nèi)容校驗(yàn)裝置(未示出)。在寫入完成后,內(nèi)容校驗(yàn)裝置可以根據(jù)描述信息中待遷移文件的內(nèi)容驗(yàn)證信息以及目的端返回的該待遷移文件的內(nèi)容驗(yàn)證信息,對待遷移文件進(jìn)行校驗(yàn)。

      例如,fd中可以包括待遷移文件的md5值,目的端在成功寫入待遷移文件后也會對該文件計(jì)算其md5值并返回給遷移服務(wù)器32,據(jù)此,內(nèi)容校驗(yàn)裝置可以比較兩個(gè)md5值,以對該待遷移文件校驗(yàn)其完整性和一致性。

      更優(yōu)選地,在校驗(yàn)之前,內(nèi)容校驗(yàn)裝置對從源端獲取的待遷移文件計(jì)算內(nèi)容驗(yàn)證信息,并將所獲得的內(nèi)容驗(yàn)證信息加入該待遷移文件的描述信息。

      在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,盡管此處以md5值作為待遷移文件的內(nèi)容驗(yàn)證信息的示例,但這僅應(yīng)被理解為對本發(fā)明的解釋說明,而不應(yīng)被理解為對本發(fā)明的任何限制,其他任何基于待遷移文件內(nèi)容所生成的內(nèi)容驗(yàn)證信息或其生成算法如可適用于本發(fā)明,均應(yīng)被包含在本發(fā)明的專利保護(hù)范圍之內(nèi)。

      根據(jù)圖3所示系統(tǒng)的一個(gè)優(yōu)選實(shí)施例,遷移服務(wù)器32還可以包括一結(jié)果合并裝置(未示出)和一結(jié)果發(fā)送裝置(未示出),客戶端31還可以包括一結(jié)果接收裝置(未示出)。在遷移服務(wù)器完成對目的端的數(shù)據(jù)寫入之后,結(jié)果合并裝置合并各待遷移文件的遷移結(jié)果,結(jié)果發(fā)送裝置將合并后的遷移結(jié)果信息發(fā)送至客戶端31。相應(yīng)地,結(jié)果接收裝置從遷移服務(wù)器32接收到數(shù)據(jù)遷移請求所對應(yīng)的遷移結(jié)果信息。

      優(yōu)選地,結(jié)果合并裝置可以與請求接收裝置321集成在一起。

      例如,結(jié)果合并裝置記錄每個(gè)待遷移文件的遷移結(jié)果,并將一個(gè)數(shù)據(jù)遷移請求所對應(yīng)的各待遷移文件的遷移結(jié)果進(jìn)行合并,進(jìn)而結(jié)果發(fā)送裝置將合并后的遷移結(jié)果信息發(fā)送至該數(shù)據(jù)遷移請求所對應(yīng)的客戶端31。

      更優(yōu)選地,客戶端31還可以包括一結(jié)果匯總裝置(未示出)。結(jié)果匯總裝置匯總從各遷移服務(wù)器32接收的遷移結(jié)果信息,以生成此次遷移任務(wù)的遷移進(jìn)度信息。

      在此,一個(gè)待遷移的文件列表對應(yīng)于一個(gè)遷移任務(wù),其中每個(gè)待遷移文件被作為一個(gè)子任務(wù),一個(gè)數(shù)據(jù)遷移請求中包括一個(gè)或多個(gè)遷移子任務(wù),從而一個(gè)遷移任務(wù)可能被拆分多個(gè)遷移子任務(wù)并被包含在多個(gè)數(shù)據(jù)遷移請求中被發(fā)送至多個(gè)遷移服務(wù)器。因此,結(jié)果接收裝置從這些遷移服務(wù)器接收其各自所執(zhí)行的遷移結(jié)果信息,結(jié)果匯總裝置匯總后獲得此次遷移任務(wù)的遷移進(jìn)度信息,例如,已完成遷移的文件數(shù)量x、正在執(zhí)行遷移的文件數(shù)量x以及尚未執(zhí)行遷移的文件數(shù)據(jù)z。該遷移進(jìn)度信息可以日志的形式輸出。

      更優(yōu)選地,客戶端31還可以包括一壓力調(diào)整裝置(未示出)。壓力調(diào)整裝置根據(jù)各遷移服務(wù)器32對數(shù)據(jù)遷移請求的響應(yīng)時(shí)間,實(shí)時(shí)調(diào)整此次遷移任務(wù)的壓力分布。

      在此,遷移服務(wù)器32對數(shù)據(jù)遷移請求的響應(yīng)時(shí)間例如可以根據(jù)數(shù)據(jù)遷移請求的發(fā)送時(shí)間與遷移結(jié)果信息的接收時(shí)間之間的間隔來確定。

      壓力調(diào)整裝置根據(jù)各遷移服務(wù)器的響應(yīng)時(shí)間,可以實(shí)時(shí)來調(diào)整此次遷移任務(wù)的壓力分布,諸如遷移(子)任務(wù)的啟動、暫停、遷移速度等。其中,遷移速度可以通過配置各遷移服務(wù)器32中子任務(wù)的并發(fā)數(shù)量來調(diào)整。

      此外,客戶端31的各項(xiàng)遷移任務(wù)配置信息都在遷移過程中進(jìn)行熱加載,以達(dá)到實(shí)時(shí)控制對遷移任務(wù)進(jìn)行速度調(diào)整的目的。其中,遷移任務(wù)配置信息包括但不限于待遷移的文件列表、遷移、方式、服務(wù)器列表以及遷移的速度控制。

      本發(fā)明可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。

      計(jì)算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。

      計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、電線、光纜、rf等等,或者上述的任意合適的組合。

      可以以一種或多種程序設(shè)計(jì)語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言—諸如java、smalltalk、c++,還包括常規(guī)的過程式程序設(shè)計(jì)語言—諸如“c”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。

      用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼包括兩部分,以分別用于在用戶設(shè)備和服務(wù)器上被執(zhí)行。當(dāng)分別適用于用戶設(shè)備和服務(wù)器的計(jì)算機(jī)程序代碼被執(zhí)行時(shí),本發(fā)明的方法被實(shí)現(xiàn)。

      需要注意的是,本發(fā)明可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,本發(fā)明的各個(gè)裝置可采用專用集成電路(asic)或任何其他類似硬件設(shè)備來實(shí)現(xiàn)。另外,本發(fā)明的一些步驟或功能可采用硬件來實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。

      對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。系統(tǒng)權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過軟件或者硬件來實(shí)現(xiàn)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1