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 ...
随机推荐
- 链式前向星BFS
本文链接:http://i.cnblogs.com/EditPosts.aspx?postid=5399068 采用链式前向星的BFS: #include <iostream> #incl ...
- Linux Shell 参数传递多种方式
背景 最近编写ansible脚本,需要自动调用之前写好的shell脚本,由于shell脚本中包含了read命令接收用户的手动输入,为了实现ansible脚本的自动运行,不得不将手动输入转换为自动输入. ...
- 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- 猴子排序的期望
链接:https://www.nowcoder.com/acm/contest/116/F来源:牛客网 题目描述 我们知道有一种神奇的排序方法叫做猴子排序,就是把待排序的数字写在卡片上,然后让猴子把卡 ...
- objective-c 强弱引用、properties的学习
一.强弱引用 强引用:strong reference 弱引用:weak reference 引用可以理解为指针A指向的对象B.换句话说,拥有指针A的对象是对象B的所有者(ownership). 区别 ...
- LA 3026 Period
这只是蓝书上的一道KMP水题...然后对于最长前缀的循环证明我就不说了... #include<iostream> #include<cstring> #include< ...
- nginx配置及常见问题
问题 1.openresty请求时,不能解析域名? openresty依赖配置里面的resolver 192.168.1.1; 2.文件上传是报错413 Request Entity Too Larg ...
- linux 自动删除n天前文件
现在系统每天生成一个日期文件夹,并压缩上传到ftp服务器,造成目录下文件太多,所以决定写个定时删除文件的任务 写脚本文件 find /home/data -mtime +90 -name " ...
- 关于MapControl和PageLayout地图同步的问题
按照ArcMap的处理方式,地图和制图是分两个页面的,他们之间通过共享同一个Map对象来实现地图同步,具体做法就是在PageLayoutControl的PageLayoutReplaced事件发生时, ...
- iPhone 通过UIRequiredDeviceCapabilities指定程序适用于哪些设备
以前在itunes中查看某个应用时,会有说明信息,表明程序适用于ios 1.0,2.0,3.0什么的. 上周末将Key Manager上传到app store时,一直有个疑问,就是没有发现填写程序适用 ...
- 开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs
原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...