一、能力概述
Agent 沙箱服务 将存储从沙箱工具的配置项升级为独立的数据资源,提供以下能力:
·存储模板(VolumeTemplate):可复用的存储配置模板,不直接占用存储资源,支持动态批量生成/挂载数据卷。
·数据卷(Volume):真实存在的存储资源实例,由模板派生或直接创建,可挂载到沙箱工具或沙箱实例。
·统一资源管理:存储模板与数据卷均支持创建、查询、更新和删除。
·多后端支持:当前支持对象存储(COS)和文件存储(CFS)两类后端,AgentCBS 即将支持,敬请期待。
二、适用场景
·跨工具复用:读写多(ReadWriteMany)或只读多(ReadOnlyMany)的数据卷可挂载到多个沙箱工具或实例,避免重复配置。
·任务级数据卷:通过复用键(ReuseKey)按任务维度生成独立数据卷,在每个实例创建时动态传入复用键(ReuseKey),挂载时自动拼接,任务结束后按回收策略自动清理。
三、资源模型
存储管理采用两层资源模型:
·存储模板定义可复用的存储配置,包括存储类型、路径模式、数据卷名称模板、访问模式和回收策略。
·数据卷是模板的具体实例,记录实际存储路径、访问模式、回收策略和挂载实例等信息。
四、存储模板
·存储模板是可复用的配置模板。创建数据卷时,系统将模板的存储类型、存储路径、访问模式、回收策略固定到数据卷中。
·存储模板名称在账号内唯一。
·模板的存储路径模式和数据卷名称模板支持 ${reuse_key} 占位符,用于在派生数据卷时生成确定性的数据卷名称或实际存储路径;数据卷名称模板中的 ${reuse_key} 最多出现一次。
五、数据卷
·数据卷可直接创建,也可由存储模板派生。
·直接创建的数据卷为独立数据卷;由模板派生生成的数据卷会记录模板 ID 和复用键。
·读写一次(ReadWriteOnce)的数据卷记录其挂载的实例 ID。
六、模板派生与复用
·系统按存储模板与复用键(ReuseKey)去重复用数据卷。
·未设置复用键时:读写一次(ReadWriteOnce)模板每次派生生成新数据卷;读写多(ReadWriteMany)或只读多(ReadOnlyMany)模板复用同一个数据卷。
·复用键仅支持小写字母、数字、连字符(-)和下划线(_),最长 128 个字符,且必须以小写字母或数字开头。
·挂载时,复用键可以是字面量或 ${metadata.<name>} 表达式,在沙箱实例启动时展开;对应元数据值为空时返回 InvalidParameter 错误。
七、挂载
·在沙箱工具的 StorageMounts 中,每个挂载项可选择以下来源之一:StorageSource、数据卷(Volume)或存储模板(VolumeTemplate),同一工具内的不同挂载项可以使用不同来源。
·支持将数据卷挂载到沙箱工具或沙箱实例。
八、回收策略
数据卷支持以下回收策略:
·Retain:保留数据卷,由你手动删除。
·Delete:仅在数据卷同时满足以下条件时,随沙箱终止自动删除:由模板派生、访问模式为读写一次(ReadWriteOnce)、回收策略为 Delete。自动回收只移除数据卷资源本身,不删除 COS 或 CFS 中的实际数据。读写多(ReadWriteMany)和只读多(ReadOnlyMany)的派生数据卷不随单个沙箱终止自动删除。
九、生命周期
存储模板与数据卷通过状态字段表示生命周期:
·存储模板:CREATING、ACTIVE、DELETING、FAILED。
·数据卷:CREATING、ACTIVE、DELETING、DELETED、FAILED。
当数据卷或存储模板被挂载引用时,其状态必须为 ACTIVE,否则返回 ResourceUnavailable 错误。
十、使用限制
·当前仅支持 COS 与 CFS 两类后端。
·数据卷与存储模板的数量配额默认均为 100,实际上限以账号级配额配置为准;其中数据卷配额仅统计独立数据卷,派生数据卷不计入。
·存储模板的容量字段 DefaultCapacity 为预留字段,当前 COS 与 CFS 后端下不生效。
·模板派生不支持实例级或工具级配置覆盖,派生时按模板配置固定生成。
·回收策略 Delete 的自动回收不删除 COS 或 CFS 中的实际数据。
十一、相关文档
·存储模板
·数据卷
·在沙箱工具中使用存储