水線的方式經中轉平臺向目標 平臺完成數據片的迀移。與現有技術中依次完成所有數據的迀移相比,本發明通過采用流 水線的方式,將數據片從源平臺經中轉平臺發送到目標平臺,即在當前平臺向下一級平臺 發送所接收到的數據片的同時,接收上一級平臺向其發送的下一個數據片,從而使得各個 平臺均處于數據迀移狀態,而不用等待將所有待迀移的數據接收完后再向下一級平臺發送 該待迀移的數據,進而加快了數據迀移的速度,提高了數據迀移的效率。
[0058] 進一步的,作為對上述方法實施例的細化與擴展,上述步驟中提及實際應用中可 以有多個中轉平臺,對于此種情況,上層管理設備會分別控制每一級中轉平臺將接收到的 數據片發送給下一級中轉平臺,并同時接收上一級中轉平臺發送的下一個數據片。例如,假 設有2級中轉平臺,則對于源平臺而言,源平臺向第一級中轉平臺順序發送多個數據片;對 于第一級中轉平臺而言,第一級中轉平臺將接收到的數據片發送給第二級中轉平臺,同時 接收源平臺發送的下一個數據片;對于第二級中轉平臺而言,第二級中轉平臺將接收到的 數據片發送給目標平臺,同時接收第一級平臺發送的下一個數據片;對于目標平臺而言,目 標平臺依次接收第二級中轉平臺發送的數據片,從而完成源平臺到目標平臺的數據迀移。
[0059] 進一步的,在本實施例的另一種實現方式中,上述多級中轉平臺的每一級中轉平 臺的數量可以為一個,也可以為多個。當每一級中轉平臺的數量至少為兩個時,對于同一 級中轉平臺,上層管理設備會分別控制每個中轉平臺將各自接收到的數據片并行發送給下 一級中與其對應的中轉平臺,同時各自接收上一級中與其對應的中轉平臺繼續發送的數據 片。
[0060] 示例性的,如圖4所示,假設有兩級中轉平臺,每一級中轉平臺的數量均為3,其 中,源平臺、中轉平臺1、中轉平臺4和目標平臺實現一條數據迀移線路,源平臺、中轉平臺 2、中轉平臺5和目標平臺實現一條數據迀移線路,源平臺、中轉平臺3、中轉平臺6和目標 平臺實現一條數據迀移線路。其中,對于源平臺來說,源平臺同時向中轉平臺1、中轉平臺2 和中轉平臺3發送不同的數據片;對于第一級中轉平臺來說,中轉平臺1、中轉平臺2和中 轉平臺3分別接收源平臺發送的下一數據片,同時分別向中轉平臺4、中轉平臺5和中轉平 臺6發送當前數據片;對于第二級中轉平臺來說,中轉平臺4、中轉平臺5和中轉平臺6分 別接收中轉平臺1、中轉平臺2和中轉平臺3發送的下一數據片,同時分別向目標平臺發送 當前數據片;對于目標平臺來說,目標平臺分別接收轉平臺4、中轉平臺5和中轉平臺6發 送的不同數據片。
[0061] 進一步的,在本實施例的另一種實現方式中,各級中轉平臺的數量可以不同,因 此,實際應用中會出現這樣的問題:某個中轉平臺同時接收至少兩個上一級中轉平臺發送 的數據片,或者某個中轉平臺同時向至少兩個下一級中轉平臺發送數據片。對于此種情況, 當一個中轉平臺同時接收至少兩個上一級中轉平臺并行發送的數據片,而與其對應的下一 級中轉平臺的數量又少于與其對應的上一級中轉平臺的數量時,上層管理設備控制該中轉 平臺對接收的數據片進行緩存,以便該中轉平臺根據數據片向下一級中轉平臺依次順序發 送相應的數據片。
[0062] 示例性的,若一個中轉平臺同時接收到三個上一級中轉平臺發送的數據片5、數據 片6和數據片7,并且該中轉平臺與兩個下一級中轉平臺進行數據迀移,則該中轉平臺同時 向下一級的兩個中轉平臺分別發送數據片5、數據片6,而將數據片7緩存下來,以便數據片 5、數據片6發送成功后,再將數據片7發送給某個下一級中轉平臺。
[0063] 本步驟將同一級中轉平臺的數量設置為至少兩個,所以能夠提高每一個階段數據 片迀移的并發數量,從而使得同一時間段內迀移的數據片個數增多,從而進一步加快了數 據迀移的速度,提高了數據迀移的效率。
[0064] 為了進一步加快數據迀移的效率,在上層管理設備控制源平臺對待迀移數據進行 切片之前,可以為每個平臺分別建立一個線程池或者采用多進程,二者原理相似。以線程池 為例,每個線程池維護預定數量的線程,其中,每個線程一次迀移一個數據片。
[0065] 具體的,每個平臺中線程池的線程數可以相同,也可以不相同。其中,當當前平臺 中的線程數大于下一級平臺中的線程數時,下一級平臺接收到當前平臺發送的數據片后, 對其進行緩存,以便下一級平臺根據數據片的順序向該下一級平臺的下一級進行數據發 送。
[0066] 由于每個線程一次迀移一個數據片,所以一個平臺可以一次迀移一組數據片,增 加了數據片迀移的并發數。實際應用中,平臺中的線程數是由一組數據片中數據片的個數 決定的。通常,線程的建立和維護需要占用一定的資源(如CPU(Central Processing Unit, 中央處理器)等),因此,當實際場景中要求在較短的時間內完成數據迀移時,上層管理設 備可以控制平臺在線程池中建立新的線程,以提高線程的數量,提高資源利用率;當實際場 景中平臺的可利用資源(如CPU、l/0(lnput/0uput,輸入/輸出)接口、內存等)較少時, 上層管理設備可以控制平臺減少線程池中的線程數,以節省資源。
[0067] 具體的,在數據迀移之前,上層管理設備控制各平臺根據各自的當前資源占用率 計算出各平臺對應的線程數,利用各自建立的線程池進行數據迀移;在數據迀移過程中,上 層管理設備控制各平臺定期對各自的資源占用率進行檢測,當一平臺的資源占用率超過預 設上限值時,上層管理設備控制該平臺減少線程池中的線程數,當一平臺的資源占用率低 于預設下限值時,上層管理設備控制該平臺增加線程池中的線程數,從而實現線程池中線 程數的動態調整,進而提高各平臺的資源利用率。
[0068] 進一步的,除了為各個平臺建立線程池,實現多線程并發傳輸多個數據片外,上層 管理設備也可以為每個平臺分別建立預定數量的進程,每個進程一次迀移一個數據片,以 多進程并發的方式同時傳輸多個數據片,從而提高數據迀移的速度。
[0069] 該多進程傳輸方法在流水線式迀移方式中的具體實現過程為:上層管理設備控制 中轉平臺從接收到第一組數據片起始,向目標平臺發送接收到的數據片,并同時接收源平 臺發送的下一組數據片;其中,每組數據片的數量與進程數量相同。
[0070] 進一步的,由于數據迀移過程中會受到網絡傳輸條件的影響(如帶寬小、傳輸質 量差等),所以可能會導致一些數據片發送失敗,而造成數據的丟失甚至數據迀移的終止, 為保證數據片能夠成功傳輸到目標平臺中,本方案還包括:
[0071] 在每發送一個數據片后,上層管理設備控制發送數據片的平臺檢測數據片是否發 送成功;若數據片發送失敗,則對發送失敗的數據片進行有限次的重傳,確保可靠性。
[0072] 具體的,接收方的平臺在接收到每個數據片后,會向發送方的平臺發送響應信息 (該響應信息中攜帶是否接收成功的標志位,如"1"表示接收成功,"0"表示接收失敗)。若