自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[319074]]

 

要虛擬化還是非虛擬化?

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

scheduling

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

我們?cè)诙ㄖ频穆銠C(jī)博客文章中詳細(xì)介紹了 裸機(jī)調(diào)度(請(qǐng)參閱概述:Nova中的調(diào)度)。

自引入Placement服務(wù)以來,裸機(jī)的scheduling已發(fā)生了顯著變化。對(duì)于每個(gè)Ironic節(jié)點(diǎn),將標(biāo)準(zhǔn)vCPU,內(nèi)存和磁盤資源替換為自定義資源類的單個(gè)單元。這有兩個(gè)關(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'

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

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

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

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

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

有何問題?

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

  1. $ openstack resource provider inventory list <node UUID> 
  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)分配給一個(gè)flavor請(qǐng)求(或未顯式清空)標(biāo)準(zhǔn)資源類的實(shí)例,我們將有如下用法:

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

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

  1. [workarounds] 
  2. report_ironic_standard_resource_class_inventory = False 

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

Flavor遷移

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

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

  1. nova-manage db ironic_flavor_migration --resource_class <node resource class> --host <host> --node <node UUID> 

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

  1. nova-manage db ironic_flavor_migration --resource_class <node resource class> --all 

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

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

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

  1. $ openstack resource provider inventory list <node UUID> 
  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 <node UUID> 
  9. +----------------+--------+ 
  10. | resource_class | usage | 
  11. +----------------+--------+ 
  12. | CUSTOM_GOLD   |      1 | 
  13. +----------------+--------+ 

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

 

責(zé)任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2011-12-12 09:08:48

OpenStack虛擬機(jī)監(jiān)控

2010-05-14 11:38:24

虛擬機(jī)備份

2015-07-08 14:33:23

虛擬機(jī)OpenStack

2023-11-27 00:46:39

裸機(jī)虛擬機(jī)

2012-05-18 10:22:23

2018-07-10 15:10:50

OpenStack虛擬機(jī)metadata

2018-08-17 07:49:01

2010-07-26 09:02:38

2013-07-17 09:32:58

2015-04-28 13:35:22

SDNOpenFlowOpenStack

2014-02-19 09:25:21

網(wǎng)絡(luò)沖突改虛擬機(jī)MAC

2017-09-14 10:11:24

OpenStack虛擬機(jī)過程分析

2016-09-01 12:37:13

OpenStack虛擬機(jī)Metadata

2023-04-26 07:51:36

虛擬機(jī)操作系統(tǒng)進(jìn)程

2010-09-30 09:32:01

虛擬機(jī)

2015-05-15 10:36:13

2010-09-25 15:13:40

JVMJava虛擬機(jī)

2010-05-20 11:17:41

虛擬機(jī)備份恢復(fù)

2009-09-07 21:51:59

2010-03-15 14:24:59

StackHeapJVM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)