KVM网络模型之:PCI Passthrough

目录

PCI Passthrough技术介绍和KVM中配置

案例

内核启用

重新启动虚拟机实例


PCI Passthrough技术介绍和KVM中配置

PCI Passthrough技术是虚拟化网卡的终极解决方案,能够让虚拟机独占物理网卡,达到最优性能,可以在网卡性能要求非常高的场景会用。但是要想迁移虚拟机,就很困难。

                                                    

# lspci |grep Ethernet |grep Intel
03:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

## 查看网卡的上一级pci信息,需要将哪个interface 给虚机直接使用,就查哪个接口

# virsh nodedev-list --tree|grep enp3s0f2 -B3
  |   |    
  |   +- pci_0000_03_00_2
  |   |   |
  |   |   +- net_enp3s0f2_0c_c4_7a_80_52_0a

## 根据上一步查到的PCI信息,获取XML配置

# virsh nodedev-dumpxml pci_0000_03_00_2
……
  <capability type='pci'>
    <domain>0</domain>
    <bus>3</bus>
    <slot>0</slot>
<function>2</function>
……

## 编辑deployment xml,加入PCI设备信息,使用virsh define 定义虚拟机

<hostdev mode=’subsystem’ type=’pci’ managed=’yes’>
  <source>
    <address domain=’0x0000’ bus=’0x03’ slot=’0x00’ function=’0x2’ />
  </source>
</hostdev>

案例

virsh define deployment.ldap05
virsh start LDAP05

error: unsupported configuration: host doesn't support passthrough of host PCI devices

为虚拟机实例配置网络透传,结果报错,提示不支持,那么如何解决呢?使用PCI Pass-through,需要硬件的支持:

1、主机需要支持Intel VT-d 或者 AMD IOMMU技术

egrep --color '(vmx|svm )' /proc/cpuinfo

2、在 Linux 内核需要启用 PCI Pass-through

cat /proc/cmdline |grep intel_iommu

内核启用

cp /etc/default/grub{,.bak}

把 intel_iommu=on iommu=pt 添加到 grub 配置文件的 GRUB_CMDLINE_LINUX 一行的最后。
vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on iommu=pt"

刷新 grub.cfg 文件并重启宿主机生效:
mv /boot/grub2/grub.cfg{,.bak}
grub2-mkconfig -o /boot/grub2/grub.cfg

reboot

重新启动虚拟机实例

virsh start LDAP05
Domain LDAP05 started

可以看到host的网卡被透传给了虚拟机LDAP05,并且对host机器该接口将不可见,通过ip add show查看将看不到这个网卡:上面部分是host主机透传的interface,下面ens5则是虚拟机实例中展示的透传过去的宿主机enp3s0f2。

                                

在虚拟机实例上,执行下面的命令验证:查看网卡类型

# lspci | grep -i ethernet
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:05.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: KVM虚拟化技术是目前比较流行并开源的虚拟化技术之一。它不仅简单易用,而且与Linux内核紧密集成,性能也非常出色。 KVM的实战应用非常广泛,包括虚拟化服务器、云平台、桌面虚拟化等。通过KVM,我们可以在一台物理机上虚拟出多台虚拟机,并通过网络进行管理和访问。这样,我们就可以更好地利用物理资源,提高服务器的利用率,从而降低成本。 在KVM的原理解析中,我们需要了解KVM是如何实现虚拟化的。首先,KVM利用了Linux内核对硬件的抽象和管理能力,通过向内核注册自己的虚拟设备,实现对硬件的虚拟化。其次,KVM使用了硬件辅助虚拟化技术,例如Intel的VT-x和AMD的AMD-V。这些技术可以使虚拟机在机器语言级别上直接访问物理硬件,并且在虚拟化过程中几乎不会产生性能损失。 最后,KVM还支持各种虚拟化技术的组合,例如普通虚拟机、全虚拟化、半虚拟化、硬件辅助虚拟化、PCI设备直通等。这种灵活的虚拟化技术组合方式可以为不同的应用场景提供更好的支持,保证了虚拟机的性能、稳定性和安全性。 综上,KVM虚拟化技术是一种可靠、灵活、高效的虚拟化技术,可以帮助企业更好地利用物理资源,提高服务器的利用率,降低成本。同时,通过KVM的学习,我们能够更好地理解虚拟化技术的原理,为我们今后的学习和工作都将带来更好的支持。 ### 回答2: KVM虚拟化技术是一种基于Linux内核的全虚拟化技术,它可以将一台物理机虚拟出多台互相隔离的虚拟机,每个虚拟机可以独立运行不同的操作系统。KVM虚拟化技术的优点是稳定、可靠、高效,最为重要的是开源免费。 《KVM虚拟化技术:实战与原理解析》这本书为读者讲解了KVM的原理、安装、配置、使用、优化和常见问题解决等内容,既有理论知识又有实践经验。通过对本书的学习,读者可以深入了解KVM虚拟化技术的工作原理及其优势,准确掌握KVM虚拟机的安装和配置方法,提高虚拟机的利用效率,时刻做好系统的优化和维护工作。 该书有助于IT从业人员的技能提升,增强他们应对虚拟化技术挑战的能力。学习本书不仅可以有效提高工作效率,更能加深对虚拟化技术的理解,为今后从事相关工作奠定坚实基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值