AIQUM REST 取得が、不明なディスクポートタイプ nvme の NVMe クラスタで失敗します
環境
- Active IQ Unified Manager 9.x(AIQUM)
- REST取得
- NVMeディスクを搭載したONTAPクラスタ
問題
- デフォルトのREST取得メソッドを使用してNVMeベースのONTAPクラスタをActive IQ Unified Manager(AIQUM)に追加すると、クラスタに次の症状が表示されます:
- Active IQ Unified Managerにおけるクラスター取得状況は
Failedです。 - クラスターに関するデータは収集されません。容量、パフォーマンス、イベントはすべて空です。
- Active IQ Unified Managerにおけるクラスター取得状況は
- クラスター自体は正常で、管理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 - Foundationポーリング障害(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シェルにアクセスする必要があります: Active IQ Unified Manager Virtual Machine (OVA) DIAGシェルへのアクセス方法
テキストエディタ(例: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:
notepadでC:\Program Files\netapp\essentials\conf\server.propertiesを開きます
行enable.cloudagent=trueを以下に変更しますenable.cloudagent=false - AIQUMサービスを再起動します
- Linux/OVA:
注記: ONTAPIは完全にサポートされており、影響を受けるワークフローについてREST取得と同等の監視データを生成します
パートナーノート
追加情報
内部情報
- ソースケース:2010684057。
- 顧客はREST取得コードパスのCPE / パッチを待たないことを選択しました。このエンゲージメントの最終的な解決策として、ONTAPIの回避策が受け入れられました。
- 将来の顧客が特にRESTパスを必要とする場合は、
GModeDiskPath(GModeDiskPath.java:162)の処理されないnvmeディスクポートタイプに関するエンジニアリングの不具合を提出またはリンクしてください。 - これをCAIQUM-7956と混同しないでください。その不具合は同じ外部スタック(
GClusterBuilder.executeAndBuild:247→ExecutionException→NullPointerException)を持っていますが、内部の原因(Long.intValue()でJSONObject.get(...)がnullを返す)が異なります。このケースの内部の原因は、認識されないNVMeディスクポートタイプです。