LCM（Life Cycle Manager）を使ってみた

#はじめに
LCMはNutanixクラスタ内のソフトウェアやファームウェアバージョンを把握し、更新する機能を提供していますが、
このLCMについてどんな使い勝手なのかを見てみようと思い、実際に使ってみました。

LCMがどんなものか、詳細を知りたい方は以下を見てみてください。
[LIFE CYCLE MANAGER](https://portal.nutanix.com/#/page/docs/details?targetId=Web-Console-Guide-Prism-v55:lcm-lcm-overview-c.html)

今回LCMを使うにあたって、テスト環境を用意しました。
テスト用のNutanix環境はDell EMC XCシリーズのXC630を4台用意して、テストを行いました。

#環境
■ハードウェア
・Dell EMC XC630 × 4台

■使用したハイパーバイザーやAOSのバージョン
・Hypervisor　VMware vSphere 6.5 update1
・AOS　5.5.6
・LCM　2.1
※ハイパーバイザーやAOSのバージョンアップもできるものなのか？と思い、あえて少し古めのバージョンを用意してみました。

■Firmwareバージョン
LCMで更新できるFirmwareに関する情報も出ていたので、事前にバージョンを確認したところ以下の通りでした。
・Backplane expander　1.09
・H730 RAID controller　25.2.2-0004　
・iDRAC　2.02.02.01
・iSM　3.3.0
・PT agent　1.8.1-19
・SATADOM S140714

#事前準備
■ネットワーク設定
・Firewall設定
LCMをインターネット環境で使う場合はFirewallのポート開放が必要です。
利用するAOSのバージョンにあったRequiremantがあるので、利用する環境に合わせてNutanixのサポートサイトで情報を確認してください。
今回はAOSが5.5.6なので、こちらを確認しました。
[FIREWALL REQUIREMENTS](https://portal.nutanix.com/#/page/docs/details?targetId=Web-Console-Guide-Prism-v55:wc-support-firewall-wc-c.html)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/0eb3e0d0-80b5-6d84-15f8-693da03e8ae8.png)

■IPMI（iDRAC）の状態確認
・iDRAC上で実行中のジョブが存在しないこと
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/1a822f48-dacb-ae2a-c1ae-53ee6336c8cd.png)

■PRISMの設定
・PRISMからvCenterサーバーを登録しておくこと

■Hypervisor(ESX)側の設定
実際に試してみて分かったことですが、ESX環境でLCMを使う場合には、以下のような点を考慮の上、事前に必要な設定を行ってください。
・vSphere上でのNTPサーバーの設定とNTPサービスの起動
・vSphere HAのアドミッションコントロール設定（"ホストのフェイルオーバーキャパシティの定義基準"の無効化）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/b3755b5d-54c3-b7f8-4bf8-53229d66cd28.png)

#LCMの使い方
では、LCMの使い方を見ていきたいと思います。
PRISMにログインして、ギアのアイコンから"Life Cycle Management"を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/de694c2b-17dc-7188-8cb2-d274b2995a72.png)

Inventoryタブを選択します。
Cluster Software Componentという項目が表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/bfff9490-ac47-aecc-08ed-e50bb55ee0b1.png)

画面右にある[Options]のメニューから"Perform Inventory"を選択します。
するとLCMでUpdateが可能な更新ファイルをどこから取得するかを聞かれます。
また同時にLCM自体のUpdateをするかどうか。
もしLCMのFramework自体もUpdateするのであれば、Enable LCM Framework Auto Updateにチェックを入れて、[Save]します。
※今回はインターネットに接続ができる環境でテストしていたので、インターネット経由でUpdateファイルを取得しました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/4273d10a-03f5-7c07-197d-e8b6bed78d8b.png)

すると、LCMが適用済みのFirmwareやソフトウェアと差分をを見て、更新ファイルを取りに行きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/e70457e0-815f-b05b-4f51-7e04b9a6357d.png)

もしかしたらお気づきかもしれませんが、使用しているLCMは2.1という最新バージョンなのですが、Updateファイルが置かれているディレクトリ(上の画面のFetch updates from:)を見ると<http://download.nutanix.com/lcm/2.0>となっており、なぜバージョンが違うのだろう？と思われたかもしれません。
この点については調べてみましたが、<http://download.nutanix.com/lcm/2.1>というディレクトリは存在せず、指定するとエラーが出てUpdateファイルを取得できませんでしたので、2.0というディレクトリがテストしていた時点（2018年11月末時点）で最新のディレクトリになっているようです。

***
■補足
インターネット接続ができないダークサイト環境でLCMを使いたい場合、Updateファイルを格納したWebサーバーを準備することでLCMを使うことができます。
こちらも実際に試してみましたが、問題なくLCMを動作させることができました。
手元に適当なWindowsサーバーがあったので、IISを導入しWebサーバーを用意してUpdate用のファイルを置いてみましたがこんな感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/189922c8-a143-c9d6-7c44-3273fb15fe2f.png)
ダークサイト環境での利用を考えている方は、このあたりの情報を見てWebサーバーを立てるとよろしいかと思います。
[Using Lifecycle Manager (LCM) Without Web Access](https://portal.nutanix.com/#/page/kbs/details?targetId=kA00e000000LJn5CAG)

実際に本番環境でLCMの利用を検討されているようなケースでは、ダークサイト環境となることが多いと思うので、上記のリンク先の情報が役に立つと思います。
***
LCM Frameworkの更新とUpdate用のファイル取得が完了した後に、Available Updatesというタブを選択すると、LCMで更新可能なが可能なものが表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/2a5fc2cc-31a7-0414-abe9-ab37769a7aed.png)

上記画面のUpdate対象のDefineという青い文字を押すと詳細が確認できます。試しにUpdate対象として表示されたHardware Entities(ESX)のDefineを押して詳細を見てみましょう。
どうやらFirmwareがUpdate対象となっているようです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/7c145f20-b1c1-7131-7090-6a913b1ee9bb.png)

再びAvailable Updateの画面のトップ画面に戻ってから、Updateしたいものを選択します。今回はHardware Entities(ESX)を更新したいと思うので、Hardware Entities(ESX)にチェックを入れ、[Update Selected]を押します。
ここに表示されたもの全てにチェックを入れて更新することもできますが、今回は1つだけ指定してUpdateしてみようと思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/143d74dc-e350-7946-31ae-a141c0524d8f.png)

Updateするかの確認を求められるので、このままUpdateする場合は[Apply 4 Updates]を押します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/049546c1-2e98-e836-d6cf-a534333ab655.png)

vCenterサーバーのIPアドレス、ユーザー名、パスワードを入力して[OK]を押します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/94e1396a-19cb-9d0b-7acc-a87f249d1e20.png)

LCMによるUpdateが開始するので、完了するまでしばらく待ちます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/e92a2540-2c69-8e8c-7891-a40b893f13ac.png)

Update中は、自動で1台ずつUpdate作業が行われますが、Update対象のホストにいる仮想マシンは事前に他のホストにvMotionされながらUpdateが行われます。1Click Upgradeと同じです。また、LCMのUpdate操作は問題なくできるものの、Updateが開始してしばらくするとエラーが出てUpdateが停止してしまうことがあれば、vMotion用のVMkernelが正しく構成できていないとか仮想マシンがローカルデータストア（SATADOM上）に収容されてしまっているとか、何かしらの阻害要因があるので、エラーの内容を確認してトラブルシュートしてください。

Updateにはかなりの時間がかかると思ったので、完了するまでしばらく放置しておきましたが、無事Updateができました。
Updateが完了したかどうかはタスクから確認しましょう。
無事にUpdateされると以下のように表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/52b64993-57a6-2915-d69e-ad74c7485ef5.png)

再びPRISM上のギアのアイコンから"Life Cycle Management"を選択して、Available Updateの画面を表示します。
すると、Update前に表示されていたHardware Entities(ESX)が消えてなくなり、もう一つのUpdate対象であるHost Boot Devicesだけになりました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/31c02b6d-3e55-b6fe-d898-0a63df65976e.png)

隣にあるInventoryというタブを選択すると、更新対象ではないものが表示されますが、先ほどまでUpdate対象であったHardware Entities(ESX)はこちらに表示されていることが確認できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/111342/f2c57834-78bf-93f8-de73-62ecd8ece94c.png)

#LCMを使ってみて思ったこと
ということで、LCMを使ったUpdate操作自体は複雑ではないのですが、使ってみて思ったことは
・LCMを使えば、AOSやHypervisor、FirmwareなどUpdateしたいものは一括でバージョンアップができると思って試したが、実際はAOSやHypervisorのバージョンアップはできなかった。
・LCMでAOSやHypervisorの更新ができないため、LCMで更新をした後に1Click Upgradeを行いAOSやHypervisorの更新を行う必要があった。
・更新の前後でのバージョンの確認がしづらく、本当にUpdateされたのかが分かりづらい。
・LCMで更新できるFirmwareはサーバーに搭載されている全てのパーツのFirmwareが対象とはなっていないと思われる（NICやRAIDコントローラーのFirmwareは更新されなかった）。そのため、メーカーサイトから個別にFirmwareをダウンロードして、ガイドされている手順に従ってFirmwareを更新することになる模様
・LCMはXCシリーズのようなNutanix製品のOEM製品を利用している場合やSoftware ChoiceでNutanixソフトウェアを購入してDell EMCのPowerEdgeやHPE Proliant上でNutanixを動かす場合に利用するメリットがありそう（Nutanix純正モデルのNXシリーズであればLCMを使わずとも1Click UpgradeでFirmwareやAOSやHypervisorも更新できるが、Dell EMC XCシリーズのようなOEM製品やPowerEdgeを使う場合では1Click UpgradeではFirmwareの更新はできないため）

LCMでどこまで何ができるかがはっきりしなかったので今回テストしてみましたが、所感としては便利な機能ではありますが改善の余地はあるなと思いました。
今回使用したバージョンは2.1というバージョンでしたが、検証期間中にもマイナーバージョンではありますが新しいバージョンがリリースされていましたし、本記事を執筆中にもさらに新しいバージョンが出ていました。
今は進化の過程だと思われますので、今後さらに便利になることを期待していきたいと思います。
またメジャーバージョンが変わった段階あたりで再度テストしてみたいと思います。