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

openEuler 資源利用率提升之道 01:概論
openEuler資源利用率提升之道02:典型應(yīng)用下的效果
openEuler 資源利用率提升之道 03:rubik 混部引擎簡介
openEuler 資源利用率提升之道 04:CPU 搶占和 SMT 隔離控制
愛奇藝:基于龍蜥與 Koordinator 在離線混部的實踐解析
關(guān)于Swarm和Mesos資源利用率優(yōu)化實踐分析

詳解OpenStack虛擬機的資源調(diào)度錯誤排查

基于負(fù)載預(yù)測的虛擬機動態(tài)調(diào)度算法研究與實現(xiàn)

云虛擬機按需物理資源分配方法

基于虛擬機負(fù)載高峰特征的虛擬機放置策略
基于自適應(yīng)虛擬機遷移的云資源調(diào)度及架構(gòu)
openEuler Summit 2021-云/虛擬化分論壇:業(yè)內(nèi)解決方案+虛擬機系統(tǒng)模擬

openEuler資源利用率提升之道:虛擬機混部介紹與功耗管理技術(shù)
TECS OpenStack資源池虛擬機網(wǎng)絡(luò)二層地址無法互通的問題處理

評論