简介: 阿里云 ESSD 为云服务器 ECS 提供低时延、持久性和高可靠的块存储服务,成为云厂商全闪块存储的业界标杆。存储团队推出了 ESSD Auto PL 新的云盘规格,把性能与容量解耦,提供 IO 性能按需供给两大关键特性。AutoPL 具备的灵活性和弹性能力降低了 IT 规模规划难度和因规划不当带来的风险,本文详细介绍了Auto PL 新产品特性、揭秘背后的技术原理。

前言

作为 IaaS 最重要的核心组件之一,阿里云 ESSD 为云服务器 ECS 提供低时延、持久性和高可靠的块存储服务,成为云厂商全闪块存储的业界标杆。随着越来越多的企业上云和核心应用上云,以及容器和 Serverless 架构的蓬勃发展,对块存储 IO 性能的弹性能力提出了新的挑战和需求。阿里云存储团队在这种背景下推出了 ESSD Auto PL 新的云盘规格,把性能与容量解耦,提供 IO 性能按需供给两大关键特性。本文结合块存储典型业务场景,介绍 Auto PL 新产品特性、揭秘背后的技术原理。

云存储的IO弹性需求和业务痛点

随着云原生技术的发展,越来越多的企业基于云计算的虚拟化、弹性扩展及蓬勃发展的云原生技术的分布式框架,容器技术、编排系统、持续交付及快速迭代,构建起大规模、弹性扩展强、丰富的云上分布式业务场景;新的计算形态逐步往短周期、轻量化等方向发展,对块存储 IO 性能弹性提出了更多需求(性能通常用 IOPS :Input/Output Operations per Second 和吞吐 BPS :Bytes per Second 来描述),以下是比较常见的业务痛点:

  • VM/容器批量启动:计算实例启动时,系统盘短时间内消耗大量 IOPS 和吞吐 BPS
  • 业务高峰:客户业务面临不可预期的突发场景,需要云盘以及 VM 具备短时的突发性能需求的弹性扩展能力
  • 周期性任务处理:OLAP/批处理在可预见的时间内周期性的提交海量任务,需要云盘具备突发的弹性扩展能力

传统的块存储产品采用性能/容量耦合的产品设计,用户通过购买云盘容量获取相应的 IOPS/BPS 性能上限,通过云盘扩容同时获得磁盘容量和 IO 性能。ESSD 支持 PL0/1/2/3 多种性能的档位(PL:performance level),不同 PL 等级有不同 IO 性能上限,客户可通过云盘变配功能提升 PL 等级,从而得到更高的 IOPS/BPS 性能上限。云原生业务充分利用云的弹性能力,业务需求上量有个较长的时间周期,通常会预留部分存储性能余量。此外,相当部分云上业务流量存在明显的波峰波谷行为,大部分时间处于业务低负载期,且业务高峰期和峰值难以准确预估。典型的 IO 流量突发型业务可能在一定时间内出现一个或多个突发 IO 流量,突发时间短、突发性能峰值高,常见于互联网秒杀等突发业务场景,对性能规划提出了新的挑战:如果性能配置预留过高,会造成日常资源的大量闲置浪费;而如果性能预留不足,业务突发洪峰会造成业务受损。总而言之,通过云盘扩容/变配进行较为精准的性能规划变得非常困难。

ESSD Auto PL

针对以上业务痛点,阿里云推出了 ESSD Auto PL 产品规格,支持性能按需配置和按需突发两个模式,支持 1000 IOPS/GB 的超高单位容量性能上限。性能按需配置主要面向可预期的周期性 IO 流量场景,用户在新建 ESSD Auto PL 时除了选择存储容量,还可单独配置额外的 IO 性能上限,实现了 IO 性能与容量解耦。针对可预期的 IO 洪峰,用户可根据业务需求灵活调整 IO 性能,提供可预期的应对能力。

对于难以预期的突发业务洪峰,Auto PL 支持性能按需突发模式,提供最大单盘 100W IOPS,4GB/s 的极限 IO 性能,云盘根据实际性能需求自动调整,无需进行 IO 性能预测和规划,充分利用了 ESSD 分布式存储的弹性能力,彻底解决了突发流量下的性能规划问题。该功能采用后付费模式,用户只需按实际发生超出预先配置性能的读写次数付费, 保障业务稳定运行的同时,最大化节省用户的资源配置开销。以某大型互联网电商某突发流量场景为例,该业务原来使用 ESSD PL1,性能上限为 50000 IOPS,350MB/s,在业务突发流量场景,有 2.3% 的云盘打满 PL1 性能上限影响业务,且业务峰值时间较短,流量峰值无法准确预估。传统的需要采用 ESSD PL2 来满足业务突发流量,采用 ESSD Auto PL 并开启按需突发模式,业务存储 TCO 下降 49%。

Auto PL 仍然兼容了 ESSD PL1 的基准性能,标准的 Auto PL 云盘性能表现与 ESSD PL1 完全一致,实现存量客户 & 业务场景无缝切换。另外 ESSD Auto PL 在业界首次同时支持性能按需配置和性能按需突发两种功能,并且可叠加使用,用户可根据实际 IO 流量模型灵活配置。

Auto PL技术解析

作为第一个支持性能容量解耦同时支持性能按负载弹性伸缩的云盘, ESSD Auto PL 需要解决很多技术上的挑战:比如如何快速感知业务的负载变化,如何动态按需申请释放资源支持性能伸缩,如何快速平衡负载调度等等。经过反复打磨,ESSD Auto PL 云盘设计了细粒度的云盘切分机制,能够让它均衡使用整个后端存储集群的资源并快速动态调整;通过集群容量/性能水位实时监测和调度、多级 QoS 隔离等保障 IO 性能突发引入的流量冲击和多租户 IO 干扰等问题。

云盘细粒度切分

ESSD Auto PL 支持最大 1000 IOPS/GB,远超 Nand SSD 单位容量的 IOPS 性能。每一块 ESSD 云盘的 LBA 地址空间会被划分为多个条带组,条带组的 IO 被分布式算法打散,分别被不同的存储节点处理,以充分利用 RDMA 网络和高性能存储能力。ESSD Auto PL 设计了细粒度的地址空间管理机制,让小容量云盘也可以充分打散到多个存储节点,实现更大范围的 IO 调度能力,同时大范围的 IO 调度能力也可以降低存储集群单机热点和部分 IO 长尾延迟。

多租户隔离和IO优先级管理

EBS 作为典型的多租户服务,突发高吞吐/高 IOPS 流量潜在会影响低负载租户的 IO 延迟,100W IOPS IO Burst 极致性能对隔离能力提出了更高的要求。ESSD 支持实例和云盘两层 QoS,实例 QoS 提供多虚拟机之间的 IO 隔离能力,上限与用户购买实例的 vCPU 核数强相关,部分小规格实例支持存储 credit burst 能力,可累积闲时 IO quota 提供最大 30 分钟的性能突发能力;云盘 QoS 提供实例内各云盘的性能上限,与云盘规格相关。从 VM 发出的 IO 从链路上依次通过云盘、实例两级 QoS,并进行 Burst IO 流量打标,确保在流量拥塞场景下全链路能准确识别 Burst 流量,保证非 Burst 流量得到优先处理。针对 Burst IO 流量引起的系统局部热点和 IO 阻塞,实现了IO 流量 10 毫秒级别的业务负载感知和预测,再秒级别完成动态队列调度和并发度调整,结合硬件卸载的队列动态分发机制、避免在多租户场景下因为弹性提升带来多租户间的性能干扰。

多集群性能水位负载均衡

极致的 IO 性能弹性对性能 SLA 引入了新的挑战,特别是 IO 突发性能极限 100W IOPS 引入了更大的流量拥塞风险,为此 ESSD 设计了新的多集群性能水位负载均衡机制。新的智能均衡调度机制由集群/存储节点/IO 线程多级调度组成,根据云盘性能配置,实时监控组件 IO 负载,实现集群内秒级 IO 负载均衡、分钟级别集群间流量调度,当集群/存储节点间流量出现显著性能水位差异时,实时触发云盘热迁移,解决用户大批量云盘负载同时升高的性能争抢问题。

总结

ESSD AutoPL 作为未来 ESSD 的主售产品,覆盖面积为当前所有弹性计算面对的行业和客户。AutoPL 具备的灵活性和弹性能力降低了 IT 规模规划难度和因规划不当带来的风险,将会受运维人员或IT资源采购人员青睐。无论是阿里云新增客户,还是存量客户,ESSD AutoPL 都可以作为 ESSD PL1 的替代产品进行购买。AutoPL 为客户的业务突发增长提供了既经济实惠、又简单便利的使用体验,期待大家广泛使用 AutoPL 产品,并且给我们提宝贵的反馈,帮助我们做得更好。我们将继续通过技术创新来提高 ESSD 的性能和服务质量保障能力,提高用户使用体验,为客户提供永不停机的计算服务。

作者:阿里云存储 郗鉴

原文链接

本文为阿里云原创内容,未经允许不得转载。

【ESSD技术解读-04】ESSD Auto PL规格,引领IO性能弹性新方向的更多相关文章

  1. DLL技术应用04 - 零基础入门学习Delphi47

    DLL技术应用04 让编程改变世界 Change the world by program 利用DLL实现窗体重用 利用 Delphi 的 DLL 功能,不但能够实现过程和函数重用,而且还可以实现窗体 ...

  2. 分布式架构和微服务CI/CD的范本技术解读

    随笔分类 - 分布式架构--http://www.cnblogs.com/hujihon/category/858846.html (ZooKeeper.activemq.redis.kafka)的分 ...

  3. Switch分销技术解读

    Switch分销技术解读 来源:环球旅讯|2009-03-13 当Switch在海外成熟运作近40年后,该业务终于进入中国市场.但对于中国业者来说,知道Switch的人很少,了解Switch的人更少. ...

  4. 性能达到原生 MySQL 七倍,华为云 Taurus 技术解读【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  5. Cube 技术解读 | Cube 小程序技术详解

    本文为<Cube 技术解读>系列第三篇文章,之前上线的<支付宝新一代动态化技术架构与选型综述>与<Cube卡片技术栈解读>欢迎大家回顾. 魔方卡片(Cube)已在「 ...

  6. JAVA NIO 中的 zerocopy 技术提高IO性能

    关于一篇更详细更好的介绍 ZeroCopy技术的文章,可参考:JAVA IO 以及 NIO 理解 这篇文章介绍了 zerocopy技术来提高Linux平台上的IO密集型的JAVA应用程序的性能. ze ...

  7. 阿里云全球首次互联网8K直播背后的技术解读

    3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案.这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播. 视频地址:https://v.q ...

  8. POLARDB v2.0 技术解读

    点击观看“POLARDB 2.0 升级发布会”:https://yq.aliyun.com/live/1136 回顾POLARDB 1.0 POLARDB 1.0 主要的改进包括采用了计算存储分离的架 ...

  9. 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

  10. 唱吧DevOps的落地,微服务CI/CD的范本技术解读

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

随机推荐

  1. java 发送 http 请求练习两年半(HttpURLConnection)

    1.起一个 springboot 程序做 http 测试: @GetMapping("/http/get") public ResponseEntity<String> ...

  2. Ubuntu安装OpenOffice

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/quantum7/article/det ...

  3. 一个基于.NET Core构建的简单、跨平台、模块化的商城系统

    前言 今天大姚给大家分享一个基于.NET Core构建的简单.跨平台.模块化.完全开源免费(MIT License)的商城系统:Module Shop. 商城后台管理端功能 商品:分类.品牌.单位.选 ...

  4. read IEEE standard for verilog(3)

    read IEEE std for verilog 1.阅读准备 在阅读的第二部分读到了lexical conventions,这次计划读一节.也就是把lexical conventions读完. 2 ...

  5. DRConv:旷视提出区域感知动态卷积,多任务性能提升 | CVPR 2020

    论文提出DRConv,很好地结合了局部共享的思想并且保持平移不变性,包含两个关键结构,从实验结果来看,DRConv符合设计的预期,在多个任务上都有不错的性能提升   来源:晓飞的算法工程笔记 公众号 ...

  6. KingbaseES生成动态SQL

    1. 动态SQL 动态SQL在程序启动时会根据输入参数替换相应变量.使用动态SQL可以创建更强大和灵活的应用程序,但在编译时SQL语句的全文不确定,因此运行时编译会牺牲一些性能.动态SQL可以是代码或 ...

  7. KingbaseESV8R6普通用户无权限执行vacuum

    背景 数据库日志有如下提示: WARNING: skipping "pivot_t1" --- only table or database owner can vacuum it ...

  8. Java实现栈

    package algorithm; import java.util.Arrays; import java.util.Iterator; /** @author Administrator @da ...

  9. C++简单实现unique_ptr

    唯一指针 管理指针的存储,提供有限的垃圾回收工具,与内置指针相比几乎没有开销(取决于所使用的删除程序). 这些对象具有获取指针所有权的能力:一旦它们获得所有权,它们就会通过在某个时候负责删除指向的对象 ...

  10. 带你玩转OpenHarmony AI:打造智能语音子系统

    简介 AI时代,智者当先,判断一个终端设备是否智能,语音能力是必不可缺的.智能家居.智慧厨房.智能汽车等等,一切衣食住行都在往智能方向发展,那我们该如何在OpenAtom OpenHarmony(简称 ...