NutanixのCVMについてまとめてみる
はじめに
Nutanix HCI環境のコアコンポーネントとして、CVM(Controller VM)と呼ばれる仮想マシンがあります。Nutanix関連の学習や記事を書いていくにあたって、CVMについて触れておかねばならないと思いましたので、今回はCVMについて整理したいと思います。
今日のトピックス
・CVM(Controller VM)についてまとめてみる。
CVMとは?
Nutanix HCI環境のコアコンポーネントであり、Nutanixクラスタ内の各ノード上に1台ずつ存在する仮想マシンです。中ではAOS(Acropolis OS)というOSが稼働しています。クラスタ環境内に複数台存在するため、これらのうち1台がAcropolis
どんなところがコアなの?という点についてですが、CVMの代表的な機能は以下となります。
ストレージコントローラーとしての機能
- 共有ストレージを提供(各CVM間で連携しローカルディスクを束ねて、共有ストレージとして提供)


- データの複数書き込み(ローカルノードに書き込まれたデータを別ノードにも書き込む、下図は2重書き込みの場合)

Nutanixクラスタを構成・管理するための様々なサービス
代表的なサービスとして、下記があります。
- Stargate
- データ読み書きを管理するサービス。AVHやCVM(ゲスト仮想マシン)からのインターフェース的な役割。
- Cassandra
- メタデータ(どのデータがどこに格納されているか?)を管理する役割。
- Medusa
- Cassandra(メタデータ)を読み出す際のインターフェース的な役割。
- Prism
- Nutanixクラスタを操作・管理するためのWebインターフェースを提供する役割。
- Zookeeper
- Zeus
- Zookeeper(構成情報)を読み出す際のインターフェース的な役割。
- Curator
- 6時間に1度稼働し、メタデータのメンテナンス(クリーンアップ)を実施する役割。
サービスの詳細説明や概念図は、Nutanixバイブルの図13にも示されています。
いずれの機能もNutanix HCI環境を構築・管理・運用していくにあたって、欠かせない機能ですね。
CVMに障害が発生した場合は?
CVMも仮想マシンであるため、障害が発生して停止してしまう可能性もあります。データ読み書きにはローカルノード上のCVMが利用されるため、CVM自体に障害が起きた場合はどうなるのでしょうか?
この場合はAutoPathという機能が働き、別ノード上のCVMに対して読み書き命令が出されるようになります。CVM障害から切り替わりまでの流れは以下となります。
Zookeeperがノード障害(ノード上のCVM障害)を検知
⇒Stargateに対して、30秒間に2回以上到達不可となった場合は障害と判断。
※30秒間の到達不可数が0になった場合、復旧と判断。障害検知後、CVM障害を起こしたノード内のAHVの設定を変更。
⇒iSCSI Redirectパスを変更。CVM宛の通信を別ノード上のCVM向けに変更するようなルーティング設定変更。
⇒別のCVMに流れるよう、AHV内部のルーティングを変更。
このあたりはAHV内部のネットワーク構成にも触れながら説明したほうが分かりやすいかもしれません。AHV内部のネットワークについては、別記事で取り扱いたいと思います。
おわりに
今回はCVMの基本情報をまとめてみました。CVMはNutanixクラスターにおけるコアコンポーネントということで、CVMに対する理解がNutanixに対する理解につながると思っています。
また、平常時の機能や動作を知ることはもちろんですが、障害時にどのような動作・仕組みで可用性が保たれているのかを知ることも大事そうですね。何かしらの障害時の切り分けに生きる可能性もありますので。
ということで今日はここまでにします。引き続き勉強に励みます。
※当ブログ内の記事での疑問点や記載内容に誤りがあれば、「お問い合わせフォーム」よりコメントいただけますと幸いです。