KVM虚拟机通常提供了比较好的网络性能,但是每个管理员都知道这不足以解决所有问题。可以通过两种方式来优化网络性能:VirtIO驱动器或者PCI直通磁盘。方法的选择取决于你所需要的网络性能,以及使用的Red Hat Enterprise Linux版本。 使用VirtIO驱动器优化网络性能 网络性能始于虚拟网卡,但是VirtIO驱动器对网络性能影响巨大。
VirtIO驱动器在不同的层面包括网络层提供了半虚拟化。如果你安装了一个Linux虚拟机,那么默认就使用了VirtIO驱动器。如果虚拟机使用的是其他操作系统,那么需要手动安装VirtIO驱动器。 为验证虚拟机是否在使用VirtIO驱动器,可以在虚……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
KVM虚拟机通常提供了比较好的网络性能,但是每个管理员都知道这不足以解决所有问题。可以通过两种方式来优化网络性能:VirtIO驱动器或者PCI直通磁盘。方法的选择取决于你所需要的网络性能,以及使用的Red Hat Enterprise Linux版本。
使用VirtIO驱动器优化网络性能
网络性能始于虚拟网卡,但是VirtIO驱动器对网络性能影响巨大。VirtIO驱动器在不同的层面包括网络层提供了半虚拟化。如果你安装了一个Linux虚拟机,那么默认就使用了VirtIO驱动器。如果虚拟机使用的是其他操作系统,那么需要手动安装VirtIO驱动器。
为验证虚拟机是否在使用VirtIO驱动器,可以在虚拟机内运行lspci -v命令。然后在输出结果中查找以太网控制器。结果应该如列表1所示,显示正在使用的virtio -pci内核模块以及内核驱动器。
列表1:
Good KVM network performance starts by using the VirtIO driver
00:03.0
Ethernet controller: Red Hat, Inc VirtIO network device
Subsystem: Red Hat, Inc Device 0001
Physical Slot: 3
Flags: fast devsel, IRQ 10
I/O ports at c040 [size=32]
Memory at f2020000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at f2030000 [disabled] [size=64K]
Capabilities: [40] MSI-X: Enable+ Count=3 Masked-
Kernel driver in use: virtio-pci
Kernel modules: virtio_pci
在KVM之前的版本中,即使使用了VirtIO驱动器,网络流量也是通过QEMU处理的,QEMU是位于主机和虚拟机之间的模拟层。而KVM最近的版本使用vhost -net取代了QEMU。Red Hat从6.1版本开始提供该功能,保证了网络包在客户机和主机之间使用Linux内核而非QEMU进行路由。在RHEL 6.1及之后的版本中,该功能已经自动被启用了。如果使用的是较旧的主机平台,一定要升级软件包否则网络性能将会受到影响。
使用专用网卡
如果已经使用了VirtIO网络驱动器,但是仍旧遇到了性能问题,那么可以考虑使用PCI 直通。PCI直通将专门的物理网卡分配给虚拟机。只有该虚拟机能够直接访问这一物理网卡。
为配置PCI直通,首先需要断开主机的网络设备。找到网络设备的ID,然后使用lspci –nn并查找网卡定义:
02:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6205 [8086:0082] (rev 34)
现在需要关闭客户操作系统并编辑客户机XML定义,可以使用virsh进行编辑。在<device>部分将会看到客户机XML代码,确保已经定义了PCI设备。列表2中的示例显示了相关定义。最重要的一行就是用于匹配PCI ID(使用lspci –vv命令看到的)的有关域、总线、插槽及功能定义:
列表2:
Adding a PCI pass-through device to a KVM virtual machine
<devices>
…
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</source>
</hostdev>
</devices>
现在可以重启虚拟机并验证PCI直通设备的支持情况。
从来不要认为你需要承受糟糕的KVM网络性能。VirtIO驱动器以及PCI直通磁盘是实现更好性能的两种方式。
相关推荐
-
如何配置Ceph对象存储作为KVM虚拟机外部存储
对象存储最初来自于云环境,因为相比于其他环境,云环境对于存储可扩展性需求通常更高。而Ceph对象存储现在是配置KVM虚拟机外部存储最为流行的一种方式。
-
如何解决Hyper-V网络性能问题
尽管虚拟化技术能够为企业带来诸多好处,但是其主要缺点之一就是在现有环境中引入了新的虚拟机,这些虚拟机将会消耗大量物理服务器上的宝贵硬件资源。
-
NFS共享创建kvm虚拟机,总是出现权限错误
我是NFS共享创建kvm虚拟机,总是出现权限错误 Process exited while reading c […]
-
提升Hyper-V网络性能的三个技巧
网络带宽以及设备配置对确保客户端/服务器高效运行同样很重要。让我们了解一些能够提升Hyper-V网络性能的技巧。