在磁盘端口类型为未知 nvme 的 NVMe 集群上,AIQUM REST 获取失败
适用于
- Active IQ Unified Manager 9.x (AIQUM)
- REST 获取
- 具有 NVMe 磁盘的 ONTAP 集群
问题
- 在将基于 NVMe 的 ONTAP 集群通过默认的 Active IQ Unified Manager (AIQUM) REST 获取方式添加后,该集群会出现以下症状:
- AIQUM 中的集群采集状态为
Failed。 - 没有收集到集群的数据—容量、性能和事件都为空。
- AIQUM 中的集群采集状态为
- 集群本身是健康的,管理 LIF 是可访问的;AIQUM 凭据和角色是有效的。
- AIQUM 采集日志(
au.log)包含类似于以下内容的条目:- 未知磁盘端口类型:
ERROR [baseline-poll-2] c.o.s.a.d.n.m.g.GModeDiskPath (GModeDiskPath.java:162) - Unknown Disk Port Type: nvme - 基础轮询失败(NullPointerException):
- 未知磁盘端口类型:
ERROR [common-pool-XXXXX] c.o.s.a.d.n.b.r.g.n.GClusterBuilder (GClusterBuilder.java:251) - [netappfoundation] <cluster_mgmt_lif> - ExecutionException encountered on Builderjava.util.concurrent.ExecutionException:java.lang.NullPointerExceptionat java.util.concurrent.FutureTask.report(FutureTask.java:122)at java.util.concurrent.FutureTask.get(FutureTask.java:205com.onaro.sanscreen.acquisition.datasource.netapp_ocie.builders.rest.gmode.netappfoundation.GClusterBuilder.executeAndBuild(GClusterBuilder.java:247)at com.onaro.sanscreen.acquisition.datasource.netapp_ocie.NetAppOCIEDataSource.doFoundation(NetAppOCIEDataSource.java:254at com.onaro.sanscreen.acquisition.netappfoundation.datasource.NetAppFoundationPackage.pollNow(NetAppFoundationPackage.java:199)
原因
- AIQUM REST 采集代码路径无法识别 ONTAP 为 NVMe 连接驱动器返回的
nvme磁盘端口类型。 - 无法识别的值会生成一个空磁盘端口对象,然后由
GClusterBuilder.executeAndBuild取消引用。 - 结果
NullPointerException中止基础轮询—如果没有成功的基础轮询,则永远不会构建集群对象,并且 AIQUM 将集群报告为Failed。 - ONTAPI采集路径不执行相同的 NVMe 磁盘端口类型映射,并且不受影响。
解决方案
- 如果需要 REST 类型的采集,则需要创建补丁。
- 作为一种解决方法,将 AIQUM 中的集群采集方法从 REST 切换到 ONTAPI 也可以
- 这可以通过按照以下步骤禁用 Cloud Agent 来完成:
- Linux/OVA:
OVA 版本将需要访问 DIAG shell: 如何访问 Active IQ Unified Manager 虚拟机 (OVA) DIAG shell
使用文本编辑器(例如 vi)打开/opt/netapp/essentials/conf/server.properties
更改行enable.cloudagent=true to enable.cloudagent=false或
运行sed -i '/^enable.cloudagent=/s/=.*/=false/' /opt/netapp/essentials/conf/server.properties - Windows:
使用记事本打开C:\Program Files\netapp\essentials\conf\server.properties
更改行enable.cloudagent=true为enable.cloudagent=false - 重新启动 AIQUM 服务
- Linux/OVA:
注: ONTAPI 得到完全支持,并为受影响的工作流生成与 REST 采集等效的监控数据
合作伙伴备注
追加信息
内部参考
- 源案例:2010684057。
- 客户选择不等待 REST 获取代码路径上的 CPE / 补丁;已接受 ONTAPI 变通方案作为此次支持的最终解决方案。
- 如果未来有客户明确需要 REST 路径,请为
nvme磁盘端口类型在GModeDiskPath(GModeDiskPath.java:162) 中未处理的问题提交或关联工程缺陷。 - 请勿将此与 CAIQUM-7956 混淆——该缺陷具有相同的外部堆栈(
GClusterBuilder.executeAndBuild:247→ExecutionException→NullPointerException),但内部原因不同(JSONObject.get(...)在Long.intValue()上返回 null)。本案例的内部原因是未识别的 NVMe 磁盘端口类型。