数据缓存概述

对于一些数据量较大的业务数据,例如训练模型等,ECI支持创建数据缓存(DataCache)来提前拉取数据,将数据缓存到本地,以便在创建ECI实例时可以直接挂载使用,从而减少实例启动耗时,避免数据重复下载,节约使用成本。本文为您介绍什么是数据缓存,包括功能简介、应用场景、创建和使用方式、计费说明等。

功能简介

为了解决数据加载与容器镜像加载解耦的问题,ECI提供了数据缓存的功能。在创建业务应用前,您可以提前创建数据缓存,将业务应用所需的数据缓存到本地。在创建业务应用时,可以直接挂载使用缓存好的数据。

通过数据缓存功能,您无需将数据打包进应用镜像,从而避免因数据变更而频繁更新镜像;也无需从远端的仓库下载数据,避免因下载数据导致应用启动过慢。

应用场景

适合数据量大,或者数据经常更新的场景。例如在机器学习场景下,是否使用数据缓存部署模型应用的流程如下:

  • 不使用数据缓存

    1. 下载模型数据到开发环境。

    2. 将模型数据和应用打包制作容器镜像,并创建镜像缓存。

    3. 基于镜像缓存部署应用。

    数据缓存概述1.png
  • 使用数据缓存

    1. 创建数据缓存拉取模型数据。

    2. 将应用打包制作容器镜像,并创建镜像缓存。

    3. 基于镜像缓存和数据缓存部署应用。

    数据缓存概述2.png

从流程可以看出,如果不使用数据缓存,会带来容器镜像过大的问题,并且如果要更新模型,则需要重新制作镜像,重复镜像版本发布、镜像缓存制作,应用部署等工作。如果使用数据缓存,将数据和镜像解耦,在要更新模型时,只需重新制作数据缓存,重新挂载到应用即可。

创建方式

您可以自行设置数据缓存的属性来创建数据缓存。一个数据缓存主要具有以下属性:

  • 存储路径

    创建时,可以指定数据存储空间(Bucket)以及在空间里的存储路径(Path)。如果没有指定Bucket,默认存储在default。

  • 数据源

    一般情况下,业务数据通常存储在NAS文件系统、OSS存储空间等,对于一些模型,可能是存储在ModelScope或者HuggingFace上。ECI对这些数据源都提供了缓存支持,可以从以下数据源中拉取数据制作数据缓存。

    • URL:具体某一数据下载链接、ModelScope和HuggingFace上的模型和数据集。

    • NAS:阿里云NAS文件系统。

    • OSS:阿里云OSS存储空间。

    • SNAPSHOT:阿里云快照。

  • 大小

    创建前,您需要根据实际的数据量来确定数据缓存的大小。创建时如果没有指定大小,则数据缓存默认为20 GiB。如果数据量超出20 GiB,数据缓存会创建失败。

  • 保留时长

    创建时如果没有设置保留时长,则数据缓存会一直保留。对于不需要长期使用的数据缓存,建议您在创建时设置保留时长,以免产生不必要的快照费用。

使用方式

使用数据缓存创建ECI实例时,您可以指定数据缓存Bucket,并通过HostPath的方式直接挂载数据存储路径。此时,系统会自动创建并挂载一块按量付费的云盘。该云盘的容量等于数据缓存大小,随实例一起创建和释放。

计费说明

  • 创建数据缓存

    创建数据缓存的过程中会自动创建临时资源(ECI实例和云盘),基于临时资源创建一个快照,因此需支付临时资源费用和快照费用。

  • 使用数据缓存

    使用数据缓存创建ECI实例时,将为ECI实例自动创建并挂载一个和数据缓存相同大小的云盘,即除ECI实例费用外,需额外支付云盘费用。

更多信息,请参见数据缓存计费