こんにちは。
クロステック事業部 第二クロステックセンター Ao です。

 

本記事ではNutanixとは何ぞや?という方向けにNutanixの基本の”き”を紹介していきます。
主に、Nutanixの特長やコアコンポーネントであるCVMの概要を説明させていただきます。
HCIの説明はこちらで紹介しているので、ぜひご覧ください!

1.Nutanixとは

Nutanix(ニュータニックス)はHCI(ハイパーコンバージドインフラ)製品の一つであり、企業の名前でもあります。
HCI製品を提供している企業は複数ありますが、その中でもHCI業界を牽引している企業の一つです。
※ガートナー社のHCI分野のマジック・クアドラントでもLeaderに選出されています

また、HCI製品だけではなく、マイクロセグメンテーションに関する製品やDRに関する製品、k8sの管理ソリューションなど幅広く扱っています。
今回はNutanix社のコアであるHCIに焦点を当てて説明していきます。

2.Nutanixの特長

まずは、Nutanixと他社HCI製品を比較した際の特長を紹介します。
特筆すべき点は以下になります。

  • ハイパーバイザの選択肢が豊富
  • Nutanix社が提供するHWを選択可能
  • バックアップ機能がビルトインされている

ハイパーバイザの選択肢が豊富

まず1点目のハイパーバイザの選択肢についてですが、文言通り複数のハイパーバイザの中から用途にあったハイパーバイザを選択できます。
具体的には、Nutanix社が提供しているKVMベースのAHVと呼ばれるハイパーバイザのほか、ESXiやHyper-Vを選択できます。
なお、AHVに関しては無償で利用することができるため、Nutanixを選ぶメリットの1つと言えます。
上物にVMwareのHorizonなどを利用してVDI環境を構築する場合はESXiを選択する等、用途に応じてハイパーバイザを選ぶことができます。

Nutanix社が提供するHWを選択可能

2点目は利用可能なHWに関する特長です。
NutanixはHCIを実現するためのソフトウェアを提供しているだけではなく、NXシリーズと呼ばれるHWを提供しています。
NXシリーズのサーバ自体はSupermicro社のHWを利用していますが、その中にAHVとCVMがプリインストールされた状態で出荷されます。
従って、NXシリーズを選択し、ハイパーバイザにAHVを利用する場合はサーバが納品され次第すぐにHCIのクラスタを構築し始めることが可能です。(ネットワークの設定等は必要)
なお、ESXiやHyper-Vを利用する場合は、Foundationというツールを利用してハイパーバイザの再イメージング作業が必要となります。

つまり、NXシリーズを利用することでハイパーバイザの導入作業が不要になるため、構築期間の短縮が見込めます。

また、NXシリーズを利用することでHWに関するサポートもNutanixが対応してくれます。
通常、HWと仮想化レイヤ(HCI含む)の担当ベンダは異なっており、
HWの障害か仮想化レイヤの障害か判断が難しい場合は両ベンダへ問い合わせが発生することがあります。
(仮想化レイヤのベンダからHWレイヤのベンダへ問い合わせを依頼されることも多々ある)

しかし、NXシリーズを利用し、ハイパーバイザにAHVを採用した場合は問い合わせ先を完全に一本化できます。

これは、仮想化基盤の運用経験がある方であれば非常に大きなメリットであることが分かると思います。

バックアップ機能がビルトインされている

Nutanixには標準でバックアップ機能が搭載されています。
これは、ハイパーバイザレイヤで行われるスナップショットではなく、ストレージベースでのスナップショットになります。
一般的なストレージベースのスナップショットはLUやボリューム単位でのバックアップ/リストアになりますが、Nutanixでは仮想マシン単位でスナップショットを取得します。
リストアに関しても、仮想マシン単位もしくは仮想マシン内のファイル単位で実施可能です。

なお、Nutanixのスナップショットは、対象データを保管しておく専用領域が不要であるRedirect-On-Write方式を採用しています。
スナップショットを取得すると、対象のブロックは読み取り専用となります。

また、ハイパーバイザレイヤで取得するスナップショットとストレージベースのスナップショットには運用面でも違いがあります。

ハイパーバイザレイヤで取得するスナップショットは仮想ディスクがチェーン構造になるため、
中間地点のディスクで障害が発生する可能性や、I/O効率が低下する可能性があるため、バックアップとしては推奨されません。
VMware社のESXiのスナップショットでもバックアップとしての利用が非推奨である旨案内されています。
(参考:https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-64B866EF-7636-401C-A8FF-2B4584D9CA72.html

ストレージベースのスナップショットは、先述した通りバックアップ対象領域をブロック単位で制御するため、仮想ディスクがチェーン構造になることはありません。

Nutanixが提供しているバックアップ機能はストレージベースのスナップショットであるため、バックアップとして利用することが可能です。
※実際に私が携わった案件でもNutanixのバックアップ機能を利用していました

このバックアップ機能を利用すれば、別途バックアップ製品を導入する必要がなくなります。
このような理由から、バックアップに関してもNutanixの特長の一つであると私は思っております。

3.Nutanixのコアコンポーネント~CVMを知る~

いよいよNutanixのコアコンポーネントであるCVM(Controller VM)の説明をしていきます。

HCIはストレージI/Oをどこでコントロールするかが製品選びのポイントにもなってきます。
簡易的な説明になりますが、ハイパーバイザのカーネルでVMのストレージI/Oを捌くパターンと、
専用のVMでストレージI/Oを捌くパターンの2パターンに大別されます。(※)
Nutanixでは後者の方式を採用しています。
(※)こちらの記事の「ストレージI/Oの制御方法」でも解説しています

ストレージI/OをコントロールするVMのことをCVMと呼んでいます。
CVMはNutanixのコアコンポーネントであり、CVMを知ることがNutanixを知る近道になります。

CVMの役割は?

前述の通り、CVMはUser VMのストレージアクセスをコントロールするストレージコントローラの役割を担います。
また、Nutanixのクラスタを管理する様々なコンポーネントもCVMの中で動作しています。
なお、ハイパーバイザから見ると、CVMはUser VMの一つでしかありません。
VMwareでいうと、ESXiのHost ClientやvCenterのvSphere Clientから、その他のVMと同様にCVMを確認することができます。
※CVMはCent OSベースのLinuxであり、isoイメージからブートされます

ストレージI/Oのパス

CVMは各ノード上で1台ずつ稼働します。
イメージ図は以下になります。

ポイントは以下になります。

  • User VMのI/Oはハイパーバイザのカーネルを経由してCVMに到達する
  • ストレージへのI/Oは全てCVMが担う
  • CVMとHDD/SSD間の接続はPCIパススルーが利用される

特に3点目についてですが、ホストの持つSCSIコントローラをPCIパススルーで利用するため、
無駄なオーバーヘッドがなく、ストレージI/Oの遅延を削減できます。

また、各仮想マシンのRead/Writeは必ず自ノード上のローカルディスクに対して行うという特性(データローカリティと呼ぶ)があります。
これは非常に重要な機能であり、Nutanixの設計思想の根幹でもあります。
※別途、データローカリティに焦点をあててブログを執筆したいので、今回は詳細に触れません

CVMの内部コンポーネントの概要

CVMの内部ではNutanixのクラスタを構成するために必要な様々なコンポーネントが動作しています。
それらのコンポーネントはOSSが主体であり、Nutanix以外で使われているソフトウェアも多く動作しています。
 Nutanixバイブルの図15にCVMの主要コンポーネントが示されています。
※CVMのコンポーネントがどのようにハイパーバイザと関わるかも示しているため、一部ハイパーバイザの名前も入っています

上記の中でも特に重要なコンポーネントの概要を紹介させていただきます。

Stargate

Stargateは各CVM上で動作するプロセスであり、ストレージI/Oを司る重要なプロセスです。
全てのI/OはStargateが管理しており、Stargateが停止するとストレージへのI/Oができなくなります。
とは言え、CVM間でステータス確認を行っており、Stargateが一定期間応答しないと、
別のCVM上のStargateを利用するようにストレージパスを変更する動きがあるため完全に停止するわけではありません!
Nutanixにおける障害時の動作についての記事は後日執筆したいと思います。

Zookeeper

動物園の飼育係ではありません。
ZookeeperはApache Zookeeperをベースとしたプロセスです。
Nutanixクラスタ内のホストの情報やIPアドレス、稼働状態など、クラスタの稼働に欠かせない情報を管理しています。
Zookeeperはクラスタ内の3ノードもしくは5ノード上で動作しており、その中の1台がリーダーとして選出されます。
対象ノードに障害が発生した場合は別ノード上のZookeeperがリーダーに選出されます。
なお、Nutanixクラスタ内のノードの台数などに応じてZookeeperの数が決定します。

Curator

Curatorはディスクバランシングや余分なデータのクリーンアップなど、クラスタ全体の最適化などを行うプロセスです。
私はクラスタ全体のお掃除係と覚えています。
分散型システムを扱う上で、クラスタ全体の均衡を保つことは非常に重要です。
Curatorはストレージ使用状況の均衡を保つために定期スキャンを行います。
定期スキャンは1時間に1回部分的に行われるpartial scanと6時間に1回行われるfull scanという2種類が存在します。
スキャンの中でノード間のストレージ使用状況の不均衡を見つけた場合はディスクバランシングが行われ、
余分なデータを見つけた場合は対象データの削除を行う等、定期的にクラスタの均衡を保っています。
また、CVMのCLI経由でCuratorのスキャンをキックすることも可能です。(あまり使うことはないと思いますが小技として知っておくと便利)

Cassandra

上記の図に掲載されていませんが、重要なコンポーネントなので説明します。
CassandraはUser VMのデータに関するメタデータを格納/管理する分散型のデータベースです。

全CVM上で動作しており、リング状の構造を持ちます。
データの整合性と可用性を保つために、隣接するノードでレプリケーションが行われます。

上記の他にも多くのコンポーネントが存在しますが、今回はここでとどめておきます。
今後、実機が用意できれば、実際に各コンポーネントが動作しているところをご紹介させていただきます。

既にお察しかと思いますが、Nutanixに出てくるコンポーネントの名前は、もろギリシア神話ですよね。。
個人的には覚えやすくて好みです。(笑)

Nutanixを扱う上で、内部コンポーネントを理解することは必ずしも必須ではなく、覚えずともただ使うだけであれば問題ありません。
しかし、トラブルシューティングやNutanixの内部の動作を理解するためには、内部コンポーネントを知る必要があります。
興味が湧いた方はNutanixの公式ドキュメントも読んでみてください!

4.まとめ

今回はHCI界隈でのNutanixの立ち位置やNutanixの特長、CVMの概要を説明させていただきました。
あまりテクニカルな話はできていないので、次回以降のブログでご紹介させていただきます。
具体的には、Nutanixの全体像をつかむために必要なDSF(分散ストレージファブリック)のお話やNutanixにおけるデータの扱い方(データローカリティや階層化)を中心に執筆したいと思っています。
その後、Nutanixの障害時の挙動や管理UI(Prism)について執筆させていただく予定です。

今回の記事で少しでもNutanixにご興味を持っていただけましたら幸いです。