wiki:GTD_Cloud_One_Schedule

1.簡介

  • ONE官方說 Scheduler 模組負責分配pending的虛擬機器在 Hosts(dom0/實體機器)中,排程模組稱為 match making scheduler (mm_sched,再下圖的左上方塊),排程的演算法為 Rank Scheduling Policy,藉此可以排出資源的優先順序(針對此 VM 的需求)。mm_sched 可獨立於 oned,當 mm_sched 沒啟動時,管理者必須明確指定 submit VM 到那台主機


2.運作

  • 2.1 排程的運作: 當 sumbit VM 時給予『REQUIREMENTS』屬性,若 Hosts 不符合要求時,Scheduler 再根據『RANK』排列,排列的第一名則可 submit VM

Rock:Rank 的機制是當 Requirment 無法找到最佳 Host 時,退而求次佳的 Host

  • VM 設定檔的 REQUIREMENTS 和 RANK 範例:
    MEMORY= 512                                                                      
    CPU   = 1
    
    ### Disks & NICS ###
    DISK = [ IMAGE="/local/VM/disk.img",DEVICE="sda" ]            
    DISK = [ IMAGE="../debian.iso",DEVICE="sdb",BOOT="true" ]
    NIC= [ MAC="00:16:3e:01:01:03" ]
    
    ### Scheduling Attributes for the rank policy (VM 需要 CPU = 1和 Memory = 512 之外,排程時還需考慮 CPUSPEED > 1000 ) ###
    REQUIREMENTS= CPUSPEED > 1000
    RANK= FREECPU
    
  • 2.2 Requirement 語法:
    • Requirement 判斷句(採布林真假值的判斷句 0(假) 或 1(真))用來評估 Host 為 True才考慮 submit VM,
    • 支援的邏輯運算有:>(大於) <(小於) &(和) |(或) !(非),也支援shell wildcard pattern matching
    • 可使用的 REQUIREMENTS 有 (HOSTNAME, TOTALCPU, TOTALMEMORY, FREEMEMORY, FREECPU, USEDMEMORY, USEDCPU...等)
    • 若是想自訂 REQUIREMENTS 可修改 IM driver (因可用的屬性質都是來自於 IM)
    • 範例:
      ### 偏好將 VM Submit 到主機名稱為 aquila 開頭的 ###
      REQUIREMENTS = 'HOSTNAME = "aquila*"'
      
      ### 偏好將 VM Submit 到主機 CPU Free 狀態 60% 的主機 ###
      REQUIREMENTS = FREECPU > 0.6 #Only those resources with more than 60% of free CPU
      

比較著重在 CPU 和 Memory 的需求描述

  • 2.2 Rank 語法:
    • Rank 判斷句是用來評估 each Host information,支援算術運算:+ - / *
    • Rank 也可使用 REQUIREMENT 的屬性
    • 範例:
      ### 高 Free CPU 的 Host 優先 ### 
      RANK = FREECPU 
      
      ### 也考慮到 CPU 的溫度 ###
      RANK = FREECPU * 100 - TEMPERATURE 
      

3.進階排程模組

  • 若是 ONE 提供的 match making scheduler 無法滿足需求,可使用Haizea 模組來做到進階的 eservation of resources 和 queuing of best effort requests (似乎是使用 lease 的方式)

Rock:看介紹還不是很清楚 Haizea 如何運作


4.想法

  • MatchRanking 似乎只能讓 VM 選到最佳的 Host,(例如當VM需要運算 CUDA 時,在 REQUIREMENTS 可描述需要顯卡資源,當 VM submit 時就會優先考量到有顯卡的機器,但是當每一臺都沒有顯卡時又會怎樣呢@@)
  • 如果想做到類似 EC2 SQS 的機制,當 Queue 滿檔時,且虛擬機器負載也很重,似乎就無法透過 MatchRanking 來動態開啟 VM

Rock:感覺 MatchRanking 是 VM Placement 的排程(也就是當 VM submit 時才會排程),尚無法做到根據系統的整體動態環境來做到更上層的排程,不知 Haizea 是否可以做到此功能呢

  • 測試步驟
    • 只用 Requirement
    • 只用 Rank
    • Requirement + Rank
    • Requirement 和 Rank 只能各一行?
    • 如何增加屬性

5.參考



Last modified 16 years ago Last modified on Apr 23, 2009, 11:26:38 AM

Attachments (1)

Download all attachments as: .zip