Skip to content

存储卷与快照

实例自带的磁盘随销毁而删除。要让数据跨实例存活,使用独立存储卷。

实例卷 vs 独立卷

实例卷独立存储卷
创建随实例(disk_gb单独创建
生命周期随实例销毁删除独立存活
挂载自动手动 attach / detach
计费计入实例存储费按 GB/月单独计费

创建卷

POST /storage/volumes

字段必填说明
name卷名称(1–100 字)
size_gb容量(1–10240)
backendlocal(默认,绑定单台节点)或 network(NFS,跨机器)
node_idlocal 时指定归属节点
region_codenetwork 时必填
bash
curl -X POST "$ARK_API/storage/volumes" \
  -H "Authorization: Bearer $ARK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "datasets", "size_gb": 200, "backend": "local", "node_id": "NODE_ID" }'

卷状态:provisioningready →(挂载后)attached。价格字段 price_per_gb_month(元 / GB·月,默认约 0.1 元)。

挂载与卸载

bash
# 挂载到某实例
curl -X POST "$ARK_API/storage/volumes/$VOLUME_ID/attach" \
  -H "Authorization: Bearer $ARK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "instance_id": "RENTAL_ID", "mount_path": "/data" }'

# 卸载
curl -X POST "$ARK_API/storage/volumes/$VOLUME_ID/detach" \
  -H "Authorization: Bearer $ARK_TOKEN"

约束:

  • local 卷与实例必须在同一节点network 卷需同一地区
  • network不能挂给 VM 实例
  • 卷需处于 ready 状态才能挂载;已 attached 的卷不能删除,需先卸载。
bash
# 列出卷
curl -s "$ARK_API/storage/volumes" -H "Authorization: Bearer $ARK_TOKEN" | jq '.volumes[] | {name, size_gb, status, backend}'

# 删除(须未挂载)
curl -X DELETE "$ARK_API/storage/volumes/$VOLUME_ID" -H "Authorization: Bearer $ARK_TOKEN"

快照

快照是卷的时间点副本,用于备份或回滚。父卷需处于 ready(未挂载)状态。

bash
# 创建快照
curl -X POST "$ARK_API/storage/volumes/$VOLUME_ID/snapshots" \
  -H "Authorization: Bearer $ARK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "before-finetune" }'

# 列出快照(可按 volume_id 过滤)
curl -s "$ARK_API/storage/snapshots?volume_id=$VOLUME_ID" -H "Authorization: Bearer $ARK_TOKEN"

# 恢复到卷(卷须未挂载)
curl -X POST "$ARK_API/storage/snapshots/$SNAP_ID/restore" -H "Authorization: Bearer $ARK_TOKEN"

# 删除快照
curl -X DELETE "$ARK_API/storage/snapshots/$SNAP_ID" -H "Authorization: Bearer $ARK_TOKEN"

快照状态:creatingready,恢复时 restoring,删除时 deleting。快照副本同样占用存储、单独计费。

计费

独立卷与快照按 GB/月计费,独立于实例计费(各有独立计费检查点)。即使没有任何实例在运行,卷与快照只要存在就持续计费。详见 计费说明

基于 MIT License 发布