Changes between Version 3 and Version 4 of GTD_Cloud_One_Schedule


Ignore:
Timestamp:
Apr 23, 2009, 11:25:00 AM (15 years ago)
Author:
rock
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GTD_Cloud_One_Schedule

    v3 v4  
    22= 1.簡介 =
    33[[Image(one.png)]]
    4  * ONE官方說 Scheduler 模組負責分配pending的虛擬機器在 Hosts(dom0/實體機器)中,排程模組稱為 __'''''match making scheduler (mm_sched)'''''__(再上圖的左上方塊),排程的演算法為 __'''''Rank Scheduling Policy__''''',藉此可以排出資源的優先順序(針對此 VM 的需求)。mm_sched 可獨立於 oned,當 mm_sched 沒啟動時,管理者必須明確指定 submit VM 到那台主機
    5  * 排程的簡單運作為,當 sumbit VM 時給予__'''''『REQUIREMENTS』__'''''屬性,match making scheduler 藉此排列出順序。
    6   * REQUIREMENTS 描述範例:
     4 * ONE官方說 Scheduler 模組負責分配pending的虛擬機器在 Hosts(dom0/實體機器)中,排程模組稱為 __'''''match making scheduler'''''__ (mm_sched,再上圖的左上方塊),排程的演算法為 __'''''Rank Scheduling Policy__''''',藉此可以排出資源的優先順序(針對此 VM 的需求)。mm_sched 可獨立於 oned,當 mm_sched 沒啟動時,管理者必須明確指定 submit VM 到那台主機
     5----
     6= 2.運作 =
     7 * __'''''2.1 排程的運作:__''''' 當 sumbit VM 時給予__'''''『REQUIREMENTS』__'''''屬性,若 Hosts 不符合要求時,Scheduler 再根據__'''''『RANK』__'''''排列,排列的第一名則可 submit VM
     8>>Rock:Rank 的機制是當 Requirment 無法找到最佳 Host 時,退而求次佳的 Host
     9  * VM 設定檔的 REQUIREMENTS 和 RANK 範例:
     10{{{
     11MEMORY= 512                                                                     
     12CPU   = 1
     13
     14### Disks & NICS ###
     15DISK = [ IMAGE="/local/VM/disk.img",DEVICE="sda" ]           
     16DISK = [ IMAGE="../debian.iso",DEVICE="sdb",BOOT="true" ]
     17NIC= [ MAC="00:16:3e:01:01:03" ]
     18
     19### Scheduling Attributes for the rank policy (VM 需要 CPU = 1和 Memory = 512 之外,排程時還需考慮 CPUSPEED > 1000 ) ###
     20REQUIREMENTS= CPUSPEED > 1000
     21RANK= FREECPU
     22}}}
     23 * __'''''2.2 Requirement 語法:__'''''
     24  * Requirement 判斷句(採布林真假值的判斷句 0(假) 或 1(真))用來評估 Host 為 True才考慮 submit VM,
     25  * 支援的邏輯運算有:>(大於) <(小於) &(和) |(或) !(非),也支援shell wildcard pattern matching
     26  * 可使用的 REQUIREMENTS 有 (HOSTNAME, TOTALCPU, TOTALMEMORY, FREEMEMORY, FREECPU, USEDMEMORY, USEDCPU...等)
     27  * 若是想自訂 REQUIREMENTS 可修改 IM driver (因可用的屬性質都是來自於 IM)
     28  * 範例:
    729{{{
    830### 偏好將 VM Submit 到主機名稱為 aquila 開頭的 ###
    931REQUIREMENTS = 'HOSTNAME = "aquila*"'
    1032
    11 ### 偏好將 VM Submit 到主機 CPU Free 狀態 60% 的主機 ###
     33### 偏好將 VM Submit 到主機 CPU Free 狀態 60% 的主機 ###
    1234REQUIREMENTS = FREECPU > 0.6 #Only those resources with more than 60% of free CPU
    1335}}}
    14  * 若是 ONE 提供的 match making scheduler 無法滿足需求,可使用[http://haizea.cs.uchicago.edu/ Haizea] 模組來做到進階的 eservation of resources 和 queuing of best effort requests (似乎是使用 lease 的方式)
    15    *
     36>> 比較著重在 CPU 和 Memory 的需求描述
     37 * __'''''2.2 Rank 語法:__'''''
     38   * Rank 判斷句是用來評估 each Host information,支援算術運算:+ - / *
     39   * Rank 也可使用 REQUIREMENT 的屬性
     40   * 範例:
     41{{{
     42### 高 Free CPU 的 Host 優先 ###
     43RANK = FREECPU
     44
     45### 也考慮到 CPU 的溫度 ###
     46RANK = FREECPU * 100 - TEMPERATURE
     47}}}
     48----
     49= 3.進階排程模組 =
     50 * 若是 ONE 提供的 match making scheduler 無法滿足需求,可使用[http://haizea.cs.uchicago.edu/ Haizea] 模組來做到進階的 eservation of resources 和 queuing of best effort requests (似乎是使用 lease 的方式)
    1651>> Rock:看介紹還不是很清楚 Haizea 如何運作
    1752----
    18 = 2.想法 =
    19  * !MatchRanking 似乎只能讓 VM 選到最佳的 Host,(例如當VM需要運算 CUDA 時,在 REQUIREMENTS 可描述需要顯卡資源,當 VM submit 時就會優先考量到有顯卡的機器,但是當每一臺都沒有顯卡時又會怎樣呢@@)
     53= 4.想法 =
     54 * !MatchRanking 似乎只能讓 VM 選到最佳的 Host,(例如當VM需要運算 CUDA 時,在 REQUIREMENTS 可描述需要顯卡資源,當 VM submit 時就會優先考量到有顯卡的機器,但是當每一臺都沒有顯卡時又會怎樣呢@@)
    2055 * 如果想做到類似 EC2 SQS 的機制,當 Queue 滿檔時,且虛擬機器負載也很重,似乎就無法透過 !MatchRanking 來動態開啟 VM
    21 >> Rock:感覺 !MatchRanking 是 VM Placement 的排程(也就是當 VM submit 時才會排程),尚無法做到根據系統的整體動態環境來做到更上層的排程,不知 Haizea 是否可以做到此功能呢
    22 
    23 
     56>> Rock:感覺 !MatchRanking 是 VM Placement 的排程(也就是當 VM submit 時才會排程),尚無法做到根據系統的整體動態環境來做到更上層的排程,不知 Haizea 是否可以做到此功能呢
     57 * 測試步驟
     58----
     59= 5.參考 =
     60 * [http://www.opennebula.org/doku.php?id=documentation:rel1.2:cg#scheduler_configuration Scheduler Configuration]
     61 * [http://www.opennebula.org/doku.php?id=documentation:ug#requirement_expression_syntax Requirement Expression Syntax]
     62 * [http://www.opennebula.org/doku.php?id=documentation:ug#rank_expression_syntax Rank Expression Syntax]
     63 *
    2464[[BR]]
    2565[[BR]]