2. HPE Alletra 管理入口与 API 体系

HPE Alletra 的管理能力并不是由单一工具完成的,而是由一组职责不同、层级不同的入口共同构成。理解这些入口的边界,比记住某个具体命令更重要:当你要做一次容量巡检、批量创建卷、接入监控平台或编写自动化脚本时,选错入口往往会导致重复劳动,甚至误改生产配置。本节围绕五个核心入口展开:DSCC、Array Management、REST API、CLI 与 SDK,重点说明它们各自“管什么、不管什么”,以及在实际调用链中如何衔接。

一、五个入口的定位与职责边界

DSCC(Data Services Cloud Console)是面向多阵列、多站点的云端统一管理平面。它的核心价值在于“跨设备、跨站点的集中视图与策略下发”,例如统一查看多个 Alletra 阵列的健康状态、容量趋势、告警汇总,以及执行跨阵列的固件合规检查。DSCC 不直接替代单阵列的细粒度配置,它更像一个上层控制台,负责把分散的阵列纳入统一治理。

Array Management(阵列管理界面)是单阵列的本地管理入口,通常以 Web UI 形式提供。它负责该阵列内部的卷、主机、主机组、快照、复制、QoS、告警等具体配置。它的边界是“单阵列内”,不负责跨阵列编排,也不承担云端统一策略。日常的单机变更、故障排查、性能查看,优先使用 Array Management。

REST API是 Alletra 对外暴露的编程接口,是自动化与集成的核心通道。DSCC 和 Array Management 的许多操作,底层都通过 REST API 完成。REST API 的职责是“把管理能力以 HTTP 资源的形式暴露出来”,包括认证、查询、创建、修改、删除等。它不提供图形界面,也不负责业务编排逻辑,编排逻辑由调用方(脚本、平台、SDK)实现。

CLI是面向工程师的命令行入口,适合快速查询、脚本化批处理以及在没有图形界面的环境中操作。CLI 通常封装了部分 REST API 能力,提供更贴近运维习惯的交互方式。它的边界是“命令级操作”,适合精确、可重复的执行,但不适合作为长期跨阵列治理的主入口。

SDK是面向开发者的语言级工具包,通常以 Python、Go 等语言提供,封装了 REST API 的认证、请求构造、错误处理和分页等细节。SDK 的职责是“降低编程调用成本”,让开发者用更少的代码完成自动化。它不改变 API 的能力边界,只是让调用更高效、更可维护。

二、调用关系:从上层入口到底层 API

这五个入口并非并列关系,而是存在清晰的调用链。DSCC 作为云端统一平面,通过 REST API 与各阵列通信;Array Management 作为本地界面,同样通过 REST API 操作阵列;CLI 和 SDK 则直接调用 REST API。也就是说,REST API 是“能力底座”,其他入口是不同形态的“调用者”。

HPE Alletra 管理入口调用关系 DSCC 云端统一管理平面 跨阵列 / 跨站点 / 策略下发 Array Management 单阵列本地 Web UI 卷 / 主机 / 快照 / QoS CLI 命令行入口 快速查询 / 批处理 SDK 语言级工具包 Python / Go 封装 REST API(能力底座) 认证 / 查询 / 创建 / 修改 / 删除 / 分页 / 错误码 HTTP 资源接口,所有上层入口的公共通道 Alletra 阵列(存储资源) HTTPS HTTPS HTTPS HTTPS

从图中可以看出,REST API 位于最底层,是唯一直接与阵列交互的通道。DSCC、Array Management、CLI、SDK 都是不同形态的调用者。理解这一点后,选择入口就有了明确依据:需要跨阵列统一治理,用 DSCC;需要单阵列精细配置,用 Array Management;需要快速命令操作,用 CLI;需要编写可维护的自动化程序,用 SDK;而所有入口最终都落到 REST API 上。

三、实际调用示例:以创建卷为例

假设需要在 Alletra 阵列上创建一个 2TB 的卷,并分配给某台主机。不同入口的操作方式不同,但底层动作一致。

通过 Array Management,操作路径是:登录 Web UI → 选择“卷” → 点击“创建卷” → 填写名称、容量、主机组 → 提交。界面会调用 REST API 的 POST /volumes 接口完成创建。

通过 CLI,可以使用类似如下命令(示例参数,实际以环境为准):

# 示例:创建卷并查询状态
alletra volume create --name vol_app01 --size 2TB --host-group hg_app
alletra volume list --name vol_app01

通过 SDK(以 Python 为例),代码结构通常如下:

# 示例:使用 SDK 创建卷
from alletra_sdk import Client

client = Client(host="array.example.com", token="<token>")
vol = client.volumes.create(name="vol_app01", size="2TB", host_group="hg_app")
print(vol.id, vol.status)

无论走哪条路径,最终都是 REST API 在阵列上执行创建动作。区别在于:Array Management 提供可视化确认,CLI 适合快速执行,SDK 适合嵌入更大的自动化流程。选择时,关键看“这次操作是一次性的,还是要被重复、被集成、被审计”。

四、边界判断:什么时候不该用某个入口

DSCC 不适合做单阵列的细粒度调参,例如修改某个卷的 QoS 上限,这类操作应回到 Array Management 或直接调用 REST API。Array Management 不适合跨阵列批量操作,例如同时为 20 个阵列打固件补丁,这类任务应交给 DSCC 或 SDK 脚本。CLI 不适合作为长期集成方案,因为命令输出格式可能随版本变化,而 REST API 和 SDK 的接口契约更稳定。SDK 不适合临时排查,因为编写和调试代码的成本高于直接点界面或敲一条命令。

选择入口的实用原则:一次性、单阵列、需要可视化确认 → Array Management;跨阵列、统一策略、集中视图 → DSCC;快速查询或批处理 → CLI;需要嵌入程序、长期维护、可审计 → SDK;所有入口的公共底座 → REST API。

五、认证与调用链中的关键细节

无论使用哪个入口,认证都是第一步。REST API 通常采用令牌或会话机制,SDK 会封装令牌获取与刷新,CLI 可能使用配置文件或环境变量保存凭据。DSCC 与阵列之间的通信也需要建立信任关系,通常通过注册阵列、配置证书或使用服务账号完成。实际运维中,建议为自动化单独创建服务账号,避免使用个人账号,以便审计和权限回收。

调用链中另一个关键点是错误处理。REST API 返回的 HTTP 状态码和错误体是判断操作结果的主要依据。例如,201 表示创建成功,400 表示请求参数有误,401 表示认证失败,409 可能表示资源冲突。SDK 通常会把这些错误封装为异常,CLI 会输出错误信息,Array Management 会弹出提示。理解这些信号,才能在自动化中正确判断“是否真的完成了”。

注意:不要假设所有入口的能力完全一致。某些高级功能可能只在 REST API 或 SDK 中暴露,而 DSCC 可能只提供部分策略管理能力。实际实施前,应以当前版本的 API 文档和界面功能为准,避免因入口能力差异导致操作失败。

六、小结:用调用关系指导日常选择

把五个入口放在一张调用关系图里,选择就变得清晰:REST API 是底座,DSCC、Array Management、CLI、SDK 是不同场景下的调用者。日常运维中,先判断任务范围(单阵列还是跨阵列)、执行频率(一次性还是重复)、集成需求(人工还是程序),再对应选择入口。这样既能避免重复劳动,也能让自动化脚本建立在稳定的 API 契约之上,而不是依赖易变的界面或命令输出。