*作者:徐立

云原生的立异源泉

云原生趋势下,运用容器化比例正在快速增加,Kubernetes 也已成为云原生年代新的根底设施。 Forrester 预测到 2022 年,全球安排/公司在出产环境运转容器化运用。从今天缺乏30%的比例将大幅度进步到超越 75%,企业运用容器化的趋势势不行挡。咱们能够看到两个遍及的现象。首要,在云上保管 Kubernetes 现已成为企业上云及运转容器的优先挑选。另外,用户运用容器的方法也在改动,从无状况运用到核心企业运用再到数据智能运用,越来越多的企业运用容器来布置出产等级、复杂度高和高功能核算的有状况运用。比方 Web 服务、内容资料库、数据库,甚至 DevOps、AI/大数据运用等。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

跟着根底设施从物理机到虚拟机,到以 Kubernetes 为代表的容器环境,甚至到 Serverless 的逐步演进,今天的核算和运用正在面对巨大的改动。这种改动使得资源粒度越来越细,生命周期越来越短,核算按需运用。

从用户视角来看云原生带来的存储改动,最显着的便是用户运用存储界面发生上移,和运用不直接相关的存储服务从运用层下沉到云渠道,用户更关怀运用。

举例来说,传统形态用户需求关怀一切硬件和软件,逐步过渡到用户关怀虚拟机、操作体系和整个运用软件栈,到今天在 Serverless 里演化成用户只关怀运用事务和代码。体系资源从物理资源层、虚拟化资源层上升到运用开发层,用户无需关怀底层的根底设施。

在这样的技能体系下,存储的才能的演化首要体现在以下 3 个方面:

1、高密 虚拟机年代,一个虚拟机就对应一个完好的存储空间,能够用其存储整个运用所需求的一切数据相关的拜访和存储需求。在Serverless 函数核算环境,运用被切分为一个个函数,对应的资源都需求存储办理,因此,存储的密度发生了很大的改动,存储密度更高。

2、弹性 跟着运用拆分的粒度越来越细化,存储密度逐步进步,Serverless 函数核算大规模实例需求高并发发动,存储需求极致弹性的才能。

3、极速 从Serverless 函数核算的视点来看,函数是整个进程的一个部分,生命周期天然变短。由此出现很多短生命周期的容器实例。跟着生命周期越来越短,需求存储快速挂载/卸载,快速拜访。

跟着服务界面发生上移,存储管控界面被重塑,内置存储和外置存储变得愈加明晰。Serverless 环境里,用户可见界面是外置存储(包含文件存储和目标存储),而内置存储(包含镜像存储和暂时存储)对用户是不行见的,内置存储由阿里云来办理,供应了立异的时机。

镜像加快的技能立异

阿里巴巴容器规模化布置的应战

阿里云徐立:面向容器和 Serverless Computing 的存储创新

阿里巴巴容器规模化布置首要面对的应战体现在以下几个方面:

1、事务体量大。 集群规模大,高达十万量级;一切运用全部容器化,并且运用镜像大,通常以数十 GB 巨细为主。

2、更快的布置速度。 事务规模继续增加,要求云渠道能够快速的布置运用,才能够处理事务增加,特别双十一大促时紧迫扩容,难以事前对各服务精确预估容量。

3、但是大规模的创立或许更新容器集群仍然很慢,首要原因是容器布置镜像的下载和解压很慢,首要的技能应战如下:

• 时刻开支大:时刻开支 ∝ 镜像巨细 * 节点数;一千节点就需求存一千份镜像;

• CPU 时刻开支大: gzip解压慢,且只能串行解压;

• I/O 压力大: 下载、解压两轮写盘,包含很多节点一起写盘,对云盘发生“共振”;

• 内存占用扰动: 对宿主机 page cache 发生严峻扰动;

• 但是有用数据占比少: 发动时平均仅需镜像数据的6.4%。

应对以上技能应战,大规模容器布置的关键需求笼统总结为三点:

1、按需: 下载解压速度足够快、数据按需拜访和按需传输。

2、增量分层: 数据解耦,经过 OCI-Artifacts 规范 overlayfs 把层次做区分,增量数据,时刻资源运用更有用。

3、Remote Image : 选用长途镜像技能,改动镜像格局,一起减少本地资源的消耗。

Remote Image 技能计划比照

Remote Image 首要有两种技能完结的方法,一种是根据文件体系,第二种是根据块设备。Remote Image 技能计划比照方下图所示:

阿里云徐立:面向容器和 Serverless Computing 的存储创新

根据文件体系的 Remote Image 技能的首要特点是直接供应文件体系接口,是容器 Image 的天然扩展。复杂度高,安稳性、优化和高级功能的完结难度大。在通用性上,和操作体系绑定,才能固定,不一定匹配一切运用。一起攻击面较大。职业代表首要是 Google CRFS,Microsoft Azure Project Teleport,AWS SparseFS。

根据块设备完结的 Remote Image 技能的首要特点是可配合惯例文件体系一起运用,如 ext4;一般容器、安全容器、虚拟机均可直接运用。复杂度、安稳性、优化和高级功能更简单完结。在通用性上,与操作体系和文件体系解绑,运用可自由挑选最合适的文件体系,如 NTFS,作为依靠打包进 Image。并且攻击面较小。

阿里巴巴挑选了 Date Accelerator for Disaggregated Infrastructure (简称为 DADI),一起进行了规模性验证。

阿里巴巴自研容器镜像加快技能 DADI

DADI 是阿里巴巴的独创性的技能计划。DADI 镜像服务是一种能够做到敏捷又弹性布置运用的分层块级镜像服务。DADI 彻底摒弃了传统容器发动的瀑布类型(即下载、解包、发动),完结了长途镜像的细粒度按需加载,容器发动前不在需求布置镜像,容器在创立后能够当即发动。

DADI 的数据途径如下图所示,虚线之下是内核态,虚线之上是用户态。DADI 将镜像笼统为虚拟块设备,并在其上容器运用挂载惯例文件体系如 ext4。当用户运用读取数据时候,读取恳求先经过惯例的文件体系处理,文件体系将恳求转换为虚拟块设备的一次或许屡次读取。对块设备的读取恳求被转发到用户态的 DADI 模块,最后转换为一个或许多个 Layer 的随机读取。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

DADI 镜像选用块存储+分层技能,每层只记载被增量修改的数据块,支撑紧缩以及实时的按需解紧缩;支撑按需传输,只传输用到的数据块下载运用;DADI 还能够选用 P2P 传输架构,一传十、十传百,在大规模集群内将网络流量均衡到一切多个节点上去。

DADI 关键技能解读

DADI 增量镜像能够经过根据块+分层技能来完结,其中每个层对应于一个 LBA 的变更。DADI 的关键技能包含长途镜像的细粒度按需传输,高效的在线解紧缩,根据 trace 读取,用于处理突发工作的 P2P 传输技能。DADI 在进步布置运用的敏捷性和弹性方面十分有用。

1、分层块设备 Overlay Block Device

每层记载被增量修改的变长数据块 LBA,不触及文件/文件体系的概念,以 512 字节为最小粒度。快速索引,支撑变长记载,以节约内存,各记载的 LBA 不重叠,支撑高效的区间查询。

2、原生支撑可写层

供应追加写文件和随机写稀少文件两种形式构建 DADI 镜像。只读层,每个只读都能够按照不同类型的巨细,每层查询区间,速度极快。可写层由存储原始数据(Raw Data)和存储索引(Index)两部分组成,接受 append only 安排而成。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

3、ZFile 紧缩格局

规范紧缩文件格局,例如 gz,bz2,xz 等,无法高效的进行随机读写操作,无论读取紧缩文件中的哪一部分,都需求从头部开始解压,为了支撑 layer blob 的紧缩并一起支撑长途镜像的按需读取,DADI 引进了 ZFile 紧缩格局。ZFile 的紧缩格局如下图所示,按固定巨细数据块紧缩,只解压读到的数据块,支撑多种有用的紧缩算法,包含 lz4,zstd,gzip 等,选用通用格局,不绑定于 DADI。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

4、根据 Trace 预取

记载运用过程中的读取日志、只记方位、不记数据本身。在运用冷发动时,若已有 trace 记载,则 DADI 将根据trace提早把数据预取回本地,选用高并发读取,愈加高效。Trace 作为一个特别的 layer 存于 image,专门用于加快,用户不行见,未来可包容其他加快文件。如下图绿色部分表示加快层、包容 trace 文件以及其他文件。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

5、按需 P2P 传输

在咱们的出产环境中,有几个关键运用程序现已布置在数千台服务器上,并且包含高达数 GB 的 Layer,这些运用程序的布置给 Registry 和网络根底设施带来了巨大压力。为了更好的处理此类大型运用,DADI 将最近运用的数据块缓存在每个宿主机的本地磁盘上,选用 P2P 的方法在主机之间传输数据。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

1、选用树形拓扑结构分发数据

• 各个节点均缓存最近运用过的数据块

• 跨节点恳求大概率命中父节点自己的 cache

• 未命中的恳求会递归向上传递,直到 registr

2、拓扑结构由 root 节点动态维护

• 每个 layer 独自一个传输拓扑

3、每个机房独自布置一组 root

• 多节点高可用架构

• 根据一致性哈希的分工

大规模发动耗时测试

阿里云徐立:面向容器和 Serverless Computing 的存储创新

咱们将DADI 容器发动推迟与 .tgz 镜像、Slacker、CRFS、LVM 和 P2P 镜像下载进行了比较,运用 DockerHub.com 上的 WordPress 镜像,咱们观测单实例的冷发动推迟,一切服务器和主机位于同一数据中心。如左图所示,结果标明,运用 DADI 能够显着减少容器的冷发动时刻。

咱们在公共云上创立了 1000 个 VM,并将他们用做容器的主机。在每个主机上发动 10 个容器,总共 10000 个容器。测试运用 Python 编写的一个小程序 Agility,拜访 HTTP 服务器并在服务端记载时刻。如右图所示,结果标明 DADI 的冷发动在 3 秒之内快速完结。

DADI 在阿里巴巴的规模化运转

阿里云徐立:面向容器和 Serverless Computing 的存储创新

DADI 现已在阿里巴巴集团规模化运转,在阿里巴巴的出产环境内大规模布置。数据显示 DADI 在 10000个宿主机上发动 10000 个容器仅需3-4 秒。DADI 完美应对双十一大促洪峰,现在在阿里巴巴集团内部现已布置了接近十万台服务器宿主机,支撑集团 Sigma、搜索、UC 等事务在线、离线运用超越 2 万个,极大进步了运用发布、扩容功率,体会如丝般顺滑。咱们在全球最大的电子商务渠道之一的出产环境中运用 DADI 的经历标明,DADI 在进步布置运用的敏捷性和弹性方面十分有用。

拥抱开源,释放云原生技能盈利

现在,DADI 正在经过贡献社区的方法更好地释放云原生技能盈利,也希望与更多企业和开发者共建容器镜像规范。

现在 DADI 现已开放了支撑 Contained(docker 尚不支撑 remote image),支撑节点直连 Registry + 本地缓存技能,支撑构建、转换镜像。

未来还会开放 P2P 按需传输:将 P2P 子体系从头规划为 Registry 的延伸,将支撑同享存储,如 nfs、hdfs、ceph、glusterfs 等,大局 Registry +机房同享存储 + 节点本地缓存 + P2P 数据传输,构建机房内缓存。

咱们可经过查看以下 Github 的链接了解更多信息:

  • 操控平面 (for containerd):

github.com/alibaba/acc…

  • 数据平面(overlaybd):

github.com/alibaba/ove…

容器耐久存储的技能演进

存储接入技能面对的应战

阿里云徐立:面向容器和 Serverless Computing 的存储创新

上面咱们谈到了 Serverless 运用架构的新范式,现在咱们看到一个趋势,从虚拟机到一般容器,再逐步演化为神龙裸金属布置安全容器。从存储的布局视点来看,其面对的清楚明了的应战是愈加高密和多租户。

容器接入技能趋势: 核算层根据 ECS + 一般容器的架构向根据神龙 + 安全容器架构演进,单节点密度到达 2000,单实例标准最小粒度内存 128MB,1/12 CPU。容器接入技能的趋势,带来了 I/O 资源放大的应战。

阿里云存储在端接入上有自己的考虑,存储分为内置存储(镜像和暂时存储)和外置存储(文件体系/同享文件体系、大数据文件体系、数据库文件体系等)。

存储体系如何和底层更好的衔接?存储接入容器的方法是经过 virtio 的才能卸载到神龙Moc 卡上,神龙 Moc 卡 + virtio 的通路和底层存储服务更好的联动。

耐久存储 – 面向现代化运用的弹性供应云盘 ESSD

阿里云徐立:面向容器和 Serverless Computing 的存储创新

ESSD 云盘为用户供应高可用、高可靠、高功能的块级随机拜访服务,并供应原生快照数据维护和跨域容灾等丰富的企业特性。

面向现代化运用的弹性供应云盘 ESSD 具备两个关键特性:

  • 云盘挂载密度进步 4 倍,单实例最大支撑 64 块云盘
  • 功能与容量完全解耦,用户需求不需求预先设定,按需而定。

举例来说,为了应对很多用户面对的问题:无法精确预估事务峰值,在功能装备上难以做好精准规划。假如功能装备预留过高,会形成日常资源的很多搁置浪费;而假如功能预留缺乏,事务突发洪峰会形成事务受损。咱们推出了 ESSD Auto PL 云盘,它支撑功能指定装备的一起,支撑按事务负载主动弹性,单盘能够主动进步到最高 100 万 IOPS 功能,为不行预期的突发拜访供应安全快捷的功能主动装备。

耐久存储 – 容器网络文件体系 CNFS

针对容器中运用文件存储的优势和应战,阿里云存储团队与容器服务团队共同推出了容器网络文件体系 CNFS,内置在阿里云保管的 Kubernetes 服务 ACK 中。CNFS 经过将阿里云的文件存储笼统为一个 K8s 目标(CRD)进行独立办理,包含创立、删去、描绘、挂载,监控及扩容等运维操作,运用户能够在享受容器运用文件存储带来的快捷的一起,进步文件存储的功能和数据安全,并供应容器一致的声明式办理。

阿里云徐立:面向容器和 Serverless Computing 的存储创新

CNFS 在可拜访性、弹性扩容、功能优化、可观测性、数据维护、声明式等六个方面针对容器存储进行了深度优化,使其与开源计划比较具有以下显着优势:

  • 在存储类型方面,CNFS 支撑文件存储,现在支撑阿里云文件存储 NAS
  • 支撑 Kubernetes 兼容的声明式生命周期办理,能够一站式办理容器和存储
  • 支撑 PV 的在线扩容、主动扩容,针对容器弹性弹性特性优化
  • 支撑更好的和 Kubernetes 结合的数据维护,包含 PV 快照、回收站、删去维护、数据加密、数据灾备等
  • 支撑运用等级的运用一致性快照,主动剖析运用装备和存储依靠,一键备份、一键还原
  • 支撑 PV 等级监控
  • 支撑更好的拜访操控,进步同享文件体系的权限安全,包含目录级 Quota、ACL
  • 供应功能优化,针对文件存储的小文件读写,供应更优化的功能
  • 本钱优化,供应低频介质及转换战略,降低存储本钱

最佳实践

数据库容器化运用 ESSD 云盘高密挂载的最佳实践

阿里云徐立:面向容器和 Serverless Computing 的存储创新

数据库容器化运用 ESSD 云盘高密挂载的事务场景首要面对的需求是:数据库布置形式从虚拟机向容器化开展,继续进步弹性和可移植性,简化布置。容器布置密度跟着 CPU 核数线性增加,需求耐久化存储进步挂载密度。数据库作为 IO 密集型事务,对单机存储功能提出更高要求。

咱们的解决计划是数据库运用 g6se 存储增强型实例,单实例供应最高 64 块云盘挂载密度,g6se 存储增强型实例,供应最高 100 万 IOPS,4GB 存储吞吐,适配单机高密布置的功能需求。

数据库容器化运用 ESSD 云盘高密挂载的优势是:

  • 高密挂载:比较上代实例,云盘挂载密度进步 400%,进步数据库实例单机布置密度。
  • 高功能:单机最高 100 万 IOPS,多个云盘之间 IO 天然隔离,供应安稳可预期读写功能。
  • 高弹性:ESSD 云盘 支撑 IA 快照,快照当即可用完结只读实例的秒级创立。
  • 高可靠性:云盘根据 9 个 9 数据库可靠性规划,一起支撑快照、异步复制等数据维护手法,解决软硬件毛病带来的数据安全风向。

Prometheus 监控服务运用文件存储的最佳实践

阿里云徐立:面向容器和 Serverless Computing 的存储创新

Prometheus 的完结方法是Prometheus server 首要用于抓取和存储数据。Client libraries 能够用来衔接 server 并进行查询等操作,push gateway 用于批量,短期的监控数据的归总节点,首要用于事务数据汇报等。不同 exporter 用于不同场景下的数据搜集,如搜集 MongoDB 信息 MongoDB exporter。

Prometheus 的核心存储 TSDB ,相似 LSM tree 的存储引擎。咱们看到一个趋势,存储引擎多节点数据同步,需求引进 Paxos 一致性协议。中小型客户在办理引擎的时候,办理一致性协议的时候难度十分大,架构将核算和存储别离,核算是无状况的,TSDB 的存储的引擎释放给分布式文件体系,天然需求 NAS 同享文件体系。

Prometheus 监控服务运用文件存储的优势是:

  • 同享高可用: 多 Pod 同享 NAS 耐久化存储,核算节点 Failover 完结容器运用的高可用。
  • 0 改造: 分布式 POSIX 文件体系接口,无需任何改造
  • 高功能: 支撑并发拜访,功能满意瞬间拉起索引查询,同步进行数据加载以及低时延索引查询 + 写入
  • 高弹性: 存储空间不需预装备,按需运用,按量计费,适配容器弹性才能

总结

面向容器和 Serverless Computing 的存储立异开展驱动了存储视角的新改动,整个存储界面上移,开发者愈加专属于运用本身,根底设施的运维尽量被保管。存储供应的特性愈加高密、弹性、极速。

以上为咱们分享了阿里云容器存储的技能立异,包含 DADI 镜像加快技能,为容器规模化发动奠定了很好的根底,ESSD 云盘供应极致功能,CNFS 容器网络文件体系供应极致的用户体会。

随时云原生立异前奏摆开,云原生存储立异刚刚走出第一步,相信和各位职业专家一起开创和 Reinvent 存储的立异时机。

更多关于阿里云容器网络文件体系 CNFS 的技能才能、运用场景和运用方法,请点击“阅读原文”了解。