日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF)

發布時間:2023/12/10 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CentOS命令行版下創建KVM虛擬機(VM)并添加SR-IOV的虛擬網卡(VF)

  • 前言
  • 一、KVM
    • 1、KVM及相關技術(qemu、libvirt)
    • 2、創建KVM虛擬機
  • 二、SR-IOV
    • 1、SR-IOV的概念
    • 2、使用SR-IOV創建VF
  • 三、將VF分配給創建好的VM
  • 總結
  • 參考鏈接

最近看到一篇文章,內容是關于SR-IOV中VF的創建與將VF添加到VM中。比本文詳細很多,供大家參考
https://www.cnblogs.com/sctb/p/13848201.html


前言

我目前的需求是在服務器中創建幾個虛擬機,并使其進行RDMA通信。由于使用的是centos服務器,而且還是命令行版的,比較麻煩。所以打算使用KVM來創建虛擬機。進行RDMA通信需要網卡的支持,因為服務器上的物理網卡是Mellanox 的 connectX6,所以打算使用SR-IOV來在connectX6創建幾個VF供虛擬機使用。若各位有更好的方法,還望不吝賜教!


一、KVM

1、KVM及相關技術(qemu、libvirt)

KVM 全稱是基于內核的虛擬機(Kernel-based Virtual Machine)是一個開源軟件,基于內核的虛擬化技術,實際是嵌入系統的一個虛擬化模塊,通過優化內核來使用虛擬技術,該內核模塊使得 Linux 變成了一個Hypervisor,虛擬機使用 Linux 自身的調度器進行管理。

kvm負責cpu虛擬化和內存虛擬化,實現了cpu和內存的虛擬化,但kvm不能模擬其他設備

qemu是模擬IO設備(網卡,磁盤),kvm加上qemu之后就能實現真正意義上服務器虛擬化。

libvirt則是調用kvm虛擬化技術的接口進行管理

具體參考這里

2、創建KVM虛擬機

virsh是基于libvirt的一個命令行工具。可用于配置、管理虛擬機。具體使用方法請virsh --help或這里

virt-install用于創建新的KVM虛擬機。格式如下(正確的指令)

virt-install --name rhel7anaconda-guest -r 1024 --location=/home/jherrman/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --disk size=8 --nographics --extra-args="console=tty0 console=ttyS0,115200n8"

將上面的路徑改為自己主機中iso鏡像的存儲位置即可。鏡像下載。這里的參數 --extra-args=“console=tty0 console=ttyS0,115200n8” 在命令行linux模式下非常重要。

我之前使用的安裝指令(有問題的指令),一直沒有成功

virt-install --name centos --ram 1024 --vcpus=1 --disk path=/var/vm/disk/centos7.raw --network network:default --os-variant=rhel7 -l http://tel.mirrors.163.com/centos/7/os/x86_64/ --extra-args='console=tty0 console=ttyS0,115200n8'

可能是使用了–disk path=/var/vm/disk/centos7.raw,導致一直連接不上虛擬機。若有相同情況的朋友,一定要使用第一條安裝指令!!

二、SR-IOV

1、SR-IOV的概念

SR-IOV(Single-Root I/O Virtualization)技術是一種基于物理硬件的虛擬化解決方案,可提高物理I/O設備的性能的可擴展性。SR-IOV技術允許在虛擬機之間高效共享PCIe設備,由于SR-IOV技術是基于硬件實現的,可以使虛擬機獲得與宿主機媲美的I/O性能。

我的理解是:SR-IOV可以將物理硬件資源虛擬化一部分出來,虛擬出來的這部分資源可以當做完整的硬件資源使用,但是功能肯定沒有物理硬件資源那么齊全。

SR-IOV定義了兩種功能類型:

  • 物理功能(PF):PF是全功能的PCIE,可以像其他任何PCIE設備一樣進行發現、管理、和處理。PF擁有完全配置和控制PCIE設備資源的能力。

  • 虛擬功能(VF):VF是一種輕量級的PCIE功能,VF可以與PF以及與同一PF相關聯的其他VF共享一個或多個物理資源。VF僅允許擁有用于其自身行為的配置資源。

  • 2、使用SR-IOV創建VF

    可以參照官網文檔

    創建方法:

  • 選擇將要進行SR-IOV操作的物理網卡。我這里的物理網卡名稱為p4p2

  • 確保SR-IOV功能在系統中是啟用的。可以參照官網文檔

  • 查看網卡所支持分配的VF數量。將設備改為自己機器上的網卡

    cat /sys/ class/net/p4p2/device/sriov_totalvfs
  • 開啟SR-IOV功能

    echo 2 > /sys/ class/net/p4p2/device/sriov_numvfs
  • 此時VF已經創建完成。可以使用IP工具給創建好的VF配置MAC地址

    ip link set p4p2 vf 0 mac e4:11:22:33:44:50 ip link set p4p2 vf 1 mac e4:11:22:33:44:51

    查看ip link show p4p2

  • 此時VF已經創建完成

    三、將VF分配給創建好的VM

    查看已創建的VF的pci號,我用的是pci_0000_42_01_2這個VF。

    在任意路徑下創建XML文件,我是用的路徑是 /etc/libvirt/qemu/networks/ ,因為這里是虛擬機網絡配置文件的地方。命名為yxj-interface.xml

    其內容

    <interface type='hostdev' managed='yes'><source><address type='pci' domain='0x0000' bus='0x42' slot='0x01' function='0x2'/></source></interface>

    保存后,加載該xml文件

    virsh net-define /tmp/passthrough.xml

    最后使用命令,將VF添加到VM上

    virsh attach-device MyGuest /etc/libvirt/qemu/networks/yxj-interface.xml --live --config

    這樣一個虛擬的SR-IOV網卡就被添加到KVM的虛擬機上了

    最后的網絡配置可根據個人需求進行處理。


    總結

    第一步通過virsh-install命令創建VM
    第二步生成SR-IOV的VF
    第三步將VF綁定到VM

    這里只介紹了最基本的處理方式,根據個人的不同需求可以適當的進行調整。比如我最后還需要將VF連接到OVS網橋上,這里還需要在將PF上默認的模式從Legacy改為SwitchDev。

    參考鏈接

    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_getting_started_guide

    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/virtualization_deployment_and_administration_guide

    總結

    以上是生活随笔為你收集整理的linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。