存储与数据管理

SynpixCloud 磁盘管理、数据传输和存储指南

概述

SynpixCloud 实例提供可配置的存储选项。了解存储工作原理有助于您有效管理数据并优化成本。

存储类型

系统盘

  • 用途 - 操作系统、软件和依赖项
  • 默认大小 - 根据镜像不同(通常 50-100 GB)
  • 持久性 - 与实例生命周期绑定

数据盘

  • 用途 - 数据集、模型和用户数据
  • 可配置 - 在实例创建时选择大小
  • 保留 - 实例停止时可以保留

磁盘保留

当您停止或销毁实例时,您可以选择数据处理方式:

选项数据保留存储费用适用场景
不保留无持续费用临时工作负载
保留磁盘持续存储费用长期项目

如果未启用磁盘保留,实例销毁时所有数据将丢失。务必备份重要数据!

启用磁盘保留

  1. 在实例创建过程中,启用 磁盘保留
  2. 对于现有实例,转到 设置 > 存储
  3. 在停止前切换磁盘保留选项

扩展磁盘空间

如果您需要更多存储空间:

在线扩容

部分实例支持在线磁盘扩容:

  1. 转到实例 设置 > 存储
  2. 点击 扩展磁盘
  3. 选择新大小
  4. 确认并支付差额

扩展文件系统

扩展磁盘后,扩展文件系统:

# 检查当前磁盘大小
df -h

# 调整分区大小(如需要)
sudo growpart /dev/vda 1

# 扩展 ext4 文件系统
sudo resize2fs /dev/vda1

# 或对于 XFS 文件系统
sudo xfs_growfs /

数据传输

上传文件

使用 SCP

# 上传单个文件
scp -P <> local_file.zip root@<>:/root/

# 上传目录
scp -P <> -r local_folder root@<>:/root/

使用 rsync(推荐用于大文件传输)

# 带进度同步
rsync -avz --progress local_folder/ root@<>:/root/data/ -e "ssh -p <端口>"

# 恢复中断的传输
rsync -avz --partial --progress large_file.zip root@<>:/root/ -e "ssh -p <端口>"

使用 SFTP

sftp -P <> root@<>
sftp> put local_file.zip
sftp> get remote_file.zip

下载文件

# 从实例下载到本地
scp -P <> root@<>:/root/results.zip ./

# 下载目录
scp -P <> -r root@<>:/root/output ./

大型数据集传输

对于非常大的数据集,考虑:

  1. 云存储同步 - 使用 rclone 与 S3、GCS 等同步
  2. wget/curl - 直接从 URL 下载
  3. HuggingFace Hub - 使用 huggingface-cli 下载模型
# 安装 rclone
curl https://rclone.org/install.sh | sudo bash

# 配置云存储
rclone config

# 从云端同步
rclone sync remote:bucket/data /root/data

HuggingFace 模型下载

高效下载 HuggingFace 模型:

# 安装 CLI
pip install huggingface_hub

# 登录(可选,用于私有模型)
huggingface-cli login

# 下载模型
huggingface-cli download meta-llama/Llama-2-7b --local-dir ./models

镜像加速(中国大陆)

在中国大陆使用镜像加速下载:

# 设置 HuggingFace 镜像
export HF_ENDPOINT=https://hf-mirror.com

# 然后正常下载
huggingface-cli download model-name

存储最佳实践

1. 组织您的数据

/root/
├── code/           # 源代码
├── data/           # 数据集
├── models/         # 训练好的模型
├── checkpoints/    # 训练检查点
└── output/         # 结果和日志

2. 定期备份

# 备份到本地机器
rsync -avz root@<>:/root/important/ ./backup/ -e "ssh -p <端口>"

# 备份到云存储
rclone sync /root/important remote:bucket/backup

3. 清理临时文件

# 清除 pip 缓存
pip cache purge

# 清除 conda 缓存
conda clean --all

# 清除 apt 缓存
sudo apt clean

# 查找大文件
du -sh /* | sort -hr | head -20

4. 使用压缩

# 传输前压缩
tar -czvf data.tar.gz data/

# 在远程解压
tar -xzvf data.tar.gz

存储监控

检查磁盘使用情况

# 整体磁盘使用
df -h

# 目录大小
du -sh /root/*

# 查找最大的文件
find /root -type f -exec du -h {} + | sort -hr | head -20

设置警报

在训练脚本中监控磁盘使用:

import shutil

def check_disk_space(path="/", threshold_gb=10):
    total, used, free = shutil.disk_usage(path)
    free_gb = free // (2**30)
    if free_gb < threshold_gb:
        print(f"警告:剩余空间仅 {free_gb}GB!")
    return free_gb

故障排除

磁盘已满

  1. 检查空间占用:du -sh /* | sort -hr
  2. 清除缓存(pip、conda、apt)
  3. 删除不需要的文件/检查点
  4. 如需要可扩展磁盘

无法写入磁盘

  1. 检查权限:ls -la /path/to/dir
  2. 检查磁盘空间:df -h
  3. 检查文件系统是否以只读方式挂载:mount | grep " / "

传输速度慢

  1. 使用压缩:rsync -avz
  2. 对多个小文件使用并行传输
  3. 检查两端的网络带宽

支持

有存储相关问题?请联系我们:support@synpixcloud.com