Nutanix Community Edition用の機材について考えてみた2019年版（逸般的な誤家庭編）

![スクリーンショット 2015-07-17 03.57.08.png](https://qiita-image-store.s3.amazonaws.com/0/84474/0f0c7723-0239-9e29-ce48-1a48cfe55afb.png)
本記事は、Nutanix Advent Calendar 2018、2枚目の25日目、12月25日分としての投稿になります（もう26日ですが…）。
https://adventar.org/calendars/3174

**本記事の内容はこの日付時点の情報（ce-2018.05.01-stable）に基づいています。そのため，今後新しいバージョンが提供された場合に，当該記載と矛盾が生じる場合がありますのでご注意ください。**

#はじめに
本記事は、（非常に私見に満ちた）Nutanix Community Editionの機材について考える2019年版的な何かです。過去QiitaでNutanix Community Edition（以下、Nutanix CEと表記）に関連する機材に関する記事について書いてきましたが、定期的なアップデートとして、今年も書いてみたいと思います。

なお、本記事の読者は、主にNutanix CEを徹底的に使い倒すことを想定している**逸般の誤家庭**がメインターゲットとなっています。実際の逸般的な誤家庭の典型的なユースケースについては、以下の2件が参考になります。
>Nutanix Advent Calendarの2枚目の15日目
[一般的なご家庭と逸般的な誤家庭のNutanix CEクラスター](https://blog.ricefield66.net/2018/12/nutanix-ce.html)
Nutanix Advent Calendar 2018、1枚目の9日目
[インフラ勉強会の検証基盤にNutanix CEを導入しようとしてトラブった話](https://qiita.com/dozono/items/b1ee6c4502ca6444b1e1)

##Nutanix CEの最新動向
最新動向といっても、2018年5月にce-2018.05.01-stableのバージョンが出て以来、しばらくバージョンアップが行われていないため、最新動向というほどの動向はないのですが、ここ2年ほどで、大きく変わったポイントはあるので、そちらについて触れておきたいと思います。

##Nutanix CEの動作要件
まず最初に、改めて、Nutanix CEの動作要件についてですが、基本的にここ数年、動作要件については変わりありません。ただし、いくつか前のバージョンからNutanix CEを動作させるハードウェアまたは仮想ハードウェアのメモリ搭載量によってCVMに割り当てられるメモリ容量が自動で変化するようになっています。

* インテル製の4コア物理CPU
* 16GB以上のメモリ
* 200GB以上のSSDかつ500GB以上のHDD（AND条件）
* インテル製の1Gbps以上のNIC

>詳細な動作要件の参考情報
[【2016年版】Nutanix CE再入門＋最新情報（その3：必要な機材や環境の準備-前編）](https://qiita.com/hanakara_milk/items/51db918e93fcbc8b679e)
[【2016年版】Nutanix CE再入門＋最新情報（その4：必要な機材や環境の準備-中編）](https://qiita.com/hanakara_milk/items/61ddf1549c60f73a3a9d)

##Nutanixの新規機能に関する動向（Prism Central）
しかしながら、Nutanixの機能の提供形態に大きな変化が出てきています。それはPrism Centralの存在です。最もベーシックな仮想化インフラストラクチャに関する機能はCVMから提供され続けているのに対して、Nutanixをよりもっと便利に利用するためのプラスアルファの機能は、いずれもPrism Centralに集約されるようになりました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/4453c79e-b53d-a9e1-61b9-ddc165bca8b9.png)

そのため標準的な仮想化インフラストラクチャのみを利用する場合は、動作要件の最小構成で問題ないのですが、追加の機能や拡張機能を利用したい場合にはPrism Centralをデプロイする必要があります。この場合、最低要件に加えてプラスでさらに仮想アプライアンスの形で提供されるPrism Centralをデプロイするために、最低でも12GBのメモリと600GB程度のストレージ容量（ストレージについてはシンプロビジョニングでデプロイされるため初期リリース時には数十GB程度の追加）が追加で必要となるため、要件のハードルが一気に上がることになります。

##Nutanixの新規機能に関する動向（Prism Central以外の新規機能）
以下の図に示すとおり、ここ2年ほどでNutanixのプロダクトファミリーは随分と様変わり・・・というか、非常に多くなっています。そのため、Nutanix CEのみで試せる機能は、これらの製品群のうち、赤い点線で囲われた機能のみとなっています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/a046044d-65df-6bea-ac8b-4e1468c95169.png)

その理由は、オンプレミスの機能だけでなく完全なパブリッククラウドベースで提供される機能やSaaS形式で提供される機能が増えており、これらの機能については、Nutanixの製品ファミリーではあるものの、NutanixのAOSとは別途異なる製品として提供されるためです。しかしながら、一部制限がありながら、トライアルや無償で利用可能な製品・機能もあり、中にはNutanix CEと連携させつつ動作させることが可能な製品もあります。

##Nestedかベアメタルか
今年初め頃から現時点までにおいて、Nutanix CEをインストールする環境の選択肢として大きく考え方を変えなければいけなかったものに、Nestedかベアメタルかの判断基準があります。昨年末あたりまでは、いずれの環境でも特に問題がなかったのですが、現時点までの、ここ数バージョンでは、Nestedでのインストール難易度が跳ね上がっており、ベアメタルインストールのほうがNutanix CEを簡単に構築できるようになっています。

これは、Nested環境を構築するために最もよく利用されているVMware vSphereまたはESXiのバージョンによって、Nutanix CEのインストーラーがそのまま動作しなかったり、インストールはうまく行っても、ゲストVMが起動しなかったり、Prism Centralがインストールできなかったりと言った問題が生じているためです。

もちろん、これらの問題に対応するためのワークアラウンドは存在しますが、その為の手間が掛かることも事実で、現時点ではベアメタルインストールが最もトラブルが少ないインストール方法となっています。

なお、Nestedでインストールする際のワークアラウンドやTipsについては以下が詳しいです。
>
Nutanix CE を Nested ESXiへインストールする9つのTips
https://blogs.networld.co.jp/main/2018/08/nutanix-ce-nest-5c4e.html
>
ESXi で Nested Nutanix CE を構成してみる。（ce-2018.01.31-stable 対応版）
http://blog.ntnx.jp/entry/2018/03/05/022159


##2019年版のNutanix CE用機材のポイント
これらの状況を踏まえて、改めて2019年版のNutanix CE用の機材選びのポイントを最重要項目から見ていきます。

###重要リソース：第一位はメモリ（注：個人の感想です）
2019年版のNutanix CE用の機材選びの最重要リソースは「メモリ」になります。1にメモリ、2にメモリ、3、4がなくて5にメモリです。

既に最低要件として必要な16GBのメモリに加えて、Nutanixの旬な機能を試すにはPrism Centralが必須になります。そのため、前述のとおり追加のメモリがさらに12GBで必要で、かつCalmなどを試したり、今後、登場する予定の[NutanixのマネージドKubernetesサービスであるKarbon](https://qiita.com/hanakara_milk/items/cc087617ebef0651ff29)が、仮にNutanix CEで対応した場合には、さらに追加で数十GBの追加メモリが必要になることが想定されます。

実際にはvCPUもそれなりに要求されますが、CPUのオーバーコミットをかなりの率で許容すれば（もっさり感は出たとしても）動きます。しかし、メモリについてはオーバーコミットを許容しないため、とにかく人権レベルではまったく足りないレベルでメモリが必要です。

###重要リソース：第二位はCPU（注：個人の感想です）
前述のとおり、CPUはメモリとは異なりオーバーコミットが効くため、少ないリソースでも割と無理が効くリソースです。ただし、いくらCPUがオーバーコミット可能とは言うものの、CVMが4vCPU（CVMについては物理2コア相当を占有）、Prism Centralをデプロイした場合には、やはり4vCPUを構成するため、通常のゲストVMやCalmでデプロイされるVM群、そして先ほども挙げたKarbon等を将来的に利用できるようになったと仮定した場合、かなりのCPUオーバーコミット率となります。
過剰なオーバーコミットは、やはりゲストVMの性能に響いてきます。そのため、メモリほどではないものの、CPUリソースもあるとよりベターです。

###その他のリソース（注：個人の感想です）
ストレージについては、シングルノード構成の場合、レプリケーションファクターによるデータの冗長化を行わないため、最低要件の構成でも、SSDとHDD合計の700GBのうちの大半を利用することが可能であること、AHVでは常にシンプロビジョニングでディスクを利用することから大きなディスクサイズのゲストVMを作成しない、またはPrism Centralを長期間に渡って利用しない（ログやメトリック情報を大量に溜め込まない）限りはディスク不足になるような場面は少ない想定です。

またマルチノード構成（この場合は3ノード以上、4ノード以下）の場合は、レプリケーションファクターによるデータの冗長化が行われ、実効容量は物理容量の約半分程度となりますが、少し乱暴な計算だと、最低要件のSSDとHDD合計の(700GB×3)÷2または(700GB×4)÷2となるため、利用可能ストレージは、約1TB程度となり、この場合でも、相当大きなディスクサイズのゲストVMを大量に作成しない限りは問題はあまりでないと思われます。

ネットワークについては、Nutanix CEのノード数が最大でも4であることや商用版のNutanixと異なり、CVMがSSDやHDDをPCIパススルーで掴んで処理をしないことから、商用のNutanixほどのI/O性能やストレージスループットを出せないこと、またそのためにリモートノードとのデータ通信帯域についても、必然的にNutanix CEのストレージ性能からみて10Gbpsを必要とするケースはあまり生じないことから、大容量のNVMeを組み込んだ構成などを取らなければ1Gbpsでも問題なく運用可能です。

##2019年版のNutanix CE用機材選び
ここまでの内容から、2019年版のNutanix CE用機材選びは漏れなく**逸般的な誤家庭**向け機材となります。もう一度、Nutanix CEを徹底的に楽しみ倒すのに必要なメモリ容量を確認しましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/afa067e6-77eb-b0fe-0a26-ffb5d0c7236c.png)

**（かなり乱暴な個人の妄想による）**試算の結果、必要メモリは92GBとなりました。通常ゲストVMを少し減らし、KarbonはまだNutanix CEで利用可能になるか不明であるため、それを差し引いたとしても、64GB程度はあったほうがよいでしょう。そうなるとNUCでは厳しく、多くの自作用の一般的なATX規格のコンシューマーマザーボードでもメモリスロットが4本が標準であるため16GBモジュールメモリを4本用意してギリギリと言ったところです。

そこでお勧めなのが、Xeon E5-2600系が搭載可能なSandyBridge/IvyBridge世代あたりの中古の2ソケットのラックマウントサーバーまたはタワー型サーバーです。これらの世代は既に5年落ち以上の古さですが、割と手頃な値段で手に入ること、またこの世代はメモリスロットが24本あること、そしてIvyBridge世代のCPUで最大12コア/24スレッドのCPUを利用できることから**逸般的な誤家庭**向け機材としては最適です。

ヤフオクなどではDellのPowerEdgeやHPEのProLiantなどは比較的に人気が高く、入札に参加しても割高になりやすいのですが、例えばFujitsuのPRIMERGYの場合あまり人気がないのか、DellやHPEのサーバーと同一スペックで比較した場合、格段にお安く入手が可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/ceb7b990-7b54-f7f7-66c5-dc445ff04365.png)

ここで1ソケット系のE3-1200系を押さないのには訳があります。SandyBridge/IvyBridge世代あたりのE3-1200系は基本的に多くのケースでメモリスロット数も4本構成であるほか、ECCメモリのみに対応でメモリ1枚あたり16GBモジュールの中古品が大量に流れているECC REGISTERDメモリに対応していません。

Xeon E5-2600系対応の2ソケットサーバーでは仮に、CPUが1ソケットしか搭載されていなくてもメモリスロットを12本まで利用可能です。その場合、8GBメモリモジュールを12本搭載した場合で96GB、16GBメモリモジュールを12本搭載した場合では192GBのメモリが搭載可能です。2ソケットともCPUが搭載されている場合は、その倍のメモリが搭載可能であるため、8GBメモリモジュールでメモリスロットをすべて埋めた場合は192GB、16GBメモリモジュールでメモリスロットをすべて埋めた場合は384GBまでメモリが搭載可能です。

では、手頃なPC3-12800R/10600RやPC3L-12800Rの8GBや16GBのメモリモジュールで64GB分のメモリを入手するのに必要な金額をヤフオクで見てみましょう。以下のようにおおよそ64GBあたり16000円弱で入手可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/10058624-e426-34c6-cb79-bb6766b84d75.png)

これ以外に200GB程度のSSDは、新品の価格でも、あまりブランドを選ぶことしなければ、これくらいの値段で入手が可能です。このあたりの容量のSSDはかなり値段がこなれていて、逆にHDDのほうが高く付く逆転現象も起きています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/ffefa4e7-d640-a9a4-a87d-3e3f60867b08.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/77aab010-881f-4956-c4cb-1bb3f9ddb831.png)

#まとめ
Nutanix CEで可能な限りの機能を試す場合、Nutanix CEを構成するマシンには、とにかく積めるだけメモリを狂ったように搭載しましょう。既にそこそこ型落ちなサーバーでも、1台あたり384GB程度メモリは少し頑張るとすぐ手が届く距離にあります**（注：個人の感想です）**。

#POST SCRIPT
今回は逸般的な誤家庭編と言うことで、割と遠慮無く好き勝手にNutanix CEの構成例を挙げてみましたが、実際、Prismの操作体験や最低限の仮想化インフラストラクチャとしての利用のみであれば、メモリは12GB＋ゲストVMで利用するメモリ分のみで問題ありません。
また推奨ではありませんが、実はCVM及びPrism CentralのメモリはaCLI等を使って8GB～10GB程度までは減らすコトが可能です（ただし内部プロセスがクラッシュしたりする可能性が高まったり、I/Oの処理性能が落ちる場合があります）。ですので、メモリを100GBも200GBも搭載する必要なくNutanix CEはご利用いただけますのでご安心下さい。

まだNutanixのSSP（Self Service Portal）再入門（その3）も書き上げていませんが、次回は逸般的な誤家庭編ではなく、もっと手軽にNutanix CEを試せる機材構成をまじめに考える回「Nutanix Community Edition用の機材について考えてみた2019年版（一般的なご家庭編）」をお送り（できれば）したいと思います。