云计算基础架构及关键应用
上QQ阅读APP看书,第一时间看更新

1.9.1 网络设备虚拟化

1.网卡虚拟化

网卡虚拟化(NIC Virtualization)包括软件网卡虚拟化和硬件网卡虚拟化。

1)软件网卡虚拟化主要通过软件控制各个虚拟机共享同一块物理网卡实现。软件虚拟出来的网卡可以有单独的MAC 地址、IP 地址。所有虚拟机的虚拟网卡通过虚拟交换机以及物理网卡连接至物理交换机。虚拟交换机负责将虚拟机上的数据报文从物理网口转发出去。根据需要,虚拟交换机还可以支持安全控制等功能。

2)硬件网卡虚拟化主要用到的技术是单根I/O 虚拟化(Single Root I/O Virtualization, SR-IOV)。所有针对虚拟化服务器的技术都通过软件模拟虚拟化网卡的一个端口,以满足虚拟机的I/O 需求,因此在虚拟化环境中,软件性能很容易成为I/O 性能的瓶颈。SR-IOV是一项不需要软件模拟就可以共享I/O 设备、I/O 端口的物理功能的技术。SR-IOV 创造了一系列I/O 设备物理端口的虚拟功能(Virtual Function, VF),每个VF都被直接分配到一个虚拟机上。SR-IOV 将PCI 功能分配到多个虚拟接口以便在虚拟化环境中共享一个PCI设备的资源。SR-IOV 能够让网络传输绕过软件模拟层,直接分配到虚拟机,这样就降低了软件模拟层中的I/O开销。

2.硬件设备虚拟化

硬件设备虚拟化主要有两个方向:在传统的基于x86架构机器上安装特定操作系统,实现路由器的功能,以及传统网络设备硬件虚拟化。

通常,网络设备的操作系统软件会根据不同的硬件进行定制化开发,以便设备能以最高的速度工作,比如思科公司的IOS 操作系统,在不同的硬件平台上需使用不同的软件版本。近年来,为了提供低成本的网络解决方案,一些公司提出了网络操作系统和硬件分离的思路。

典型的网络操作系统是Mikrotik 公司开发的RouterOS。这类网络操作系统通常基于Linux 内核开发,可以安装在标准的x86架构的机器上,使得计算机可以虚拟成路由器使用,并适当地扩展一些防火墙、VPN 的功能。此类设备因其低廉的价格以及不受硬件平台约束等特性,占据了不少低端路由器市场。

传统网络设备硬件(路由器和交换机)的路由功能是根据路由表转发数据报文。在很多时候,一张路由表已经不能满足需求,因此一些路由器可以利用虚拟路由转发(Virtual Routing and Forwarding, VRF)技术,将转发信息库(Forwarding Information Base, FIB)虚拟化成多个路由转发表。

此外,为增加大型设备的端口利用率,减少设备投入,还可以将一台物理设备虚拟化成多台虚拟设备,每台虚拟设备仅维护自身的路由转发表。比如思科的N7K 系列交换机可以虚拟化成多台VDC。所有VDC共享物理机箱的计算资源,但各自独立工作,互不影响。此外,为了便于维护、管理和控制,将多台物理设备虚拟化成一台虚拟设备的技术也有一定的市场,比如H3C公司的IRF技术。