根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,強主版本在第 =種情況中、子任務(wù)主版本開始時間晚于父任務(wù)副版本的結(jié)束時間的情況下的消息或數(shù)據(jù) 傳遞關(guān)系圖;
[0046] 圖5為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,強主版本在第 =種情況中、子任務(wù)主版本開始時間早于父任務(wù)副版本的結(jié)束時間的情況下的消息或數(shù)據(jù) 傳遞關(guān)系圖;
[0047] 圖6為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的GR-count柱形圖;
[0048] 圖7為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的HAT-count柱形圖;
[0049] 圖8為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的RTH-count柱形圖;
[0化日]圖9為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的GR-intervalTime柱形圖;
[0化1 ] 圖10為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的HAT-intervalTime柱形圖;
[0化2] 圖11為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的RTH-intervalTime柱形圖;
[0化3] 圖12為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的GR-a柱形圖;
[0化4] 圖13為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的HAT-a柱形圖;
[0化5] 圖14為根據(jù)本發(fā)明實施例的一種虛擬化云中容錯任務(wù)調(diào)度方法中,F(xiàn)ASARD與6種 基準(zhǔn)算法在隨機合成依賴任務(wù)組上工作時的RTH-a柱形圖。
【具體實施方式】
[0056] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面將結(jié)合本發(fā)明實施例中 的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)一步進(jìn)行清楚、完整、詳細(xì)地描述,顯然,所描述的 實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域 普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0057] 根據(jù)本發(fā)明的實施例,提供了一種虛擬化云中容錯任務(wù)調(diào)度方法。
[0化引如圖1所示,根據(jù)本發(fā)明實施例的提供的一種虛擬化云中容錯任務(wù)調(diào)度方法包 括:
[0化9] 步驟S101,獲取已到達(dá)的依賴任務(wù)組信息與虛擬化云的物理主機信息;
[0060] 步驟S103,使用PB模型為依賴任務(wù)組中的每個任務(wù)建立主版本與副版本;
[0061] 步驟S105,根據(jù)依賴任務(wù)組信息為依賴任務(wù)組中的每個任務(wù)的每個版本均指定一 個最早開始時間與一個最晚完成時間;
[0062] 步驟S107,根據(jù)依賴任務(wù)組信息激活多個物理主機,并在每個被激活的物理主機 上劃分出多個虛擬機,獲取每個被激活的物理主機上的每個虛擬機信息;
[0063] 步驟S109,根據(jù)依賴任務(wù)組中的每個任務(wù)的每個版本的最早開始時間與最晚完成 時間、W及每個被激活的物理主機上的每個虛擬機信息,將依賴任務(wù)組中的每個任務(wù)的每 個版本按照每個被激活的物理主機上的任務(wù)分布情況在指定的時間段上加載到每個被激 活的物理主機上的每個虛擬機中;
[0064] 步驟S111,在每個被激活的物理主機上的每個虛擬機中按照指定的時間安排運行 被加載的依賴任務(wù)組中的每個任務(wù)的每個版本;
[00化]步驟S113,完成依賴任務(wù)組的全部任務(wù)并返回任務(wù)結(jié)果。
[0066] 其中,依賴任務(wù)組信息包括任務(wù)集合、任務(wù)間關(guān)系集合與任務(wù)截止期,任務(wù)集合記 載了依賴任務(wù)組中每個任務(wù)的大小,任務(wù)間關(guān)系集合記載了依賴任務(wù)組中任意兩個任務(wù)之 間的依賴關(guān)系,任務(wù)截止期為依賴任務(wù)組的最晚完成時間;物理主機信息包括物理主機集 合,物理主機集合記載了每個物理主機處理能力的大??;虛擬機信息包括每個被激活的物 理主機上的虛擬機集合,虛擬機集合記載了每個虛擬機所在的物理主機W及每個虛擬機處 理能力的大小。
[0067] 并且,使用PB模型為依賴任務(wù)組中的每個任務(wù)建立主版本與副版本,為在依賴任 務(wù)組中依次指定每個任務(wù),并為被指定的任務(wù)創(chuàng)建一個主版本與一個副版本,其中,同一個 任務(wù)的主版本與副版本重復(fù)進(jìn)行相同的工作。
[0068] 并且,多個被激活的物理主機之間存在傳輸時延;根據(jù)依賴任務(wù)組信息為依賴任 務(wù)組中的每個任務(wù)的每個版本均指定一個最早開始時間與一個最晚完成時間包括:
[0069] 對于任一子任務(wù)的主版本,其最早開始時間為其多個父任務(wù)中每個父任務(wù)的完成 時間加上父任務(wù)所在物理主機與子任務(wù)所在物理主機之間的傳輸時延之和中的最大值;
[0070] 對于任一子任務(wù)的副版本,其最早開始時間為其多個父任務(wù)中每個父任務(wù)的完成 時間加上父任務(wù)所在物理主機與子任務(wù)所在物理主機之間的傳輸時延之和、W及同一任務(wù) 的主版本任務(wù)長度二者的較大值;
[0071] 對于任一非子任務(wù)的主版本,其最早開始時間為該任務(wù)的主版本所在物理主機的 所在虛擬機為執(zhí)行該任務(wù)的主版本而準(zhǔn)備就緒的時間與該任務(wù)所在的依賴任務(wù)組信息到 達(dá)時間中的較大值;
[0072] 對于任一非子任務(wù)的副版本,其最早開始時間為該任務(wù)的副版本所在物理主機的 所在虛擬機為執(zhí)行該任務(wù)的副版本而準(zhǔn)備就緒的時間與該任務(wù)所在的依賴任務(wù)組信息到 達(dá)時間中的較大值;
[0073] 對于任一任務(wù)的任意版本,其最晚完成時間為該任務(wù)的截止時間;
[0074] 其中,一子任務(wù)與一父任務(wù)為一依賴任務(wù)對,子任務(wù)依賴于父任務(wù),子任務(wù)必須獲 得父任務(wù)的執(zhí)行結(jié)果才能執(zhí)行。
[0075] 同時,將依賴任務(wù)組中的每個任務(wù)的每個版本按照每個被激活的物理主機上的任 務(wù)分布情況在指定的時間段上加載到每個被激活的物理主機上的每個虛擬機中,為先將依 賴任務(wù)組中的每個任務(wù)的主版本在指定的時間段上加載到每個被激活的物理主機上的每 個虛擬機中,并使得依賴任務(wù)組中的每個任務(wù)的主版本盡量均勻的分布在所有主機上;再 將依賴任務(wù)組中的每個任務(wù)的副版本在指定的時間段上加載到每個被激活的物理主機上 的每個虛擬機中并使得依賴任務(wù)組中的每個任務(wù)的副版本盡量集中分布到數(shù)臺副版本分 布數(shù)量較多的主機上。
[0076] 并且,將依賴任務(wù)組中的每個任務(wù)的主版本在指定的時間段上加載到每個被激活 的物理主機上的每個虛擬機中,并使得依賴任務(wù)組中的每個任務(wù)的主版本盡量均勻的分布 在所有主機上,包括:
[0077] 選取一個待調(diào)度任務(wù)的主版本;
[007引將激活主機集合中的所有主機按已被調(diào)度主版本數(shù)量由小到大排序,分割為多個 主機組,并指定已被調(diào)度主版本數(shù)量最小的主機所在的主機組為候選主機組;
[0079] 在候選主機組中選取一個虛擬機,使得在該虛擬機上待調(diào)度任務(wù)的主版本能夠在 截止期之前被完成,且待調(diào)度任務(wù)的主版本被完成的時間最早;
[0080] 若未找到前述虛擬機,則繼續(xù)指定下一個主機組為候選主機組并選取符合前述條 件的虛擬機,直到符合前述條件的虛擬機被找到或所有候選主機組都被指定過;
[0081] 若所有候選主機組都被指定過但仍未能選取符合前述條件的虛擬機,則調(diào)用資源 擴(kuò)展機制增加計算資源W完成待調(diào)度任務(wù)的主版本;
[008引若調(diào)用資源擴(kuò)展機制增加計算資源后仍不能完成待調(diào)度任務(wù)的主版本,則將待調(diào) 度任務(wù)的主版本調(diào)度到待調(diào)度任務(wù)的主版本被完成的時間最早的虛擬機上,并返回待調(diào)度 任務(wù)的主版本不能在截止期之前完成的提示信息。
[0083] 同時,將依賴任務(wù)組中的每個任務(wù)的副版本在指定的時間段上加載到每個被激活 的物理主機上的每個虛擬機中并使得依賴任務(wù)組中的每個任務(wù)的副版本盡量集中分布到 數(shù)臺副版本分布數(shù)量較多的主機上,包括:
[0084] 選取一個待調(diào)度任務(wù)的副版本;
[0085] 將激活主機集合中的所有主機按已被調(diào)度副版本數(shù)量由大到小排序,分割為多個 主機組,并指定已被調(diào)度副版本數(shù)量最小的主機所在的主機組為候選主機組;
[0086] 在候選主機組中選取一個虛擬機,使得在該虛擬機上待調(diào)度任務(wù)的副版本能夠在 截止期之前被完成,且待調(diào)度任務(wù)的副版本被完成的時間最早;
[0087] 若未找到前述虛擬機,則繼續(xù)指定下一個主機組為候選主機組并選取符合前述條 件的虛擬機,直到符合前述條件的虛擬機被找到或所有候選主機組都被指定過;
[008引若所有候選主機組都被指定過但仍未能選取符合前述條件的虛擬機,則調(diào)用資源 擴(kuò)展機制增加計算資源w完成待調(diào)度任務(wù)的副版本;
[0089] 若調(diào)用資源擴(kuò)展機制增加計算資源后仍不能完成待調(diào)度任務(wù)的副版本,則將待調(diào) 度任務(wù)的副版本調(diào)度到待調(diào)度任務(wù)的副版本被完成的時間最早的虛擬機上,并返回待調(diào)度 任務(wù)的副版本不能在截止期之前完成的提示信息。
[0090] 下面根據(jù)具體實施例進(jìn)一步闡述本發(fā)明的技術(shù)特征。
[0091]由于任務(wù)到達(dá)通常不具有周期性,在本實施例中,我們考慮動態(tài)到達(dá)的依賴任務(wù)。 一組依賴任務(wù)可W表示為一個有向無環(huán)圖值irected Acyclic Graph,下文中簡稱為DAG)。 一個DAG可被定義為G = {T, E},其中,T = {ti, *2,…,t。}表示實時的非周期任務(wù)集合,E 表示任務(wù)間的關(guān)系集合。ey= (t。tj.)表示任務(wù)tj.依賴于任務(wù)t 1,即只有tj.獲得t i的執(zhí) 行結(jié)果或者消息才能執(zhí)行。因此,我們稱ti為tj.的父任務(wù),tj.為ti的子任務(wù)。對任一任務(wù) tiG T,P(ti)和C(ti)分別表示任務(wù)ti的父任務(wù)集合和子任務(wù)結(jié)合。戶(/,.) = 0表示任務(wù) ti沒有父任務(wù),C化)=0表示任務(wù)ti沒有子任務(wù)。一個DAG的達(dá)到時間和截止期分別表示 為3佑)和(1佑)。任務(wù)*巧^描述成一個^元組*1=(3。中,31),其中,31、(1郝3 1分別表 示任務(wù)ti的達(dá)到時間、截止期和任務(wù)大小。任務(wù)t i的截止期d i可W通過其所在DAG的截止 期d(G)計算得到。任務(wù)大小用百萬指令數(shù)(million instructions,下文中簡稱為MI)衡 量。在PB模型中,對于任一任務(wù)tfG