将数据迁移至块存储 | AI生成和翻译

Home 2026.06

问题: 如何设置一个 DigitalOcean 块存储卷,并将我当前的 GPU 云主机上的 130GB 模型/数据文件移动到该卷上?

回答:

第一步:创建卷

在创建云主机时,在 DigitalOcean 界面中,选择“Add a Volume”下的 “Create new”

如果云主机已存在,也可以通过 doctl 创建:

doctl compute volume create my-ml-data \
  --region sfo3 \
  --size 150 \
  --fs-type ext4

第二步:格式化并挂载(仅首次)

SSH 进入云主机:

# 检查卷的设备名称(通常是 /dev/sda 或 /dev/disk/by-id/...)
lsblk

# 格式化(仅首次执行一次)
mkfs.ext4 /dev/sda

# 创建挂载点
mkdir -p /mnt/data

# 挂载
mount /dev/sda /mnt/data

# 验证
df -h /mnt/data

第三步:将 130GB 数据移动到卷上

# 如果数据当前在根磁盘上
rsync -avh --progress /root/data/ /mnt/data/
# 或者
cp -r /your/model/weights /mnt/data/

# 确认复制无误后,从根磁盘删除
rm -rf /root/data/

如果数据在本地机器或工作站(192.168.1.36)上,可以直接推送到卷:

# 从工作站执行
rsync -avh --progress --compress \
  /local/path/to/data/ \
  root@<云主机IP>:/mnt/data/

第四步:使挂载持久化(同一云主机会话内)

若要在同一云主机重启时自动挂载:

# 获取 UUID
blkid /dev/sda

# 添加到 fstab
echo "UUID=<你的UUID>  /mnt/data  ext4  defaults,nofail  0  2" >> /etc/fstab

第五步:会话结束——分离卷,不要快照

# 卸载前先分离
umount /mnt/data

# 通过 doctl 分离
doctl compute volume-action detach <卷ID> <云主机ID>

# 现在可以安全销毁云主机
doctl compute droplet delete <云主机ID> --force

第六步:下一次会话——附加并挂载

# 创建新云主机(从精简的 OS 快照)
doctl compute droplet create ...

# 附加卷
doctl compute volume-action attach <卷ID> <新云主机ID>

# SSH 进入,挂载
mount /dev/sda /mnt/data

# 你的 130GB 数据就在那里,无需等待加载
ls /mnt/data

你的新工作流程总结

旧方式:创建快照(20分钟)→ 恢复(快,但延迟加载)
新方式:卷持久化 → 附加(瞬间)→ 挂载(2秒)→ 开始工作

130GB 数据无需移动。它始终保留在卷上,分离状态,闲置时每月约花费 $15,随时可在数秒内附加到任何新的 GPU 云主机上。


Back Donate