谷歌的工程师们近期在其软件定义网络(SDN)平台Andromeda上实现了一种新的降低网络延迟的方式,谷歌周四发布了最新版本的Andromeda 2.1,并表示与Andromeda 2.0相比,谷歌计算引擎虚拟机之间的网络延迟降低了40%.
谷歌副总裁Amin Vahdat表示,大多数人在考虑网络性能时都会考虑带宽:“谷歌的基础设施在带宽测量方面表现上佳,但大多数分布式应用程序比带宽更注重延迟,谷歌通过不断增加新硬件来增加带宽,但是网络延迟的问题根植于软件层,谷歌通过SDN的途径专注于网络延迟。”
谷歌公司通过开发软件来加速用户操作系统和Andromeda SDN堆栈之间的数据包处理速度,Amin Vahdat表示:“虚拟化服务器的通信方式是构成网络通信的数据包必须从用户操作系统复制到虚拟机管理程序中,虚拟机管理程序在其上运行,以确保安全。通过谷歌开发的软件,使得访客操作系统直接访问Andromeda堆栈,Andromeda堆栈运行速度非常快,CPU效率非常高,同时还能确保安全性。”
Andromeda 2.1延迟的改进来自于虚拟机管理程序旁路,其基于virtio,即网络和磁盘设备驱动程序的Linux半虚拟化标准。Google Cloud软件工程师Jake Adriaens今天在一篇博客中写道:“Andromeda 2.1增强功能使计算引擎客机虚拟机和Andromeda软件交换机能够通过共享内存网络队列进行通信,从而完全绕过虚拟机管理程序,实现对性能敏感的数据包操作。”
下图显示了通过Andromeda 2.1的新数据路径:
Amin Vahdat表示新版本的关键优势是在保证安全性的前提下降低支出,Google使用来自virtio的开源代码作为其延迟改进软件。
谷歌的SDN策略由四个部分组成,Jupiter是其数据中心网络,B4 WAN是连接谷歌数据中心的技术,spresso则是将Google网络与其他ISP连接起来的对等基础设施,Andromeda是谷歌的SDN平台。