Huney

Nutanix / 基礎とプラットフォーム

Nutanixのアーキテクチャとは?AOS・CVM・DSFを理解しよう【NCA 7.5対策】

NCA 7.5対策として、Nutanixを支えるAOS・CVM・DSFの役割と、複数ノードのストレージを統合して利用する仕組みを初心者向けに解説します。

読了時間:約10分

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・ストレージ・クラスタ管理についても理解しやすくなります。