虛擬機混合部署是指把對 CPU、IO、Memory 等資源有不同需求的虛擬機通過調度方式部署、遷移到同一個計算節點上,從而使得節點的資源得到充分利用。
虛擬機混合部署的場景有多種,比如通過動態資源調度滿足節點資源的動態調整;根據用戶使用習慣動態調整節點虛擬機分布等等。而虛擬機高低優先級調度也是其中的一種實現方法。在單機的資源調度分配上,區分出高低優先級,即高優先級虛機和低優先級虛機發生資源競爭時,資源優先分配給前者,嚴格保障其 QoS。
在 OpenStack Nova 中引入虛擬機高低優先級技術,再配合 Skylark QoS 服務能力,可以一定程度上滿足虛擬機的混合部署要求。
實現方案
在 Nova 的虛擬機創建、遷移流程中引入高低優先級概念,虛擬機對象新增高低優先級屬性。高優先級虛擬機在調度的過程中,會盡可能的調度到資源充足的節點,這樣的節點需要至少滿足內存不超賣、高優先級虛擬機所用 CPU 不超賣的要求。
用戶創建 flavor 或創建虛機時,可指定其優先級屬性。但優先級屬性不影響 Nova 現有的資源模型及節點調度策略,即 Nova 仍按正常流程選取計算節點及創建虛機。虛機高低優先級特性主要影響虛機創建后單機層面的資源調度分配策略。高優先級虛機和低優先級虛機發生資源競爭時,資源優先分配給前者,嚴格保障其 QoS。
Nova 針對虛機高低優先級特性有以下改變:
VM 對象和 flavor 新增高低優先級屬性配置。同時結合業務場景,約束高優先級屬性只能設置給綁核類型虛機,低優先級屬性只能設置給非綁核類虛機。
對于具有優先級屬性的虛機,需修改 libvirt XML 配置,讓單機上的 QoS 管理組件(名為 Skylark)感知,從而自動進行資源分配和 QoS 管理。
低優先級虛機的綁核范圍有改變,以充分利用高優先級虛機空閑的資源。
如何使用
準備
假設有如下一臺主機:
假設主機有 12 個 cpu core。
OS 是 openEuler 22.09,已安裝 Skylark 服務,且內核版本符合 Syklark 要求。
已基于 RPM 安裝部署好了 OpenStack Yoga 版本。
安裝
安裝 plugin
dnfinstallopenstack-plugin-priority-vm
配置數據庫
nova-manageapi_dbsync nova-managedbsync
3.重啟 nova 服務
systemctlrestartopenstack-nova-*
配置
修改nova.conf文件
打開/etc/nova/nova.conf,修改[compute]內的cpu_dedicated_set、cpu_shared_set和cpu_priority_mix_enable,其中cpu_dedicated_set表示高優先級虛機使用的 CPU 核心,cpu_shared_set指低優先級虛機使用的 CPU 核心,cpu_priority_mix_enable表示是否允許低優先虛機同時使用cpu_dedicated_set的 CPU 核心,默認值是 False。
以此文章的主機為例,設置如下:
[compute] cpu_dedicated_set=0-7 cpu_shared_set=8-11 cpu_priority_mix_enable=True
重啟 nova-compute 服務
systemctlrestartopenstack-nova-compute
使用
創建新的 flavor
openstackflavorcreate--ram8192--disk50--vcpus8--public--propertyhw:cpu_priority='low'low_prio openstackflavorcreate--ram8192--disk50--vcpus8--public--propertyhw:cpu_priority='high'--propertyhw:cpu_policy='dedicated'high_prio
使用新 flavor 創建虛擬機
openstack server create --flavor high_prio --image openEuler2203 --network private-network high_prio_test openstack server create --flavor low_prio --image openEuler2203 --network private-network low_prio_test
檢查
使用virsh list查看虛機 id,然后使用virsh vcpuinfo命令分別查看兩個虛機,可以發現high_prio_test的 CPU 與 0-7 號 CPU 一一綁定,low_prio_test的 CPU 在 0-11 號 CPU 中范圍綁定。
總結
本特性的實現已發布在 openEuler 22.09 創新版的 OpenStack Yoga 版本中,也會在即將發布的 openEuler 22.03 LTS SP1 的 OpenStack Train 中集成。歡迎大家體驗,在 OpenStack SIG 中反饋問題、交流經驗。
審核編輯:湯梓紅
-
cpu
+關注
關注
68文章
11019瀏覽量
215536 -
虛擬機
+關注
關注
1文章
960瀏覽量
28944 -
OpenStack
+關注
關注
1文章
72瀏覽量
19237 -
nova
+關注
關注
0文章
33瀏覽量
9588 -
openEuler
+關注
關注
2文章
325瀏覽量
6215
原文標題:openEuler資源利用率提升之道06:虛擬機混部OpenStack調度
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
一種提升存儲資源利用率的方法

是否可以看到每個VM的vGPU利用率
openEuler資源利用率提升之道02:典型應用下的效果
openEuler 資源利用率提升之道 04:CPU 搶占和 SMT 隔離控制
愛奇藝:基于龍蜥與 Koordinator 在離線混部的實踐解析
關于Swarm和Mesos資源利用率優化實踐分析

詳解OpenStack虛擬機的資源調度錯誤排查

基于負載預測的虛擬機動態調度算法研究與實現

評論