Nutanix HCI Community Editionをセットアップしてみた

おうちで暇こいていたDeskMini A300に、Hyper-Converged Infrastructureとして馬車馬のように働いてもらおう!

(※注 この記事は、少なくとも約半年間ほど下書きに眠らせていた記事をたまたま発掘し、このまま眠らせているのももったいないなと思って書き上げたものです。公開時点での最新の状況とは多分に異なっている可能性がありますがどうかご容赦ください。長いこと下書きで熟成させていた私が悪い。)

0. はじめに

VMを手軽に立てたり捨てたりできる環境が欲しいなァと思っていたのですが、そんな折に実家からDeskMini A300を回収してきました。こいつになんか適当なLinuxを突っ込んでHypervisor的な使い方をしてもよかったのですが、それだとなんか面白くないし、VMware ESXiはIntelかBroadcomのNICじゃないとインストールできなくなっているらしいのでRealtekなNICのDeskMini A300にはインストールできないし、ということで、前から気になっていたNutanix HCI Community Edition(以下Nutanix CE)を試してみることにしました。

今回の生け贄のスペックは以下の通りです。

1. MyNutanixIDを取得する

Nutanix CEを取得するには、MyNutanixIDを取得し、Nutanix Communityに参加する必要があります。このへんから登録すればよいと思います。

注意点としては、フリーメールでの登録は弾かれるっぽいというのがあります。現にgmail.comoutlook.comなメールアドレスではUnauthorized email.として弾かれました。ちなみにvivaldi.netなメールアドレスなら登録できたので、ドメイン名のブラックリスト方式なのだと思います。マイナーなサービス使っててよかった!

2. Nutanix CEのインストーラをUSBメモリに焼いてインストール対象に挿す

リンクを辿ってisoをダウンロードしたら、適当なUSBメモリに焼いてあげましょう。rufusでもddでも使えばよいと思います。たぶんisoが5GBくらいあるのでUSBメモリは8GBのやつがいいと思います。

3. インストールする

参考にしたのは、Nutanixの中の人による以下の発表資料でした。

https://speakerdeck.com/smzksts/nutanix-ce-5-dot-18-deep-dive

正味これに沿って行えば十分です。基本的には。

4. ドツボにハマる

私がハマったドツボを一つずつ見ていきます。

1. そのままではRealtek製NICを認識しない

まあ上のスライドにも書いてあるんですが。

Nutanix CEでは、公式にはIntelかBroadcom製NICの環境を推奨1しています。ですがそうはいってもベースがCentOSなので、インストール中にNICのドライバを読み込ませることでインストールを続行し、その後もしれっとRealtek製NICを利用することができます。詳細は上のスライドのP.31以降あたりを参考にしてください。何なら資料の中でビルド済みのブツを公開してくださっています。大変ありがてぇ(私の環境でもこのビルド済みドライバで動きました)。

2. AHVをNVMeデバイスにインストールすると立ち上がってこない

インストールを進めていくと、Hypervisor(AHV)、CVM、Dataをそれぞれどのストレージにインストールするかを選択する画面が出てきます2

ここでかるーくAHV、CVM、Dataの各項目について触れておきましょう。ざっくりとした私の理解は以下の通りです。

  • AHV
    • Nutanix製のHypervisor。
    • 64GB以上あればSSDにだろうがHDDにだろうが、あろうことかUSBメモリにでもセットアップできるらしい。
    • どうもqemu-kvmベースっぽい(伏線)。
  • CVM
    • Controller VMのこと。HCI環境内の全体的なマネージメントを行うVM。
    • ……らしいけど、Hot Tierと注記されている場面もある。
    • 200GB以上のFlash Storage(SSD)へのインストールが必須(HDDにインストールしようとしても拒否される)。
    • VMをブートするディスクイメージなんかを保存してあるっぽい。
    • たぶん「Controller VMのデータどこにしまっておく?」という質問が「VMのデータどこにしまっておく?」というそれと等価で、それゆえここで選択した領域にVMのイメージが保存される。
  • Data
    • 読んで字のごとく。Cold Tierと注記されている場面もある。
    • 500GB以上あればHDDでもいい。
    • インストールに使うISOやらテンプレートやらの、たぶんそんなにHotではないデータが保存されるっぽい。

で、このうちのAHVのインストール先としてNVMeな環境を選択すると悲劇が起こります。インストールを済ませて再起動すると、AHVが立ち上がって来ずにエラーを吐き、Emergency Shellに落ちてくるのです。どういうことかと思って/devを見てみると、さきほどAHVのインストール先として選択したものをはじめ、NVMeなデバイスが何一つ存在しません。どういうことでしょう。

これはAHVがブートする際に、nvmeのドライバをロードしないのが原因です。modprobe nvmeとでもやってからEmergency Shellから抜ければひとまずブートはできますが、そうすると再起動のたびにEmergency Shellに落ちて来てしまうため、ちゃんとGRUBの設定に追記したうえで反映してやったほうがいいでしょう。具体的には、/etc/default/grub中のGRUB_CMDLINE_LINUXの末尾にrdloaddriver=nvmeと書き加えます。その後はどうにかしてその設定をgrubに反映してやればOKです。具体的にはUEFI環境ではgrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg、BIOS環境ではgrub2-mkconfig -o /boot/grub2/grub.cfgとやれば反映されます。

……ちなみにこの事象も、上のスライドのP.51あたりに詳細が解説してあります。出る幕ないじゃん私。

3. CVMを一部のNVMeデバイスにインストールすると立ち上がってこない

おまえもかよ。

紆余曲折の末、私の環境ではCrucial CT1000P1SSD8にCVM(Hot Tier)を割り当ててインストールしました。

無事にインストールが成功し、再起動してAHVの起動にも成功し、ようやっと起動したかと思ったのもつかの間、新たなるエラーが出現しました。

failed to add PCI capability 0x11[0x50]@0xb0: table & pba overlap, or they don't fit in BARs, or don't align

……どういうこと?

調べてみたところ、一部のSMI製NVMeコントローラにバグがあり、qemu-kvmがPCIパススルーを構成できないことによってこのエラーが発生するようです。こればかりは完全に詰み。お手上げです。

しかもCVMのインストール先として指定できるのはフラッシュストレージ(SSD)のみです。手元にある他のフラッシュストレージは、Data(Cold Tier)領域にしようとしていたSATA接続の1TB品のみ……。

もはや本末転倒だとも思いながら、CVM(Hot Tier)領域にSATA SSDを、Data(Cold Tier)領域にNVMeなCrucial P1を設定してイチからインストールをやり直しました。今度こそ……

と思ったら今度もダメでした。しかも同じエラーです。Data(Cold Tier)領域であろうと(というよりNVMeストレージであれば)、NutanixはPCIパススルーを構成して接続しにかかるようです。そのPCIパススルーが正常に構成できないのであれば、CVM(Hot Tier)領域だろうとData(Cold Tier)領域だろうと利用できないということでしょう。

結果、私の手元の環境では

  • AHV
    • Crucial P1
  • CVM
    • SATA 1TB SSD
  • Data
    • 500GB HDD(HGST)

という布陣で無事にNutanix CEをセットアップすることができました。めでたしめでたし。

後日談、というか今回のオチ

という感じで散々でした。あらゆるインフラを仮想化して管理するHyper-Converged Infrastructureではありますが、そのための仮想化すら必要なのではとか思わざるを得ませんでした(まあだからこそ認証済みアプライアンスで商売してるんだろうとは思いますが)。
ちなみに当時は認証済みアプライアンスもフラッシュストレージはほとんどがSATAのものでしたが、今現在Nutanixが掲載しているHardware Platform Spec Sheetsを見てみるとNVMeな構成や、挙げ句All NVMeなんていう構成も掲載されているので、いくらかNVMe周りの不便さは解消されているのかもしれません。

ちなみに私はあれからしばらくNutanix CEを楽しく使っていたのですが、

  • とにかくメモリを食いまくる
    • メモリを32GB載せても、VMに使えるのは半分の16GB程度
  • Prism(Nutanix CEのWebインターフェイス)のパスワード要件が厳しすぎる
    • しかも3ヶ月に1回だかでパスワードが無効になる
    • その度ごとに厳しすぎる要件のパスワードを作り直す必要がある

などの(主に後者の)要件に心が折れ、無事にProxmoxに乗り替えました。そのうちその話も書きます。

  1. https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Community-Edition-Getting-Started-v2020_09:top-sysreqs-ce-r.html ↩︎
  2. 私が試した当時、HypervisorとしてVMWare ESXiを利用するよう選択できましたが、例の件があったのでたぶんもうないかもしれません。 ↩︎

コメントを残す