云盘是项目中的一块磁盘,使用它的沙箱没了,它还在。在沙箱里,它是一个块设备,有自己的 ext4 文件系统,挂载在你选择的路径上,数据块放在机器自己的 NVMe 磁盘上。同一时间只有一个沙箱以读写方式持有它。那个沙箱没了,云盘保留其中的内容,留给下一个沙箱。
云盘在写入的同时被复制到所在区域的对象存储中。所以区域中任何一台机器上的沙箱都能挂载它:如果上次是另一台机器持有它,就先把它搬过来,读到哪个数据块就搬哪个。另一个区域的沙箱也能挂载它,前提是那个区域的机器能读取这个区域的对象存储:数据块在被读取时从归属区域取来,一小时后归属区域会跟过去(跨区域)。
什么时候用云盘
- 数据库或队列:带云盘的方块只有一个实例,数据在部署和重启后都还在。
- 智能体的工作区,沙箱没了它还在:在下一个沙箱中挂载同一个云盘。
- 每个用户或会话一块磁盘:方块的每个键控实例都有自己的云盘。
- 大量的工作数据,不适合放在沙箱自己的磁盘上。
- 一份数据集,多个读取方:把云盘的快照以只读方式挂载到任意多个沙箱中。
- 拿副本做试验:分叉一个云盘,用完把分叉删掉。
需要多个沙箱同时挂载同一个文件系统时,见共享存储卷。
工作方式
- 创建。
POST /v1/drives(glac drives create),给出名称、大小和区域。只有写入的数据占用空间并计费。 - 挂载。把它交给新沙箱(创建时的
drives)、正在运行的沙箱 (POST /v1/sandboxes/{id}/drives),或方块的版本。 - 保留。卸载它,或删除沙箱:云盘连同其中的内容留在它的区域中,直到你删除它。
- 快照。
POST /v1/drives/{id}/snapshots(glac drives snapshots create data) 把云盘保存为当前的状态,无需复制。可以把云盘恢复到快照、从快照分叉出新云盘,或以只读方式挂载快照:参见快照与分叉。
费用
| 计量项 | 价格 | 免费版(每天) | 付费版每月包含 |
|---|---|---|---|
| 云盘的数据,按写入的字节计,全部保存在分层存储中 | 每 GB·月 $0.02 | 共 15 GB 数据,含休眠实例和快照 | 20 GB·月数据,含休眠实例和快照 |
| 云盘的 NVMe 缓存,按设定的大小计 | 每 GB·月 $0.06 | 共 15 GB | 20 GB·月 |
| 读写云盘 | 不收费 |
云盘按数据和 NVMe 缓存计费。数据按写入且没有被 trim 掉的字节计,不按云盘大小计,按小时计算,全部保存在分层存储中;缓存是云盘保存在机器 NVMe 上的部分,大小由你设置:全部缓存,获得本地磁盘的速度;不缓存,价格最低;也可以取中间值。写入和读取都不收费。免费版的数据额度与休眠沙箱和快照共用。云盘的快照按它单独保留的数据计费,价格相同:参见快照与分叉和价格与套餐。
各套餐的限制
| 免费版 | 付费版 | |
|---|---|---|
| 单个项目的云盘和存储卷 | 3 | 500 |
| 单个云盘上限 | 10 GiB | 1 TiB |
| 一个项目所有云盘合计 | 15 GiB | 不限 |
| 单个沙箱挂载的云盘和存储卷 | 8 | 8 |
付费版的云盘数量是软限制:可以请我们提高。企业账户可以获得最大 16 TiB 的云盘。参见限制页面。
尚未支持
- 方块的版本只能以读写方式挂载云盘:快照的只读挂载只供沙箱使用。