部署到gcp_GCP 网络系统Andromeda --- 概述篇

437c60897d3349160afe4e5713bb51fc.png

这个系列总共有三篇,分别在:

肖宏辉:GCP 网络系统Andromeda --- 概述篇

肖宏辉:GCP 网络系统Andromeda --- 控制面

肖宏辉:GCP 网络系统Andromeda --- 数据面

最近看了Google在2018年的一篇NSDI文章,介绍他们的数据中心SDN方案Andromeda,原文在[1]。最近计划用三篇,分别从概述,控制面和数据面,再结合一些自己的理解,介绍一下这个系统。这是第一篇:概述。

GCP(Google Cloud Platform)眼中虚拟网络

云计算的兴起给网络技术带来了新的机遇和挑战。对于Cloud中的常规三大服务,计算,存储,网络。对应网络部分,需要在具备高性能大规模能力的同时,也支持一系列的功能,例如LB,FW,VPN,QoS,Dos protection,隔离,NAT等等。更具体的来看,云环境中的虚拟网络,应该具备以下能力:

  • 作为最基本的需求,需要为独立的用户提供隔离的虚拟网络。每个虚拟网络中的虚拟机运行在独立的私有IP网络中。对于这个虚拟网络,其中的虚拟机之间应该能相互通信;虚拟机与云环境中的公共服务(DNS,软件源等)能通信;虚拟机与外部第三方服务商能通信;虚拟机与互联网能通信。所有这些通信要受用户策略的控制,同时不同的用户可以使用不同的策略,达到不同的控制效果。另外,理想情况下,虚拟网络应该提供与underlay物理网相同的吞吐量和时延。
  • 除了最基本的连通性,还需要支持持续的功能演进。随着时间的推移,一些新的功能会不停的添加进来,例如计费,DoS防护,性能监控,防火墙等,甚至架构也可能面临重大的调整,例如Andromeda就经历过从早期的OS kernel datapath迁移到了现在的OS kernel bypass的datapath。持续的功能演进不是难点,难点是演进的过程中,要使得虚拟机不受到影响。
  • 云计算的一个好处就是相比普通的部署具备了更高的可用性,因为一整套的软件可控系统,可以很方便的provision,scale,migrate服务。所以虚拟网络的可用性,稳定性及其重要,在设计上也要小心考虑,尽量缩小系统的出错域(错误的影响范围)
  • 为了满足上面两点,虚拟机的Live-Migration(热迁移)成为了必要条件。为了支持Live-Migration,虚拟网络需要确保迁移过程中packet仍然能传输,并且尽量较少网络性能下降的时间(迁移过程中网络性能下降在所难免,但是持续时间应尽量减少)
  • GCP(Google Cloud Platform)成长的很快,表现在两个维度:GCP内虚拟网络的个数;每个虚拟网络中的虚机的个数,因此,网络控制面的性能变得非常重要。超大的云平台中,虚拟网络控制面主要有三个挑战:首先转发表更大(单个虚拟网络中虚机更多);转发表需要被发布的范围更广(虚拟网分布在更多的主机上);变化的频率更高

虚拟网络和SDN的研究和内容已经很多,比如高速的dataplane,分布式控制平面,各种虚拟网络功能,但是似乎并没有对于一整套端到端可用系统的研究。Andromeda,作为GCP的网络虚拟化系统,就是这么一个端到端的系统。

Andromeda架构

GCP有一套完整的管理系统,可以配置存储,计算,网络,权限等,而Andromeda是作为GCP管理系统中的网络部分存在。另一方面,GCP由多个cluster组成,一个cluster就是一批位置相近的物理服务器,它们具有相同的物理网络连通性,同时也有相同的物理网络错误域。Andromeda在每个cluster中都有一套独立的程序,这个在后面介绍。

本质上来说,Andromeda是一个SDN系统。所以,与其他的SDN系统一样,它包含了控制面和数据面。Andromeda的核心设计思想也很简单通俗:就是分层,包括了分层的控制平面和分层的数据平面。

控制面

Andromeda的控制面可以支持超过10W VM的虚拟网络,变更生效时间的中位数在184ms。并且操作一个用户虚拟网络,不会对其他虚拟网络造成影响。有关控制面的实现细节在下一篇详细介绍。

数据面

Andromeda的数据面由多层的datapath组成,根据所需要的功能和性能,网络流量被分配到其中一条路径。

  • Host Fast Path:顾名思义,这个datapath运行在虚拟机所在的主机上。这是所有虚机packet看到的第一个datapath。它以牺牲灵活性为前提,提供了高性能的转发,目前可以实现300ns/packet的转发速度。为了达到这个数字,Host Fast Path被设计的只能简单的处理有限种类的packets。其他的packets被送到其他的datapath来处理。
  • Host Coprocessor path:这个datapath也运行在虚机所在的主机上。Host Fast Path处理不了的packet被送到了Coprocessor path。这个datapath用来处理对CPU消耗较高,且对时延无要求的网络流量。同时也被用来实现网络功能,例如Stateful 防火墙,LB等。所有功能性的东西被放到Coprocessor path,这样可以让Fast path专心做高性能转发。
  • Hoverboard datapath。Hoverboard是专门的gateway节点,这个datapath就是运行在这些节点上。理论上Coprocessor + Fast path应该处理所有的网络流量,但是为了提升控制面的性能和规模,不是所有的转发信息都会下发到主机。大部分的idle和long-tail流量,被送到Hoverboard节点,被Hoverboard datapath转发。

此外,Andromeda采用的是高性能、基于软件的底层方案,而不是类似于SR-IOV这种基于硬件的方案。使用硬件方案,可以很容易的得到与underlay物理网络一样的性能。但是相比之下,软件方案更加灵活,能支持更快速的功能迭代,能更容易的支持Live-Migration,因为SR-IOV需要考虑迁移前后不同的物理网卡的配置问题。除此之外,SR-IOV因为依赖硬件网络,会受到硬件表项的限制。对于一些网络功能,可能会引入额外的专用设备,进而增加网络转发的overhead。

最后,一个Cluster中,Andromeda所有的组件如下图所示,其中有一些已经提到过,有一些还没有提到,我们会在接下来的两篇具体的分析每一个组件。

5b4f9da589ace4c452a26bd36001d2e7.png

[1] https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dalton.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AMR音频编码器概述及文件格式分析

全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。 一、分类 1. AMR: 又称为AMR-NB&am…

同余定理证明

转载于:https://www.cnblogs.com/cmyg/p/7206474.html

symbian系统开发教程(一)

第一章:Symbian OS简介作者:谢兴 enigma19971hotmail.com---转载需注明出处 下载word文档1.1. Symbian系统简介当前有很多手机运行Symbian OS,数量甚至超出您的想象。到目前为止已经有超过7500 万、100 多种型号的手机运行Sym…

学习的动力

要有自学的意识,这是一个知识不断更新、不断涌现的时代,大学里的很多知识是过时的,就算入校时是热门行业的但很可能四年后毕业找工作时已经变成了夕阳产业,学习是一种能力,但首先是一种态度,一个人想在快速…

H264基本概念之 宏块、片和片组

这几个概念对比音频信号处理可是全新的,下面简要介绍一下定义和作用: 1、宏块(Macro Block):一个编码图像首先要划分成多个块(4x4 像素)才能进行处理,显然宏块应该是整数个块组成&…

CodeVS 1044 拦截导弹(DP)

题目大意&#xff1a; http://codevs.cn/problem/1044/ 第一问题就是求序列的最长递减数列的长度&#xff0c;第二问就是求数列的最长递增序列的长度。 代码&#xff1a; #include <iostream>using namespace std;int arr[30] {0}; int dp[30] {0}; int mp[30] {0};in…

链表(Linked List)之单链表

原文地址:传送门 链表(Linked List)介绍 链表是有序的列表&#xff0c;但是它在内存中是存储如下 小结: 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域&#xff0c; next 域&#xff1a;指向下一个节点. 如图&#xff1a;发现链表的各个节点不一定是连续存储…

链表(Linked List)之双向链表

双向链表应用实例 使用带head头的双向链表实现 –水浒英雄排行榜 管理单向链表的缺点分析: 单向链表&#xff0c;查找的方向只能是一个方向&#xff0c;而双向链表可以向前或者向后查找。 单向链表不能自我删除&#xff0c;需要靠辅助节点 &#xff0c;而双向链表&#xff…

H264 解码耗时分析

在数字基带处理器上代码的最佳放置 美国模拟器件公司 Jose Fridman   在手机等嵌入式系统中&#xff0c;除了处理器执行时间外&#xff0c;最重要的资源就是设备总线和存储器接口。本文将介绍一种在使用指令高速缓存时其带宽消耗的基础上&#xff0c;统计分析高速缓存所采用…

链表(Linked List)之环形链表

原文地址:传送门 单向环形链表应用场景 Josephu(约瑟夫、约瑟夫环) 问题 Josephu 问题为&#xff1a;设编号为1&#xff0c;2&#xff0c;… n的n个人围坐一圈&#xff0c;约定编号为k&#xff08;1<k<n&#xff09;的人从1开始报数&#xff0c;数到m 的那个人出列&…

免费SSL证书(支持1.0、1.1、1.2)

由于公司要开发微信小程序&#xff0c;而微信小程序的接口需要https协议的&#xff0c;并且要支持TLS1.0、TLS1.1、TLS1.2。如果仅仅是为了开发小程序&#xff0c;安全等级又不用太高&#xff0c;可以选择免费的SSL证书 在这里选择腾讯云的证书&#xff0c;申请在 https://cons…

使用栈来完成一个表达式的结果

原文地址:传送门 使用栈来完成一个表达式的结果 使用栈完成计算 一个表达式的结果 7*2*2-51-53-4 &#xff1f; 32*6-2[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzPnJzRe-1614845779689)(https://victorfengming.gitee.io/data_algorithm/i…

Python 关于bytes类方法对数字转换的误区, Json的重要性

本文起源于一次犯错, 在发觉bytes()里面可以填数字, 转出来的也是bytes类型, 就心急把里面的东西decode出来. 结果为空.搞来搞去以为是命令不熟练事实上错在逻辑.a1 bytes(11, encodingutf-8) print(a1)b1 a1.decode()print(b1)a2 bytes(11) print(a2)b2 a2.decode() print…

psnr 计算

PSNR是“Peak Signal to Noise Ratio”的缩写&#xff0c;峰值信噪比。psnr一般是用于最大值信号和背景噪音之间的一个工程项目。 PSNR计算公式如下&#xff1a; 8bits表示法中&#xff0c;peak的最大值为255&#xff1b;MSE指Mean Square Error&#xff08;均方误差&#xff0…

光源时间_缩短背光源的使用寿命的原因

许多场所都会使用到led这种产品&#xff0c;这种产品经常用于背光的照亮中。但是由于使用led的局限性较大&#xff0c;所以led逐渐被背光源这种产品所代替&#xff0c;常常用于背景的照亮让宣传图可以展现出更好的视觉&#xff0c;这也是许多人选择背光源的原因。那么&#xff…

递归应用场景和调用机制

原文链接:传送门 递归 迷宫问题(回溯) 概念 简单呐的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时让代码变得简洁. 案例-递归调用机制 打印问题 public static void test(int n){if(n>2){test(n-1);}System.out.print…

八皇后问题分析与Java实现

原文链接:传送门 八皇后问题 八皇后问题&#xff0c;是一个古老而著名的问题&#xff0c;是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于1848年提出&#xff1a;在88格的国际象棋上摆放八个皇后&#xff0c;使其不能互相攻击&#xff0c;即&#xff1a;任意两个…

单例模式之恶汉模式(详解)

一.设计模式 概念&#xff1a;设计模式是一套被反复使用、多人知晓的、经过分类编目的、代码设计经验的总结。 目的&#xff1a;是用设计模式可以重用代码&#xff0c;让代码更容易被他人理解&#xff0c;保证代码的可靠性。 二.为什么要使用单例模式&#xff1f; 如果创造出多…

迷宫回溯问题分析和实现

原文链接:传送门 迷宫问题 说明: 小球得到的路径&#xff0c;和程序员设置的找路策略有关即&#xff1a;找路的上下左右的顺序相关再得到小球路径时&#xff0c;可以先使用(下右上左)&#xff0c;再改成(上右下左)&#xff0c;看看路径是不是有变化测试回溯现象思考: 如何求出…

canvas clear 指定属性的元素_好程序员web前端分享CSS属性组成及作用

好程序员web前端分享CSS属性组成及作用学习目标1、css属性和属性值的定义2、css文本属性3、css列表属性4、css背景属性5、css边框属性6、css浮动属性一、css属性和属性值的定义属性&#xff1a;属性是指定选择符所具有的属性&#xff0c;它是css的核心&#xff0c;css2共有150多…