FSx for NetApp ONTAP のプライマリストレージとキャパシティプールストレージの違いは何か?階層化の概要

2023.11.24

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

FSx for NetApp ONTAP では階層化ポリシーによって階層化の設定ができます。
S3 のストレージクラスのように、用途によってストレージ階層を使い分けることでコスト最適化が可能な機能ですが、理解が難しかったので図解してみました。

FSx for NetApp ONTAP で利用できる二つのストレージ階層

FSx for NetApp ONTAP では、以下二つのストレージ階層が利用できます。

  • プライマリストレージ階層(「SSD 階層」と記載されていることも。ONTAP の世界ではパフォーマンスティアと呼ばれることもあります)
  • キャパシティプールストレージ階層(「容量プール階層」と記載されていることも)

階層化ポリシーの設定はボリューム単位で行うことができるのですが、中身を図解すると以下のようなイメージです。

プライマリストレージ階層とキャパシティプールストレージ階層があり、データのアクセス頻度によってボリュームに適切な階層化ポリシーを設定することで、格納する階層を調整することができます。

ONTAP の世界だとこの機能は「ファブリックプール(FabricPool)」と呼ばれており、プライマリストレージ階層は「Performance Tier」、キャパシティプールストレージ階層は「capacity pool tier」と呼ばれるようです。
NetApp 様の Youtube 動画で解説がありますので、こちらもあわせてご参照ください。

※ 階層化の話は 13:44

プライマリストレージ階層

プライマリストレージ階層には以下の特徴があります。

  • SSD ベース
  • 低レイテンシー(サブミリ秒のレイテンシー)
  • 頻繁にアクセスされるデータを格納するのに最適

FSx for NetApp ONTAP ファイルシステム作成時に「SSD ストレージ容量」を設定することができるのですが、これがプライマリストレージ階層の容量と同じイメージです。

「サブミリ秒のレイテンシー」は 1 ミリ秒未満の非常に短い遅延時間を指します。

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

キャパシティプールストレージ階層には以下の特徴があります。

  • ペタバイト規模まで拡張可能な伸縮性
  • 低コスト
  • アクセス頻度の低いデータを格納することでコストを最適化
  • FSx for NetApp ONTAP ファイルシステム作成時に意識することなく利用可能
  • 数十ミリ秒のレイテンシー

キャパシティプールストレージの「事実上無制限」とはどういうことか

ドキュメントでは、FSx for NetApp ONTAP のストレージ容量は「事実上無制限」という表現が使われています。

Amazon FSx for NetApp ONTAP は、アクセスパターンに基づいてストレージ階層間でデータを自動的に移行するため、ストレージコストを削減し、事実上無制限のデータをファイルシステムに保存できます。
Amazon FSx for NetApp ONTAP に関するよくある質問

これは、キャパシティプールストレージ階層に「ペタバイト規模まで拡張可能な伸縮性がある」ということから「事実上無制限」と記載していると思われます。

具体的な数字で計算してみます。

例えば、ファイルシステムで SSD ストレージ容量を 1024 GiB と設定するとします。
FSx for NetApp ONTAP ではシンプロビジョニングが可能であるため、ファイルシステムで設定した SSD ストレージ容量 1024 GiB を上回るボリュームサイズを設定することができます。

シンプロビジョニングについては以下のブログをご参照ください。

11/24 現在 FSx コンソールで確認したところ、FSx for NetApp ONTAP で設定できるボリュームサイズは以下のように表示されていました。

  • ボリュームサイズ:最小 20 MiB、最大 314,572,800 MiB(300 TiB)

ここで SSD ストレージ容量 1024 GiB に対し、ボリュームサイズを 2000 GiB に設定するとします。
SSD ストレージ容量で設定した容量(今回は 1024 GiB)までは、プライマリストレージ階層にデータを格納することができます。

では、2000 GiB - 1024 GiB = 976 GiB は使うことができないのかというと、そんなことはありません。ここでキャパプールストレージ階層の出番です。
ボリュームに適切な階層化ポリシーを設定し、アクセス頻度が低いデータはキャパシティプールストレージ階層に移動することによって、ボリュームに設定した 2000 GiB いっぱいまでデータを格納し利用することが理論上 *1可能です。

キャパシティプールストレージはペタバイト規模まで拡張可能であるため、例えばボリュームサイズが 300 TiB のボリュームを複数作成すれば、ペタバイト規模のデータを格納することが可能です。

キャパシティプールストレージはペタバイト規模まで拡張可能ですが、ボリュームサイズに設定した容量(今回の場合は 2000 GiB)を超えて拡張することはできません。ボリュームサイズはプライマリストレージとキャパシティプールストレージの合算です。

CloudWatch での確認方法

プライマリストレージ階層とキャパシティプールストレージ階層の使用率は CloudWatch から確認することができます。該当のメトリクスは以下です。

  • 利用可能なプライマリストレージ階層: StorageCapacity {SSD} - StorageUsed {SSD}
  • 使用済みプライマリストレージ階層: StorageUsed {SSD}
  • 使用済みキャパシティプールストレージ階層: StorageUsed {StandardCapacityPool}

Amazon FSx for NetApp ONTAPのキャパシティプールストレージのデータをプライマリストレージに移動させてみた|DevelopersIO より引用

詳細は以下のドキュメントも参照ください。

また、CloudWatch 以外にも ONTAP CLI で使用率を確認することができます。

料金の比較

プライマリストレージ階層の料金と、キャパシティプールストレージ階層の料金を以下の料金ページで確認してみます。

東京リージョンでの料金

項目 プライマリストレージ階層の料金(シングル AZ、重複排除・圧縮が無効の場合) キャパシティプールストレージ階層の料金(シングル AZ、重複排除・圧縮が無効の場合)
ストレージ容量 0.150 USD(毎月 GB あたり) 0.0238 USD(毎月 GB あたり)

その他にもパフォーマンスや各種リクエストによって料金が発生しますが、ストレージ利用料金だけ比較すると 6.3 倍ほどの差がありました。
適切に階層化をおこなうことでグッとコストを抑えることができそうなのが分かります。

おわりに

FSx for NetApp ONTAP で利用できる二つのストレージ階層「プライマリストレージ階層」「キャパシティプールストレージ階層」について調べてみました。
階層化ポリシーについても調べてみたのですが、こちらも奥が深そうだったのでまた別の機会にブログ化しようと思っています。
どなたかのお役に立てば幸いです。

2023/12/05 追記:階層化ポリシーについて調査し、以下ブログにまとめました。

参考

脚注

  1. 実際には割り当てた階層化ポリシーやデータの利用頻度によって 2000 GiB いっぱいまで利用できない可能性もあります。