揭开Nitro系统神秘面纱,迁移到AWS全新实例正当时?

 发布时间:2020-06-24 11:26:24  浏览量:1011

       2013年,AWS开始在内部启动了一项革命性的研发项目Nitro,该项目通过软硬件的创新,能够给使用AWS云服务的全球用户带来更丰富的计算选项和性价比。今天,Amazon EC2的最新计算实例C5、R5和M5等五系列实例已经基于最新的Nitro系统构建,而且AWS已经完成Nitro系统向后兼容前几代实例,实现了Nitro在整个EC2产品组合中的普及。

Nitro系统包括定制化硬件Nitro卡、Nitro虚拟机管理程序(Hypervisor)、Nitro芯片,它已经成为AWS新一代云服务实例的技术底座。多年以来,业界对Nitro系统充满了好奇,但AWS一直对其讳莫如深,随着C5、M5、R5和T3等新实例落地中国,AWS也首次在中国市场揭开了Nitro的神秘面纱。

Nitro的前世今生

      对于用户而言,选择适合自己的公有云服务的因素有很多,但最核心的还是围绕如按需付费来进行成本优化,可按需索取弹性可扩展的资源,使用丰富的云功能等来考量,Nitro正是从客户这些敏感需求而来的技术产物。从纯技术视角,其实用户不需要对云服务提供商背后所进行的技术架构变革过于关注;但在应用视角,用户却有必要进行考虑,这就是为什么我们要一窥Nitro的原因。

      据AWS提供的数字,相比C4基于Nitro的C5实例在性价比方面提升了25%,在中国更是高达49%。也就是说,在相同用量和成本的情况下,C5实例提供给用户预测性更强的性能表现。基于Nitro实例的性能表现已经接近于裸机系统,根据第三方的报告显示,二者的差别小于1%。

而这离不开AWS不断通过技术革新来降低虚拟化开销的努力。在AWS将Nitro引入到EC2实例之前,Amazon EC2实例的虚拟化走过了漫长的过程。

Amazon EC2虚拟化的演进历程

       Nitro项目的驱动力,源自虚拟机管理程序从2012年开始暴露出的一系列瓶颈与缺陷,特别是虚拟机管理程序对于网络以及存储设备的处理方式。这促使AWS寻求新的方法以改进纯软件虚拟和Xen半虚拟化(简称PV)架构,克服其以设备类型不同而存在的巨大差异,进而探索分解虚拟机管理程序以提升性能与灵活性的可行方法。

通过上图,我们不难发现,Nitro的诞生循序渐进,从软件虚拟化、Xen半虚拟化块存储到硬件虚拟化,Xen都一直伴随着Amazon EC2实例用量的快速增长,AWS不断加入硬件虚拟化的的技术来降低开销。到了2017年,不管是网络I/O,本地存储I/O,远程存储I/O等都已平滑切换到了Nitro。

        一直以来Xen都是Amazon EC2中的核心组件,Xen虚拟机管理程序要求用户在每台服务器上设置一个管理分区。该分区连同其托管的VMM(Xen、KVM等)与DM(设备模型),共同申请执行任务所必需的系统资源。这些管理要求势必会从虚拟机的手中夺取一部分系统资源。要想在管理分区与虚拟机之间实现资源使用量均衡,会让用户投入大量时间与精力通过实验取得平衡。

        另一大挑战在于,DM属于软件解决方案,其处理的问题在传统服务器中由硬件负责解决。所以相比之下,软件DM的速度慢,而且会降低虚拟机的整体性能水平。

       基于此,AWS的Nitro开始尝试改进EC2的虚拟化策略,首先将目光投向DM,并尝试降低其处理任务时所带来的延迟。于是,EC2团队与硬件团队合作开发了一系列适用于特定场景的接口卡(即Nitro卡),从而利用硬件解决方案取代原本的多种DM。从上图我们会发现,从Xen AWS 2013开始,AWS已经逐渐开始引入Nitro卡,EC2实例类型C3开始支持网络接口的硬件虚拟化,AWS称之为增强型网络,从最初通过使用ixgbe驱动程序,实现10 Gbps的网络连接,到引入ENA驱动程序,实现25 Gbps的网络连接。现在Nitro系统已经可用于处理来自Nitro Hypervisor的存储、网络、管理、监控以及安全等硬件的调用请求。



上一篇: 视频监控系统的四个组成部分解答 下一篇: 人人懂分销-住宅小区智能视频监控解决方案V1.1