數據傳輸方法及系統、控制裝置與節點裝置制造方法
【專利摘要】本發明公開了一種數據傳輸方法及系統、控制裝置與節點裝置。所述方法包括:控制裝置確定本次數據傳輸的源節點;從用于接收數據的節點列表中選擇未被選擇過用于接收數據的節點作為本次數據傳輸的目的節點,本次數據傳輸的目的節點作為傳輸鏈中本次數據傳輸的源節點的下一個最近鄰節點;節點列表中包括至少一個用于接收數據的節點的標識和各節點的地址;向本次數據傳輸的源節點下發數據傳輸任務,數據傳輸任務包括本次數據傳輸的目的節點和本次數據傳輸的目的節點的地址,以供本次數據傳輸的源節點根據本次數據傳輸的目的節點的地址向本次數據傳輸的目的節點傳輸數據。本發明的技術方案,能夠保證數據的傳輸速度和傳輸效率。
【專利說明】數據傳輸方法及系統、控制裝置與節點裝置
【技術領域】
[0001] 本發明涉及計算機【技術領域】,特別涉及一種數據傳輸方法及系統、控制裝置與節 點裝置。
【背景技術】
[0002] 隨著通信技術的發展,人們之間的交流越來越依賴于數據通信,而這樣就使得存 放數據的主機之間需要進行大量的數據傳輸與數據交換。為此,數據的傳輸技術受到了廣 泛的關注,也成為通信技術發展的重要標志。
[0003] 若要完成主機之間的數據傳輸,通常有兩種實現方式。第一種方式為Rsync (Remote sync,遠程同步)方式,Rsync可以實現在主機之間點對點的數據傳輸。第二種方 式為端口映射(VIDC)方式,VIDC的實現方式為:源節點首先將數據傳輸給一個節點,當該 節點接收到所有的數據后,將該已接收完畢的節點再作為源節點,并與源節點以及在此之 前接收完畢的節點一起對其他節點進行數據傳輸。
[0004] 在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
[0005] 第一種方式下,盡管實現了在主機之間可以直接進行點對點的數據傳輸,但對于 多點傳輸來說,則只能借助于手工操作向各個節點逐次進行數據傳輸,而無法對其中的節 點進行有效控制,從而使得數據的傳輸速度較慢,數據傳輸的效率很低。第二種方式與第一 種方式相比,雖然明顯提高了數據傳輸的效率,但是每個節點的傳輸數據所需要消耗的網 卡流量、CPU使用不均勻,而且當傳輸文件非常大的時候,例如虛擬主機的生成就是依賴于 鏡像文件的快速復制,且鏡像文件非常大,進行一次傳輸所需要的時間也會很長,數據傳輸 的效率仍然很低。
【發明內容】
[0006] 為了解決現有技術的問題,本發明實施例提供了一種數據傳輸方法及系統、控制 裝置與節點裝置。所述技術方案如下:
[0007] -方面,提供了一種數據傳輸方法,所述方法包括:
[0008] 控制裝置確定本次數據傳輸的源節點;
[0009] 所述控制裝置從用于接收所述數據的節點列表中選擇未被選擇過用于接收所述 數據的節點作為本次數據傳輸的目的節點,所述本次數據傳輸的目的節點作為傳輸鏈中所 述本次數據傳輸的源節點的下一個最近鄰節點;所述節點列表中包括至少一個用于接收數 據的節點的標識和各所述節點的地址;
[0010] 所述控制裝置向所述本次數據傳輸的源節點下發數據傳輸任務,所述數據傳輸任 務包括所述本次數據傳輸的目的節點和所述本次數據傳輸的目的節點的地址,以供所述本 次數據傳輸的源節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目 的節點傳輸所述數據。
[0011] 另一方面,再提供了一種數據傳輸方法,所述方法包括:
[0012] 節點作為本次數據傳輸的源節點接收控制裝置下發的數據傳輸任務,所述數據傳 輸任務包括所述本次數據傳輸的目的節點和所述本次數據傳輸的目的節點的地址;
[0013] 所述節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目的 節點傳輸所述數據。
[0014] 再一方面,再提供一種控制裝置,所述裝置包括:
[0015] 確定模塊,用于確定本次數據傳輸的源節點;
[0016] 選擇模塊,用于從用于接收所述數據的節點列表中選擇未被選擇過用于接收所述 數據的節點作為本次數據傳輸的目的節點,所述本次數據傳輸的目的節點作為傳輸鏈中所 述本次數據傳輸的源節點的下一個最近鄰節點;所述節點列表中包括至少一個用于接收數 據的節點的標識和各所述節點的地址;
[0017] 發送模塊,用于向所述本次數據傳輸的源節點下發數據傳輸任務,所述數據傳輸 任務包括所述本次數據傳輸的目的節點和所述本次數據傳輸的目的節點的地址,以供所述 本次數據傳輸的源節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的 目的節點傳輸所述數據。
[0018] 又另一方面,提供一種節點裝置,所述裝置包括:
[0019] 接收模塊,用于在所述節點裝置作為本次數據傳輸的源節點接收控制裝置下發的 數據傳輸任務,所述數據傳輸任務包括所述本次數據傳輸的目的節點和所述本次數據傳輸 的目的節點的地址;
[0020] 發送模塊,用于根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的 目的節點傳輸所述數據。
[0021] 再另一方面,還提供一種數據傳輸系統,所述系統包括控制裝置和至少一個節點 裝置;所述控制裝置采用如上所述的控制裝置,所述節點裝置采用如上所述的節點裝置。
[0022] 本發明實施例提供的技術方案帶來的有益效果是:
[0023] 本發明實施例通過采用上述技術方案,實現一種鏈式分發數據的方案,可以把數 據快速的分發到節點列表中的所有節點上,正常情況下每個節點的熱度相同,即數據只接 收一次、分發一次,節點的熱度相同,即每個節點的傳輸數據所需要消耗的網卡流量、CPU使 用均勻,能夠有效地保證數據的傳輸速度和傳輸效率。而且本發明實施例的技術方案,與現 有技術的第一種方式相比,不需要借助于手工操作來傳輸數據,控制裝置可以對節點進行 有效控制,保證了數據的傳輸速度和傳輸效率。與現有技術的第二種方式相比,能夠保證每 個節點的熱度盡可能的均勻,即使得每個節點的傳輸數據所需要消耗的網卡流量、CPU使用 均勻,這樣當傳輸文件非常大的時候,也能夠保證數據的傳輸速度和傳輸效率。例如而虛擬 主機的生成就是依賴于鏡像文件的快速復制的,因此本發明實施例的技術方案可以適用在 云平臺的設計和實現中,解決了虛擬主機的上線、擴容、遷移等問題,節省了大量的時間,為 用戶提供了更好的體驗。
【專利附圖】
【附圖說明】
[0024] 為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他 的附圖。
[0025] 圖1為本發明一實施例提供的數據傳輸方法的流程圖。
[0026] 圖2為本發明另一實施例提供的數據傳輸方法的流程圖。
[0027] 圖3為本發明再一實施例提供的數據傳輸方法的流程圖。
[0028] 圖4為本發明實施例提供的數據處理的一種示例圖。
[0029] 圖5為圖4的數據處理中各節點的狀態變遷圖。
[0030] 圖6為本發明實施例提供的數據處理的另一種示例圖。
[0031] 圖7為本發明實施例提供的數據處理的又一種示例圖。
[0032] 圖8為本發明一實施例提供的控制裝置的結構示意圖。
[0033] 圖9為本發明另一實施例提供的控制裝置的結構示意圖。
[0034] 圖10為本發明一實施例提供的節點裝置的結構示意圖。
[0035] 圖11為本發明另一實施例提供的節點裝置的結構示意圖。
[0036] 圖12為本發明實施例提供的數據傳輸系統的結構示意圖。
[0037] 圖13是本發明實施例提供的一種終端設備結構示意圖。
【具體實施方式】
[0038] 為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方 式作進一步地詳細描述。
[0039] 圖1為本發明一實施例提供的數據傳輸方法的流程圖。如圖1所示,本實施例的 數據傳輸方法,具體可以包括如下步驟:
[0040] 100、控制裝置確定本次數據傳輸的源節點;
[0041] 101、控制裝置從用于接收數據的節點列表中選擇未被選擇過用于接收數據的節 點作為本次數據傳輸的目的節點;
[0042] 本實施例中本次數據傳輸的目的節點作為傳輸鏈中本次數據傳輸的源節點的下 一個最近鄰節點;節點列表中包括至少一個用于接收數據的節點的標識(如節點的編號) 和各節點的地址(如各節點的IP地址)。
[0043] 在本實施例的傳輸鏈中,數據從前向后傳輸,在每兩個相鄰的節點中,在數據傳輸 時,前一個節點為一次數據傳輸的源節點,后一個節點為該次數據傳輸的目的節點。
[0044] 102、控制裝置向本次數據傳輸的源節點下發數據傳輸任務,數據傳輸任務包括本 次數據傳輸的目的節點和本次數據傳輸的目的節點的地址,以供本次數據傳輸的源節點根 據本次數據傳輸的目的節點的地址向本次數據傳輸的目的節點傳輸數據。
[0045] 例如本次數據傳輸的源節點可以根據本次數據傳輸的目的節點的IP地址向本次 數據傳輸的目的節點傳輸數據。
[0046] 可選地,其中數據傳輸任務還可以包括其他參數,如數據在本次數據傳輸的源節 點中的路徑,數據在本次數據傳輸的目的節點中要存儲的路徑,以便于本次數據傳輸的源 節點從本次數據傳輸的源節點中的路徑下讀取該數據,并向本次數據傳輸的目的節點傳輸 該數據,以供本次數據傳輸的目的節點將該數據存儲在本次數據傳輸的源節點中的路徑 下。
[0047] 本實施例通過采用上述技術方案,實現一種鏈式分發數據的方案,可以把數據快 速的分發到節點列表中的所有節點上,正常情況下每個節點的熱度相同,即數據只接收一 次、分發一次,節點的熱度相同,即每個節點的傳輸數據所需要消耗的網卡流量、CPU使用均 勻,能夠有效地保證數據的傳輸速度和傳輸效率。而且本實施例的技術方案,與現有技術的 第一種方式相比,不需要借助于手工操作來傳輸數據,控制裝置可以對節點進行有效控制, 保證了數據的傳輸速度和傳輸效率。與現有技術的第二種方式相比,能夠保證每個節點的 熱度盡可能的均勻,即使得每個節點的傳輸數據所需要消耗的網卡流量、CPU使用均勻,這 樣當傳輸文件非常大的時候,也能夠保證數據的傳輸速度和傳輸效率。例如而虛擬主機的 生成就是依賴于鏡像文件的快速復制的,因此本實施例的技術方案可以適用在云平臺的設 計和實現中,解決了虛擬主機的上線、擴容、遷移等問題,節省了大量的時間,為用戶提供了 更好的體驗。
[0048] 可選地,在上述實施例的技術方案的基礎上,其中步驟100 "控制裝置確定本次數 據傳輸的源節點"具體可以包括兩種情況:
[0049] 第一種情況、當控制裝置首次控制發送數據時,確定本次數據傳輸的源節點為數 據未被發送前存儲數據的原始節點。
[0050] 第二種情況、當控制裝置非首次控制發送數據時,將最近鄰的上次數據傳輸的目 的節點作為本次數據傳輸的源節點。
[0051] 數據首次傳輸時,數據存儲在原始節點中。當首次控制發送數據時,控制節點根據 原始節點的IP地址,向原始節點下發數據傳輸任務,原始節點接收數據傳輸任務,并根據 數據傳輸任務中首次數據傳輸的目的節點的IP地址,向首次數據傳輸的目的節點發送該 數據。首次傳輸數據完畢,從第二次傳輸數據開始,將上次數據傳輸的目的節點作為本次數 據傳輸的源節點,然后控制裝置從節點列表中選擇未被選擇過的節點作為本次數據傳輸的 目的節點;由本次數據傳輸的源節點根據本次數據傳輸的目的節點的IP地址,向本次數據 傳輸的目的節點傳輸數據,依次類推,直到節點列表中所有節點都被選擇過,此時正常情況 下,節點列表中的所有節點都接收到數據。
[0052] 進一步可選地,在上述實施例的技術方案的基礎上,其中步驟"當控制裝置非首次 控制發送數據時,將最近鄰的上次數據傳輸的目的節點作為本次數據傳輸的源節點"之前, 還可以包括如下步驟:
[0053] ( 1)控制裝置周期性地接收上次數據傳輸的目的節點上報的數據接收進度;
[0054] (2)當控制裝置接收到數據接收進度為100%時,控制裝置確定上次數據傳輸完 成。
[0055] 例如,可以設置每隔一定時間段,各節點向控制裝置上報依次數據傳輸進度,例如 當節點接收數據時,可以為數據接收進度(具體可以為數據接收的百分比)。當節點發送數 據時,可以為數據發送進度(具體可以為數據發送的百分比)。具體地,各節點還可以每隔一 定時間段向控制裝置上報發送數據的速率或者接收數據的速率。例如在上次數據傳輸過程 中,上次數據傳輸的目的節點周期性地向控制裝置上報數據接收進度,如在數據傳輸過程 中,隨著數據的傳輸,上次數據傳輸的目的節點周期性地上報的數據傳輸進度可以分別為 5%、30%、66%、90%和100%。當控制裝置接收到上次數據傳輸目的節點上報的數據傳輸進度 為100%時,確定上次數據傳輸完成。
[0056] 進一步可選地,在上實施例的技術方案的基礎上,"控制裝置向本次數據傳輸的源 節點發送下發數據傳輸任務"之后,還可以包括如下步驟:
[0057] (a)控制裝置確定在預設閾值的周期內未接收到本次數據傳輸的目的節點上報的 數據接收進度;
[0058] 例如預設閾值的周期可以為6個周期。實際應用中,具體可以根據每個周期的時 間長短,確定預設閾值的周期的數目。
[0059] (b)控制裝置確定本次數據傳輸的目的節點故障;
[0060] (c)控制裝置從原始節點和節點列表中已經接收到數據的節點中選擇子節點最少 的節點作為本次數據傳輸的源節點;
[0061] (d)控制裝置重新從用于接收數據的節點列表中選擇未被選擇過用于接收數據的 節點作為本次數據傳輸的目的節點;
[0062] (e)控制裝置向本次數據傳輸的源節點下發數據傳輸任務,以供本次數據傳輸的 源節點根據本次數據傳輸的目的節點的地址向本次數據傳輸的目的節點傳輸數據。
[0063] 需要說明的是,上述技術方案中也可以沒有步驟(c)。此時,當本次數據傳輸的目 的節點故障時,可以由本次數據傳輸的源節點向重新選擇的本次數據傳輸的目的節點傳輸 數據。但是這樣的話,本次數據傳輸的源節點可能要多次作為源節點來傳輸數據,這樣本次 數據傳輸的源節點可能需要消耗的網卡流量更多、(PU使用也更多,造成各節點需要消耗的 網卡流量更多、CPU使用不均勻。因此,本實施例中增加步驟(c),控制裝置從原始節點和節 點列表中已經接收到數據的節點中選擇子節點最少的節點作為本次數據傳輸的源節點,然 后由重新選擇的本次數據傳輸的源節點向重新選擇的本次數據傳輸的目的節點傳輸數據。 從原始節點和節點列表中已經接收到數據的節點中選擇子節點最少的節點作為本次數據 傳輸的源節點,可以盡量保證各節點需要消耗的網卡流量更多、CPU使用均勻,保證數據傳 輸速度和數據傳輸效率。
[0064] 進一步可選地,在上實施例的技術方案的基礎上,"控制裝置向本次數據傳輸的源 節點發送下發數據傳輸任務"之后,還可以包括:控制裝置確定節點列表中除故障節點之 夕卜,無未接收過數據的節點,確定數據傳輸完成。
[0065] 上述實施例的所有可選技術方案,可以采用可以結合的方式任意組合,形成本發 明的可選實施例,在此不再一一舉例。
[0066] 上述實施例的技術方案,可以把數據快速的分發到節點列表中的所有節點上,正 常情況下每個節點的熱度相同,即數據只接收一次、分發一次,節點的熱度相同,即每個節 點的傳輸數據所需要消耗的網卡流量、(PU使用均勻,能夠有效地保證數據的傳輸速度和傳 輸效率。而且上述實施例的技術方案,與現有技術的第一種方式相比,不需要借助于手工操 作來傳輸數據,控制裝置可以對節點進行有效控制,保證了數據的傳輸速度和傳輸效率。與 現有技術的第二種方式相比,能夠保證每個節點的熱度盡可能的均勻,即使得每個節點的 傳輸數據所需要消耗的網卡流量、CPU使用均勻,這樣當傳輸文件非常大的時候,也能夠保 證數據的傳輸速度和傳輸效率。例如而虛擬主機的生成就是依賴于鏡像文件的快速復制 的,因此上述實施例的技術方案可以適用在云平臺的設計和實現中,解決了虛擬主機的上 線、擴容、遷移等問題,節省了大量的時間,為用戶提供了更好的體驗。
[0067] 圖2為本發明另一實施例提供的數據傳輸方法的流程圖。如圖2所示,本實施例的 數據傳輸方法,在上述圖1及可選實施例的技術方案的基礎上,本實施例的數據傳輸方法, 具體可以包括如下步驟:
[0068] 200、控制裝置獲取待發送的數據所在的原始節點的路徑、原始節點的IP地址;執 行步驟201 ;
[0069] 201、控制裝置從節點列表中獲取一個節點,作為首次數據傳輸的目的節點,并獲 取首次數據傳輸的目的節點的IP地址;執行步驟202 ;
[0070] 本實施例的節點列表時用于接收該數據的所有節點的集合,該節點列表中包括至 少一個節點的標識,以及每一個節點的IP地址。
[0071] 202、控制裝置根據原始節點的IP地址,向該原始節點下發數據傳輸任務,以供原 始節點向首次數據傳輸的目的節點發送該數據;執行步驟203 ;
[0072] 該數據傳輸任務中包括首次數據傳輸的目的節點的IP地址和首次數據傳輸的目 的節點中存儲該數據的路徑。可選地,該數據傳輸任務中可以不包括首次數據傳輸的目的 節點中存儲該數據的路徑,此時由首次數據傳輸的目的節點去確定存儲該數據的路徑。
[0073] 203、控制裝置周期性地接收首次數據傳輸的目的節點上報的數據接收進度;執行 步驟204 ;
[0074] 例如還可以接收首次數據傳輸的目的節點上報的數據傳輸速度等等。
[0075] 204、當控制裝置接收到數據接收進度為100%時,控制裝置確定首次數據傳輸完 成;執行步驟205 ;
[0076] 205、開始新一輪的數據傳輸,控制裝置將上次數據傳輸的目的節點作為本次數據 傳輸的源節點;執行步驟206 ;
[0077] 206、控制裝置判斷節點列表中是否還有未選擇過的節點,當有的時候,執行步驟 207 ;否則當沒有的時候,數據傳輸完畢。
[0078] 當數據傳輸完畢,所有節點退出數據傳輸。本實施例中節點列表中的將誒點被選 擇即表示向該節點發送過數據。
[0079] 207、控制裝置從節點列表中選擇未被選擇過用于接收數據的節點作為本次數據 傳輸的目的節點;執行步驟208 ;
[0080] 208、控制裝置根據本次數據傳輸的源節點的IP地址,向本次數據傳輸的源節點 下發數據傳輸任務;執行步驟209 ;
[0081] 該數據傳輸任務包括本次數據傳輸的目的節點的IP地址、該數據在本次數據傳 輸的源節點的存儲路徑和該數據在本次數據傳輸的目的節點的存儲路徑,以供本次數據傳 輸的源節點從本次數據傳輸的源節點的存儲路徑下獲取該數據,并向本次數據傳輸的目的 節點發送該數據,以供本次數據傳輸的目的節點將該數據存儲在本次數據傳輸的目的節點 的存儲路徑下。可選地,該數據傳輸任務中可以不包括該數據在本次數據傳輸的目的節點 的存儲路徑,而由本次數據傳輸的目的節點來確定存儲該數據的路徑。
[0082] 209、控制裝置判斷是否接收到本次數據傳輸的目的節點上報的數據接收進度;若 是的時候,執行步驟210 ;否則執行步驟211 ;
[0083] 本次數據傳輸的目的節點向控制裝置上報數據處理進度是周期性地上報的。
[0084] 210、控制裝置判斷并確定接收到數據接收進度為100%時,控制裝置確定本次數 據傳輸完成;執行步驟205 ;
[0085] 確定在預設閾值的周期內未接收到本次數據傳輸的目的節點上報的數據接收進 度;
[0086] 211、當控制裝置在預設閾值的周期內均未接收到本次數據傳輸的目的節點上報 的數據接收進度,控制裝置確定本次數據傳輸的目的節點故障;執行步驟212 ;
[0087] 此時控制裝置需要及時調整數據傳輸鏈路。
[0088] 212、控制裝置從原始節點和節點列表中已經接收到數據的節點中選擇子節點最 少的節點作為本次數據傳輸的源節點;執行步驟213 ;
[0089] 213、控制裝置重新從節點列表中選擇未被選擇過用于接收數據的節點作為本次 數據傳輸的目的節點;執行步驟207 ;
[0090] 本實施例通過采用上述技術方案,實現一種鏈式分發數據的方案,可以把數據快 速的分發到節點列表中的所有節點上,正常情況下每個節點的熱度相同,即數據只接收一 次、分發一次,節點的熱度相同,即每個節點的傳輸數據所需要消耗的網卡流量、CPU使用均 勻,能夠有效地保證數據的傳輸速度和傳輸效率。而且本實施例的技術方案,與現有技術的 第一種方式相比,不需要借助于手工操作來傳輸數據,控制裝置可以對節點進行有效控制, 保證了數據的傳輸速度和傳輸效率。與現有技術的第二種方式相比,能夠保證每個節點的 熱度盡可能的均勻,即使得每個節點的傳輸數據所需要消耗的網卡流量、CPU使用均勻,這 樣當傳輸文件非常大的時候,也能夠保證數據的傳輸速度和傳輸效率。例如而虛擬主機的 生成就是依賴于鏡像文件的快速復制的,因此本實施例的技術方案可以適用在云平臺的設 計和實現中,解決了虛擬主機的上線、擴容、遷移等問題,節省了大量的時間,為用戶提供了 更好的體驗。
[0091] 圖3為本發明再一實施例提供的數據傳輸方法的流程圖。如圖3所示,本實施例 的數據處理方法,具體可以包括如下步驟:
[0092] 300、節點作為本次數據傳輸的源節點接收控制裝置下發的數據傳輸任務;
[0093] 其中該數據傳輸任務包括本次數據傳輸的目的節點和本次數據傳輸的目的節點 的地址,如該地址可以為IP地址。
[0094] 301、節點根據本次數據傳輸的目的節點的地址,向本次數據傳輸的目的節點傳輸 數據。
[0095] 本實施例的技術方案與上述圖1所示實施例的技術方案的區別僅在于上述實施 例是在控制裝置側描述本發明的技術方案,本實施例在節點側描述本發明的技術方案,詳 細可以參考上述相關實施例的記載,在此不再贅述。
[0096] 本實施例通過采用上述技術方案,實現一種鏈式分發數據的方案,可以把數據快 速的分發到節點列表中的所有節點上,正常情況下每個節點的熱度相同,即數據只接收一 次、分發一次,節點的熱度相同,即每個節點的傳輸數據所需要消耗的網卡流量、CPU使用均 勻,能夠有效地保證數據的傳輸速度和傳輸效率。而且本實施例的技術方案,與現有技術的 第一種方式相比,不需要借助于手工操作來傳輸數據,控制裝置可以對節點進行有效控制, 保證了數據的傳輸速度和傳輸效率。與現有技術的第二種方式相比,能夠保證每個節點的 熱度盡可能的均勻,即使得每個節點的傳輸數據所需要消耗的網卡流量、CPU使用均勻,這 樣當傳輸文件非常大的時候,也能夠保證數據的傳輸速度和傳輸效率。例如而虛擬主機的 生成就是依賴于鏡像文件的快速復制的,因此本實施例的技術方案可以適用在云平臺的設 計和實現中,解決了虛擬主機的上線、擴容、遷移等問題,節省了大量的時間,為用戶提供了 更好的體驗。
[0097] 可選地,在上述圖3所示實施例的技術方案的基礎上,步驟301 "節點根據本次數 據傳輸的目的節點的地址向本次數據傳輸的目的節點傳輸數據"之后,還可以包括:節點周 期性地向控制裝置上報數據發送進度,以供控制裝置根據數據發送進度確定本次數據傳輸 完成。
[0098] 可選地,在上述圖3所示實施例的技術方案的基礎上,步驟300 "節點作為本次數 據傳輸的源節點接收控制裝置下發的數據傳輸任務"之前,還可以包括:節點作為上次數據 傳輸的目的節點接收上次數據傳輸的源節點發送的數據。
[0099] 進一步可選地,在上述實施例的步驟"節點作為上次數據傳輸的目的節點接收上 次數據傳輸的源節點發送的數據"之后,還可以包括:節點作為上次數據傳輸的目的節點向 控制裝置上報數據接收進度,以供控制裝置根據數據接收進度確定上次數據傳輸完成。
[0100] 進一步可選地,在上述實施例的技術方案的基礎上,上述實施例的數據傳輸方法, 還可以包括:當上次數據傳輸完成時,節點對數據的正確性進行校驗,并確定數據正確。
[0101] 上述實施例的所有可選技術方案,可以采用可以結合的方式任意組合,形成本發 明的可選實施例,在此不再一一舉例。
[0102] 上述實施例的技術方案與上述圖1及其可選實施例和圖2所示實施例的技術方案 的區別僅在于上述圖1及其可選實施例和圖2所示實施例是在控制裝置側描述本發明的技 術方案,本實施例在節點側描述本發明的技術方案,詳細可以參考上述相關實施例的記載, 在此不再贅述。
[0103] 上述實施例的技術方案,可以把數據快速的分發到節點列表中的所有節點上,正 常情況下每個節點的熱度相同,即數據只接收一次、分發一次,節點的熱度相同,即每個節 點的傳輸數據所需要消耗的網卡流量、(PU使用均勻,能夠有效地保證數據的傳輸速度和傳 輸效率。而且上述實施例的技術方案,與現有技術的第一種方式相比,不需要借助于手工操 作來傳輸數據,控制裝置可以對節點進行有效控制,保證了數據的傳輸速度和傳輸效率。與 現有技術的第二種方式相比,能夠保證每個節點的熱度盡可能的均勻,即使得每個節點的 傳輸數據所需要消耗的網卡流量、CPU使用均勻,這樣當傳輸文件非常大的時候,也能夠保 證數據的傳輸速度和傳輸效率。例如而虛擬主機的生成就是依賴于鏡像文件的快速復制 的,因此上述實施例的技術方案可以適用在云平臺的設計和實現中,解決了虛擬主機的上 線、擴容、遷移等問題,節省了大量的時間,為用戶提供了更好的體驗。
[0104] 圖4為本發明實施例提供的數據處理的一種示例圖。圖5為圖4的數據處理中各 節點的狀態變遷圖。圖6為本發明實施例提供的數據處理的另一種示例圖。圖7為本發明 實施例提供的數據處理的又一種示例圖。如圖4-圖7所示,以五個節點包括一個源點和四 個待分發節點、控制裝置為Controller為例描述本發明的技術方案。如圖4、圖6和圖7所 示,每一行中,第1個節點為源點、第2個節點、第3個節點、第4個節點和第5個節點分別 為待分發節點,每個節點上的用于傳輸數據的模塊可以稱之為傳輸單元(Peer)。
[0105] 每個節點上的傳輸單元Peer實現如下功能:
[0106] 1)接收Controller下發的數據傳輸任務,向目的節點發送數據;
[0107] 2)接收其他節點Peer發送過來的數據,寫入本地文件;并對數據做正確性校驗;
[0108] 3)定時與目的節點Peer同步任務進度,并對數據做重發,保證目的節點接收完 整、正確;
[0109] 4)定時上報給Controller本節點的任務發送、接收速率、百分比。
[0110] 控制裝置Controller實現如下功能:
[0111] 1)接收用戶通過工具請求的數據傳輸任務,獲取任務的文件路徑、源節點、所有目 的節點;
[0112] 2)選定一個目的節點,并下發任務給源節點Peer,讓其發送數據給選定的目的節 點;形成傳輸鏈;
[0113] 3)處理傳輸鏈上各節點Peer的上報;
[0114] 4)當傳輸鏈中的最后一個節點,接收到的數據量達到某個值后,以此為源節點,從 剩余的目的節點中選定一個節點,下發任務,把后選定的這個節點加入到當前傳輸鏈中;
[0115] 5)不斷重復以上過程,直到所有節點都加入到傳輸鏈為止;
[0116] 6)節點傳輸異常時,及時進行切換,保證傳輸正常,且熱度均衡;
[0117] 7)節點傳輸完畢后,依次退出;
[0118] 8)任務的源節點總是最后一個退出;
[0119] 9)所有節點的均退出后,Controller標記任務完成;清理任務。
[0120] 根據上述控制裝置Controller和各節點的Peer的功能,在圖4中第一行,源點和 第一行中第2個節點構成傳輸鏈,源點向第一行中第2個節點傳輸數據;當數據傳輸成功 時,如圖4的第2行所示,第2行中的第3個節點加入傳輸鏈,第2行中第2個節點向第2 行中的第3個節點傳輸數據.。當數據傳輸成功時,如圖4的第3行所示,第3行中的第4 個節點加入傳輸鏈,第3行中第3個節點向第3行中的第4個節點傳輸數據.。依次類推, 如圖4中第6行所示,直到第5個節點加入傳輸鏈,第4個節點向第5個節點傳輸數據.。
[0121] 圖4中是以所有節點傳輸均正常的情況。實際上,可能某個節點會異常,導致傳輸 鏈進行不下去,后面的節點因接收不到數據而處于"饑餓"狀態,任務也無法結束。考慮到 各種情況,節點的狀態及說明如表1所示,各狀態的變遷如表1所示:
【權利要求】
1. 一種數據傳輸方法,其特征在于,所述方法包括: 控制裝置確定本次數據傳輸的源節點; 所述控制裝置從用于接收所述數據的節點列表中選擇未被選擇過用于接收所述數據 的節點作為本次數據傳輸的目的節點,所述本次數據傳輸的目的節點作為傳輸鏈中所述本 次數據傳輸的源節點的下一個最近鄰節點;所述節點列表中包括至少一個用于接收數據的 節點的標識和各所述節點的地址; 所述控制裝置向所述本次數據傳輸的源節點下發數據傳輸任務,所述數據傳輸任務包 括所述本次數據傳輸的目的節點和所述本次數據傳輸的目的節點的地址,W供所述本次數 據傳輸的源節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目的節 點傳輸所述數據。
2. 根據權利要求1所述的方法,其特征在于,控制裝置確定本次數據傳輸的源節點包 括: 當所述控制裝置首次控制發送所述數據時,確定所述本次數據傳輸的源節點為所述數 據未被發送前存儲所述數據的原始節點。
3. 根據權利要求1所述的方法,其特征在于,控制裝置確定本次數據傳輸的源節點包 括: 當所述控制裝置非首次控制發送所述數據時,將最近鄰的上次數據傳輸的目的節點作 為所述本次數據傳輸的源節點。
4. 根據權利要求3所述的方法,其特征在于,當所述控制裝置非首次控制發送所述數 據時,將最近鄰的上次數據傳輸的目的節點作為所述本次數據傳輸的源節點之前,所述方 法還包括: 所述控制裝置周期性地接收所述上次數據傳輸的目的節點上報的數據接收進度; 當控制裝置接收到所述數據接收進度為100%時,所述控制裝置確定上次數據傳輸完 成。
5. 根據權利要求2所述的方法,其特征在于,所述控制裝置向所述本次數據傳輸的源 節點發送下發數據傳輸任務之后,所述方法還包括: 所述控制裝置確定在預設闊值的周期內未接收到所述本次數據傳輸的目的節點上報 的數據接收進度; 所述控制裝置確定所述本次數據傳輸的目的節點故障; 所述控制裝置從所述原始節點和所述節點列表中已經接收到所述數據的節點中選擇 子節點最少的節點作為所述本次數據傳輸的源節點; 所述控制裝置重新從用于接收所述數據的節點列表中選擇未被選擇過用于接收所述 數據的節點作為本次數據傳輸的目的節點; 所述控制裝置向所述本次數據傳輸的源節點下發數據傳輸任務,W供所述本次數據傳 輸的源節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目的節點傳 輸所述數據。
6. 根據權利要求1-5任一所述的方法,其特征在于,所述控制裝置向所述本次數據傳 輸的源節點發送下發數據傳輸任務之后,所述方法還包括: 所述控制裝置確定所述節點列表中除故障節點之外,無未接收過所述數據的節點,確 定數據傳輸完成。
7. -種數據傳輸方法,其特征在于,所述方法包括如下步驟: 節點作為本次數據傳輸的源節點接收控制裝置下發的數據傳輸任務,所述數據傳輸任 務包括所述本次數據傳輸的目的節點和所述本次數據傳輸的目的節點的地址; 所述節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目的節點 傳輸所述數據。
8. 根據權利要求7所述的方法,其特征在于,所述節點根據所述本次數據傳輸的目的 節點的地址向所述本次數據傳輸的目的節點傳輸所述數據之后,所述方法還包括: 所述節點周期性地向所述控制裝置上報數據發送進度,W供所述控制裝置根據所述數 據發送進度確定本次數據傳輸完成。
9. 根據權利要求7所述的方法,其特征在于,所述節點作為本次數據傳輸的源節點接 收控制裝置下發的數據傳輸任務之前,所述方法還包括: 所述節點作為上次數據傳輸的目的節點接收上次數據傳輸的源節點發送的所述數據。
10. 根據權利要求9所述的方法,其特征在于,所述節點作為上次數據傳輸的目的節點 接收上次數據傳輸的源節點發送的所述數據之后,所述方法還包括: 所述節點作為上次數據傳輸的目的節點向所述控制裝置上報數據接收進度,W供所述 控制裝置根據所述數據接收進度確定上次數據傳輸完成。
11. 根據權利要求10所述的方法,其特征在于,所述方法還包括: 當所述上次數據傳輸完成時,所述節點對所述數據的正確性進行校驗,并確定所述數 據正確。
12. -種控制裝置,其特征在于,所述裝置包括: 確定模塊,用于確定本次數據傳輸的源節點; 選擇模塊,用于從用于接收所述數據的節點列表中選擇未被選擇過用于接收所述數據 的節點作為本次數據傳輸的目的節點,所述本次數據傳輸的目的節點作為傳輸鏈中所述本 次數據傳輸的源節點的下一個最近鄰節點;所述節點列表中包括至少一個用于接收數據的 節點的標識和各所述節點的地址; 發送模塊,用于向所述本次數據傳輸的源節點下發數據傳輸任務,所述數據傳輸任務 包括所述本次數據傳輸的目的節點和所述本次數據傳輸的目的節點的地址,W供所述本次 數據傳輸的源節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目的 節點傳輸所述數據。
13. 根據權利要求12所述的裝置,其特征在于,所述確定模塊,具體用于當所述控制裝 置首次控制發送所述數據時,確定所述本次數據傳輸的源節點為所述數據未被發送前存儲 所述數據的原始節點。
14. 根據權利要求12所述的裝置,其特征在于,所述確定模塊,具體用于當所述控制裝 置非首次控制發送所述數據時,將最近鄰的上次數據傳輸的目的節點作為所述本次數據傳 輸的源節點。
15. 根據權利要求14所述的裝置,其特征在于,所述裝置還包括接收模塊: 所述接收模塊,用于當所述控制裝置非首次控制發送所述數據時,所述確定模塊將最 近鄰的上次數據傳輸的目的節點作為所述本次數據傳輸的源節點之前,周期性地接收所述 上次數據傳輸的目的節點上報的數據接收進度; 所述確定模塊,還用于當接收到所述數據接收進度為100%時,確定上次數據傳輸完 成。
16. 根據權利要求13所述的裝置,其特征在于: 所述確定模塊,還用于在所述發送模塊向所述本次數據傳輸的源節點發送下發數據傳 輸任務之后,確定在預設闊值的周期內未接收到所述本次數據傳輸的目的節點上報的數據 接收進度; 所述確定模塊,還用于確定所述本次數據傳輸的目的節點故障; 所述選擇模塊,還用于從所述原始節點和所述節點列表中已經接收到所述數據的節點 中選擇子節點最少的節點作為所述本次數據傳輸的源節點; 所述選擇模塊,還用于重新從用于接收所述數據的節點列表中選擇未被選擇過用于接 收所述數據的節點作為本次數據傳輸的目的節點; 所述發送模塊,還用于向所述本次數據傳輸的源節點下發數據傳輸任務,W供所述本 次數據傳輸的源節點根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目 的節點傳輸所述數據。
17. 根據權利要求12-16任一所述的裝置,其特征在于,所述確定模塊,還用于在所述 發送模塊向所述本次數據傳輸的源節點發送下發數據傳輸任務之后,確定所述節點列表中 除故障節點之外,無未接收過所述數據的節點,確定數據傳輸完成。
18. -種節點裝置,其特征在于,所述裝置包括: 接收模塊,用于在所述節點裝置作為本次數據傳輸的源節點接收控制裝置下發的數據 傳輸任務,所述數據傳輸任務包括所述本次數據傳輸的目的節點和所述本次數據傳輸的目 的節點的地址; 發送模塊,用于根據所述本次數據傳輸的目的節點的地址向所述本次數據傳輸的目的 節點傳輸所述數據。
19. 根據權利要求18所述的裝置,其特征在于,所述發送模塊,還用于在根據所述本次 數據傳輸的目的節點的地址向所述本次數據傳輸的目的節點傳輸所述數據之后,周期性地 向所述控制裝置上報數據發送進度,W供所述控制裝置根據所述數據發送進度確定本次數 據傳輸完成。
20. 根據權利要求18所述的裝置,其特征在于,所述接收模塊,還用于在所述節點裝置 作為本次數據傳輸的源節點時,接收控制裝置下發的數據傳輸任務之前,所述節點裝置作 為上次數據傳輸的目的節點時,接收上次數據傳輸的源節點發送的所述數據。
21. 根據權利要求20所述的裝置,其特征在于,所述發送模塊,還用于在所述節點裝置 作為上次數據傳輸的目的節點時,接收上次數據傳輸的源節點發送的所述數據之后,所述 節點裝置作為上次數據傳輸的目的節點時,向所述控制裝置上報數據接收進度,W供所述 控制裝置根據所述數據接收進度確定上次數據傳輸完成。
22. 根據權利要求21所述的裝置,其特征在于,所述裝置還包括: 校驗模塊,用于在所述節點裝置作為上次數據傳輸的目的節點時,當所述上次數據傳 輸完成時,對所述數據的正確性進行校驗,并確定所述數據正確。
23. -種數據傳輸系統,其特征在于,所述系統包括控制裝置和至少一個節點裝置;所 述控制裝置采用如上權利要求12-17任一所述的控制裝置,所述節點裝置采用如上權利要 求18-22任一所述的節點裝置。
【文檔編號】H04L29/08GK104468483SQ201310432667
【公開日】2015年3月25日 申請日期:2013年9月22日 優先權日:2013年9月22日
【發明者】周紅昌, 陳杰, 尹晟宇, 蔡璞, 董曉杰 申請人:騰訊科技(深圳)有限公司