1年ぶりにLCM（Life Cycle Manager）を使ってみた

#はじめに
ちょうど1年前にLCMについての記事を書いたのですが、1年経ってLCMがどう進化したかを見るべくまたLCMを使ってみました。
※去年の記事は[こちら](https://qiita.com/matotoon/items/0d9c5fa5e52a8919fe9e)です。

1年経って、メジャーバージョンは上がっていませんでしたが、多少のバージョンが上がっており、使用感を確かめながら触ってみました。
ただ、今回は使い方についてはあまり触れません。
主にFirmwareの更新が問題なくできるかを確認すべく、その点にフォーカスして試しています。

また今回LCMを試すにあたっては、DellEMCのXC Coreを使用しております。

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

■使用したハイパーバイザーやAOSのバージョン
・Hypervisor　VMware vSphere 6.7 update2 (build 13006603)
・AOS　5.10.5 LTS
・LCM　2.2.11203

■Firmwareバージョン
LCMの画面上で確認できる各種インストール済みバージョン（LCMを使おうと触り始めた時に確認できたバージョンになります）
・Dell Update Manager　1.9.0-371
・Hardware Entities　-
・iDRAC　3.36.36.36
・iSM 　3.4.0

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/8dedcad5-4dfa-b774-cb81-a9892bfeefe3.png)


#事前準備
では、LCMでFirmwareの更新をする準備をしましょう。
PRISMにログインして、画面右上のギアのアイコンを押し、メニューから"Life Cycle Management"を選択します。

■LCM Frameworkの更新
LCMを使うにあたり、導入されているLCM Frameworkのバージョンが古かったため、まずはこちらの更新を行いました。
バージョン2.1.4139 から2.2.11203 へのUpdateしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/d663752b-d41b-45bf-9701-3e2d9b0f031d.png)

今回使用した機材はインターネットに接続可能な環境だったのですが、LCM Frameworkを毎度手動でアップデートするのは面倒だったので、Enable LCM Framework Auto Updateにチェックをいれ、LCM Frameworkを自動でアップデートできるように設定しておきました。
OKを押してLCM FrameworkをUpdateします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/f3caa999-90ea-52be-0f9e-1b83fb0ef57a.png)

Updateが完了するまでしばらく待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/1a2ef742-864e-191c-9874-c0ff648f3cc9.png)

余談になりますが、AOS5.11より前のバージョンのAOSの場合、上記の通りPRISMの画面右上のギアのアイコンを押してLCMを表示しますが、AOS5.11以降のバージョンになるとここからはLCMを表示することができません。
PRISMの画面左上のドロップダウンリストから”LCM”を選択することで管理画面が表示できます。
AOS5.11からメニューの場所が変わっているので、ご注意ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/361a179d-ddc0-0ccb-a65c-02403fdd1879.png)


#LCMを使ったFirmware Update
それではFirmwareをUpdateしてみたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/106efe4e-3936-1831-15fc-2ca6fddc763e.png)

上の画面の[Perform Inventory]を押すとクラスタ内のソフトウェア、FIrmwareバージョンの情報を収集しにいき、現在適用されている各種Softwareのバージョンが表示されます。

次にFirmware Updateタブを選択します。
クラスタ内の各ノードが表示され、更新バージョンがあることが分かります。（Update to xxxxxというバージョンが表示されています）
今回は全て更新をかけてしまおうと思うので、全てのノードにチェックを入れて、[Update]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/368436d0-4243-1e24-1cbc-2fa8a779c39a.png)

チェック処理（NCCチェック）に関する画面が表示されます。All Checksを選択して[Run]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/605989d7-0557-d90c-4d96-2ff54b30d080.png)

Update内容の確認画面です。以下画面では見えなくなってしまってますが、画面右下にある[Next]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/779861fb-b19c-1d02-aa70-168ca7dd76c9.png)

今回使用しているHypervisorはvSphereのため、管理しているvCenterの管理IPやユーザー名、パスワードといった認証情報を入力して、[Apply Update]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/3ca7caf9-8f1d-b376-9011-b11118b29a81.png)

Updateが開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/20ef0425-520c-3b0a-7cb8-08e65541efdc.png)

1時間半弱待ちましたが、完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/845c83ed-860b-bc3b-7087-a7b54e554b72.png)

ノード単位で所要時間が異なるようです。
これはFirmwareの更新処理はどのノードも同時並行で実施していたものの、各ノードを1台ずつ再起動しながら順繰り更新しているため、各ノードの所要時間（完了時間）が異なっているものと思われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/ab16e75d-d08a-74e3-b82a-7cdbba23a441.png)

再度LCMの管理画面を見てみましょう。
Hardware Entitiesに適用されたバージョンが表示されています。
どうやらFirmwareは更新されたようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/740b1165-15c1-6aac-312b-1aad521425bc.png)

このように簡単な操作でPRISM上でFirmware更新が可能です。
LCMはクラスタ内のノードを1ノードずつ更新してくれます。同時に複数ノードの再起動がかかってしまうこともありません。
仮に更新処理中に問題が起きた場合であっても問題が解決するまで停止する仕様になっているそうですので、何か起きても落ち着いて対処することができます。

なお、LCM上ではどのパーツのFirmwareがどのバージョンからどのバージョンにUpdateされたかを確認することはできないので、パーツ単位でバージョンのBefore Afterを細かく知りたい方は、更新前後でiDRAC上のFirmwareの情報を見るといいでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/20907d4f-54d0-e7fd-54e2-e7b75194e540.png)


#LCMを使ってみて思ったこと
去年触ったLCM 2.1というバージョンですと、管理画面がだいぶ簡素で表示される情報もごくわずかでしたが、LCM 2.2になって管理画面はだいぶ洗練されてきた印象です。
操作性もよくなった印象です。
ただ、これはどうなんだろう？と疑問に感じる部分もありました。

**Hardware Entitiesって何だろうか？**
LCM上でいきなりHardware Entitiesという言葉が登場するので、これって何？って思う人も多いでしょう。
Hardware Entitiesという言葉は以前から表示されてはいたのでLCM 2.2から登場した単語でもないのですが、Hardware Entitiesの言葉の意味を改めて考えてみました。
これについてはNutanix社のドキュメントを見ていても明確な説明が見当たりませんでしたが、Hardwareの各コンポーネントの集合体のことを指しているようです。
関連して、payloadという単語も出てくるのですが、payloadという呼称でHardware Entitiesに含まれるFirmwareのパッケージが提供されています。
個々のFirmwareをまとめてパッケージ化しているようです。

今回適用されたHardware Entitiesは2.7-1561518097というバージョンですが、これに対応するpayloadを見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111342/9801671e-221a-d6b9-f1fc-95547a81825c.png)
参考URL
https://portal.nutanix.com/#/page/docs/details?targetId=Release-Notes-LCM:pay-payload-2.2.9803-r.html

要するにLCMではFirmwareの更新パッケージを使って、丸っと、サーバー全体のFirmwareを更新する仕組みになっているようです。
LCM 2.1の頃はLCMでどのFirmwareが更新されるのかが分かりづらかったですが、payloadに関する情報が出ているので、どのFirmwareが更新どのバージョンに更新されるのかが分かりやすくなった印象です。
この辺はLCMの機能強化の現れとみてもいいのではないでしょうか。

**payloadに含まれるFirmwareよりも新しいFirmwareが適用されている場合、LCMはどういう挙動をするの？**
今回使用した機材は工場出荷されて間もない機材だったのですが、実はLCMでFirmwareを更新する前にiDRAC上でFirmwareバージョンを確認していたところ、一部のFirmware（具体的にはiDRACのFirmware）がpayloadに含まれるFirmwareよりも新しいバージョンのFirmwareで実機に適用されていました。
この状態でLCMを使って更新をした場合、Firmwareはpayloadに含まれる古いFirmwareバージョンにダウングレードされるのか、はたまた、工場出荷時に適用されている新しいバージョンが維持されるのかを気にしながら、LCMで更新をかけておりました。
上でご紹介している画面キャプチャーをよく見てみるとわかるのですが、iDRACの更新前のバージョンは3.36.36.36ですが、LCMでUpdateしようとしているところの画面だと、3.32.32.32というバージョンが表示され、ダウングレードをしようしているように見えます。
実際に何度か更新をかけてみても、3.36.36.36のままでダウングレードされることはなかったので、LCMの仕様としては新しいFirmwareが適用されていればダウングレードはしない、という風に実装されていると思われます。
このような時の挙動について書かれた資料が見つけられなかったので、明確な根拠を示すことはできないのですが、実機から見てわかった動きとしてご紹介させていただきました。

#終わりに
LCMはNutanixの一機能ですが、Dell EMCのハードウェアにもしっかり対応しており、ハードウェアプラットフォームを限定せず使えるところがとても魅力的だと思いました。
Nutanix社からの情報だけでなく、Dell EMCもこのLCMを活用する方法について[ドキュメント](https://downloads.dell.com/manuals/all-products/esuprt_converged_infrastructure/esuprt_hyperconverged_systems/dell-xc640-ent-xc_reference-guide9_en-us.pdf)を公開しておりますし、OEM製品を使っているユーザーにも安心して活用してもらえる機能になってきているのではないでしょうか。

今後もLCM機能については追いかけていきたいと思います。
（この記事を書いたところでタイムリーにLCM2.3がリリースされていて、うーん、どうしようと思いましたが、2.3についてはまた試してみてから書こうかなと思います。）