Amzaon EC2虚拟化技术演进:从 Xen 到 Nitro
- C5实例:性价比显著提升(与 C4 实例相比,C5 实例提供了更高的内存与 vCPU 比率,并且性价比提高了 25%,某些应用程序提高了 50% 以上),更大的实例大小(C5 实例新的更大的实例 c5.18xlarge提供了 72 个 vCPU 和 144 GiB 内存并提供了 25 Gbps 的网络带宽)。
- C5d实例:基于本地 NVMe 的 SSD 磁盘将被物理连接到主机服务器,提供与C5实例的生命周期相耦合的块级存储。c5d.18xlarge 规格的实例支持2块900GB的NVMe SSD作为本地存储。
- C5n实例:这是C5 系列的最新成员,其c5n.18xlarge规格可提供高达 100Gbps 的网络吞吐量。
- R5实例:其最大实例规格支持96 vCPU、768 GiB内存和25 Gbps 网络带宽。
- R5d实例:R5d 实例与 R5 实例规格相同,它还包括高达 3.6 TB 的本地 NVMe 存储。
这些实例类型之所以如此实力超群,我认为主要归功于两点:
- 处理器升级
C5 实例配备 Intel Xeon Platinum 8000 系列 (Skylake-SP) 处理器,它发布于2017/Q3,具有高达 3.4GHz 的稳定全核 Turbo CPU 时钟速度,并使用 Intel Turbo Boost Technology 来允许单个核心睿频高达3.5GHz。C5 实例为新的 Intel 高级矢量扩展 512 (AVX-512) 指令集提供了支持,与上一代 C4 实例相比,矢量和浮点计算性能提高最高可达2倍。
而发布于2015年的C4 实例类型,配备Intel Xeon E5-2666 v3 (Haswell) 处理器。其时钟频率为2.9 GHz,配合Intel® Turbo Boost后最高可达3.5 GHz。
- 采用了AWS Nitro 虚拟化平台
AWS Nitro 将是这篇文章的主角。本文会从它的发展历程、架构、所创造的价值等方面进行分析和介绍,试图总结出AWS上虚拟化基础平台发展的脉络。
AWS EC2虚拟化发展历程
- #1是全模拟技术。这种虚拟化方式能支持未修改的客户机操作系统,但速度会严重下降。典型产品是VMware 在1986年发布的虚拟化产品。AWS 并没有采用这种虚拟化技术,放在表格中只是为了做对比用。
- #2 是基于Xen的半虚拟化技术(Paravirtualization,PV)。PV 要求修改客户机内核和驱动。EC2第一个采用半虚拟化的实例类型是 m1.small。
- #3 到 #6 是基于Xen和CPU硬件的全虚拟化技术(Hardware-assisted virtualization,HVM)。采用Xen HVM 技术的虚拟机运行在具有CPU和内存(VT-x)硬件虚拟化能力的处理器上,并使用半虚拟化驱动程序用于网络和存储设备。HVM 3.0 中尚未实现中断和定时器半虚拟化,但在4.0中已有改善。
- #7 和 #8 则是AWS Nitro技术,这是AWS 研发的一种新虚拟化平台。后面会有详细介绍。
过去几年中,Xen是AWS上虚拟化技术的主体,业已成为业界标准之一,已经非常成熟。那么,为什么AWS要从Xen 向 Nitro 发展呢?这得从Xen 的架构说起。

从上图可以看出,Xen 实现了虚拟机的CPU 和内存虚拟化,但是虚拟机的I/O 访问,包括网络和存储等,都是通过虚拟机中的前端模块和 dom0 中的后端模块通信,然后由dom0 中的后端模块通过设备驱动实现的。这I/O路径太长,这降低了I/O性能,而且dom0还会和业务虚拟机抢占宿主机资源,很难实现管理虚机和业务虚机之间的平衡,以及避免抖动。
2013年,AWS 采用 Xen PV虚拟化技术的cr1.8xlarge 实例的架构如下图所示:

- 图中的硬件(Hardware),是运行虚拟机的物理服务器,采用了当时很强大的标准的10Gbps网卡,以及管理一些本地磁盘的存储HBA卡。Hardware上既运行用户的业务虚拟机,还运行Xen的dom0虚拟机。
- VMM采用Xen项目的PV模式。
- 图中 Amzon Linux 代表Xen dom0,它负责访问硬件,向虚拟机提供I/O 能力。
Nitro起源和发展
- 能做出比纯软件架构更好的hypervisor吗?
- 设备模型本身很复杂,而且它会和业务虚拟机竞争CPU和系统资源,同时技术上它很难避免抖动发生
- hypervisor太重了,能将hypervisor 和它周边的组件解耦吗?
c3.8xlarge的架构与cr1.8xlarge相比,在宿主机上增加了一块新网卡,这块网卡和原有的标准网络通过一个回环线(loopback cable)连接起来。虚机VPC网络功能不再通过Xen 的dom0 实现,而是直接访问宿主机上的这块硬件网卡。C3 是AWS EC2 历史上增长最快的几个实例类型之一,它尤其以控制性能抖动和持续的网络性能著称。这可以看做Nitro思想的发源,那就是将软件功能卸载到专有硬件上。
这个改进的结果是,宿主机上的CPU被Xen占用得少了,能更多地被虚机使用了。
现在的ENA,能用于虚拟机和物理机,它以开源项目形式发布在github上。ENA 是AWS网络虚拟化一关键技术,它使得虚拟机能够绕过内核和用户空间网络处理程序,直接操作网卡硬件,这显著提升了网络效率。
在i3.metal 中,Nitro 发挥了基础性作用。它的安全芯片通过提供硬件保护和固件验证功能为I3实例提供安全保障;它的各种卡,使得I3实例具备基于非易失性存储器标准 (NVMe) SSD 的实例存储,通过ENA支持高达 25Gbps 的聚合网络带宽。
Nitro 架构
Nitro 卡
这些Nitro 卡是硬件,插入到宿主机的PCIe卡槽中,采用SR-IOV 直通(passthrough)技术将这些卡呈现给实例。包括:
- VPC Data Plane(用于VPC访问的Nitro卡):本质上是一块通过PCIe附加到宿主机上的一块定制网卡,支持网络封包和解包、安全组、限速器和路由等功能。实例通过ENA驱动和它通信。同时,该卡还带有一些网络加速功能。以限速器为例,每个Nitro支持的实例,不管它在哪个区域哪个数据中心哪个宿主机上,都会有一致的性能,这对分布式应用非常重要。
- EBS Data Plane(用于EBS卷访问的Nitro卡):本质上是一块通过PCIe附加到宿主机上的一块定制卡。通过该卡,远端存储被以NVMe设备形式展现给实例,实例通过标准NVMe驱动程序访问该卡。它首次被用在C4中。支持卷加密、存储加速;支持I3裸机实例。
- Instance Storage Data Plane(用于实例存储访问的Nitro卡):通过该卡,本地磁盘被以NVMe设备形式展现给实例,实例通过标准NVMe驱动程序访问这些磁盘。支持加密、限速器和本地磁盘监控。
Nitro 安全芯片
Nitro hypervisor
Nitro 带来的丰富价值
更高网络访问性能
(Series 1:cc2.8xlarge,2:c3.8xlarge,3:c4.8xlarge,4:c5.18xlarge,5:c5.18xlarge(采用ENAv2))

更高EBS和本地存储访问性能
更大实例大小和CPU内存比率
更低虚拟化花销
更低Hypervisor抖动
更多实例类型
更低价格、更高性价比
为更多性能优化提供了可能
小结
- AWS re:Invent 2018: Powering Next-Gen EC2 Instances: Deep Dive into the Nitro System (CMP303-R1)
- AWS re:Invent 2017: C5 Instances and the Evolution of Amazon EC2 Virtualization (CMP332)
- AWS re:Invent 2018: Deep Dive on Amazon EC2 Instances & Performance Optimization Best Practices (CMP307)
- AWS re:Invent 2018:Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1)
感谢您的阅读,欢迎关注我的微信公众号:

Amzaon EC2虚拟化技术演进:从 Xen 到 Nitro的更多相关文章
- 虚拟化技术对比:Xen vs KVM
恒天云:http://www.hengtianyun.com/download-show-id-68.html 一.说明 本文主要从功能方面和性能方面对Xen和KVM对比分析,分析出其优缺点指导我们恒 ...
- 虚拟化技术对照:Xen vs KVM
恒天云:http://www.hengtianyun.com/download-show-id-68.html 一.说明 本文主要从功能方面和性能方面对Xen和KVM对照分析,分析出其优缺点指导我们恒 ...
- 泛虚拟化技术(以Xen为例)
一.概述 最主要的特点是:修改Guest OS的内核代码.通过修改内核,使Guest OS明白自己是运行在R-1,不要直接去运行特权指令,如果要运行就去Hypercall(主动VMM陷入). ...
- 主流服务器虚拟化技术简单使用——Xen(一)
Tips:因为博客园网页布局的原因,部分图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstat ...
- 主流服务器虚拟化技术简单使用——Xen(二)
管理多台Xen主机可以使用GUI工具virt-manager和xm.xl等命令行工具. Tips:hypervisor一定要选到Xen web管理工具 Xen也有一个简易web管理工具叫xenwebm ...
- 虚拟化技术:Xen与KVM的对比
作为开源的虚拟化技术,对比Xen和KVM可以看到,Xen以6个无与伦比的优势领先:更好的可用资源.平台支持.可管理性.实施.动态迁移和性能基准. 可用资源:Xen的问世要比KVM早4年之久(两者分别是 ...
- 基于KVM、Xen、OpenVZ等虚拟化技术的WEB在线管理工具
1.Proxmox proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是 ...
- VPS的虚拟化技术—-XEN,KVM,OPENVZ
市场上的VPS商家主要有 Xen ,KVM 和 OpenVZ 三种开源的虚拟化技术 Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达 100个满特征的操作系统.操作系 ...
- 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较
1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...
随机推荐
- 第十四届华中科技大学程序设计竞赛 K Walking in the Forest【二分答案/最小化最大值】
链接:https://www.nowcoder.com/acm/contest/106/K 来源:牛客网 题目描述 It's universally acknowledged that there'r ...
- 网络爬虫框架Webmagic
1 谈谈网络爬虫 1.1 什么是网络爬虫 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我 ...
- 网络防嗅探工具SniffJoke
网络防嗅探工具SniffJoke 在渗透测试中,通过网络嗅探,可以获取网络通信主机的各种信息.为了防止嗅探,Kali Linux提供了专用工具SniffJoke.该工具能够自动对用户的网络数据进行 ...
- 【BZOJ4458】GTY的OJ
题面 Description 身为IOI金牌的gtyzs有自己的一个OJ,名曰GOJ.GOJ上的题目可谓是高质量而又经典,他在他的OJ里面定义了一个树形的分类目录,且两个相同级别的目录是不会重叠的.比 ...
- 【bzoj4950】【 [Wf2017]Mission Improbable】贪心+二分图匹配
(上不了p站我要死了,侵权度娘背锅) Description 那是春日里一个天气晴朗的好日子,你准备去见见你的老朋友Patrick,也是你之前的犯罪同伙.Patrick在编程竞赛 上豪赌输掉了一大笔钱 ...
- [LOJ6278]数列分块入门 2
题目大意: 给你一个长度为$n(n\leq 50000)$的序列$A$,支持进行以下两种操作: 1.将区间$[l,r]$中所有数加上$c$: 2.询问区间$[l,r]$中小于$c^2$的数的个数.思路 ...
- 面向对象-QuickHit项目
package com.ketang.game; /** * 游戏级别类 * @author * */ public class Level { private int levelNo; //各级别编 ...
- (转)Unity3d使用心得(1):ModelImporter的使用、在代码中添加动画片段。
在使用 Unity3d 倒入Fbx模型的时候,动画的动画片段需要自己手动添加模型多了以后会是一个不小的工作量. Unity3d支持 编辑器脚本来控制资源导入的过程.添加一个 AssetPostproc ...
- NOI2016 高中OI生涯的最后一站
你乘坐的航班XXX已经抵达终点站——四川绵阳. “呼——”机舱外的天空灰沉沉的,不禁有些压抑与紧张. 一出机场,就看见南山中学的牌子,黄色衣服的志愿者们,还有热情的老师们. 感觉刚才的情绪又一扫而空了 ...
- rs485
rs485 编辑 智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断.究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口.最 ...