1. 程式人生 > >OpenStack Kilo新特性解讀和分析(1)

OpenStack Kilo新特性解讀和分析(1)

  • NFV相關功能的增強(目前全部在Nova實現)
    OpenStack社群專門成立了TelcoWorkingGroup用來負責NFV相關功能的定義,需求提出,程式碼review和patch,開發進度跟蹤等等職責。
    2.1 NUMA感知的排程(NUMA based scheduling)
    主要用來解決帶有PCI 裝置繫結的虛擬機器儘量從同一個NUMA node分配CPU和記憶體資源,來提高虛擬機器的效能。典型的應用場景就是NFV,比如pci網絡卡passthrough等
    2.2 繫結guest vCPU到物理機的CPU(spinning vCPU to host pCPU)
    這個功能通過flavor的補充屬性來實現的,比如給flavor增加如下屬性:
    hw:cpu_policy=shared|dedicated (shared為預設策略 )
    hw:cpu_threads_policy=avoid|seperated|isolate|prefer
    預設情況下,所有的vCPU都被虛擬成1core and 1 thread的socket,但是如果有了cpu繫結,物理cpu的拓撲將會影響guest cpu的拓撲,比如一個2 vCPU的guest被繫結到一個2個thread的core上,那麼這個guest cpu的拓撲就是1 socket,1 core和2 threads。
    cpu_threads_policy將會影響的guest的排程,排程的時候會考慮到物理cpu的thread,比如:
    (1)avoid: 排程器將不會將guest排程到帶有超執行緒特性的物理機上
    (2)separate: 如果物理機的core支援超執行緒,那麼同一guest的vCPU將會被分到不同的core上
    (3)isolate: 如果物理機的core支援超執行緒,那麼同一guest的vCPU將會被分到不同的core上,並且其他guest的vCPU不再允許排程到當前的core上
    (4)prefer: 如果物理機支援超執行緒,那麼同一個guest的vCPU將盡可能的被排程到相同的core上。
    這個功能會引入很多應用場景,管理員希望對host根據不同的特性進行分組,比如dedicated cpu的一組,shared cpu的host一組; 再比如dedicated ram的host一組,share ram的host一組,所以還需要藉助host aggregate的功能。(Dedicated ram相關具體參見:
    http://www.linux-kvm.org/page/UsingLargePages