- .
接触网络虚拟化纯属偶然。作为研究院微博五毛小分队的成员,撰出一条微博是每天
的任务。那天无意中抓取了一条新闻:Xsigo 公司推出了业界第一个数据中心网络全虚拟
化解决方案。巧的是 Xsigo 公司的方案是基于 Inniband 技术的,而我最近的工程使我对
Inniband 略懂,所以就重点关注了一下。这一关注不要紧,才发现里面水很深。不管是
传统 IT 豪强还是网络巨人都对这一领域虎视眈眈,谋篇定局,更有无数的创业者们在此展
开深耕。 抱着对技术要略懂的心态,我入水一探终究。这篇博文算是对我这次涉水的总结,
网络虚拟化开展到现在牵涉的技术非常多,每种技术都可以单独写一篇文章来介绍,限于
我的精力和知识水平只能给大家做个整体的简单介绍,缺乏之处还请各位批评指正。如果
读者对某种技术感兴趣可以搜索相关资料做更详细的了解。
什么是网络虚拟化
首先我们需要明确一个问题,什么是网络虚拟化,网络虚拟化简单来讲是指把逻辑网
络从底层的物理网络别离开来。这个概念产生的比拟久了,VLAN,VPN, VPLS 等 都可
以归为网络虚拟化的技术。近年来,云计算的浪潮席卷 IT 界。几乎所有的 IT 根底构架都
在朝着云的方向开展。在云计算的开展中,虚拟化技术一直是重要的推动因素。作为根底
构架,效劳器和存储的虚拟化已经开展的有声有色,而同作为根底构架的网络却还是一直
沿用老的套路。在这种环境下,网络确实期待一次变革,使之更加符合云计算和互联网开
展的需求。云计算的大环境下,网络虚拟化的定义没有变,但是其包含的容却大大增加了。
云计算环境下的网络虚拟化需要解决端到端的问题,笔者将其归纳为三个局部:
〔一〕第一局部是效劳器部。随着越来越多的效劳器被虚拟化,网络已经延伸到
Hypervisor 部,网络通信的端已经从以前的效劳器变成了运行在效劳器中的虚拟机,数
据包从虚拟机的虚拟网卡流出,通过 Hypervisor 部的虚拟交换机,在经过效劳器的物理
网卡流出到上联交换机。在整个过程中,虚拟交换机,网卡的 I/O 问题以及虚拟机的网络
接入都是研究的重点。
〔二〕第二局部是效劳器到网络的连接。10Gb 以太网 和 Inniband 等技术的开展
使一根连接线上承载的带宽越来越高。为了简化,通过一种连接技术聚合互联网络和存储
网络成为了一个趋势。
〔三〕第三局部是网络交换,需要将物理网络和逻辑网络有效的别离,满足云计算多
租户,按需效劳的特性,同时具有高度的扩展性。
下面我就围绕这三个方面来讲述网络虚拟化中的一些主要技术和标准。
效劳器部
I/O 虚拟化
多个虚拟机共享效劳器中的物理网卡,需要一种机制既能保证 I/O 的效率,又要保证
多个虚拟机对用物理网卡共享使用。I/O 虚拟化的出现就是为了解决这类问题。I/O 虚拟化
包括了从 CPU 到设备的一揽子解决方案。
从 CPU 的角度看,要解决虚拟机访问物理网卡等 I/O 设备的性能问题,能做的就是直
接支持虚拟机存到物理网卡的 DMA 操作。Intel 的 VT-d 技术及 AMD 的 IOMMU 技术通
过 DMARemapping 机制来解决这个问题。DMARemapping 机制主要解决了两个问题,
- .word.zl.