在华为云上,弹性云服务器(ECS) 负责提供计算能力,而对象存储服务(OBS) 则作为数据湖存放代码、模型和数据集。本文将手把手带你完成这两项核心资源的创建,并实现它们之间的高效数据流转。

在开始动手之前,我们需要明确这两个服务在 ModelArts 开发流程中的角色分工。ECS 是一台你可以随时远程登录的“云端电脑”,适合用来做环境调试、镜像构建等较重的工作;而 OBS 是一个海量的“云盘”,安全性高、成本低,用来持久化存储你的训练脚本、模型权重和日志文件。

下图展示了它们与 ModelArts 协同工作的基本流程:


🚀 第一步:创建弹性云服务器(ECS)

ECS 的创建主要关注区域、规格、镜像和网络这几个关键要素。

1. 登录并进入购买页面

登录华为云控制台,在左上角服务列表中选择“弹性云服务器 ECS”,然后点击“购买弹性云服务器”。

2. 配置关键参数(建议与 ModelArts 保持一致)

为了后续与 ModelArts 及 OBS 顺畅联动,请重点配置以下参数:

配置项 推荐选择 说明与理由
区域 选择与 ModelArts 工作区相同区域(如“华北-北京四”) 必须与 OBS 和 ModelArts 在同一区域,否则无法内网访问,产生额外流量费用。
CPU 架构 鲲鹏计算 (ARM) ModelArts 训练和推理环境多基于 ARM 架构,使用鲲鹏服务器可以更好地兼容后续的模型镜像构建。
镜像 Huawei Cloud EulerOS 华为云官方推荐的操作系统,对底层服务和 Docker 有较好的优化支持。
弹性公网IP 现在购买(带宽建议 5M 或更高) 方便我们后续通过 SSH 远程登录,并下载 obsutil 等工具。
登录凭证 设置 root 密码 首次创建时设置好密码,用于远程连接。

其他选项如可用区、虚拟私有云(VPC)等可按默认或根据现有网络规划选择。创建完成后,在服务器列表页可以找到你的 ECS 实例。

📦 第二步:创建对象存储服务(OBS)桶

OBS 桶是用来存放数据的最基本容器。

1. 进入 OBS 控制台

在华为云控制台服务列表中选择“对象存储服务 OBS”。

2. 创建桶

点击“创建桶”,关键配置如下:

  • 区域必须与 ECS 和 ModelArts 在同一区域,这是实现免费内网传输的前提。

  • 桶名称:全局唯一,例如 modelarts-<你的自定义后缀>,需为小写字母、数字和短横线的组合。

  • 存储类别:标准存储(适用于需要频繁访问的训练数据和模型文件)。

  • 桶策略:私有(保障数据安全,后续通过授权来访问)。

点击“立即创建”即可。创建成功后,在桶内可以“新建文件夹”来组织数据,例如 /data(存放训练集)、/code(存放脚本)、/logs(存放训练日志)。

🔗 第三步:在 ECS 上安装并使用 obsutil 上传/下载数据

obsutil 是华为云官方提供的命令行工具,非常适合在 ECS 服务器上进行批量、自动化的文件传输。

1. 登录 ECS 并下载 obsutil

通过 SSH 工具(如 PuTTY)用弹性公网 IP 登录你的 ECS 服务器。执行以下命令下载并解压 obsutil(注意:如果你的 ECS 是 鲲鹏(ARM) 架构,需将 amd64 替换为 arm64):

bash

# 下载 obsutil
wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz

# 解压
tar -xzf obsutil_linux_amd64.tar.gz

# 授予执行权限(注意替换为实际解压出的文件名)
chmod 755 obsutil
2. 初始化配置(鉴权)

运行以下命令进行身份认证,需要用到华为云的 AK(Access Key ID) 和 SK(Secret Access Key)

bash

./obsutil config -i=你的AK -k=你的SK -e=obs.区域代码.myhuaweicloud.com

区域代码如北京四为 cn-north-4,贵阳一为 cn-southwest-2。可在 OBS 桶概览页获取终端节点。

3. 上传与下载数据

配置完成后,即可在 ECS 和 OBS 间进行数据交互:

  • 从 ECS 上传文件至 OBS

    bash

    # 上传单个文件
    ./obsutil cp /本地路径/文件名.txt obs://你的桶名/目标路径/
    
    # 上传整个文件夹(递归)
    ./obsutil cp /本地文件夹/ obs://你的桶名/目标路径/ -r
  • 从 OBS 下载文件至 ECS

    bash

    # 下载单个文件
    ./obsutil cp obs://你的桶名/文件路径/文件名.txt /本地目标路径/
    
    # 下载整个文件夹
    ./obsutil cp obs://你的桶名/目标路径/ /本地目标路径/ -r

小提示:对于动辄数 GB 的大模型文件,obsutil 支持断点续传。通过 -threshold=52428800 参数可将超过 50MB 的文件自动切换为分段上传/下载,提高稳定性和速度。


⚠️ 避坑指南与最佳实践

  1. 区域一致性:这是新手最容易踩的坑。ECS、OBS 和 ModelArts 资源必须在同一个区域,否则无法通过内网免费传输数据,不仅速度慢,还会产生高额的流量费用。

  2. 架构匹配:如果你计划在 ECS 上制作 Docker 镜像并用于 ModelArts,请务必选择 鲲鹏(ARM) 架构的 ECS。使用 X86 架构制作的镜像可能无法在 ModelArts 的 ARM 训练节点上运行。

  3. 替代工具

    • OBS Browser+:如果你更习惯图形界面操作,可以在本地电脑安装此工具,用于小批量文件的上传下载。

    • ModelArts SDK/Moxing:如果你在 ModelArts 的 Notebook 环境中,可以直接使用 mox.file.copy_parallel 或 session.obs.copy 接口与 OBS 交互,无需安装额外工具。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐