Nutanix Life Cycle Managerを使ったFirmware更新

#はじめに
これまでもLife Cycle Manager(以下、LCM)についてご紹介したことがあるのですが、今回はLCMを使ったFirmware更新の話をしたいと思います。
先日LCM 2.3.2.19448というバージョンがリリースされた後、PRISMからLCMを見てみたところ、LCMの画面の感じが少し変わったのと合わせて、更新できるFirmwareが存在していることに気づきました。
過去のLCMのバージョン（2.1）時代にFirmware Updateを試してみた際には、搭載されているパーツの一部のFirmwareだけしか更新されず、LCMからのFirmware更新はまだまだ厳しいなというのが印象でしたが、現バージョンの2.3.2（2020年7月末現在の最新）でどこまで進化したかを見きわめるべく試してみた結果をここで紹介したいと思います。

NutanixのLCMではSoftware（例えばAHVやFoundation、Files等）の更新もできるわけなのですが、今回はFirmwareの更新の話に絞ってお話したいと思います。
また今回利用するハードウェアは、NXシリーズではありません。
Dell EMCのXC CoreというPowerEdgeサーバーがベースとなっているNutanix専用モデルを使用しています。
使用する機種・ハードウェアによってLCMの操作が変わることはないと思いますが、表示される項目が異なったり、ハードウェアに特異な部分があると思いますので、その点をご認識の上読んでいただければと思います。
使用するハードウェアによる差異についてはNutanix社のサポートサイトのLife Cycle Managerの箇所に色々記載があるので、事前によく内容を読んでから手を付けるようにしましょう。

#環境
■ハードウェア
・Dell EMC XC640 Core × 3台

■ソフトウェアとバージョン
・Hypervisor　AHV el7.nutanix.20190916.231
・AOS　5.17.1.1
・LCM　2.3.2
・Foundation　 4.5.3.1
・NCC　 3.9.5

■Firmwareバージョン
Before とAfterを比較しながら見たほうが分かりやすいと思いますので、本編の内容にて触れたいと思います。

■その他補足事項
利用した環境はインターネットに接続している環境なので、各種Updateファイルは自動で入手ができる状態にあります。

#事前確認

①PRISMからハードウェアを確認してみたいと思います。プルダウンメニューからHardwareを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/08f39720-5d5b-cc44-dc7a-d7fee776eed6.png)

今回はこの3台のうち、1台だけFirmware更新をしたいと思いますが、対象はホスト名が__NTNT-78TQxxx-A__という名前のホストにしたいと思います。

②特にエラーもなく3台とも動作してることが確認できます。今回の更新対象はリスト表示された一番上のホストになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/55b61870-4ccc-6236-0a8a-414c73704049.png)

③IPMI(以下、iDRACと記載)にもログインし、ハードウェアの状態を見てみましょう。
 システム：正常と表示されている通り、正常に動作していることが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/85515fe8-7806-fed7-b628-57d9bc47ad4d.png)

④適用されているファームウェアの情報も見てみましょう。"システム" - "インベントリ"と辿るとファームウェアインベントリという項目が表示されます。
LCMで更新をした後にここに表示されているバージョンが変わるかを確認したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/c21edcf2-ae1e-6a00-8dcf-c340c46b646a.png)

⑤再びPRISMの画面に戻ってきました。プルダウンメニューからLCMを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/eac20260-7460-5976-abe8-17eb323a717b.png)

LCMの画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/7f6db5c1-5170-e185-4df7-d632db3df8a3.png)

⑥画面左のInventoryを押します。クラスタやノードの情報が表示されます。
 ここで[Perform Inventory]というボタンが気になるかと思いますが、LCM自体のバージョンアップをする場合は、このボタンを押します。
 バージョンアップによって新しいUpdateファイルが入手され、LCMを使って適用が可能になります。
 今回は事前にこのボタンを押してLCMのバージョンアップは完了した状態からのスタートとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/854245a0-2570-1482-c502-40c3d232d073.png)

#LCMによるFirmware更新作業
事前確認の流れでPRISMの画面を見て進めていきます。

①LCMの左のメニューからFirmwareを押します。Firmwareの文字の右横に⑨という文字が出ていますが、何か更新対象があることが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/45d9f8f6-edea-12a1-1d3b-8b5a632be8c2.png)

全3台のホストで1台あたり3件のFirmware更新対象があるので、合計9個更新があることになるため⑨と表示されています。

②更新対象のホストを選択して更新対象のFirmwareを見てみましょう。各Firmwareのバージョン（Update To:xxxxxxxxとある青字の箇所）をそれぞれ押して見ていきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/e25351ed-2d44-bf46-c75e-9e966dc49d44.png)

__Hardware Entities(AHV)__
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/bb3d7074-68e0-f733-3c7a-0a660186d054.png)
中身を見れば分かる通り、Hardware EntitiesというFirmwareにはNICやブートデバイス、SSDやRAIDコントローラーといった各コンポーネントのFirmwareがまとめられていることが分かります。
どのパーツがどのバージョンに更新されるかはここで事前に確認することができます。（Nutanixのサポートサイトからも確認できますが、実機上で確認する場合はこちらで確認することができます。）

__iSM__
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/734db27d-ab3c-3477-9901-ab42427c514d.png)
iSMはiDRAC Service Moduleと言われているもので、OS上でサービスとして動作します。
後述するPTAgentがiDRACと通信するための経路をこのiSMが有効化するために利用されます。

__Dell Update Manager__
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/88d85980-936b-292e-c6b3-c1c252bd872e.png)
Dell Update ManagerにはPTAgentというものが含まれます。
このPTAgentが何かというと、OS上からwsmanやredfishやracadmを介してiDRACと通信するために利用され、OS上でサービスとして起動して動作しています。
iSMと密接な関連性を持っており、ハードウェアのインベントリ情報を取得したり、Firmwareを更新する際にOS（この環境だとAHV）と通信するために利用されます。
iDRAC経由でOS上の情報が収集されているのは、iSMとPTAgentが動作していることの現れと言えます。
XCやXC CoreといったPowerEdgeサーバーをベースとしたNutanix製品でLCMを利用する上ではこのiSMとPTAgentが実はとても大事な役割を担っています。

③NCC Checkをかけます。対象のホストを選択して、[NCC Check]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/f14615bf-9ab0-4aa4-1d0c-0d615b6a7926.png)

④Run Check画面で[Run]を押して、NCCを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/2a556e31-b5ee-d3ce-4962-fb2bdd819d7d.png)

⑤数分ほど待ち、正常に終了したことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/707ec489-ae19-24ae-c029-206c6f99aa52.png)

⑥再びLCMの画面のFirmwareの画面を表示します。Firmware更新対象のホストにチェックを付け、更新したいFirmwareを選択して、[Update]ボタンを押します。
 今回は更新対象のホストを1台選び、Firmwareとしては全て更新したいと思いますので、3つのFirmwareすべてにチェックを入れてから[Update]ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/57981db4-eec2-a416-e9ec-79a7121aa0fd.png)

⑦Review画面が表示されます。ホスト名の下にdetail（赤線の箇所）があるので、詳細を見てみます。各Firmwareの更新前と更新後のバージョンが確認できます。
 このまま更新をする場合は、[Apply 3 Update]を押して先に進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/33b9eb92-85dc-2e0b-4b31-6d8965f402c7.png)

⑧Updateが開始するので、しばらく待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/78dc5466-c9e5-c927-aa85-ceafb4ad5981.png)
 Firmwareの更新となるため、サーバーを停止し更新を行ってから再起動が行われます。
 更新するFirmwareが多い場合にはかなりの時間がかかることが予想されるため、更新作業は余裕をもって実施するようにしましょう。


更新中に仮想マシンの状態を確認してみました。今回更新対象としたホストはNTNT-78TQxxx-Aという名前のホストですが、当然ですが、更新中はNTNT-78TQxxx-Aというホスト上に仮想マシンは稼働していません。更新対象外の他のホスト上に仮想マシンが自動でマイグレーションされた上で、更新対象のホストの更新が行われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/84bc2739-735d-137f-132d-965bdbe29042.png)

以下は更新の進捗状況を示した画面です。Dell Update ManagerとiSMのFirmware更新は完了し、Hardware Entitiesの更新が進行中のようです。
この状態でiDRACの仮想コンソールを開いてみて、ホストがどのような状態にあるかを見てみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/399e95ac-9bae-f2e7-62de-0ba2a9dce9b3.png)
iDRACの仮想コンソールを見る限り、AHVはまだ起動しているようです。

しばらくすると、iDRACの仮想コンソールにReconnectingと表示され、仮想コンソールやiDRACに接続できない状態となり、iDRACのFirmwareが更新が始まりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/175e9599-225d-4a2c-22b5-72975a00f310.png)

数分待つと、iDRACに接続できるようになりましたので、再度仮想コンソールを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/7f10c9f0-bee7-0072-0178-4c6925553b8f.png)
勘のいい方はもしかしたらお気づきになるかもしれませんが、iDRACのFirmwareが更新されてバージョンが変わったことでiDRACの管理画面が少し変わっています。

さらに待っていると、いよいよAHVがシャットダウンされてサーバーが再起動されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/c274d047-9f7f-5b0b-3f54-a3055669684b.png)

Hardware Entitiesにある各種Firmwareが更新されていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/5dc97bd5-4336-8570-9089-c3b1a7a82787.png)

完了すると、再度再起動がかかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/b668956a-cc59-f166-426c-6f4facd73b0b.png)

AHVがブートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/51354e68-18d2-7283-be7e-6270f4fcaab5.png)

PRISMの画面に戻ってタスクの進行状況を見てみましょう。AHV上でCVMのステータスが開始待ちになっているようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/f3dea8d6-9f37-3156-3d98-81c586e2f941.png)
また数分待っているとすべてのタスクが完了しました。

⑨LCMの画面を開きます。更新に必要なすべてのステップが完了したことが分かります。更新対象のFirmwareの数が9個から6個に減ったことが見て取れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/de18e57c-3a90-f987-3ad4-e75a5066f101.png)

⑩LCM上でのタスクは完了しましたが、本当にFirmwareが更新されたかを確認したいと思います。iDRACのFirmwareインベントリ画面でFirmwareバージョンを確認して、更新前と更新後のバージョンの差異を確認します。
今回更新した結果、以下のような結果が得られました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/15b06b21-135a-3b85-966c-027d04d8e803.png)
iDRAC、NIC、BIOS、RAIDコントローラー、ブートデバイス用のRAIDコントローラー、Lifecycle ControllerについてのFirmwareが更新されていました。（赤字で示したバージョン）

#終わりに
ということで、LCMによるFirmware更新作業が終わったわけなのですが、NutanixのLCM機能は以前よりも扱いやすく確実に進化していることがよくわかりました。
今回はPRISM以外にiDRACの画面を見たり、PRISM上でも仮想マシンの状態やタスクの進捗状態を見ながら作業をしていましたが、1～2台のホストで更新をしてみて問題なくFirmware更新が終えられることが分かれば、残りのホストについては更新ボタンを押して、あとは終わるまで放っておけばいいというくらい楽な作業で済んでしまいます。
一般にFirmwareの更新は何かと手間な印象ですが、LCMだけで完結できるのであれば、自分でFirmwareを探し回って一つずつやり方を確認しながら作業をせずとも、数クリックで作業が完了するので運用上非常に強力な機能になるといえるでしょう。
Nutanix製品に限らず、他のHCI製品でもライフサイクル管理は一つの大きなテーマになっているようですので、今後も各社機能強化を進めていくことと思いますが、引き続きNutanixのLCM機能を追いかけていきたいと思います。