はじめに
Nutanixを触っていて「なぜCVMは1ノード1台なのだろうか?」と気になりました。ということで今回はCVMの役割をシンプルに整理しつつ、1ノード1台の理由を探っていきたいと思います。
※個人的な勉強メモとなりますので、記載内容について一切の責任は持ちません。
今日のトピックス
・CVMの役割をシンプルに整理してみる。
・なぜ1ノード1台なのかを理解する。
CVMの役割を一言で言うと
- Nutanixの制御プレーン
なぜ1ノード1台?
Nutanixの設計思想は「1ノード = 1ストレージコントローラ(CVM)」という構成に基づいているため。
- ローカルディスクの I/O パスを一元管理するため
- CVMはノード内の全ディスクを直接制御するコンポーネント。
- もし複数台のCVMが動作した場合、「どのCVMがどのディスクを扱うのか?」という競合が発生する。
⇒ RAIDコントローラが1ノードに複数不要なのと同じ理由。
- 分散ストレージを成立させるため
- Nutanix の分散ストレージはノード単位でデータを保持・複製する。
- I/O処理は各ノード上のCVMが行う。
- 1ノードに複数のCVMがあるとデータ複製やメタデータが矛盾する原因になる。
CVMが停止するとどうなるか?
- 該当ノードのI/Oを担当するStargateが停止 → そのノードのVMはI/Oパスが無くなる
- データの複製(Curator)が遅延 → クラスタ健全性が低下
- Prism/Zeusメタデータの冗長度が低下 → 障害時の対応幅が狭くなる
おわりに
今回はCVMについて調べてみました。Nutanixのコアコンポーネントなだけあって重要な機能を担っていますね。勉強を始めたころは、「ノード上に複数台あっても良いのでは?」と思ったこともありましたが、実際には、
・ローカルディスクの一元管理
・分散ストレージの構成
といった観点から「1ノード=1台」が最適な設計であることが分かりました。多ければ良いというものではないですね。
こういった仕組みを理解しておくことで、トラブルシュートやクラスタ構成・設計の理解にもつながります。今回の調査が今後の知識の土台になればうれしいなと思います。