真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

openstacknova中如何實現(xiàn)PCI透傳功能

這篇文章給大家分享的是有關(guān)openstack nova中如何實現(xiàn)PCI透傳功能的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供臨川企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為臨川眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

1.   PCI透傳技術(shù)

1.1     PCI 透傳技術(shù)與Liunx 虛擬化關(guān)系

設(shè)備(或 PCI)透傳(passthrough)的 I/O 性能增強技術(shù),這種創(chuàng)新技術(shù)通過使用來自 Intel? (VT-d) 或 AMD (IOMMU) 的硬件支持改進 PCI 設(shè)備的性能。

平臺虛擬化是在兩個或多個操作系統(tǒng)之間共享一個平臺,以便更有效地利用資源。但平臺并不只是意味著一個以上的處理器,它還包含組成平臺的其他重要元素,比如存儲器、網(wǎng)絡(luò)和其他硬件資源。某些硬件資源可以輕松虛擬化,比如處理器和存儲器; 而另一些硬件資源則不然,比如視頻適配器和串口。當共享不可能或沒用時,Peripheral Component Interconnect (PCI) 透傳技術(shù)提供有效使用這些資源的方法。

在探索透傳技術(shù)之前,讓我們先討論一下如今設(shè)備模擬在兩個管理程序架構(gòu)中是如何工作的。第一個架構(gòu)將設(shè)備模擬整合到管理程序中,而第二個架構(gòu)將設(shè)備模擬推到管理程序之外的一個應(yīng)用程序中。

管理程序中的設(shè)備模擬 是在 VMware 工作站產(chǎn)品(一個基于操作系統(tǒng)的管理程序)中實現(xiàn)的一個公共方法。在這個模型中,管理程序包含各種客戶操作系統(tǒng)能夠共享的公共設(shè)備,如虛擬磁盤、虛擬網(wǎng)絡(luò)適配器和其他必需的平臺元素。這個特定模型如圖 1 所示。

openstack nova中如何實現(xiàn)PCI透傳功能

第二個架構(gòu)稱為用戶空間設(shè)備模擬(見圖 2)。顧名思義,這種設(shè)備模擬是在用戶空間中實現(xiàn)的,而不嵌入到管理程序中。QEMU(不僅提供設(shè)備模擬,還提供一個管理程序)提供設(shè)備模擬,用于大量獨 立管理程序,如 Kernel-based Virtual Machine (KVM) 和 VirtualBox 等。這個模型更具優(yōu)勢,因為設(shè)備模擬獨立于管理程序,因而可以在多個管理程序之間共享。另外,這個模型還支持任意設(shè)備模擬,無須管理程序(以特權(quán)狀態(tài)運 行)負擔這個功能。

openstack nova中如何實現(xiàn)PCI透傳功能

將設(shè)備模擬從管理程序推向用戶空間有一些明顯的優(yōu)勢,最大的優(yōu)勢涉及所謂的可信計算基礎(chǔ)(trusted computing base,TCB)。 一個系統(tǒng)的 TCB 是對該系統(tǒng)安全性很關(guān)鍵的所有安全組件的集合。有一點是顯而易見的:如果系統(tǒng)被最小化,出現(xiàn) bug 的可能性也就更小,因此系統(tǒng)也就越安全。這個原理也適用管理程序。管理程序的安全性很重要,因為它分隔多個獨立的客戶操作系統(tǒng)。管理程序中的代碼越少(將 設(shè)備模擬推到特權(quán)較低的用戶空間中),將特權(quán)泄露給不可信用戶的機率也就越少。

基于管理程序的設(shè)備模擬的另一個變體是準虛擬化(paravirtualized)驅(qū)動程序。在這個模型中,管理程序包含物理驅(qū)動程序,每個客戶操作系統(tǒng)包含一個管理程序可以感知的驅(qū)動程序,這個驅(qū)動程序與管理程序驅(qū)動程序(稱為準虛擬化 或 PV 驅(qū)動程序)配合工作。

無論設(shè)備模擬發(fā)生在管理程序內(nèi)還是在一個客戶虛擬機(VM)之上,模擬方法都是相似的。設(shè)備模擬能夠模擬一個特定設(shè)備(如 Novell NE1000 網(wǎng)絡(luò)適配器)或一個特定磁盤類型(如 Integrated Device Electronics [IDE])。物理硬盤可以完全不同 — 例如,盡管一個 IDE 驅(qū)動器被模擬為客戶操作系統(tǒng),物理硬件平臺可以使用一個串口 ATA (SATA) 驅(qū)動器。這種技術(shù)很有用,因為 IDE 支持在許多操作系統(tǒng)中都很普遍,可以用作一個通用標準,而不是要求所有操作系統(tǒng)都支持更高級的驅(qū)動器類型。

1.2     設(shè)備透傳技術(shù)概述

正如上面介紹的兩個設(shè)備模型所示,設(shè)備共享是有代價的。無論設(shè)別模擬是在管理程序還是在一個獨立 VM 中的用戶空間中執(zhí)行,都存在開銷。只要有多個客戶操作系統(tǒng)需要共享這些設(shè)備,這個開銷就是值得的。如果共享不是必須的,則有更有效的方法來共享這些設(shè)備。

因此,在最高層面上,設(shè)備透傳就是向一個特定客戶操作系統(tǒng)提供一種設(shè)備隔離,以便該設(shè)備能夠被那個客戶操作系統(tǒng)獨占使用(見圖 3)。但這種技術(shù)為什么有用?設(shè)備透傳之所以有價值,原因有很多,其中兩個最重要的原因是性能以及提供本質(zhì)上不能共享的設(shè)備的專用權(quán)。

openstack nova中如何實現(xiàn)PCI透傳功能

對于性能而言,使用設(shè)備透傳可以獲得近乎本機的性能。對于某些網(wǎng)絡(luò)應(yīng)用程序(或那些擁有高磁盤 I/O 的應(yīng)用程序)來說,這種技術(shù)簡直是完美的。這些網(wǎng)絡(luò)應(yīng)用程序沒有采用虛擬化,原因是穿過管理程序(達到管理程序中的驅(qū)動程序或從管理程序到用戶空間模擬) 會導(dǎo)致競爭和性能降低。但是,當這些設(shè)備不能被共享時,也可以將它們分配到特定的客戶機中。例如,如果一個系統(tǒng)包含多個視頻適配器,則那些適配器可以被傳 遞到特定的客戶域中。

最后,可能有一些只有一個客戶域使用的專用 PCE 設(shè)備,或者有一些不受管理程序支持因而應(yīng)該被傳遞到客戶機的設(shè)備。單獨的 USB 端口可以與一個給定域隔離,一個串口(自身不是可共享的)可以與一個特定客戶機隔離。

1.3    設(shè)備透傳的硬件支持

Intel 和 AMD 都在它們的新一代處理器架構(gòu)中提供對設(shè)備透傳的支持(以及輔助管理程序的新指令)。Intel 將這種支持稱為 Virtualization Technology for Directed I/O (VT-d),而 AMD 稱之為 I/O Memory Management Unit (IOMMU)。不管是哪種情況,新的 CPU 都提供將 PCI 物理地址映射到客戶虛擬系統(tǒng)的方法。當這種映射發(fā)生時,硬件將負責訪問(和保護),客戶操作系統(tǒng)在使用該設(shè)備時,就仿佛它不是一個虛擬系統(tǒng)一樣。除了將客 戶機映射到物理內(nèi)存外,新的架構(gòu)還提供隔離機制,以便預(yù)先阻止其他客戶機(或管理程序)訪問該內(nèi)存。Intel 和 AMD CPU 提供更多虛擬化功能,您可以在 參考資料 部分了解更多信息。

另一種幫助將中斷縮放為大量 VM 的技術(shù)革新稱為 Message Signaled Interrupts (MSI)。MSI 將中斷轉(zhuǎn)換為更容易虛擬化的消息(縮放為數(shù)千個獨立中斷),而不是依賴將被關(guān)聯(lián)到一個客戶機的物理中斷 pin。從 PCI 2.2 開始,MSI 就已經(jīng)可用,但 PCI Express (PCIe) 也提供 MSI,在 PCIe 中,MSI 支持將結(jié)構(gòu)縮放為多個設(shè)備。MSI 是理想的 I/O 虛擬化技術(shù),因為它支持多個中斷源的隔離(而不是必須通過軟件多路傳輸或路由的物理 pin)。

2.   PCI 透傳功能在Openstack nova 中實現(xiàn)( 譯自openstack administrator guide)

2.1     在 Openstack nova 中實現(xiàn) PCI透傳步驟

  1. Enable PCI passthrough (Compute) 在主機啟動PCI passthrough 功能

  2. Configure PCI devices in nova-compute (Compute) 在 nova-compute 中配置PCI設(shè)備。

  3. Configure nova-scheduler (Controller)配置 nova-scheduler

  4. Configure nova-api (Controller)** 配置 nova-api

  5. Configure a flavor (Controller)配置一個flavor

  6. The PCI device with address 0000:41:00.0 is as an example. Expect to change this according to your actual environment.

    2.2     Enable PCI passthrough (Compute)

    需要在服務(wù)器BIOS中啟動,Intel CPU 啟動VT-d,AMD CPU 啟動IOMMU。

    2. 3  Configure PCI devices nova-compute (Compute)

1.  Configure nova-compute to allow the PCI device to be passed through to VMs. Edit /etc/nova/nova.conf:

openstack nova中如何實現(xiàn)PCI透傳功能

Alternatively specify multiple PCI devices using whitelisting:

openstack nova中如何實現(xiàn)PCI透傳功能

·  All PCI devices matching the vendor_id and product_id are added to the pool of PCI devices available for passthrough to VMs.

For more information about the syntax of pci_passthrough_whitelist, refer to nova.conf configuration options.

2.  ? Restart nova-compute with service nova-compute restart.

2.4   Configure nova-scheduler (Controller)

  1. Configure nova-scheduler as specified in Configure nova-scheduler.

Restart nova-scheduler with service nova-scheduler restart.

2.5   Configure nova-api (Controller)

1.   Specify the PCI alias for the device.

Configure a PCI alias a1 to request a PCI device with a vendor_id of 0x8086 and a product_id of 0x154d. The vendor_id and product_id correspond the PCI device with address 0000:41:00.0.

Edit /etc/nova/nova.conf: openstack nova中如何實現(xiàn)PCI透傳功能 2.For more information about the syntax of pci_alias, refer to nova.conf configuration options.

  1. Restart nova-api with service nova-api restart.

2.6 Configure a flavor (Controller)

Configure a flavor to request two PCI devices, each with vendor_id as 0x8086 and product_id as 0x154d.

openstack nova中如何實現(xiàn)PCI透傳功能

For more information about the syntax for pci_passthrough:alias, refer to flavor.

2.7     Create instances with PCI passthrough devices

The nova-scheduler selects a destination host that has PCI devices available with the specified vendor_id and product_id that matches the pci_alias from the flavor.

openstack nova中如何實現(xiàn)PCI透傳功能

感謝各位的閱讀!關(guān)于“openstack nova中如何實現(xiàn)PCI透傳功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


新聞名稱:openstacknova中如何實現(xiàn)PCI透傳功能
文章轉(zhuǎn)載:http://weahome.cn/article/pgjsop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部