一種虛擬化云中容錯任務調度方法
【技術領域】
[0001] 本發明設及云計算領域,特別地,設及一種虛擬化云中容錯任務調度方法。
【背景技術】
[0002] 由于計算機系統出錯的不可預測性,在設計調度算法時加入對容錯性的支持至關 重要。容錯調度算法大體上可W分為兩類,即靜態容錯調度和動態容錯調度;靜態容錯調度 在任務提交之前進行調度決策,通常用來調度周期性任務;動態容錯調度通常用來調度非 周期性任務,其任務到達時間不確定。
[0003] 目前,在分布式計算環境下主要有兩種主要的容錯調度手段,即重提交和復制。重 提交是指當一個任務所分配的計算節點出現故障后,該任務被重新提交。采用重提交方式 將會導致一些任務的完成時間推遲,甚至可能會不滿足任務的截止期。復制是指通過將一 個任務復制成多個版本,之后把每個復制的版本分配到不同的計算節點,W保證即便在資 源出現故障的情況下,任務仍能在截止期前成功完成。任務被復制的版本越多,系統的容錯 能力越強,但該將不可避免地造成大量的資源消耗。因此,采用兩個版本的復制方式,即主 版本與副版本模型(primary-backup model,下文中簡稱為PB模型)成為目前廣為采用的 容錯手段。
[0004] 為了在保障容錯的前提下提高系統可調度性和資源利用率,有不少學者在采用PB 模型時研究了如何通過重疊技術減少系統開銷。目前主要有兩種的重疊模式;副版本-副 版本重疊化ackup-backup overlapping,簡稱BB重疊),即多個不同的副版本可在同一 個計算單元上進行重疊;主版本-副版本重疊(primary-backup overlapping,簡稱PB重 疊),即一個主版本可W和其他任務的副版本在同一個計算單元上重疊。在PB模型中, 副版本可進一步分為兩種類型,即被動副版本(passive backup)和主動副版本(active backup)。被動副版本只在其對應的主版本不能成功完成時開始執行,如果主版本成功完 成,副版本將被撤銷。盡管上述方法可W減少資源占用,但不能保證所有的任務可在截止期 內完成;相反,主動副版本允許一個任務的主版本和副版本在執行時間上有重疊,義用主動 副版本執行方式可W減小任務錯失截止期的概率,但同時資源利用率也會隨之降低。現有 技術中已經存在對實時任務進行重疊處理的技術方案,但該些技術方案并未考慮系統的虛 擬化,因此僅適用于傳統的分布式系統,并不適合虛擬化云計算環境。
[0005] 近來,也有一些云中依賴任務調度方面的研究。但是該些工作都沒有在調度時考 慮系統出錯的情況,不能解決云中容錯問題。針對現有技術中缺乏云計算環境下容錯任務 調度方法的問題,目前尚未有有效的解決方案。
【發明內容】
[0006] 針對現有技術中缺乏云計算環境下容錯任務調度方法的問題,本發明的目的在于 提出一種虛擬化云中容錯任務調度方法,能夠在云計算環境下采用PB模型進行容錯任務 的調度,提高資源利用率與容錯任務的可調度性。
[0007] 基于上述目的,本發明提供的技術方案如下:
[000引根據本發明的一個方面,提供了一種虛擬化云中容錯任務調度方法,包括:
[0009] 獲取已到達的依賴任務組信息與虛擬化云的物理主機信息;
[0010] 使用PB模型為依賴任務組中的每個任務建立主版本與副版本;
[0011] 根據依賴任務組信息為依賴任務組中的每個任務的每個版本均指定一個最早開 始時間與一個最晚完成時間;
[0012] 根據依賴任務組信息激活多個物理主機,并在每個被激活的物理主機上劃分出多 個虛擬機,獲取每個被激活的物理主機上的每個虛擬機信息;
[0013] 根據依賴任務組中的每個任務的每個版本的最早開始時間與最晚完成時間、W及 每個被激活的物理主機上的每個虛擬機信息,將依賴任務組中的每個任務的每個版本按照 每個被激活的物理主機上的任務分布情況在指定的時間段上加載到每個被激活的物理主 機上的每個虛擬機中;
[0014] 在每個被激活的物理主機上的每個虛擬機中按照指定的時間安排運行被加載的 依賴任務組中的每個任務的每個版本;
[0015] 完成依賴任務組的全部任務并返回任務結果。
[0016] 其中,依賴任務組信息包括任務集合、任務間關系集合與任務截止期,任務集合記 載了依賴任務組中每個任務的大小,任務間關系集合記載了依賴任務組中任意兩個任務之 間的依賴關系,任務截止期為依賴任務組的最晚完成時間;物理主機信息包括物理主機集 合,物理主機集合記載了每個物理主機處理能力的大小;虛擬機信息包括每個被激活的物 理主機上的虛擬機集合,虛擬機集合記載了每個虛擬機所在的物理主機W及每個虛擬機處 理能力的大小。
[0017] 并且,使用PB模型為依賴任務組中的每個任務建立主版本與副版本,為在依賴任 務組中依次指定每個任務,并為被指定的任務創建一個主版本與一個副版本,其中,同一個 任務的主版本與副版本重復進行相同的工作。
[001引并且,多個被激活的物理主機之間存在傳輸時延;根據依賴任務組信息為依賴任 務組中的每個任務的每個版本均指定一個最早開始時間與一個最晚完成時間包括:
[0019] 對于任一子任務的主版本,其最早開始時間為其多個父任務中每個父任務的完成 時間加上父任務所在物理主機與子任務所在物理主機之間的傳輸時延之和中的最大值;
[0020] 對于任一子任務的副版本,其最早開始時間為其多個父任務中每個父任務的完成 時間加上父任務所在物理主機與子任務所在物理主機之間的傳輸時延之和、W及同一任務 的主版本任務長度二者的較大值;
[0021] 對于任一非子任務的主版本,其最早開始時間為該任務的主版本所在物理主機的 所在虛擬機為執行該任務的主版本而準備就緒的時間與該任務所在的依賴任務組信息到 達時間中的較大值;
[0022] 對于任一非子任務的副版本,其最早開始時間為該任務的副版本所在物理主機的 所在虛擬機為執行該任務的副版本而準備就緒的時間與該任務所在的依賴任務組信息到 達時間中的較大值;
[0023] 對于任一任務的任意版本,其最晚完成時間為該任務的截止時間;
[0024] 其中,一子任務與一父任務為一依賴任務對,子任務依賴于父任務,子任務必須獲 得父任務的執行結果才能執行。
[0025] 同時,將依賴任務組中的每個任務的每個版本按照每個被激活的物理主機上的任 務分布情況在指定的時間段上加載到每個被激活的物理主機上的每個虛擬機中,為先將依 賴任務組中的每個任務的主版本在指定的時間段上加載到每個被激活的物理主機上的每 個虛擬機中,并使得依賴任務組中的每個任務的主版本盡量均勻的分布在所有主機上;再 將依賴任務組中的每個任務的副版本在指定的時間段上加載到每個被激活的物理主機上 的每個虛擬機中并使得依賴任務組中的每個任務的副版本盡量集中分布到數臺副版本分 布數量較多的主機上。
[0026] 并且,將依賴任務組中的每個任務的主版本在指定的時間段上加載到每個被激活 的物理主機上的每個虛擬機中,并使得依賴任務組中的每個任務的主版本盡量均勻的分布 在所有主機上,包括:
[0027] 選取一個待調度任務的主版本;
[002引將激活主機集合中的所有主機按已被調度主版本數量由小到大排序,分割為多個 主機組,并指定已被調度主版本數量最小的主機所在的主機組為候選主機組;
[0029] 在候選主機組中選取一個虛擬機,使得在該虛擬機上待調度任務的主版本能夠在 截止期之前被完成,且待調度任務的主版本被完成的時間最早;
[0030] 若未找到前述虛擬機,則繼續指定下一個主機組為候選主機組并選取符合前述條 件的虛擬機,直到符合前述條件的虛擬機被找到或所有候選主機組都被指定過;
[0031] 若所有候選主機組都被指定過但仍未能選取符合前述條件的虛擬機,則調用資源 擴展機制增加計算資源W完成待調度任務的主版本;
[003引若調用資源擴展機制增加計算資源后仍不能完成待調度任務的主版本,則將待調 度任務的主版本調度到待調度任務的主版本被完成的時間最早的虛擬機上,并返回待調度 任務的主版本不能在截止期之前完成的提示信息。
[0033] 同時,將依賴任務組中的每個任務的副版本在指定的時間段上加載到每個被激活 的物理主機上的每個虛擬機中并使得依賴任務組中的每個任務的副版本盡量集中分布到 數臺副版本分布數量較多的主機上,包括:
[0034] 選取一個待調度任務的副版本;
[0035] 將激活主機集合中的所有主機按已被調度副版本數量由大到小排序,分割為多個 主機組,并指定已被調度副版本數量最小的主機所在的主機組為候選主機組;
[0036] 在候選主機組中選取一個虛擬機,使得在該虛擬機上待調度任務的副版本能夠在 截止期之前被完成,且待調度任務的副版本被完成的時間最早;
[0037] 若未找到前述虛擬機,則繼續指定下一個主機組為候選主機組并選取符合前述條 件的虛擬機,直到符合前述條件的虛擬機被找到或所有候選主機組都被指定過;
[003引若所有候選主機組都被指定過但仍未能選取符合前述條件的虛擬機,則調用資源 擴展機制增加計算資源W完成待調度任務的副版本;
[0039] 若調用資源擴展機制增加計算資源后仍不能完成待調度任務的副版本,則將待調 度任務的副版本調度到待調度任務的副版本被完成的時間最早的虛擬機上,并返回待調度 任務的副版本不能在截止期之前完成的提示信息。
[0040] 從上面所述可W看出,本發明提供的技術方案通過建立虛擬化云中實時容錯模型 代替傳統的PB模型,建立了一種充分利用空閑資源的容錯任務調度方法,提高容錯保障下 的資源利用率與容錯任務的可調度性。
【附圖說明】
[0041] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施 例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可W根據該些附圖獲 得其他的附圖。
[0042] 圖1為根據本發明實施例的一種虛擬化云中容錯任務調度方法流程圖;
[0043] 圖2為根據本發明實施例的一種虛擬化云中容錯任務調度方法中,強主版本的消 息或數據傳遞關系圖;
[0044] 圖3為根據本發明實施例的一種虛擬化云中容錯任務調度方法中,弱主版本的消 息或數據傳遞關系圖;
[0045] 圖4為