こんにちは、キクです。
本記事ではNVRAMの誤検知に関する対応について書いていこうと思います。
NetAppのアラート内容がなかなかショッキングだったので焦りましたが、本記事の内容を通して無事に乗り越えることができました。
本記事の内容
それでは、よろしくお願いします。
本記事の目的
本記事では、僕が経験したことをベースに実際にNVRAMの誤検知を解消するまでの流れをご紹介します。
「どのような内容のエラーだったのか」「どのようにして対処したのか」などを書いていきたいと思います。
誤検知の内容
それでは早速誤検知の内容について触れていきます。
実際に発報されたアラートの内容は次のような内容でした。
■アラート1
callhome.battery.warning: Call home for BATTERY (wrong charge) WARNING.
■アラート2
nvmem.battery.wrongCharge: The NVMEM battery charger is charging the battery even though the battery is not requesting to be charged.
To prevent data loss, the system will shut down in 24 hours.
どちらも今回の事象に関連したアラートになりますが、特にドキッとしたのが「the system will shut down in 24 hours」の部分。
僕はすぐさま調査を開始しました。
調査して分かったこと(ネタバレ)
調査の結果、今回のアラートは以下のバグに該当していそうだとなりました。
【NetApp】Call home for BATTERY (wrong charge) WARNING in FAS8300, FAS8700, AFF-A400
上記リンクの内容を見るに、どうやらBMCのバージョンが原因であることが判明しました。
ここで少しネタバレですが、タイトルにもある通り今回のアラートはNVRAMの"誤検知"によるもの。
アラート発報の数分後には、以下のログが記録されていました。
nvmem.battery.normalCharge: The NVMEM battery charging status is nomal.
このログからは、NVRAMの誤検知によりバッテリーに関するアラートが発報されたものの数分後にはステータスが正常に戻っていたということでが分かりました。
つまりは放おっておいても特には問題ありませんでした。
ただ、何も対応しなければ同じアラートがまた発報されかねません、そのため、本記事でご紹介する対応を実施する形になりました。
ちなみに上記のログは以下のコマンドで確認が可能です。
::> event log show -severity NOTICE -event nvmem*
対応内容
手順1:対象BMCパッケージの取得
まず最初に今回のアラートの原因であるBMCのバージョンアップ用パッケージファイルを取得します。
パッケージファイルの取得は僕の知る限りでは次のような方法があります。
ダウンロードは以下のようなリンク先から取得が可能です。
URL:【NetApp】BMC_FW_308-04068_13.5.zip
※サポートサイトへのログインが必要です
手順2:対象BMCパッケージの設置
次に対象BMCパッケージを適切な場所に設置します。
今回の作業では、バージョンアップを実施するノードからFTPを利用して作業を実施します。
そのため、事前にFTPで通信できる場所にBMCパッケージを設置しておく必要があります。
手順3:事前確認
バージョンアップを実施する前にいくつかステータスを確認しておきます。
■BMC(SP)関連の確認
まず、以降の作業用にadvanced権限に切り替えます。
::> set -privilege advanced
次に、各ノードのBMC(SP)のバージョンを確認しておきましょう。
特に確認すべき項目は『Firmware Version』です。
::*> system service-processor show -node *
現在コントローラにインストールされているBMC(SP)イメージを確認しましょう。
特に確認すべき項目は『Image』が「primary」になっている『Version』です。
::*> system service-processor image show
現在コントローラにダウンロードされているBMCパッケージを確認しましょう。
特に確認すべき項目は『Package File Name』で、1つまたは複数のパッケージファイル名が確認できると思います。
::*> system image package show
BMCバージョンアップの進捗状況を確認します。
この時点ではまだバージョンアップ未実施状態ですので、『InProgress』が「no」となっていれば問題ありません。
::*> system service-processor image update-progress show
■サービス関連
必要に応じて以下のコマンドの実行結果も確認していきましょう。
定常的な確認ですので、本記事では各コマンドの内容説明は割愛します。
::*> cluster show
::*> storage aggregate show
::*> volume show
::*> vserver show
::*> network port show
::*> network interface show
手順4:バージョンアップ実施
事前確認が完了したら、いよいよバージョンアップをしていきましょう。
手順2でBMCパッケージを設置したサーバから対象コントローラにダウンロードする作業になります。
「え、ダウンロード?」と思われる方がいるかもしれません。
しかしデフォルトの設定ではBMCパッケージはダウンロード後に自動的にバージョンアップが行われるので、設定変更をしていなければ「ダウンロード = バージョンアップ」と捉えてしまっても問題ないかと思います。
::*> system node image get -node ノード名 -package ftp://FTPサーバIPアドレス/BMC_FW_308-04068_13.5.zip -replace-package true
上記コマンドを実行すると、FTPサーバへのログイン情報が表示されます。
適切なログイン情報を入力してダウンロードを開始してください。
「Download complete.」と表示されればOKです。
続いて、対象コントローラにBMCパッケージがダウンロードされていることを確認しましょう。
事前確認で確認したパッケージに加えて、新しくダウンロードしたパッケージが表示されていればOKです。
::*> system image package show
次はBMCバージョンアップの進捗状況を確認します。
項目名『InProgress』が「yes」となったらバージョンアップ作業中です。
同項目が「no」となっており、また『Start Time』『End Time』に時刻が表示されていれば完了です。
::*> system service-processor image update-progress show
1つ注意点をお伝えすると、バージョンアップが開始されるのはONTAPシステムの内部的なタイミングであることです。
ダウンロードが完了した5分後に開始されることもあれば、20分後に開始されることもあります。
そのため、なかなか開始されなくても焦らずしばらく待ってみましょう。
手順5:事後確認
バージョンアップが完了した後、最終確認をしていきましょう。
以下のコマンドでは、対象バージョンが「primary」として認識されていればOKです。
::*> system service-processor image show
いよいよ最後の項目です。
項目名『Firmware Version』が対象バージョンになっていることを確認して本作業は完了となります。
::*> system service-processor show -node *
おわりに
いかがだったでしょうか。
今回はNVRAM誤検知のバグを解消するためにBMCバージョンアップを実施したお話をしました。
誤検知発生後、すぐにNVRAMが正常になっていたことに気が付かず最初は焦りました。
しかし、ログにはしっかりと記録されていたので細かな部分まで確認しなくてはと反省です。
ただ、NVRAM誤検知がBMCバージョンに関連していることなんかは今回初めて知りましたし、どのようにログが記録されているのかも勉強になったのでいい経験になったなと思います。
今回の記事がみなさんの抱える問題に直接役立つかは分かりませんが、何かしら得られるものがあったら嬉しく思います。
本記事を最後までお読みいただき、ありがとうございました。
ではでは!