ModelArts 实战:从零搭建 ECS 服务器与 OBS 存储,并实现数据互通
在华为云上,弹性云服务器(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 的文件自动切换为分段上传/下载,提高稳定性和速度。
⚠️ 避坑指南与最佳实践
-
区域一致性:这是新手最容易踩的坑。ECS、OBS 和 ModelArts 资源必须在同一个区域,否则无法通过内网免费传输数据,不仅速度慢,还会产生高额的流量费用。
-
架构匹配:如果你计划在 ECS 上制作 Docker 镜像并用于 ModelArts,请务必选择 鲲鹏(ARM) 架构的 ECS。使用 X86 架构制作的镜像可能无法在 ModelArts 的 ARM 训练节点上运行。
-
替代工具:
-
OBS Browser+:如果你更习惯图形界面操作,可以在本地电脑安装此工具,用于小批量文件的上传下载。
-
ModelArts SDK/Moxing:如果你在 ModelArts 的 Notebook 环境中,可以直接使用
mox.file.copy_parallel或session.obs.copy接口与 OBS 交互,无需安装额外工具。
-
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)