阿里云图片存储 阿里云盘资源共享站( 二 )


阿里巴巴容器规模化部署主要面临的挑战体现在以下几个方面:
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 技术方案对比如下图所示:
阿里云图片存储 阿里云盘资源共享站


基于文件系统的 Remote Image 技术的主要特点是直接提供文件系统接口 , 是容器 Image 的自然扩展 。复杂度高 , 稳定性、优化和高级功能的实现难度大 。在通用性上 , 和操作系统绑定 , 能力固定 , 不一定匹配所有应用 。同时攻击面较大 。行业代表主要是 Google CRFS , Microsoft Azure Project Teleport , AWS SparseFS 。
基于块设备实现的 Remote Image 技术的主要特点是可配合常规文件系统一起使用 , 如 ext4;普通容器、安全容器、虚拟机均可直接使用 。复杂度、稳定性、优化和高级功能更容易实现 。在通用性上 , 与操作系统和文件系统解绑 , 应用可自由选择最合适的文件系统 , 如 NTFS , 作为依赖打包进 Image 。并且攻击面较小 。
阿里巴巴选择了 Date Accelerator for Disaggregated Infrastructure (简称为 DADI) , 同时进行了规模性验证 。
阿里巴巴自研容器镜像加速技术 DADIDADI 是阿里巴巴的独创性的技术方案 。DADI 镜像服务是一种可以做到敏捷又弹性部署应用的分层块级镜像服务 。DADI 彻底摒弃了传统容器启动的瀑布类型(即下载、解包、启动) , 实现了远程镜像的细粒度按需加载 , 容器启动前不在需要部署镜像 , 容器在创建后可以立即启动 。
DADI 的数据路径如下图所示 , 虚线之下是内核态 , 虚线之上是用户态 。DADI 将镜像抽象为虚拟块设备 , 并在其上容器应用挂载常规文件系统如 ext4 。当用户应用读取数据时候 , 读取请求先通过常规的文件系统处理 , 文件系统将请求转换为虚拟块设备的一次或者多次读取 。对块设备的读取请求被转发到用户态的 DADI 模块 , 最后转换为一个或者多个 Layer 的随机读取 。

推荐阅读