首页 > 代码库 > 网络虚拟化初探

网络虚拟化初探

数据包从虚拟机到物理机的过程

技术分享

KVM的网络优化方案,总的思路就是让虚拟机访问物理网卡的层数更少,直至对物理网卡单独占领,和物理机一样使用物理网卡单独占领,和物理机一样使用物理网卡,以达到和物理机一样的网络性能。

附带一些其他知识

全虚拟化:即客户机操作系统完全不需要修改就能运行于虚拟机中,客户机看不到真正的硬件设备,与设备的交互全是由纯软件虚拟的

半虚拟化:通过对客户机操作系统进行修改,使其意识到自己运行在虚拟中。因此,全虚拟化与半虚拟化的根本区别在于客户机是否需要修改才能运行在宿主机中。

半虚拟化网卡与全虚拟化网卡的区别是全虚拟化网卡是虚拟化层完全模拟出来的网卡,半虚拟化网卡通过驱动对操作系统做了改造。在实际应用中,使用较多的是半虚拟化网卡技术,即virtio技术,如下图所示:

技术分享

系统对Virtio的支持

Linux内核从2.6.24开始支持Virtio,因此主流的Centos6.5都支持了,可以通过输入grep -i Virtio /boot/config-2.6.32-431.el6.x86_64,如下:

[root@doggy-test ~]# grep -i Virtio /boot/config-2.6.32-431.el6.x86_64 
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=m
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_RING=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m

看到输出包含Virtio关键字,就是支持Virtio

 

网络虚拟化初探