存储概述
本文概述了 AIStudio 的存储服务能力。AIStudio 为用户提供了多种存储选项,可分为预置存储和扩充存储两大类。
预置存储
智算云平台为每个容器提供了预置存储,为容器运行提供基础存储空间。
系统盘
AIStudio 的开发机、任务、推理服务均提供系统盘。您可以使用 df -h / 命令查看 rootfs 的用量信息。
| 服务 | 容量 | 持久化 | 说明 |
|---|---|---|---|
| 开发机 | 100GiB | 是 | root 文件系统(/tmp 路径例外,关机时清除) |
| 任务 | 50 GiB | 否 | 任务 Worker 的 root 文件系统 |
| 推理 | 50 GiB | 否 | 推理服务实例的 root 文件系统 |
扩充存储
除了预置存储外,您还可以根据需要配置扩充存储,满足更大数据量或特殊场景的需求。扩充存储包括云盘和共享高性能存储。详见扩充存储。
云盘
云盘为非共享的扩充存储,基于分布式块存储的持久化存储。
- 仅限单台开发机挂载使用。
- 仅可在开发机运行时访问该机云盘。
- 暂仅支持按量付费型开发机。
共享高性能存储
共享高性能存储是租户级别的高性能文件存储,支持多个服务同时挂载和访问,适合团队协作和大规模数据处理场景。
- 支持开发机、任务、推理服务、AICoder 同时挂载使用。
- 提供基于用户/用户组的权限控制。
- 数据永久保存,删除服务实例不影响存储数据。
- 需要联系商务购买,暂不支持线上自助购买。
AIStudio 在多个地理位置部署了集群,每个可用区的高性能存储相互独立。在某个可用区购买的高性能存储,仅能被该可用区的服务实例使用。
详见扩充存储。
共享内存
AIStudio 的开发机、任务(Worker)均挂载了基于 Linux 虚拟内存的 /dev/shm,用于存放多次读写的临时数据,这些数据需要快速访问且在系统重启后不需要保留。在创建开发机或任务时,可以看到**共享内存(shm)**配置项。默认为资源规格内存容量的一半,暂不支持修改。
一般情况下,建议避免手动写入数据到 /dev/shm。推荐由专门的库、框架或应用程序自行管理,例如 Pytorch 的 Dataloader 在多进程加载数据时会使用 /dev/shm。
Filesystem Size Used Avail Use% Mounted on
overlay 50G 36M 50G 1% /
tmpfs 64M 0 64M 0% /dev
gpfs 60T 53T 7.5T 88% /mnt/public
tmpfs 56G 0 56G 0% /dev/shm
...提示
如果使用开发机的 Docker 功能,开发机内启动的 Docker 容器也挂载了 /dev/shm,但默认大小为 64MB,支持通过 --shm-size 选项调整。详见 Docker 功能。
常见问题
我的文件应该放在开发机的哪个目录下?
在平台的开发机中,您可以将代码、模型和数据保存在根目录 / 下的大部分位置(例如 /root 或您新建的文件夹)。由于平台提供了 OverlayFS 持久化能力,这些数据在开发机重启依然存在。
开发机默认以 root 用户登录,且平台对开发机的系统盘(OverlayFS)做了持久化处理,系统盘上的以下目录是安全的,适合存放代码、Checkpoint 和数据集:
/root:这是默认的主目录(Home),也是最推荐的存放位置。/home:如果您习惯使用/home目录,这里也是安全的。/opt//usr:如果您安装了新的软件库或系统工具,它们会被保留。- 自定义目录:您可以在根目录下创建任意文件夹(如
mkdir /my-project),它们同样会被持久化保存。
提示
系统盘限额 100 GiB。虽然系统盘是持久化的,但如果您的数据量非常大,建议挂载额外的扩充存储到特定目录,以获得更好的 I/O 性能和成本效益。
在内存文件系统(tmpfs)路径下的数据会在重启后立即丢失,请务必避免将重要文件保存在使用 tmpfs 文件系统或其他不使用 overlayfs 的任何路径(平台提供的扩充存储除外),因为它们是基于内存(RAM)或系统临时的。您可以通过 df -h 观察开发机内部挂载点所使用的文件系统。
root@is-db6pld5naekptdjd-devmachine-0:~# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 100G 36M 100G 1% /
tmpfs 64M 0 64M 0% /dev
tmpfs 29G 0 29G 0% /dev/shm
/dev/sdb 3.5T 689G 2.9T 20% /etc/hosts
tmpfs 493G 70M 493G 1% /opt/mizar
/dev/mapper/ubuntu--vg-ubuntu--lv 437G 121G 297G 29% /opt/aeon/docker
tmpfs 51G 54M 51G 1% /run/aeon/container
tmpfs 493G 12K 493G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 252G 12K 252G 1% /proc/driver/nvidia
tmpfs 252G 4.0K 252G 1% /etc/nvidia/nvidia-application-profiles-rc.d
tmpfs 252G 0 252G 0% /proc/acpi
tmpfs 252G 0 252G 0% /proc/scsi
tmpfs 252G 0 252G 0% /sys/firmware如果我对弹性开发机执行关机操作,我的数据会被删掉吗?
不会。请您放心关机。无论是包年包月开发机、弹性开发机,还是其他类型的开发机,平台均对您的系统盘(OverlayFS)提供完全的持久化保护。
虽然开发机使用按量计费的弹性算力资源,但当您关闭弹性开发机时,平台也仅仅回收算力资源(如 GPU 和 CPU),而您的数据存储会被完整保留。下次开机时,系统会重新为您分配计算资源,并挂载您之前的系统盘。您会发现所有的代码、环境配置和文件都与您上次关机时一致。
注意
- 平台算力与存储是分开提供的独立服务,算力回收不影响存储服务。
- 平台为所有开发机系统盘提供 100 GiB 的免费持久化存储空间。
- 如果您为弹性开发机购买了云盘扩容空间,关机时云盘会持续计费,只至云盘被删除或开发机被删除。详见云盘。
- 对连续 30 天处于关机状态的开发机,平台将删除系统盘数据。删除前将短信提醒绑定手机号。
/dev/shm 大小可以调整吗?
开发机、任务 Worker、推理实例的 /dev/shm 默认为当前使用的算力规格内存的一半,暂不支持修改。
开发机启用 Docker 容器功能后,在开发机内启动的容器默认仅有 64M 大小的 /dev/shm,可在 docker run 命令中添加 --shm-size 调整共享内存大小。该修改仅适用于开发机内部启动的容器。
/dev/shm 的数据会保存吗?
不会,/dev/shm 是基于内存的临时文件系统,系统重启后数据会丢失。