在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SR-IOV研究:一個簡單的測試環境

冬至子 ? 來源:布魯斯的讀書圈 ? 作者:BruceL ? 2023-06-14 11:34 ? 次閱讀

簡單地說,SR-IOV是一種讓一臺主機上的多臺虛擬機和主機系統本身合用同一張物理網卡的技術,每臺虛擬機都認為自己擁有一張獨立的網卡(即一個VF),而其實它們都被騙了~~

由于手上只有一臺Linux主機和一張Mellanox ConnectX-4 LX 10G網卡(雙物理網口),為了研究SR-IOV,我只能搭建了如下圖所示的極簡測試環境。這塊網卡支持RoCE(RDMA),但在這里只使用它的以太網功能。

圖片

對于宿主機的操作系統來說,這塊網卡的兩個物理網口可以看作兩個獨立的網卡/網絡接口。如果運行ifconfig,可以看到系統中存在enp6s0f0np0和enp6s0f1np1兩個網口。

之所以會這樣,是因為硬件向系統展現了兩個PCIe設備,準確地說是兩個功能號。

比如用下面這個命令,可以看到這兩個PCIe設備的"bus:slot.func",即"總線號:設備號:功能號"。

$ lspci -D | grep Mellanox

0000:06:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]

0000:06:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]

一旦網卡被插在PCIe插槽上,它的bus和slot就確定了,并且是唯一的。但硬件只要提供兩個獨立的func,就會被Linux檢測為兩個獨立的PCIe設備,從而對應兩個獨立的網口。

準備好上述硬件連接和操作系統(Ubuntu 20.04.6)后,我們需要做如下幾件事才能使用SR-IOV功能。此處主要的參考文獻為《HOWTO CONFIGURE SR-IOV FOR CONNECTX-4/CONNECTX-5/CONNECTX-6 WITH KVM (ETHERNET)》。本文并非操作手冊,所以一些網上可以很容易搜到的東西我就不詳細說明了。

  1. 在BIOS中打開SR-IOV功能,一般位于PCI配置中。
  2. 在Linux啟動命令行中添加“intel_iommu=on iommu=pt”(對于Intel CPU)。
  3. 在Ubuntu中安裝虛擬機(只安裝virt-manager就幾乎把所有組件都安裝了)。
  4. 在宿主機安裝Mellanox網卡驅動。

安裝文件為MLNX_OFED_LINUX-5.8-2.0.3.0-ubuntu20.04-x86_64.tgz,需要從NVIDIA網站下載

如果以后要看代碼還需要下載MLNX_OFED_SRC-debian-5.8-2.0.3.0.tgz 。

  1. 設置網卡的固件,使其支持SR-IOV。比如運行如下命令,將網卡最大支持的VF數量設置為8個。

*sudo mlxconfig -d /dev/mst/mt4117_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=8*

  1. 設置MLNX_OFED驅動(最終也會設置硬件),打開SR-IOV功能。

比如運行如下命令,使能4個VF。

echo 4 > /sys/class/net/enp6s0f1np1/device/sriov_numvfs

此時系統中會呈現4個VFs(每個都是一個PCIe設備),分別對應下面的后四行,即0000:06:00.2(后三個數就是"bus:slot.func")、0000:06:00.3、0000:06:00.4和0000:06:00.5。

$ lspci -D | grep Mellanox

0000:06:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]

0000:06:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]

0000:06:01.2 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx Virtual Function]

0000:06:01.3 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx Virtual Function]

0000:06:01.4 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx Virtual Function]

0000:06:01.5 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx Virtual Function]

  1. 把第一個VF添加到虛擬機中,虛擬機會把它認做一個獨立的PCIe設備。

這里給一個配置虛擬機的參考圖。

圖片

  1. 在虛擬機中安裝MLNX_OFED驅動。

此時我們會得到如下圖所示的測試環境。

圖片

如果我們在虛擬機里把enp6s0的IP設置為192.168.8.1。

然后在宿主機里把兩個原有的非VF的系統網口的IP設置為192.168.8.2(enp6s0f0np0)和192.168.8.3(enp6s0f1np1),并把VF3(在宿主機中)對應的網口enp6s0f1v3的IP設置為192.168.8.4。

在虛擬機中是可以ping通上述后三個IP的。

當然在這三種情況下數據走的物理通路是不同的。

按照我淺薄的認識,我認為從虛擬機中ping后面三個IP時,應該對應下圖中三條彩色虛線所示的數據通路。

圖片

對于不同的物理網口,數據肯定會通過光纖。

對于屬于相同物理網口的PF(對應原系統網口)和VFs,我認為網卡硬件中存在一個內部的交換機機制,使得所有PF和VFs之間都可以轉發數據包。之所以這樣想,是由于做了如下測試:

①在虛擬機中連續地ping 192.168.8.5,這是一個并不存在的地址。

②同時在宿主機上依次用“tcpdump -i enpXXXX”命令監視每個網口,包括未配置IP的VF。

可以發現每個網口都會持續收到ARP報文。如果數據沒有經過硬件而是在操作系統內部直接處理掉了,那這么做是完全沒必要的,因為系統知道每個網口的IP。并且ifconfig命令輸出中也會顯示每個網口的RX計數在持續增加,這種計數一般在驅動中實現,而且只有驅動真正從硬件收到包時才會增加計數。

在今后閱讀相關驅動代碼時我還會關注這一點。歡迎高手來拍磚。

本文只是搭建了一個簡單的測試環境,嘗試使用SR-IOV功能。接下來我會研究Linux系統和Mellanox驅動中做了哪些事情支持SR-IOV功能,以及猜測需要硬件做哪些工作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 以太網
    +關注

    關注

    40

    文章

    5425

    瀏覽量

    171732
  • Linux系統
    +關注

    關注

    4

    文章

    593

    瀏覽量

    27397
  • 虛擬機
    +關注

    關注

    1

    文章

    917

    瀏覽量

    28202
  • RDMA
    +關注

    關注

    0

    文章

    77

    瀏覽量

    8949
  • PCIe接口
    +關注

    關注

    0

    文章

    120

    瀏覽量

    9706
收藏 人收藏

    評論

    相關推薦

    GPU虛擬化在哪里發生?

    GPU虛擬化在哪里發生?它是否出現在GRID卡中,然后將vGPU呈現給管理程序然后呈現給客戶?或者,GPU的虛擬化和調度是否真的發生在管理程序上安裝的GRID管理器軟件?是否使用了SR-IOV?我
    發表于 09-28 16:45

    正在使用SR-IOV功能,請問能不能再VF端口中啟動MAC學習?

    我在我的PC中使用X710進行自定義應用程序。我正在使用SR-IOV功能。我已為每個VF分配了MAC地址。有沒有辦法在VF端口啟用MAC學習?我的應用程序將使用生成的mac地址與對等方進行通信
    發表于 10-31 19:22

    基于PCI Express SR-IOV的大量虛擬化功能

    當今數據中心用的PCI Express最強大的功能是I/O虛擬化。I/O虛擬化讓虛擬機直接訪問I/O硬件設備,提高了企業級服務器的性能。單根I/O虛擬化(SR-IOV)技術規范拉動了市場
    發表于 07-17 06:18

    如何將Virtex 7 PCI Express Gen3集成模塊遷移到Kintex 7

    親愛的大家,我目前正在開發Vivado 2013.4項目,我需要利用物理和虛擬功能以及SR-IOV。我作為例子
    發表于 07-16 10:12

    Intel圖形SR-IOV增強工具箱使用指南

    的標準方法。每個虛擬功能都被直接分配給虛擬機,從而實現虛擬機接近本機的性能。 英特爾圖形公司SR-IOV的主要好處是: 種標準方法,即與虛擬機器共享有形的GPU,從而允許在虛擬
    發表于 08-02 16:07

    PXIe萬兆網卡資料 雙路

    (DCB)支持128虛擬機(SR-IOV)支持邊帶管理協議,支持IPSEC分載,支持ISCSI加速,支持RSS/TX隊列,支持VMDQ、SR-IOV接口標準支持PCI-E x8,支持PCIE3.0
    發表于 08-22 11:53

    SR-IOV創建虛擬函數

    This video demonstrates how to create virtual functions using SR-IOV mode.
    的頭像 發表于 10-18 05:42 ?3008次閱讀

    SR-IOV在云計算數據中心的應用方法、價值和前景

    傳統虛擬化系統中大量的資源和時間損耗在Hypervisor(或者VMM)軟件層面,PCIe設備的性能優勢因此無法徹底發揮。而SR-IOV的價值在于消除這軟件瓶頸,助力多個虛擬機實現物理資源共享,同時使得虛擬機可以使用到NVMe SSD的高性能。
    的頭像 發表于 04-19 17:16 ?5243次閱讀
    <b class='flag-5'>SR-IOV</b>在云計算數據中心的應用方法、價值和前景

    如何使用STM32 MDK開發環境建立簡單工程

    本文檔的主要內容詳細介紹的是如何使用STM32 MDK開發環境建立簡單工程。
    發表于 10-18 17:11 ?7次下載
    如何使用STM32 MDK開發<b class='flag-5'>環境</b>建立<b class='flag-5'>一</b><b class='flag-5'>個</b>最<b class='flag-5'>簡單</b>工程

    Switchtec PAX網絡互聯Gen 4 PCIe交換機系列現已投產

    Microchip的Switchtec PAX PCIe系列交換機為需要多主機共享訪問單根I/O虛擬化(SR-IOV)、非易失性存儲器(NVMe)、固態硬盤(SSD)、圖形處理器(GPU)和其他PCIe終端的系統提供了交鑰匙
    的頭像 發表于 06-24 16:24 ?2659次閱讀

    什么是SR-IOV呢?SR-IOV技術的優缺點及應用場景

    SR-IOV全稱為Single Root I/O Virtualization(單根輸入/輸出虛擬化),是種硬件加速的虛擬化技術,它允許多個虛擬機同時訪問物理設備,從而提高虛擬機的性能和可靠性。
    的頭像 發表于 06-06 14:58 ?2.9w次閱讀

    慧榮科技于FMS 2023展出企業級和即將上市的消費級PCIe Gen5 SSD主控,以及全球首款支持SR-IOV的車用級SSD主控

    Memory Summit 2023)展示專為服務器和數據中心打造的企業級PCIe Gen5 SSD開發平臺和全球首款支持SR-IOV(Single Root-IO Virtualization
    發表于 08-09 17:36 ?524次閱讀
    慧榮科技于FMS 2023展出企業級和即將上市的消費級PCIe Gen5 SSD主控,以及全球首款支持<b class='flag-5'>SR-IOV</b>的車用級SSD主控

    憶聯多項存儲產品通過Intel VROC技術認證

    UH711a面向數據中心應用場景而開發,針對數據中心級業務場景及負載Workload IO模型,UH711a具有全面的性能優化能力,結合One Time Read、智能多流、SR-IOV等多種特性,可為數據中心提供更高性價比的存儲解決方案。
    發表于 01-09 09:40 ?540次閱讀
    憶聯多項存儲產品通過Intel VROC技術認證

    如何將HC-SR04連接到Arduino并編寫簡單的程序來測量距離

    種流行的Arduino超聲波傳感器是HC-SR04。它廣泛用于非接觸式距離測量,通常用于機器人和自動化項目。本指南將向您展示如何將HC-SR04連接到Arduino并編寫
    的頭像 發表于 02-11 10:17 ?2365次閱讀
    如何將HC-<b class='flag-5'>SR</b>04連接到Arduino并編寫<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>簡單</b>的程序來測量距離

    如何設計簡單且高度集成的電池測試系統

    電子發燒友網站提供《如何設計簡單且高度集成的電池測試系統.pdf》資料免費下載
    發表于 09-18 14:53 ?0次下載
    如何設計<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>簡單</b>且高度集成的電池<b class='flag-5'>測試</b>系統
    主站蜘蛛池模板: 日本免费不卡一区| 天天舔天天操| 日本美女视频网站| 亚洲欧美视频| 成人久久久精品乱码一区二区三区| 成人精品一级毛片| 欧美18同性gay视频| 午夜精品福利影院| 亚洲综合在线一区| 色婷婷一区二区三区四区成人网| 国产成人综合久久| 五月天狠狠| 亚洲一区二区欧美| 起碰成人免费公开网视频| 国产在线美女| 成人免费一区二区三区| 亚洲综合色视频| 国产欧美一区二区三区观看 | 天天搞夜夜| 国产精品久久1024| 午夜免费福利片观看| 成人99国产精品一级毛片| 欧美成人性色生活片天天看| 久久国产精品无码网站| 美女骚网站| 天天做天天爽| 日本在线不卡视频| 精品卡一卡二 卡四卡视频| 黄网观看| 婷婷综合五月| 久久久亚洲欧美综合| 国产美女亚洲精品久久久久久| 亚洲国产日韩精品怡红院| 成人99国产精品一级毛片| h视频在线观看免费网站| 男人的天堂在线视频| 国产在线视频www色| 深爱五月网| 视频在线观看高清免费大全| 伊人不卡久久大香线蕉综合影院| 搞逼综合网|