GPU算力不足和数据丢失风险一直都是“炼丹人”的两大痛点。
我就不太懂,把所有项目文件、数据集、conda环境全塞在系统盘里。结果有一天系统盘爆满,连关机都关不了。所以把今天这篇内容分享给你,希望你能早早避开这个坑。


为什么会有这个问题?系统盘通常容量小、不持久化,一旦实例被释放,一切归零;而数据盘虽然可以挂载,但很多人不知道怎么把环境、代码、数据集高效迁移过去。


本文将带你一步步解决这个问题:从本地备份,到大文件迁移到数据盘,再到新文件默认存到数据盘,最后实现同地区实例间的快速复用。掌握这套流程,以后无论是实例释放还是重新创建,都不能阻挡你快速开始训练。

一、 准备工作

鉴于操作可能存在失误风险,强烈建议在操作前,将实例内的重要文件(数据集、项目文件、运行环境等)先行备份至本地存储。我使用的是WinSCP。

  • 下载与安装
    确保本地已安装 WinSCP。如未安装,可从官网 WinSCP 下载并完成安装。

在这里插入图片描述

  • 获取登录信息
    准备好远程实例的 IP 地址、端口、用户名和密码。

在这里插入图片描述

1.连接到远程实例

打开 WinSCP,在弹出的登录对话框中,按以下方式配置:

  • 文件协议:通常选择 SFTP(默认且安全)。
  • 主机名:输入远程实例的公网 IP 地址。
  • 端口号:默认为 22
  • 用户名:输入实例的登录用户名(如 rootubuntu)。
  • 密码:输入实例的登录密码。

在这里插入图片描述

点击 登录

在这里插入图片描述

再次输入密码

在这里插入图片描述

2.执行备份(下载)

登录成功后,界面分为左右两栏, 左侧为本地 Windows 电脑的目录,右侧:远程实例的目录。

在这里插入图片描述

执行备份(下载)

  • 方法一:拖拽下载
    在右侧选中一个或多个文件/文件夹,直接用鼠标拖拽到左侧本地电脑的目标文件夹中,即可开始下载。

  • 方法二:使用“下载”按钮
    选中右侧的文件夹或文件,然后点击界面上方的 下载 按钮,在弹出的窗口中选择本地保存路径后确认。

  • 环境配置备份:建议先通过终端执行 conda env export > environment.yml 导出配置文件,再备份该文件,这样更节省空间。

二、将大文件移到数据盘

AutoDL 默认把 /root 目录放在系统盘,所以 Conda 环境、项目文件都会占系统盘空间。下面提供两种方法解决系统盘爆满问题。
在这里插入图片描述

# 查看整体磁盘使用
df -h

# 查看根目录下各文件夹大小(从大到小排序)
du -sh /* | sort -hr

# 进一步定位到/root目录(用户数据主要在这里)
du -sh /root/* | sort -hr

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.迁移Conda环境

AutoDL 实例一般会挂载数据盘,空间比系统盘大很多,先把占空间的内容搬过去
在这里插入图片描述

# 1. 先退出 conda 环境(如果有激活的环境)
conda deactivate

# 2. 在数据盘创建新目录
mkdir -p /root/autodl-tmp/conda

# 3. 迁移整个 Conda 目录
mv /root/miniconda3 /root/autodl-tmp/conda/

# 4. 确认迁移成功
ls /root/autodl-tmp/conda/   # 应该能看到 miniconda3 目录

# 5. 建立软链接
ln -s /root/autodl-tmp/conda/miniconda3 /root/miniconda3

# 6. 验证
ls -ld /root/miniconda3       # 应该显示指向数据盘的软链接
conda --version               # 应该正常输出版本号

笑鼠,中间有一步卡住了,我Ctrl+C终止了,结果环境激活不了了。我又重新配的环境。这一步你可以跳过。

  • 清空 /root/autodl-tmp 所有内容
rm -rf /root/autodl-tmp/*
  • 重新安装 Miniconda
cd /root/autodl-tmp
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p ./miniconda3
  • 激活 Conda + 创建 reid 环境
source /root/autodl-tmp/miniconda3/bin/activate
conda create -n reid python=3.8 -y
conda activate reid
  • 让 conda 永久生效
conda init bash
source ~/.bashrc

以后任何新开终端,直接输入:

conda activate reid

就能进入环境!

在这里插入图片描述

2.迁移项目文件 / 数据集

把项目文件夹、数据集搬到数据盘

mv /root/your_project /root/autodl-tmp/
mv /root/datasets /root/autodl-tmp/

同样建立软链接(方便后续访问)

ln -s /root/autodl-tmp/your_project /root/your_project
ln -s /root/autodl-tmp/datasets /root/datasets

三、新环境、新项目默认存到数据盘

以后创建新环境、新项目时,直接让它们默认存在数据盘,避免再占系统盘。

1.Conda 环境默认安装到数据盘

方法一:修改 Conda 配置(推荐)

# 修改 Conda 的环境目录默认路径
conda config --add envs_dirs /root/autodl-tmp/conda/envs
conda config --add pkgs_dirs /root/autodl-tmp/conda/pkgs

验证配置是否生效:

conda config --show envs_dirs
conda config --show pkgs_dirs

之后执行 conda create -n new_env python=3.8 时,新环境会自动创建在 /root/autodl-tmp/conda/envs/ 下。

方法二:创建时指定路径

# 创建环境时直接指定路径
conda create --prefix /root/autodl-tmp/conda/envs/myenv python=3.8

# 激活时也需要用完整路径
conda activate /root/autodl-tmp/conda/envs/myenv

2.项目文件/数据集默认存到数据盘

创建项目时,直接在 /root/autodl-tmp 下操作,不要在 /root 下。

# 进入数据盘
cd /root/autodl-tmp

# 创建项目目录
mkdir -p my_project
mkdir -p datasets

# 进入项目目录开始工作
cd my_project

可选:设置默认终端路径

如果你希望每次登录终端时自动进入数据盘,可以将以下命令添加到 ~/.bashrc 文件末尾:

echo "cd /root/autodl-tmp" >> ~/.bashrc
source ~/.bashrc

这样每次打开终端,会自动定位到数据盘,可以避免在系统盘创建文件。

3. 验证默认路径已生效

# 查看当前所在目录
pwd
# 应显示 /root/autodl-tmp

# 查看数据盘使用情况
df -h /root/autodl-tmp

# 查看系统盘使用情况(确保不再暴涨)
df -h /

四、同地区迁移实例

同时迁移实例中的系统盘和数据盘数据,不仅能有效避免因空闲GPU不足而无法训练的问题,还可作为一种备份手段。这个方法真的巨快!!!特别好用!

1. 同地区无实例

在实例关机的情况下,点击更多—>克隆实例进行克隆。
在这里插入图片描述
在这里插入图片描述
点击继续即可跳转到同地区的创建实例页面,选择一台新主机创建实例即可。
在这里插入图片描述

如果在克隆时忘了勾选同时拷贝数据盘,可以在新实例创建完成后,点击原实例的更多操作—>跨实例拷贝数据—>拷贝数据盘 ,完成数据盘的拷贝。

2.同地区已有实例

点击原实例的"更多操作"—>“跨实例拷贝数据”,分别拷贝系统盘、数据盘。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

更多推荐