Nutanix CE 5.18の変更点について(特にセットアップ周り)

⌛この記事を読むのに必要な時間は約 11 分です。

この記事はNutanix Advent Calendar 2020の12月1日分として執筆しました。

 
今年最初のネタはアドベントカレンダーらしく(?)、9月末にリリースされたNutanix Community Editionの最新バージョンであるNutanix CE 5.18について取り上げたいと思います。
 

新機能

ひとつ前のCEはAOS 5.11.Xをベースにしていました。Nutanix HCIの機能追加はSTSリリースに対して行われますので、AOS 5.16. 5.17, 5.18 相当の機能が追加されたことになります。なお5.15はLTS(=長期サポート版)のため、新規の機能追加はありません(機能的には5.11に相当)。
 
AOS各バージョンの機能追加については、こちらのリンク先でざっくり確認できます。公式情報ではありませんが、Nutanixの中の人がまとめています。
 
12/7追記:
なんとNAS機能であるNutanix Filesも使用可能になっていました!

対応ハイパーバイザーの追加

従来、Nutanix CEで利用可能なハイパーバイザーはNutanix AHVのみでしたが、CE 5.18からはVMware ESXiにも対応しています。
 
ただし現時点では、ドキュメンテーションが追い付いていないようで、対応バージョンやシステム要件が曖昧です。私自身がIntel NUCにインストールしようとした際にも色々とハマり、インストーラー内部で使用されるスクリプトや設定ファイルをいじってどうにかインストールできた様な状態でした。
なおハマった原因としては、私の環境では、ESXiのブート領域をUSBメモリにしているせいである疑いがあります。Nutanix+ESXi環境では、CVMの構成情報を格納するために、ローカルデータストアを使用するのですが、ESXiにおいてUSBメモリはデフォルトではデータストアとして利用できない(コマンドを叩く必要がある)ようです。USBメモリではなくSSDやSATA-DOMが使用できる環境ならばあっさりインストールできる可能性があります…。

というかそもそも、せっかくNutanix CEを使うなら、AHVを使えばいいんですよ(真顔)

 

インストーラーの変更

Nutanix CEのインストーラーが変更されました。従来はCE専用のインストーラーでしたが、内部的な造りは商用版に近くなっています。
 
従来は拡張子imgのディスクイメージが配布されていました。中身はCE専用インストーラー 兼 AHV(ハイパーバイザー)起動ディスクとなっています。AHV自身はあらかじめディスクイメージ内に展開されていますので、CE専用インストーラーが実際に行っている処理は、SSD上のパーティションへのCVMのインストール、および各種設定です。
 
CE 5.18ではISOイメージで配布されます。ISOイメージの中身はPhoenixというLinuxベースのNutanix HCIセットアップ用ミニOSです。Phoenixは商用版のセットアップにも内部的に利用されているプログラムで、ハイパーバイザー起動ディスクに対するハイパーバイザーのインストール、SSD上のパーティションへのCVMのインストール、および各種設定です。
 
この変更は、CE 5.18でVMware ESXiに対応するために必要なものですが、下記のとおりトレードオフとなった点がありますので注意が必要です。
 

インストーラー用とハイパーバイザー用のディスクは別個に必要

従来バージョンはインストーラーとAHVの起動ディスクが両方の役割を兼ねていました。

 
CE 5.18のインストーラーはISOイメージ(Read Only)です。ISOイメージの使い方としては「DVDに焼く」「アプリ(WindowsならRufusなど)でブータブルUSBメモリを作る」「(サーバー機の場合)IPMIの仮想光学ドライブ機能を使ってマウントする」などの方法があります。従来バージョンと混同しやすい点として、ブータブルUSBメモリを作った場合で、そのUSBメモリはハイパーバイザーインストール先としては使用できません。ハイパーバイザーインストール先としては別のディスクを指定する必要があります。
 
なお従来バージョンでは、インストールに使用したUSBメモリは、その後もAHV起動ディスクとして使用されるので、ずっと挿したままにする必要がありました(※間違って取り外しがち)。CE 5.18では、インストーラーのメディアは純粋にインストーラーとして使用するだけなので、インストール処理中の再起動の際に取り外すように指示されます。挿しっぱなしだとBIOSのブートデバイス優先順位によっては、またインストーラーが初めから起動してしまう可能性があるので注意しましょう。
 

ハイパーバイザー起動ディスクの書き込み性能に注意

従来バージョンのインストール処理においては、AHVのデータはあらかじめNutanix CE 配布時のディスクイメージファイル内に展開されているため、USBメモリへのアクセスは読み込み(CVM用のデータを読み込んでSSDにコピーする)が殆どを占めていました。そのため、比較的遅いUSBメモリ(USB 2.0時代のものや、3.0対応でも安価なモデル)でも利用することができました。
 
CE 5.18では、Phoenixがハイパーバイザー起動ディスクにハイパーバイザーをインストール(書き込み)しますので、書き込み性能に要注意です。書き込みが遅すぎるとインストーラーがタイムアウトします。こちらは実際にESXiのインストールがタイムアウトしたときのスクショです。
 
 
特に安価なUSBメモリは、シーケンシャルリード等はそこそこ快適でもランダムWriteが絶望的に遅いモデルが非常に多いです。実際私も、今まで使っていたUSBメモリ(出っ張りの少ない超コンパクトタイプ)ではタイムアウトしてしまうため、買い換えました。
 
性能と価格のバランス的に、おすすめは使用されているフラッシュがMLCのもの。私はこのあたりの製品をいくつか買いました。

どうしても手持ちのUSBメモリで済ませたいとき

そんな時はインストーラーのタイムアウト値を書き換える、という強引な手があります(アリとは言ってない)。インストーラーがタイムアウトすると(あるいは Ctrl + C でインストーラーを強制終了すると)、エラーメッセージが表示され、コマンド入力が可能なプロンプトが表示されます。
 
カレントディレクトリが /root であることを確認して
phoenix/imaging_helper/installer_vm.py というファイルを開き
HYP_INSTALL_TIMEOUT という文字列を探しましょう。
そこにハイパーバイザー毎に異なるタイムアウト値が設定されていますので値を増やせばOKです。
 
ただしこの後の操作に注意点があります。このファイルは、Read OnlyなインストーラーISOから、起動時に自動生成されているものなので、Phoenixを再起動すると元の状態にリフレッシュされてしまいます。そこで、Phoenixの再起動を行わずにインストーラーのみを再実行する必要があります。そのためのコマンドがコチラ(開発者に教えてもらわなかったらわからんやつだ!)。
 
./ce_installer && screen -r
 
Intel NUCでNutanix CE on ESXiを無理やりインストールしたときにも、スクリプトや設定ファイルを修正してから、このコマンドでインストーラーを再実行してました。インストールにハマって色々試してみる際にはぜひご活用ください。
 

【補足】ハードウェア構成について 

メモがてら何点か補足しておきます。
 
CPUについて
CE 5.18でも引き続き(おそらく)AMD非対応です。商用版ではAMD EPYC Romeへの対応が始まりましたが、CEではまだ動作確認されていません。
12/7追記:
AMDのCPUで動作することを確認しました!
試した際のHW構成と注意事項は下記のとおり。
  • 機種: Lenovo M75q Gen2
  • CPU: AMD Ryzen 7 PRO 4750GE
  • RAM: Patriot Memory DDR4 3200MHz PC4-25600 32GB SODIMM PSD432G32002S ×2
  • M.2 Drive: WD Blue SN550 WDS500G2B0C-EC M.2-2280 NVMe 500GB
  • 2.5inch SATA: WD Green WDS100T2G0A-EC 1TB
なお、オンボードNICであるRealtek RTL8111FPのデバイスドライバーがPhoenixに含まれていないため、RealtekからダウンロードしたLinux用ドライバーを自分でビルドしてインストールする必要がありました。
詳細手順は別途書くつもりですが、とりあえずビルド済みファイルを置いておきます。PhoenixはNICを認識できていないとインストーラーCUIが起動する前にエラーで止まってしまうのですが、その際に表示されるプロンプトで操作して、USBメモリ等を経由してこのファイルを食わせて、insmodコマンドで読み込めばOKです。あとはifcfg-eth0ファイルを手動で作ってeth0を起動して、通信可能な状態にしてから./ce_installer && screen -rでインストーラを起動しなおせばOKです。
 
ちなみに Hanabiさん 曰く、Ryzen Threadripper 1950X 搭載のマシンでもインストールに成功したそうです。ただしNVMeの認識に失敗し、SATAのドライブに変更して成功したとのこと。
(※追記ここまで)

 
メモリについて
色々遊ぶなら最低でも64GBは欲しい。
 
ディスクについて
ディスクタイプの組合せ
Nutanix HCIの分散ストレージはデータ階層化機能を備えているため、パフォーマンス層とキャパシティ層には異なるタイプのディスクが利用できます。ただしどんな組み合わせでもOKというわけではありません。
「SAS/SATA SSD+SATA HDD」「SAS/SATA SSD+SAS/SATA SSD」が鉄板。M.2スロットに挿すときもNVMeでなくSATAタイプを選ぶのが確実。 
「NVMe+SAS/SATA SSD」「NVMe+NVMe」も最近の商用バージョンではサポートされているため、動く可能性あり。「NVMe+SAS/SATAHDD」はNG…だった人と、大丈夫だった人、両方いますね…個人的には避けます。

また、3種類以上は混ぜないほうが確実です。

 
・コントローラー
ディスクの接続先を「SASコントローラーとオンボードSATA」という様な、複数のコントローラーの組み合わせにはしないことをお勧めします。SASならSAS、SATAならSATAに統一。そうしないとインストール時にコケる可能性が高くなります。
 
その他
CE作ってる人曰く、現時点の新インストーラーは対応済みのデバイスドライバーが旧バージョンより少なくなってしまっているらしいです。これは、Phoenixという商用と同じ仕組みを使ったが故の欠点です。特にNIC。Intel, Mellanox, Cisco, Broadcomあたりのドライバーはある程度入っていますが、Realtekは入っていません。
1つ前のバージョンも引き続き配布されているので、Intel CPUユーザーであれば、最新バージョンで上手くいかない場合には1つ前のバージョンでインストールしてから、最新版にアップグレードしてみてください、とのことです。
 

2020.12.28追記

もっと詳しい資料をSlideshareにアップしたのでご覧ください!

2021.1.6追記

CE 5.18に関する最新資料はSpeaker Deckに掲載しています。ぜひご覧ください!
Nutanix or ヤギ のことををつぶやきます。