ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

ONTAP集群初始化:GUI走不通时,CLI命令与避坑指南

ONTAP集群初始化:GUI走不通时,CLI命令与避坑指南

简介:这份资源面向联想凌拓 ThinkSystem DM 系列存储的运维与实施人员,聚焦 ONTAP 集群初始化配置场景,解决 GUI 向导无法覆盖的配置需求,例如 MetroCluster 配置或仅限 IPv6 的环境,属于偏进阶的实操型配置手册。资源包共 1 个 PDF 文件,约 411KB,篇幅精炼,便于随查随用。内容按五章展开:先说明何时应改用 CLI 集群设置向导,再梳理集群设置工作流程,随后详解各节点设置、首节点建集群、剩余节点加入及集群设置工作表填写,并给出 NTP 对称认证、EMS 事件邮件与 syslog 转发、SNMP 陷阱主机等通知配置方法,另含预配置 ONTAP 模板配置 SVM 与其他系统配置任务,附录提供支持机构与声明信息。已有 670 人学习,适合需要按官方流程完成集群初始化、对照工作表逐项核对参数并配置事件通知的读者参考。

1. 当 GUI 向导点不下去时,CLI 才是那条退路

上周有个做运维的朋友发来一张截图,集群设置向导卡在“正在配置集群网络”那一步,转圈转了二十分钟,浏览器控制台一堆超时。他问我是不是硬件有问题。我看了一眼他的环境描述:纯 IPv6 地址段,两台交换机做 ISL。这就不是硬件的事,是 GUI 向导压根没打算支持这种配置。

ThinkSystem DM 系列存储的 ONTAP 集群初始化,官方路径是存储管理软件 GUI 向导,点点点就能把集群建起来。但 GUI 有明确的覆盖边界:MetroCluster 配置、仅限 IPv6 的配置,这两类场景向导直接不接。另外还有一类隐性翻车场景——网络环境里有防火墙策略拦截了向导依赖的回调端口,页面能打开但提交永远超时,这种时候你盯着浏览器是看不出所以然的。

这份《软件设置指南》第三版(2019 年 8 月)就是为这些“GUI 走不通”的时刻准备的。它把集群设置工作表、首节点建集群、节点逐个加入、NTP 时间同步、EMS 事件通知、SVM 模板化配置这几件事,全部落到 ONTAP CLI 命令上。适合两类人:一是手上有一批 DM 存储要初始化、环境又不满足 GUI 前提的存储工程师;二是想搞明白 GUI 背后到底执行了哪些命令、方便排错和自动化的人。下面按我实际拆这套流程的顺序讲,命令可以直接抄,参数含义和踩坑点我会标出来。

2. 集群设置工作表:先把值填满再碰控制台

CLI 建集群和 GUI 最大的区别是:GUI 会一步步问你,填错了还能退回去改;CLI 向导是一路往下走的,中途某个值填错,轻则重跑cluster setup,重则集群建到一半卡住。所以动手之前,把工作表填完整这件事不是形式主义,是省后悔药。

2.1 三类地址必须先规划清楚

工作表里信息量最大的是地址规划,容易混的是三套网络:集群网络(cluster network)、集群管理网络(cluster management)、节点管理网络(node management)。这三套不是一回事,我第一次配的时候就因为把集群管理口和节点管理口放同一个网段,后面做 LIF 迁移时路由表打架,查了半天。

集群网络是节点之间私有的互连网络,走集群交换机,默认网段 169.254.x.x,掩码 255.255.0.0。这里有个硬性约束:每个集群交换机必须使用 9000 MTU,节点上每个集群网络端口也要配成 9000 字节,两边不一致会导致节点间心跳丢包,集群显示降级但不会告诉你原因。工作表里“专用集群网络端口”那一栏就是记这个的。

集群管理接口是管理员访问管理 SVM 用的,通常放在数据网络上,需要一个唯一 IPv4 或 IPv6 地址、掩码、默认网关。节点管理接口是管单个节点的,如果这个端口被定义成数据端口,那它的 IP 和掩码就得跟数据网络对齐。DNS 域名、名称服务器 IP 也在这部分填,后面配 NTP 和 EMS 邮件通知都要用到 DNS 解析。

集群名称的规则值得单独记一下:必须以字母开头,少于 44 个字符,允许的特殊字符只有.-_三个。我见过有人用下划线开头命名,向导直接拒绝,报错信息还不明显。

2.2 密码和许可证的先后顺序

集群管理员密码的默认规则是最少 8 个字符、至少一个字母加一个数字。这条规则在 CLI 向导里是强校验,不符合会原地重问。

许可证这块有个顺序坑:集群基本许可证密钥不是完成设置的必要条件,但你要装任何功能许可证之前,必须先装基本许可证。也就是说,你可以先把集群建起来跑着,回头再补基本许可证,但别跳过它直接装功能许可证,会失败。功能许可证密钥在支持站点的软件许可证页面下查,按初始订单或加载项订单找。

单节点集群还要额外填配置备份目标地址,支持 HTTP 或 FTP,注意远程 Web 服务器必须启用 PUT 操作,否则备份上传会静默失败——这个“静默”很坑,命令返回成功但文件没上去。

2.3 用表格把值锁死

我一般会把工作表整理成下面这种结构,填完打印出来放手边,敲命令时对着看:

信息类型我的取值备注
集群名称cluster1字母开头,少于 44 字符
集群网络 MTU9000必须与交换机一致
集群管理 IP192.0.2.66数据网段内唯一地址
集群管理掩码255.255.255.0IPv4 场景
节点管理 IP192.0.2.67每节点唯一
默认网关192.0.2.1管理网络路由器
DNS 域名example.local字母数字组成
名称服务器192.0.2.10逗号或空格分隔多个
NTP 服务器ntp1.example.com需 DNS 可解析
集群管理员密码(按规则自定)8 位以上含字母数字

这张表填完,后面每一步都有据可依,不用边敲边想。

3. 首节点建集群:从控制台到 cluster show 全绿

硬件装好、线缆接完、控制台线插到第一个节点上,就可以开始了。这一步的目标很明确:让第一个节点成为一个健康且 eligible 的集群成员。

3.1 打开电源并进入向导

所有节点先上电。第一个节点引导完成后,控制台会自动启动集群设置向导,屏幕上出现Welcome to the cluster setup wizard....。按提示先给节点分配 IP 地址。这里有个默认行为要知道:自动支持(AutoSupport)默认是启用的,如果你所在环境不允许外发数据,得在后续配置里关掉,但向导阶段它不会问你这个。

向导会给你两个选择:用浏览器完成,或者按 Enter 走 CLI。屏幕会打印类似https://10.63.11.29的地址。既然我们走 CLI 路线,直接按 Enter。

3.2 create 分支的完整交互

进入 CLI 后第一个关键问题是:

Do you want to create a new cluster or join an existing cluster? {create, join}:

首节点输入create。接下来向导会逐项询问集群名称、集群网络配置、管理员密码、节点管理接口等,每一项都对应工作表里的值。接受系统默认值就直接回车,要改就输入自己的值。

这里有个操作习惯我强烈建议:每填完一段就默念一遍工作表对应行。CLI 向导没有“上一步”,填错了只能等整个流程走完再用cluster setup重进向导改,或者用具体命令单独修。比如管理员 SVM 的某个值填错,事后可以用cluster setup重新访问向导来改,但那是补救,不是常规路径。

3.3 验证集群状态

设置完成后,第一件事不是急着加第二个节点,而是确认首节点真的健康:

cluster1::> cluster show Node Health Eligibility -------------------- ------- ----------- cluster1-01 true true

Health为 true 表示节点自身正常,Eligibility为 true 表示有资格参与集群。两个都是 true 才算过关。如果 Health 是 false,先查集群网络 MTU 和交换机配置;如果 Eligibility 是 false,常见原因是节点还没完成加入流程或者许可证缺失。

提示:cluster setup命令可以随时重新进入集群设置向导,用来修改管理员 SVM 或节点 SVM 的配置值。但它是修改入口,不是回滚工具,改之前想清楚影响面。

首节点这一步稳了,后面加节点才有意义。我见过首节点 Health 就是 false 还硬加第二个节点的,结果两个节点互相拖累,最后只能重建。

4. 节点逐个加入与时间同步:别让时钟漂移毁掉 CIFS

集群建好之后,剩余节点要一个一个加入。这件事没有批量捷径,向导明确要求每次只加一个,而且开始加入一个节点后必须完成,该节点成为集群一部分之后才能开始下一个。中途中断会留下半加入状态的节点,处理起来比重新加入还麻烦。

4.1 join 流程与验证

每个剩余节点上电、控制台连上,同样会进到Welcome to the cluster setup wizard....,同样问 create 还是 join。这次输入join,然后按屏幕提示配置该节点的节点管理接口,完成加入。

加完一个就验证一个:

cluster1::> cluster show Node Health Eligibility -------------------- ------- ----------- cluster1-01 true true cluster1-02 true true

新节点两个字段都 true,再动下一个。如果用了 GUI 设置向导,后续节点不需要单独走 join 流程,这是 GUI 相对省事的地方;但既然我们是因为 GUI 不支持才走 CLI,就老老实实逐个来。

4.2 时区统一是前提

时间同步这件事,很多人觉得配个 NTP 服务器就完了,其实前面还有一步:集群内所有节点必须设为同一时区。时区不一致,即使 NTP 同步了 UTC 时间,本地显示时间还是错开的,CIFS 和 Kerberos 照样出问题。

先看当前状态:

cluster1::> cluster date show Node Date Time zone ----------- ------------------- ---------------- cluster1-01 01/06/2015 09:35:15 America/New_York cluster1-02 01/06/2015 09:35:15 America/New_York

如果时区不统一,用一条命令改全集群:

cluster1::> cluster date modify -timezone GMT

-timezone参数接受标准时区名,改的是集群级别,所有节点一起生效。这一步做完再配 NTP,顺序不能反。

4.3 NTP 关联与对称认证

把集群和一个或多个 NTP 服务器关联:

cluster1::> cluster time-service ntp server create -server ntp1.example.com

这条命令假设集群已经配好 DNS。如果 DNS 还没配,-server后面必须直接写 IP 地址,否则解析失败。配完验证:

cluster1::> cluster time-service ntp server show Server Version ------------------- --------- ntp1.example.com auto

Version显示 auto 表示自动协商。

从 ONTAP 9.5 开始支持 NTPv3 的对称认证,用 SHA-1 密钥提升安全性。注意ONTAP 9.4 不支持这个特性,版本对不上就别试了。启用认证的命令是在 create 时带上-key-id:

cluster1::> cluster time-service ntp server create -server 192.0.2.20 -key-id 1

共享密钥要先建:

cluster1::> cluster time-service ntp key create -id 1 -type sha1 -value <shared_key_value>

这里的关键约束:密钥标识、类型、值在节点和 NTP 服务器上必须完全一致。任何一边对不上,认证就失败,时间同步静默不工作。给已有服务器补认证用modify加-key-id;要关掉认证用-authentication disabled。这套命令我建议配完立刻用cluster date show看各节点时间是否收敛,别只看ntp server show显示关联成功就以为完事了。

5. EMS 事件通知与 SVM 模板:把告警和建库都标准化

集群跑起来、时间同步稳了,接下来两件事决定这套存储好不好维护:出问题时你能不能第一时间知道(EMS 通知),以及建 SVM 时能不能不靠手敲一堆参数(模板化配置)。

5.1 先决定通知往哪发

配 EMS 之前先做选择题:邮件、syslog、SNMP 陷阱主机,三选一或组合。判断逻辑很实际——如果环境里已经有 syslog 服务器在聚合其他系统的日志,那就把存储的重要事件也发过去,统一看;如果没有,邮件最省事;如果已经在监控某个 SNMP 陷阱主机,那就往那儿发。

邮件通知的配置分三步。前提是集群 DNS 已配好,能解析邮件地址。

# 第一步:配置 SMTP 邮件服务器 cluster1::> event config modify -mail-server mailhost.example.local -mail-from cluster_admin@example.local # 第二步:创建邮件通知目标 cluster1::> event notification destination create -name storage-admins -email admin@example.local # 第三步:把重要事件绑定到这个目标 cluster1::> event notification create -filter-name important-events -destinations storage-admins

-filter-name important-events是预定义过滤器,只放重要级别的事件,不会把你淹没在噪音里。-destinations引用第二步创建的目标名。

syslog 路线更短,两步:

cluster1::> event notification destination create -name syslog-ems -syslog 192.0.2.30 cluster1::> event notification create -filter-name important-events -destinations syslog-ems

SNMP 陷阱主机的前提是 SNMP 和 SNMP 陷阱已启用(默认就是启用的),且 DNS 能解析陷阱主机名:

cluster1::> system snmp traphost add -peer-address snmp-trap.example.local

默认情况下 SNMP 支持的所有事件通知都会转发到陷阱主机,不需要额外绑过滤器。

5.2 用 VserverEnvironmentSetup 模板建 SVM

从 ONTAP 9.4 开始有预配置模板这条路。VserverEnvironmentSetup模板能一次性把 SVM 的安全模式、语言、IPspace、协议、数据 LIF、路由、DNS、AD、NIS、LDAP、CIFS 服务器都配出来。前提是所有需要的功能许可证已安装。

先看模板里定义了哪些参数:

cluster1::> template parameter show

输出会列出 26 个参数,包括vserver、security_style(默认 unix)、language(默认 C.UTF-8)、ipspace(默认 Default)、protocols(可选 nfs/cifs/iscsi/fcp)、data_lif数组、gateway数组、dns_server、ad_domain等。这个模板是只读的,默认值改不了。

要改默认值,先拷贝再改:

# 拷贝成可写模板 cluster1::> template copy -name VserverEnvironmentSetup -destination-name template1 # 修改某个参数的默认值,例如把安全模式改成 ntfs cluster1::> template parameter modify -template template1 -name security_style -default-value ntfs

然后用模板创建 SVM:

cluster1::> template provision -name template1

执行后会进入交互式提问,逐项确认 Vserver 名称、语言、安全模式、IPspace 等,方括号里是默认值,回车接受。data_lif和gateway是数组类型,有几个 LIF 就填几组,IP、掩码、协议、归属节点、归属端口都要给全。

这套模板的价值在于标准化:同一个模板反复用,建出来的 SVM 配置一致,不会因为手敲漏了某个 DNS 或路由参数导致后面挂载失败。我一般会把常用组合做成两三个模板,比如 NFS 专用、CIFS 专用,建库时直接 provision,比手敲vserver create加一堆network interface create快得多,也不容易错。

6. 收尾技巧:把验证做成固定动作

这套 CLI 流程走下来,命令本身不难,难的是每一步之后你有没有验证。我踩过最贵的一次坑,是节点 join 之后没跑cluster show就直接配 NTP,结果那个节点 Eligibility 一直是 false,NTP 配置在它上面根本没生效,三天后 CIFS 认证开始随机失败,排查了两天才定位到是加入流程没走完。

从那以后我给自己定了个死规矩:每执行完一个阶段,必须跑对应的验证命令,看到预期输出才进下一阶段。具体就四条:

阶段验证命令过关标准
首节点建集群cluster show首节点 Health 和 Eligibility 均 true
每加一个节点cluster show新节点两字段均 true,旧节点不降级
配完 NTPcluster date show所有节点时间收敛、时区一致
配完 EMS触发测试事件或查event notification show目标已绑定,测试通知能收到

另外两个容易忽略的点:一是集群交换机 MTU 9000 这件事,配完最好在节点上确认集群端口实际 MTU 值,别只信配置文件;二是单节点集群的配置备份目标,如果走 HTTP,务必确认 Web 服务器开了 PUT,否则备份命令返回成功但远端没文件,等真需要恢复时才发现是空的。

这份指南的价值不在于命令多新,而在于它把 GUI 覆盖不到的那些场景——纯 IPv6、MetroCluster、向导超时——的 CLI 路径完整写了出来,而且工作表那部分是真的能直接拿来用的规划工具。我现在的习惯是,任何一套新存储上架,先照工作表填一遍,再按“建集群→加节点→同步时间→配通知→模板建 SVM”的顺序走,每步验证,全程不跳步。希望这套流程也能帮到你少走几个弯路。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进