FSx for NetApp ONTAP に割り当てた SSD ストレージ容量より多いボリュームサイズを割り当てられるのはなぜか?シンプロビジョニングについて

2023.11.23

コーヒーが好きな emi です。

FSx for NetApp ONTAP のファイルシステムで設定した SSD ストレージ容量を超えたボリュームの容量を設定できることに気づきました。
例えば、FSx for NetApp ONTAP のファイルシステムで SSD ストレージ容量を 1024 GiB に設定したのに、その中に作成するボリュームの容量を 2000 GiB に設定できる、といった具合です。
これは「シンプロビジョニング」と呼ばれる仕組みのようなのですが、理解するのが難しかったのでシンプロビジョニングについて調べて図解してみました。

シンプロビジョニングとは

以下のサイトに記載があります。  

柔軟なストレージ管理
Amazon FSx for NetApp ONTAP では、作成する各ボリュームはシンプロビジョニングされます。つまり、ファイルシステムのストレージ容量で消費されるのは、ボリュームに格納されているデータ分のみです。
Amazon FSx for NetApp ONTAP の特徴

「ファイルシステムのストレージ容量で消費されるのは、ボリュームに格納されているデータ分のみ」というのがどういうことなのか図解します。

シンプロビジョニングのイメージ

例えば、FSx for NetApp ONTAP のファイルシステムの設定で、SSD ストレージ容量を 1024 GiB と設定します。
ファイルシステムの中に SVM を作り、ボリュームを作成します。ボリュームの容量を、500 GiB、1000 GiB、2000 GiB とします。
ボリュームに設定した容量を合計すると、ファイルシステムで設定した SSD ストレージ容量 1024 GiB を超えています。

なぜこのような設定ができるかというと、SSD ストレージ容量は実際にボリュームに格納されたデータ量しか消費されないためです。
ボリュームの容量で設定するのは「ボリュームに格納できる容量の最大枠」のようなイメージです。

例えば、

  • 500 GiB に設定したボリューム:実際に格納されているデータは 10 GiB
  • 1000 GiB に設定したボリューム:実際に格納されているデータは 100 GiB
  • 2000 GiB に設定したボリューム:実際に格納されているデータは 300 GiB

であれば、実際に消費される SSD ストレージ容量は

10 GiB + 100 GiB + 300 GiB = 410 GiB < 1024 GiB

となります。SSD ストレージ容量はあと 1024 GiB - 410 GiB = 614 GiB 残っているイメージです。

このように、「シンプロビジョニング」はストレージ管理の手法の一つで、物理的なストレージ容量よりも大きな論理的ストレージ容量を提供することを可能にします。

SSD ストレージ容量を使い切ると…

これが、徐々に格納されるデータ量が増えて以下のようになってくると、SSD ストレージ容量 1024 GiB を使い切ってしまいます。

  • 500 GiB に設定したボリューム:実際に格納されているデータは 104 GiB
  • 1000 GiB に設定したボリューム:実際に格納されているデータは 210 GiB
  • 2000 GiB に設定したボリューム:実際に格納されているデータは 710 GiB

実際に消費される SSD ストレージ容量:104 GiB + 210 GiB + 710 GiB = 1024 GiB

こうなると、SSD ストレージは空き容量不足で書き込み時にエラーになってしまいます。

このように、シンプロビジョニングでは論理的なストレージ容量が物理的な容量を超えると、データの書き込みに失敗する可能性があります。
そのため、定期的な監視と必要に応じた容量の追加が必要です。

SSD ストレージ容量とボリュームのサイジング

SSD ストレージ容量は FSx for NetApp ONTAP のファイルシステムの設定から設定できます。
SSD ストレージ容量は後から追加することはできますが、後から減らすことはできません。

そのため、シンプロビジョニングの仕組みでボリュームの容量を大きめに設定して、使用していく中で SSD ストレージ容量が足りないようであれば追加していくという運用にすると、コストを最適化することができます。

SSD ストレージ容量とボリュームのサイジングにつきましては以下のブログが大変参考になります。

キャパシティプールストレージ

FSx for NetApp ONTAP には、SSD ストレージ容量以外にも利用できるストレージ容量があります。
それが、「キャパシティプールストレージ」です。

S3 バケットにストレージクラス階層があるのと似たイメージで、FSx for NetApp ONTAP にも「プライマリストレージ階層」と「キャパシティプールストレージ階層」があります。
FSx for NetApp ONTAP のボリュームに適切な階層化ポリシーを設定すれば、シンプロビジョニングで多めに設定したボリュームいっぱいまでデータを格納することが(理論上)可能です。

キャパシティプールストレージ階層については以下のブログが参考になります。

おわりに

本記事では「シンプロビジョニング」について調査した結果を記載してきました。FSx for NetApp ONTAP のキャパシティプールストレージ階層についても別途調査しようと思います。
どなたかのお役に立てば幸いです。

参考