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 ...
随机推荐
- WORDPRESS改为https部署
1.确保你已经正确开启了httpd 2.4.6的https配置,并且配置了该网站的虚拟主机,如下所示: <VirtualHost *:443> DocumentRoot "/ap ...
- uva10857(状态压缩DP)
uva10857 题意 兔子希望在平面上 n 个点上放蛋,每个点最多放一个蛋,初始兔子在 (0, 0) 点,这里有无数个蛋,兔子可以回到这个点取蛋,兔子的速度为 \(v * 2^{-i}\)(i 为携 ...
- 洛谷——P1991 无线通讯网
P1991 无线通讯网 题目描述 国防部计划用无线网络连接若干个边防哨所.2 种不同的通讯技术用来搭建无线网络: 每个边防哨所都要配备无线电收发器:有一些哨所还可以增配卫星电话. 任意两个配备了一条卫 ...
- NOIP 2017 赛后反思 [补档]
首先写一下比赛的情况: D1: T1: 之前做过类似的题目, 因而知道大致的结论, 迅速完成. T2: 貌似直接模拟就可以了, 涉及到字符串信息提取, 比较麻烦, 因而想放到最后做. T3: 非常简洁 ...
- Spring Boot特点
特点: 1.化繁为简,简化配置 2.备受关注,是下一代框架 3.为服务的入门级框架
- centos从头学习配置web服务器环境
为了学习linux下配置web服务器环境,于是安装了vmware,准备在虚拟机里面学习web服务器的搭建! 首先是在虚拟机里安装centos,我选择的是32位的centos6.6版本,因为新版本7据说 ...
- Windows 定时删除指定路径下N天前的日志文件
Windows 定时删除指定路径下N天前的日志文件 Windows 下bat脚本文件的内容为 1. 删除指定路径下5天前的所有文件 @echo off set SrcDir=E:\WORK\Git s ...
- Visio中汇总两个箭头
RT,相似度和信任度矩阵融合,两个箭头,选中其中一个,可以选格式--线条--终点选无,或者在快捷那选线条.
- 遍历Map的四种方式
方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. 注意:for-each循环在java 5中被引入所以该方法只能应用于 ...
- SparkMLlib聚类学习之KMeans聚类
SparkMLlib聚类学习之KMeans聚类 (一),KMeans聚类 k均值算法的计算过程非常直观: 1.从D中随机取k个元素,作为k个簇的各自的中心. 2.分别计算剩下的元素到k个簇中心的相异度 ...