部署到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,一经查实,立即删除!

相关文章

单例设计模式-懒汉式(线程不安全)

懒汉式(线程不安全) 优缺点说明 起到了Lazy Loading的效果,但是只能在单线程下使用 如果在多线程下, 一个线程进入if(singleton null)判断 语句块,还未来得及往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例. 所以在多线程的环境下,不可使用种方式 结论:在…

南海发展大数据产业 建设新型智慧城市

今天(9月5日)上午,佛山市南海区将迎来一大盛事——“南海大数据及工业互联网创新应用工作推进会”(以下简称“推进会”)召开,南海将与阿里巴巴、腾讯以及三大通信运营商等互联网、大数据巨头签订21个大数据建设亮点项目。同时,为吸引更多大数据产业集聚,南海将在推进会上同步发…

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

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

查询自己OpenGL的版本信息

GLvoid PrintVersion() {const GLubyte* name glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字const GLubyte* biaoshifu glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台const GLubyte* OpenGLVersion glGetStr…

airpod蓝牙耳机音量大解决办法_关于AirPods的常见问题汇总 全面了解苹果AirPods无线耳机...

小编带来关于AirPods必知的24个问题,全面了解苹果AirPods无线耳机。苹果决定在iPhone7中抛弃3.5毫米耳机接口,这引发了许多争议和不解。苹果这样做的原因部分在于,希望人们转而使用无线耳机。因此苹果也推出了自主的无线耳机AirPods。对于无线…

单例设计模式-懒汉式(线程安全)

懒汉式(线程安全) 有缺点说明 解决了线程不安全问题 效率太低了,每个线程在想获得类的实例时候,执行getInstance()方法都要进行同步.而其实这个方法只执行了一次实例化代码就够了,后面的想获取该类实例,直接return就行了.方法进行同步效率太低 结论: 在实际开发中,不推荐使用…

剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?

本文讲的是剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?,【编者的话】本文来自Mesosphere,从生产环境的需求出发,简要介绍了Docker Swarm的诞生背景,以及其与Mesos、 Mesos…

濮阳第二届创客机器人比赛_咸阳市举行第二届机器人大赛暨第一届创客大赛

11月14日,由陕西省教育信息化管理中心指导,市教育局主办,咸阳师范学院、市少工委协办的咸阳市第二届机器人大赛暨第一届创客大赛在咸阳师范学院举办。各个学校的同学展示自己的发明创造。咸阳日报全媒体记者 马沅聪 摄据悉,来自各…

MP3文件格式解析

1, MP3简介 MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分…

懒汉式(线程安全,同步代码块儿)

懒汉式(线程安全,同步代码块儿) 代码演示 // 懒汉式 (线程安全_ 同步放法_) class Singleton{private static Singleton instance;private Singleton() {}// 提供一个静态的公有方法 加入了同步处理的代码// 解决线程安全问题// 即懒汉式// 我们在这里加一个关键字 synchroni…

同余定理证明

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

非常抱歉,

非常抱歉,好长一段时间没写了,但是我在博客园偶尔还会写写这个行业必须不断地学才不会被淘汰,幸好我是主动接受知识,我喜欢这个。。。。。。。。。。转载于:https://blog.51cto.com/52770825/1962949

乘基取整法是什么_深入理解计算机系统(六):进制间的转换原理

目录1、进制的介绍2、二进制转换成其他进制3、十进制转换成其他进制4、十六进制转换成其他进制5、总结上一篇博客我们讲解了信息的在计算机中是如何存储以及如何表示的。但是对于各个进制的转换只是一笔带过了,后来作者仔细研究了进制转换的原理,发现还是…

单例设计模式-双重检查

双重检查 双重检查应用实例 代码演示: class Singleton{private static volatile Singleton singleton;private Singleton(){}// 提供一个静态公有方法public static Singleton getInstance() {if (instance null) {synchronized (Singleton.class) {if (instance null) {…

symbian系统开发教程(一)

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

小谈c#数据库存取图片的方式

第一种方式 文件夹与数据库配合 /// <summary>/// 上传图片/// </summary>/// <param name"FUSShopURL">FileUpload对象</param>/// <param name"UpladURL">图片要放到的目录名称</param>/// <returns>如果Fi…

c#课程设计简单题目_《C#项目案例》课程设计题目

1《C#项目案例》课程设计题目一、课程设计的基本目标1、通过本次课程设计&#xff0c;熟练掌握开发语言C#和开发环境——.NET。开发语言的熟练需要通过编写一定长度的代码(1000&#xff5e;2000行代码)才能达到&#xff0c;开发环境的熟练需要反复的程序调试训练。2、加深对软件…

笔记吧

map的第一个为关键值&#xff0c;只可读&#xff0c;不可写。第二个为对应值&#xff1b;vector的消除有很大的困扰&#xff0c;感觉存在很大的局限性&#xff1b;问题——不能够复杂话&#xff0c;一个问题先从较浅的方面想起&#xff0c;其实在现有基础和请况下&#xff0c;不…

单例设计模式-静态内部类

静态内部类 静态内部类应用实例 代码演示 package com.atguigu.principle.singleton.type07;/** * author victor * site https://victorfengming.github.io/ * company XDL * project java_mode * package com.atguigu.principle.singleton.type07 * created 2021-02-02 20…

Symbian系统开发教程(二)

第二章&#xff1a;数据类型与语法 作者&#xff1a;谢兴 enigma19971hotmail.com 转载需注明出处 下载word版本 Symbian系统已经提供了一套已经定义好的内置的数据类型。为了保证你的代码是编译器无关的&#xff0c;应当使用下面symbian系统提供的数…