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