OpenStack Kilo新特性解讀和分析(1)
阿新 • • 發佈:2019-02-17
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相關具體參見: