クラウド屋さんになりたい

地方でインフラエンジニアやってます。 仮想環境を含めた広義のクラウド屋さんを目指して、勉強したことや思ったことをゆるく書いてみます。 時代や最新技術の流れに置いていかれないよう、のんびりでもコツコツ頑張りたいなあ。

CVMの役割をシンプルに整理してみる(なぜ1ノード1台なのか?)

はじめに

Nutanixを触っていて「なぜCVMは1ノード1台なのだろうか?」と気になりました。ということで今回はCVMの役割をシンプルに整理しつつ、1ノード1台の理由を探っていきたいと思います。

※個人的な勉強メモとなりますので、記載内容について一切の責任は持ちません。

今日のトピックス

・CVMの役割をシンプルに整理してみる。
・なぜ1ノード1台なのかを理解する。

CVMの役割を一言で言うと

  • Nutanixの制御プレーン
    • Nutanixの内部では、さまざまな分散サービスが動作している。代表的なものは以下。これらは全てCVM内で動作をしている。

なぜ1ノード1台?

Nutanixの設計思想は「1ノード = 1ストレージコントローラ(CVM)」という構成に基づいているため。

  1. ローカルディスクの I/O パスを一元管理するため
    • CVMはノード内の全ディスクを直接制御するコンポーネント
    • もし複数台のCVMが動作した場合、「どのCVMがどのディスクを扱うのか?」という競合が発生する。
      ⇒ RAIDコントローラが1ノードに複数不要なのと同じ理由。

  2. 分散ストレージを成立させるため
    • Nutanix の分散ストレージはノード単位でデータを保持・複製する。
    • I/O処理は各ノード上のCVMが行う。
    • 1ノードに複数のCVMがあるとデータ複製やメタデータが矛盾する原因になる。

CVMが停止するとどうなるか?

  • 該当ノードのI/Oを担当するStargateが停止 → そのノードのVMはI/Oパスが無くなる
  • データの複製(Curator)が遅延 → クラスタ健全性が低下
  • Prism/Zeusメタデータの冗長度が低下 → 障害時の対応幅が狭くなる

おわりに

今回はCVMについて調べてみました。Nutanixのコアコンポーネントなだけあって重要な機能を担っていますね。勉強を始めたころは、「ノード上に複数台あっても良いのでは?」と思ったこともありましたが、実際には、
・ローカルディスクの一元管理
・分散ストレージの構成
といった観点から「1ノード=1台」が最適な設計であることが分かりました。多ければ良いというものではないですね。

こういった仕組みを理解しておくことで、トラブルシュートやクラスタ構成・設計の理解にもつながります。今回の調査が今後の知識の土台になればうれしいなと思います。