Nutanixのアーキテクチャとは?AOS・CVM・DSFを理解しよう【NCA 7.5対策】
はじめに
前回は、NutanixとHCIについて学びました。
Nutanixでは複数の**Node(ノード)をまとめてCluster(クラスタ)**を構成し、コンピュートやストレージなどのリソースを利用します。
しかし、ここで疑問があります。
複数のサーバーに搭載されているストレージを、どうやって1つのシステムのように扱っているの?
その仕組みを理解するために重要なのが、
- AOS
- CVM
- DSF
です。
今回はNutanixの内部構造を少し掘り下げて、この3つがどのような役割を持っているのか見ていきましょう。
Nutanixの基本構造を確認しよう
Nutanixでは、複数のノードをまとめてクラスタを構成します。
Nutanix Cluster
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Node 1 │ │ Node 2 │ │ Node 3 │
└─────────┘ └─────────┘ └─────────┘
それぞれのノードには、
- CPU
- メモリ
- SSD / HDDなどのストレージ
- ハイパーバイザー
などが存在します。
つまり、単純に考えるとNode 1のディスクとNode 2のディスクは別々のものです。
しかしNutanixでは、それぞれのノードが持つストレージをソフトウェアによって統合して利用できます。
この仕組みを実現する重要な存在がAOS・CVM・DSFです。
AOSとは?
**AOS(Acropolis Operating System)**は、Nutanix Cloud Infrastructureを支える中核的なソフトウェアです。
名前に「Operating System」と入っていますが、
WindowsやLinuxのようにユーザーが直接操作する一般的なOSとは役割が異なります。
AOSはNutanixクラスタ上で、
- ストレージサービス
- データ保護
- データ配置
- クラスタ機能
などを提供します。
簡単に表現すると、
NutanixのHCI環境を動かす中心的なソフトウェア
と考えると分かりやすいでしょう。
CVMとは?
Nutanixのアーキテクチャを理解するうえで非常に重要なのが、
CVM(Controller Virtual Machine)
です。
日本語にすると「コントローラー仮想マシン」です。
名前のとおり、CVMは仮想マシンとして動作します。
基本的にNutanixの各ノードには、1台ずつCVMが配置されます。
Nutanix Cluster
┌────────────┐
│ Node 1 │
│ │
│ VM VM │
│ │
│ [CVM] │
└────────────┘
┌────────────┐
│ Node 2 │
│ │
│ VM VM │
│ │
│ [CVM] │
└────────────┘
┌────────────┐
│ Node 3 │
│ │
│ VM VM │
│ │
│ [CVM] │
└────────────┘
このCVMが、Nutanixのストレージ処理などを担当します。
つまり、
各ノードにいるストレージ管理担当者
のような存在です。
なぜCVMが必要なの?
従来の3Tier構成では、ストレージを管理するために専用のストレージ装置やコントローラーを利用することがあります。
Nutanixでは、ストレージ制御の多くをソフトウェアとして実装しています。
その中心となるのがCVMです。
CVMは、そのノードに搭載されているストレージへアクセスしながら、ほかのノードのCVMとも通信します。
Node 1 Node 2 Node 3
[CVM] ←────────→ [CVM] ←────────→ [CVM]
│ │ │
SSD/HDD SSD/HDD SSD/HDD
各ノードのCVMが連携することで、複数ノードに存在するストレージをクラスタ全体で利用できるようになります。
ここがNutanixのアーキテクチャを理解するうえで重要なポイントです。
DSFとは?
続いて、
DSF(Distributed Storage Fabric)
です。
DSFは、Nutanixの分散ストレージ機能です。
各ノードに搭載されたローカルストレージをまとめて、クラスタ全体のストレージとして利用できるようにします。
たとえば3台のノードがあったとします。
Node 1
SSD / HDD
Node 2
SSD / HDD
Node 3
SSD / HDD
物理的には、それぞれ別のディスクです。
しかしDSFによって、
Node 1 Storage
+
Node 2 Storage
+
Node 3 Storage
↓
Distributed Storage Fabric
↓
クラスタ全体で利用できるストレージ
という形で利用できます。
つまりDSFは、
複数ノードに分散しているストレージを、統合されたストレージ基盤として提供する仕組み
です。
CVMとDSFの違い
CVMとDSFは一緒に登場するため、最初は混同しやすい用語です。
簡単に整理すると、
| 用語 | 役割 |
|---|---|
| CVM | 各ノードで動作し、ストレージサービスなどを提供する仮想マシン |
| DSF | 複数ノードのストレージを統合する分散ストレージ機能 |
と考えると分かりやすいでしょう。
CVM同士が連携することで、DSFによる分散ストレージが実現されています。
VMからストレージへのアクセス
Nutanix上では、通常の仮想マシンも動作します。
ここでは、アプリケーションを動かす通常のVMをUser VMとして考えてみましょう。
┌────────────────────┐
│ Node │
│ │
│ ┌─────────┐ │
│ │ User VM │ │
│ └────┬────┘ │
│ │ │
│ ┌────▼────┐ │
│ │ CVM │ │
│ └────┬────┘ │
│ │ │
│ SSD / HDD │
└────────────────────┘
User VMから発生したストレージI/Oは、CVMによって処理されます。
さらにCVMは、必要に応じてほかのノードのCVMとも連携します。
このように、
VM → CVM → DSF → ストレージ
という大まかな流れをイメージしておくと、Nutanixのストレージ構造が理解しやすくなります。
データローカリティ
Nutanixのストレージを理解するときに覚えておきたい考え方が、
Data Locality(データローカリティ)
です。
これは、
VMが動作しているノードの近くに、そのVMがよく利用するデータを配置する
という考え方です。
たとえばVM AがNode 1で動いている場合、
Node 1
┌────────────────┐
│ VM A │
│ ↓ │
│ CVM │
│ ↓ │
│ VM Aのデータ │
└────────────────┘
のように、VM Aが利用するデータを可能な限りローカルで利用できれば、毎回ほかのノードへデータを取りに行く必要を減らせます。
これによってネットワークをまたぐI/Oを抑え、効率よくデータへアクセスできるようにします。
データは1か所だけに保存される?
ここで、
「ローカルにデータを置くなら、そのノードが壊れたらデータも消えるのでは?」
と思うかもしれません。
Nutanixでは可用性を確保するために、データを別のノードにも保持する仕組みがあります。
その際に重要になる考え方の一つが、
Replication Factor(RF)
です。
たとえばRF2では、障害に備えてデータのコピーを別のノードにも保持します。
イメージとしては、
Node 1 Node 2
[Data A] ───────→ [Data A Copy]
という形です。
これにより、1つのノードだけにデータが依存することを防ぎます。
Replication Factorについては、ストレージの記事でさらに詳しく扱います。
AOS・CVM・DSFの関係
ここまでの内容をまとめてみましょう。
Nutanix Cluster
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Node 1 │ │ Node 2 │ │ Node 3 │
│ │ │ │ │ │
│ User VM │ │ User VM │ │ User VM │
│ ↓ │ │ ↓ │ │ ↓ │
│ CVM │↔│ CVM │↔│ CVM │
│ ↓ │ │ ↓ │ │ ↓ │
│ Storage │ │ Storage │ │ Storage │
└──────────┘ └──────────┘ └──────────┘
\ │ /
\ │ /
───── DSF ─────
そして、このようなNutanixのインフラ機能を支える中核的なソフトウェアがAOSです。
かなり簡略化すると、
AOS
├─ CVM
│ └─ 各ノードでストレージサービスなどを提供
│
└─ DSF
└─ 分散ストレージを提供
という関係で覚えておくとよいでしょう。
はちみつ屋さんで例えると?
今回も、はちみつ屋さんで考えてみましょう。
複数の店舗がある「はちみつ屋チェーン」があるとします。
それぞれのお店には、
はちみつを保管する倉庫
があります。
これが各Nodeに搭載されたストレージです。
そして、それぞれのお店には、
在庫を管理する店員さん
がいます。
この店員さんがCVMです。
店舗1 店舗2 店舗3
店員さん 店員さん 店員さん
(CVM) (CVM) (CVM)
↓ ↓ ↓
倉庫 倉庫 倉庫
店員さん同士は常に連携しているため、
「店舗1に必要なはちみつがない!」
となった場合でも、ほかの店舗と協力できます。
そして、
複数店舗の倉庫を1つの大きな在庫システムとして利用する仕組み
がDSFです。
さらに、このような店舗・在庫管理の仕組み全体を支えているNutanixの中核ソフトウェアがAOSです。
NCA対策として覚えておきたいポイント
今回特に覚えておきたいのは次の内容です。
| 用語 | NCA対策としてのポイント |
|---|---|
| AOS | Nutanixの中核となるソフトウェア |
| CVM | Controller Virtual Machine |
| CVM | 基本的に各ノードで動作する |
| CVM | ストレージサービスなどを提供する |
| DSF | Distributed Storage Fabric |
| DSF | 分散ストレージ機能 |
| Data Locality | VMが利用するデータをできるだけ近くに配置する考え方 |
| RF | データの冗長性に関係するReplication Factor |
特に、
「CVMは仮想マシン」
という点はしっかり押さえておきましょう。
通常のUser VMとは違い、Nutanixのインフラサービスを提供するために存在しています。
まとめ
今回はNutanixのアーキテクチャについて学びました。
Nutanixでは各ノードにCPU・メモリ・ストレージなどが搭載され、それらをクラスタとして利用します。
その内部では、
AOS
がNutanixの中核ソフトウェアとして動作し、
CVM
が各ノードでストレージサービスなどを提供し、
DSF
によって複数ノードのストレージを分散ストレージとして利用します。
まずは、
AOS
↓
Nutanixの中核ソフトウェア
CVM
↓
各ノードで動くコントローラーVM
DSF
↓
複数ノードを利用した分散ストレージ
という3つの関係を理解しておきましょう。
このアーキテクチャを理解しておくことで、今後学習するAHV・Prism・ストレージ・クラスタ管理についても理解しやすくなります。