日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
沖突與碰撞:OpenStack中的虛擬機(jī)和裸機(jī)

沖突與碰撞:OpenStack中的虛擬機(jī)和裸機(jī)

作者:祝祥 翻譯 2020-03-18 13:22:33

云計算

虛擬化

OpenStack 如果您追求性能,那么就沒有爭議——裸機(jī)仍然勝過虛擬機(jī);特別是對于I/O密集型應(yīng)用程序。但是,除非您可以保證充分利用它,否則是有代價的。

要虛擬化還是非虛擬化?

如果您追求性能,那么就沒有爭議——裸機(jī)仍然勝過虛擬機(jī);特別是對于I/O密集型應(yīng)用程序。但是,除非您可以保證充分利用它,否則是有代價的。在本文中,我們描述了如何使用Nova來以統(tǒng)一的方式提供對虛擬機(jī)管理程序和裸機(jī)計算節(jié)點(diǎn)的訪問。

scheduling

當(dāng)Nova首次引入通過Ironic支持裸機(jī)計算時,它不能輕松地與傳統(tǒng)的基于hypervisor的工作負(fù)載共存。當(dāng)時的解決方法通常涉及使用宿主aggregates和flavor特性。

我們在定制的裸機(jī)博客文章中詳細(xì)介紹了 裸機(jī)調(diào)度(請參閱概述:Nova中的調(diào)度)。

自引入Placement服務(wù)以來,裸機(jī)的scheduling已發(fā)生了顯著變化。對于每個Ironic節(jié)點(diǎn),將標(biāo)準(zhǔn)vCPU,內(nèi)存和磁盤資源替換為自定義資源類的單個單元。這有兩個關(guān)鍵的副作用:

  • 裸機(jī)節(jié)點(diǎn)已完全分配或根本未分配
  • 虛擬機(jī)和裸機(jī)使用的資源類是不相交的,因此我們最終無法將VM Flavor調(diào)度到裸機(jī)節(jié)點(diǎn)

“tiny” VM的flavor可能如下所示:

  
 
 
  1. openstack flavor show vm-tiny -f json -c name -c vcpus -c ram -c disk -c properties 
  2.  "name": "vm-tiny", 
  3.  "vcpus": 1, 
  4.  "ram": 1024, 
  5.  "disk": 1, 
  6.  "properties": "" 

“gold”節(jié)點(diǎn)的裸機(jī)flavor可能如下所示:

  
 
 
  1. openstack flavor show bare-metal-gold -f json -c name -c vcpus -c ram -c disk -c properties 
  2.  "name": "bare-metal-gold", 
  3.  "vcpus": 64, 
  4.  "ram": 131072, 
  5.  "disk": 371, 
  6.  "properties": "resources:CUSTOM_GOLD='1', 
  7.                 resources:DISK_GB='0', 
  8.                 resources:MEMORY_MB='0', 
  9.                 resources:VCPU='0'" 

請注意,vCPU/RAM/Disk資源僅供參考,并通過屬性歸零以進(jìn)行調(diào)度。我們稍后將進(jìn)一步討論這個問題。

那網(wǎng)絡(luò)呢?

在我們的混合環(huán)境中,我們可能希望vm和裸機(jī)實例能夠相互通信,或者希望它們彼此隔離。這兩種模型都是可能的,并且工作方式與典型的neutron網(wǎng)絡(luò)一樣——neutron網(wǎng)絡(luò)彼此隔離,直到通過neutron路由器連接。

裸機(jī)計算節(jié)點(diǎn)通常使用VLAN或扁平網(wǎng)絡(luò)。當(dāng)然,通過網(wǎng)絡(luò)硬件和Neutron插件的正確組合,其他模型也是可以的。對于VLan 網(wǎng)絡(luò),假設(shè)虛擬機(jī)管理程序與裸機(jī)計算節(jié)點(diǎn)連接到同一物理網(wǎng)絡(luò),然后將VM與裸機(jī)計算實例連接到同一VLAN,這將在它們之間提供L2連接。或者,應(yīng)該可以使用Neutron路由器將VLAN上的裸機(jī)實例與另一個網(wǎng)絡(luò)(例如VXLAN)上的VM相連,二這將在他們之間提供L3連接。

實際上這是什么樣的?我們需要同時支持VM和裸機(jī)網(wǎng)絡(luò)的Neutron plugins/drivers程序的組合。要將裸機(jī)服務(wù)器連接到租戶網(wǎng)絡(luò),Neutron必須配置物理網(wǎng)絡(luò)設(shè)備。我們通常使用networking-generic-switch ML2機(jī)制驅(qū)動程序,盡管networking-ansible驅(qū)動程序正在成為一種供應(yīng)商中立的替代方案。這些驅(qū)動程序支持裸機(jī)端口,即neutron端口與VNIC_TYPE的baremetal。特定于供應(yīng)商的驅(qū)動程序也可用,并且可能同時支持VM和裸機(jī)。

有何問題?

更成熟的云可能遇到的一個問題是從基于標(biāo)準(zhǔn)資源類(vCPU、RAM、disk)的調(diào)度過渡到基于自定義資源類的調(diào)度。如果存在在Rocky發(fā)行版或更早版本中創(chuàng)建的舊裸機(jī)實例,則除了自定義資源類之外,它們在Placement中還可能具有標(biāo)準(zhǔn)資源類清單。例如,以下是報告給Placement的此類節(jié)點(diǎn)的清單:

  
 
 
  1. $ openstack resource provider inventory list  
  2. +---------------+-----------------+----------+----------+-----------+----------+--------+ 
  3. | resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total | 
  4. +---------------+-----------------+----------+----------+-----------+----------+--------+ 
  5. | VCPU         |             1.0 |       64 |        0 |         1 |        1 |     64 | 
  6. | MEMORY_MB     |             1.0 |   131072 |        0 |         1 |        1 | 131072 | 
  7. | DISK_GB       |             1.0 |      371 |        0 |         1 |        1 |    371 | 
  8. | CUSTOM_GOLD   |             1.0 |        1 |        0 |         1 |        1 |      1 | 
  9. +---------------+-----------------+----------+----------+-----------+----------+--------+ 

如果將此節(jié)點(diǎn)分配給一個flavor請求(或未顯式清空)標(biāo)準(zhǔn)資源類的實例,我們將有如下用法:

  
 
 
  1. $ openstack resource provider usage show  
  2. +----------------+--------+ 
  3. | resource_class | usage | 
  4. +----------------+--------+ 
  5. | VCPU           |     64 | 
  6. | MEMORY_MB     | 131072 | 
  7. | DISK_GB       |    371 | 
  8. | CUSTOM_GOLD   |      1 | 
  9. +----------------+--------+ 

如果刪除此實例,則標(biāo)準(zhǔn)資源類清單將變?yōu)榭捎茫⑶铱捎蒝M的調(diào)度程序選擇。這不可能很好地結(jié)束。我們必須做的是確保不將這些資源報告給Placement。默認(rèn)情況下,這是在Stein版本的Nova中完成的,并且可以通過在nova.conf中設(shè)置以下內(nèi)容來配置Rocky以執(zhí)行相同的操作:

  
 
 
  1. [workarounds] 
  2. report_ironic_standard_resource_class_inventory = False 

但是,如果我們這樣做,Nova將嘗試從我們的實例已經(jīng)消耗的Placement資源提供程序中移除庫存,并將收到一個HTTP 409沖突。這將很快使我們的日志充滿無用的告警。

Flavor遷移

值得慶幸的是,有一個解決方案。我們可以修改現(xiàn)有實例中的使用的flavor以刪除標(biāo)準(zhǔn)資源類清單,這將導(dǎo)致從Placement中刪除這些資源的分配。這將使Nova可以從資源提供者處刪除庫存。Matt Riedemann啟動了一個Nova Patch,它將刪除我們的標(biāo)準(zhǔn)資源類清單。該補(bǔ)丁需要推到生產(chǎn)線上,但效果很好,足以被 Rocky版本 生產(chǎn)使用。

遷移可以離線或在線完成。我們選擇離線進(jìn)行此操作,以避免部署此修補(bǔ)程序。對于每個要遷移的節(jié)點(diǎn):

  
 
 
  1. nova-manage db ironic_flavor_migration --resource_class  --host  --node  

或者,如果所有節(jié)點(diǎn)都具有相同的資源類:

  
 
 
  1. nova-manage db ironic_flavor_migration --resource_class  --all 

您可以通過數(shù)據(jù)庫檢查實例包含的flavor是否已正確更新:

  
 
 
  1. sql> use nova 
  2. sql> select flavor from instance_extra; 

現(xiàn)在(僅適用于Rocky),可以禁用標(biāo)準(zhǔn)資源類清單報告。在nova計算服務(wù)運(yùn)行了一段時間之后,展示位置將被更新:

  
 
 
  1. $ openstack resource provider inventory list  
  2. +---------------+------------------+----------+----------+-----------+----------+-------+ 
  3. | resource_class| allocation_ratio | max_unit | reserved | step_size | min_unit | total | 
  4. +---------------+------------------+----------+----------+-----------+----------+-------+ 
  5. | CUSTOM_GOLD   |              1.0 |        1 |        0 |         1 |        1 |     1 | 
  6. +---------------+------------------+----------+----------+-----------+----------+-------+ 
  7.  
  8. $ openstack resource provider usage show  
  9. +----------------+--------+ 
  10. | resource_class | usage | 
  11. +----------------+--------+ 
  12. | CUSTOM_GOLD   |      1 | 
  13. +----------------+--------+ 

我們希望這表明OpenStack現(xiàn)在處于虛擬機(jī)和裸機(jī)可以和平共處狀態(tài),即使對于那些討厭的場景。感謝Nova團(tuán)隊努力使Ironic成為一流的項目。


分享名稱:沖突與碰撞:OpenStack中的虛擬機(jī)和裸機(jī)
地址分享:http://www.5511xx.com/article/djcohsp.html