Posted at

Nutanix基本のき: ストレージの概念と構造

More than 1 year has passed since last update.


はじめに

この記事は、Nutanix Advent Calendar 2016 12月18日の分として作成しました。本記事の内容はこの日付の情報に基づいています。

Nutanixのアーキテクチャを説明する際に、混乱しがちな項目の一つにストレージの概念があります。Nutanixではソフトウェア定義型のストレージを提供しており、従来のRAID技術を中心としたストレージアレイの考え方とは異なります。非常にシンプルでストレージ設計の労力がそれほどかからないのですが、やはり概念がわからないと混乱することもあります。

今回の記事では、Nutanixのストレージの概念と構造を解説します。


ストレージの概念

Nutanixでは分散ストレージファブリックという名称でストレージサービスを提供しています。

分散ストレージファブリック内では、ストレージを「StoragePool」「Container」「vDisk」という3つの構造で管理しています。

これらはNutanix Bibleの分散ストレージファブリックの節に解説されています。本項でも定義などはNutanixBibleより引用します。


StoragePool

Nutanix BibleからStoragePoolの定義を引用します。


主な役割: 物理デバイスのグループ

説明: ストレージ プールは、クラスタのPCIe SSD、SSD、HDDデバイスを含む物理ストレージ デバイスのグループです。ストレージ プールは、複数のNutanixノードにまたがることができ、クラスタの拡大に合わせ拡張することができます。ほとんどの構成で単一のストレージ プールが使用されます。


Prismから表示したStoregePoolの一覧画面は下図のようになります。

いくつか混乱しやすいポイントを箇条書きでまとめます。


  • StoragePoolはSSDやHDDなどのデバイスをひとまとめにして管理します。例えば上図では"DISKS"が"18"となっていますが、これはSSDとHDD合わせたディスクの本数が18本あるという意味です

  • StoragePoolで表示されるストレージの容量は物理容量です。実効容量ではないので注意が必要です

  • Nutanixのクラスターを拡張した際に単一のStoragePoolが設定されていた場合はStoragePoolも自動的に拡張します

  • StoragePoolはNutanixのクラスターに対して1つが強い推奨です


Container

Nutanix BibleからContainerの定義を引用します。


主な役割: VM/ファイルの集合

説明: コンテナは、ストレージ プールの論理的なセグメントであり、VMまたはファイル (vDisk) のグループを含みます。コンテナ レベルで複数の構成オプション(例えばRF)の利用が可能ですが、その適用は個別のVM/ファイル レベルになります。通常コンテナは、データストアと1対1の関係になります(NFS/SMBの場合)。


Prismから表示したContainerの一覧画面は下図のようになります。

これらのContainerをvSphere Web Clientから表示すると下図のようになります。

いくつか混乱しやすいポイントを箇条書きでまとめます。


  • ContainerはハイパーバイザーからはESXiではNFSのデータストア、Hyper-VではSMBのシェアとして認識されます

  • Containerで管理される容量は実効容量です。データを2重書きするRF=2では、物理容量の約半分となります

  • 一つのNutanixクラスターに対して複数のContainerを作成可能です。この場合は一つのStoragePoolが提供する容量を複数のContainerで共有します

  • Nutanixのクラスターを拡張した際にはContainerも自動的に拡張します

  • 重複排除、圧縮、Erasure CodingなどのストレージポリシーはContainer単位に設定することが可能です。


複数のContainerで物理ストレージ容量を共有する

Containerは従来型ストレージのVolumeとは異なり、容量が固定されていません。単一のStragePoolが提供する物理容量を複数のContainerで共有して消費します。

例えば、上図ではCTR01とCTR02という2つのContainerが設定されています。これらのContainerは同一のStoragePoolに紐づいています。StoragePoolの物理容量は11.09TiBですので、RF=2で実効容量が約半分になるとするとCTR01の5.54TiBがそれに相当します。しかし、CTR02の容量はこれよりも少ない5.39TiBとなっています。これはCTR01が158.48GiB使用されているのでその分がCTR02の容量から差し引かれているのです。

文章で書くと煩雑そうですが、ストレージ設計時のポイントは「個々のContainerの容量設計を行う必要はなく、全体の容量だけを留意すれば良い」ことです。


終わりに

Nutanixが提供するストレージの概念と構造をご紹介しました。この辺りは実際にPrismから設定してみると感覚が掴みやすいです。Nutanixでは無償で2時間クラウド上のNutanix Community Editionをお試しできる、Nutanix Test Driveを提供しています。アカウント登録は必要なく、お名前やメールアドレスなどを入力いただくだけでお手軽に試用することが可能です。是非お試しください。