Amazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになりました #AWSreInvent

超ハイパーマンスを求める環境に
2023.11.30

今までのAmazon FSx for NetApp ONTAPでは性能の限界を感じる

こんにちは、のんピ(@non____97)です。

皆さん今までのAmazon FSx for NetApp ONTAP(以降FSxN)に性能の限界を感じことはありますか? 私はあります。

従来のFSxNのSSDサイズは192TiBで、Readのスループットは4GiBpsでした。ゲノム解析や機械学習など膨大なデータを高速に演算させたいデータストアにおいては、この性能では心許ないケースがあります。

今回、アップデートによりAmazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになりました。

AWS Blogsにも投稿されています。

これにより、大幅に性能が向上しました。

以降詳細について説明していきます。

いきなりまとめ

  • Single-AZのファイルシステムにおいて、クラスターを複数のHAペアで構成できるようになった
  • 複数のHAペアを持つMulti-AZのファイルシステムを作成することはできない
  • HAペア毎にaggregateは異なる
    • HAペア間でデータは同期されない
  • HAペアが複数ある場合、各エンドポイントは以下の数存在する
    • SVMの管理IPアドレス、SMBエンドポイント、NFSエンドポイント : HAペア数
    • クラスター間IPアドレス、iSCSI IPアドレス : HAペア数の2倍
  • スケールアウトすることで各リソースの上限が大幅に向上
    • SSD : 最大192 TiB -> 最大1 PiB
    • SSD IOPS : 最大160,000 IOPS -> 最大1,200,000 IOPS
    • Readスループット : 最大 4GiBps -> 最大 36GiBps
    • Writeスループット : 最大 1.8GiBps -> 最大 6.6GiBps
  • ファイルシステム作成後にHAペアを追加したり、削除したりすることはできない
  • スケールアウトファイルシステム作成後、スループットキャパシティを変更することはできない
  • SSDのミニマムサイズはHAペア数 × 1,024GiB
  • マネジメントコンソールからはスケールアウトファイルシステムに対してFlexGroupのボリュームしか作成できない
    • ONTAP CLIではFlexVolumeも作成できる
  • 2023/11/30時点では以下のリージョンでのみ使用可能
    • us-east-1
    • us-east-2
    • us-west-2
    • eu-west-1
    • ap-southeast-1
  • スケールアウトファイルシステムは通常のFSxNファイルシステムとCloudWatchメトリクスが異なる

スケールアウトファイルシステムとは

スケールアウトファイルシステムとは、FSxNファイルシステム(通常のONTAPでいうところのクラスター)内のHAペアが複数ある状態のファイルシステムを指します。

Single-AZであってもMulti-AZでも1つのFSxNファイルシステムでは2つのノードがあるHA構成を組んでいます。これがHAペアです。

以下の図が分かりやすいかと思います。

high-availability

抜粋 : High-availability pairs

HAペアが複数存在するということを図示すると、以下のようになります。

HA Pair

1つのファイルシステムに最大6つのHAペアを作成することが可能です。そして、HAペア1つあたり6GiBpsのスループットキャパシティと200,000 SSD IOPSを最大割り当てることが可能です。

HAペアが複数用意して各HAペアで処理を行わせることで、従来の1つのHAペアの数倍もの性能を出すことが可能です。

HAペアの説明はAWS公式ドキュメントに記載されています。併せてご覧ください。

やってみた

スケールアウトファイルシステムの作成

実際にスケールアウトファイルシステムを作成してみましょう。

Multi-AZ構成ではスケールアウトファイルシステムはサポートされていません。そのため、スループットキャパシティは1つのHAペアのものしか選択できません。

Multi-AZスループットキャパシティ

デプロイタイプをSingle-AZに変更すると、以下の通り最大6つのHAペアのスループットキャパシティを選択できます。

Single-AZスループットキャパシティ

今回は試しにスループットキャパシティを6,144MBpsのものを選択します。

スループットキャパシティno

次にボリュームの作成です。ボリュームサイズの説明書きを確認するとMinimum 1,600 GiB (800 GiB per HA pair). Maximum 4,800 TiB (2,400 TiB per HA pair).と記載されています。

ボリュームの設定

これはボリュームがFlexGroupであるためです。FlexGroupのコンスティチュエントボリューム(メンバーボリューム)あたりの最小のサイズ100GiBであるためです。

マネジメントコンソールから作成するFSxNのFlexGroupはコンスティチュエントボリューム数は8つです。そして、今回の場合HAペアが2つのものを選択しているため、8 × 2 × 100GiB でミニマムが1,600GiBになっていると考えます。

その他の設定はデフォルトで、いざ作成しようとします。

Invalid storage capacity provided- 1024 GiB. Minimum storage capacity for ONTAP file systems is 2048.

はい、Invalid storage capacity provided: 1024 GiB. Minimum storage capacity for ONTAP file systems is 2048.というエラーで怒られました。

これもHAペア毎のミニマムのSSDサイズが1,024GiBという制約があるためだと考えます。

SSDサイズを2,048GiBに変更してリトライします。

確認画面を確認していくと作成後に変更可能なパラメーターが分かります。HAペア数を変更したり、スループットキャパシティを変更したりすることはできないようです。

確認および作成_ファイルシステムの詳細

ネットワーク周りの設定は特筆すべき点はありません。

確認および作成_ネットワークとセキュリティ

ボリュームは推測のとおり、FlexGroupですね。

確認および作成_デフォルトのボリューム設定

FlexGroupを使うことによって大量のボリュームへの操作を複数のノードで行うことが可能です。

作成したFSxNファイルシステムの確認

作成したFSxNファイルシステムを確認します。

スループットキャパシティやSSDのIOPSが6,144と頼もしい値になっています。

作成したFSxNの確認

エンドポイントを確認すると、クラスター間エンドポイントのIPアドレスが通常2つのところ、4つになっていました。こちらは各ノード毎に1つIPアドレスが割り当てられるため、HAペアが2つ × HAペア毎のノード数2 で4つになっていると考えます。

作成したFSxNのエンドポイントの確認

SVMのエンドポイントもそれぞれHAペアの数分増えています。

SVMのエンドポイント

ONTAP CLIからの確認

ONTAP CLIからも色々確認してみます。

まず、aggregateです。

::> aggr show


Aggregate     Size Available Used% State   #Vols  Nodes            RAID Status
--------- -------- --------- ----- ------- ------ ---------------- ------------
aggr1      861.7GB   854.7GB    1% online       9 FsxId056d2eed50b raid0,
                                                  9f81af-01        mirrored,
                                                                   normal
aggr2      861.7GB   855.7GB    1% online       8 FsxId056d2eed50b raid0,
                                                  9f81af-03        mirrored,
                                                                   normal
2 entries were displayed.

::> aggr show -instance

                                         Aggregate: aggr1
                                      Storage Type: ssd
                                    Checksum Style: advanced_zoned
                                   Number Of Disks: 16
                                       Is Mirrored: true
                              Disks for First Plex: NET-2.6, NET-2.4, NET-2.5,
                                                    NET-2.8, NET-2.9, NET-2.10,
                                                    NET-2.3, NET-2.7
                           Disks for Mirrored Plex: NET-1.2, NET-1.1, NET-1.10,
                                                    NET-1.4, NET-1.5, NET-1.6,
                                                    NET-1.7, NET-1.3
                         Partitions for First Plex: -
                      Partitions for Mirrored Plex: -
                                              Node: FsxId056d2eed50b9f81af-01
                           Free Space Reallocation: off
                                         HA Policy: sfo
                               Ignore Inconsistent: off
                Space Reserved for Snapshot Copies: 5%
           Aggregate Nearly Full Threshold Percent: 93%
                  Aggregate Full Threshold Percent: 96%
                             Checksum Verification: on
                                   RAID Lost Write: off
                             Enable Thorough Scrub: -
                                    Hybrid Enabled: false
                                    Available Size: 854.7GB
                                  Checksum Enabled: true
                                   Checksum Status: active
                                           Cluster: FsxId056d2eed50b9f81af
                                   Home Cluster ID: e6df6fa2-8f1b-11ee-aeee-1374650d2152
                                        DR Home ID: -
                                      DR Home Name: -
                                   Inofile Version: 4
                                  Has Mroot Volume: false
                     Has Partner Node Mroot Volume: false
                                           Home ID: 3323135157
                                         Home Name: FsxId056d2eed50b9f81af-01
                           Total Hybrid Cache Size: 0B
                                            Hybrid: false
                                      Inconsistent: false
                                 Is Aggregate Home: true
                                     Max RAID Size: 8
       Flash Pool SSD Tier Maximum RAID Group Size: -
                                          Owner ID: 3323135157
                                        Owner Name: FsxId056d2eed50b9f81af-01
                                   Used Percentage: 1%
                                            Plexes: /aggr1/plex0, /aggr1/plex1
                                       RAID Groups: /aggr1/plex0/rg0 (advanced_zoned)
                                                    /aggr1/plex1/rg0 (advanced_zoned)
                             RAID Lost Write State: off
                                       RAID Status: raid0, mirrored, normal
                                         RAID Type: raid0
   SyncMirror Resync Snapshot Frequency in Minutes: 5
                                           Is Root: false
      Space Used by Metadata for Volume Efficiency: 0B
                                              Size: 861.7GB
                                             State: online
                        Maximum Write Alloc Blocks: 0
                                         Used Size: 7.02GB
                                 Uses Shared Disks: false
                                       UUID String: b42e337d-8f1c-11ee-aeee-1374650d2152
                                 Number Of Volumes: 9
                             Is Flash Pool Caching: -
            Is Eligible for Auto Balance Aggregate: false
             State of the aggregate being balanced: ineligible
                          Total Physical Used Size: 93.80MB
                          Physical Used Percentage: 0%
            State Change Counter for Auto Balancer: 0
                                     SnapLock Type: non-snaplock
                                    Is NVE Capable: false
 Is in the precommit phase of Copy-Free Transition: false
Is a 7-Mode transitioning aggregate that is not yet committed in clustered Data ONTAP and is currently out of space: false
Threshold When Aggregate Is Considered Unbalanced (%): 70
Threshold When Aggregate Is Considered Balanced (%): 40
                        Resynchronization Priority: low
                    Space Saved by Data Compaction: 0B
               Percentage Saved by Data Compaction: 0%
                          Amount of compacted data: 0B
                   Timestamp of Aggregate Creation: 11/30/2023 01:06:34
                                       Enable SIDL: off
                                         Composite: true
                            Is FabricPool Mirrored: false
                           Capacity Tier Used Size: 0B
                 Space Saved by Storage Efficiency: 0B
   Percentage of Space Saved by Storage Efficiency: 0%
Amount of Shared bytes count by Storage Efficiency: 0B
                   Inactive Data Reporting Enabled: -
Timestamp when Inactive Data Reporting was Enabled: -
                 Enable Aggregate level Encryption: false
                Aggregate uses data protected SEDs: false
                            azcs read optimization: on
        Metadata Reserve Space Required For Revert: 0B

                                         Aggregate: aggr2
                                      Storage Type: ssd
                                    Checksum Style: advanced_zoned
                                   Number Of Disks: 16
                                       Is Mirrored: true
                              Disks for First Plex: NET-4.3, NET-4.5, NET-4.6,
                                                    NET-4.7, NET-4.8, NET-4.10,
                                                    NET-4.4, NET-4.9
                           Disks for Mirrored Plex: NET-3.9, NET-3.6, NET-3.3,
                                                    NET-3.4, NET-3.5, NET-3.8,
                                                    NET-3.2, NET-3.7
                         Partitions for First Plex: -
                      Partitions for Mirrored Plex: -
                                              Node: FsxId056d2eed50b9f81af-03
                           Free Space Reallocation: off
                                         HA Policy: sfo
                               Ignore Inconsistent: off
                Space Reserved for Snapshot Copies: 5%
           Aggregate Nearly Full Threshold Percent: 93%
                  Aggregate Full Threshold Percent: 96%
                             Checksum Verification: on
                                   RAID Lost Write: off
                             Enable Thorough Scrub: -
                                    Hybrid Enabled: false
                                    Available Size: 855.7GB
                                  Checksum Enabled: true
                                   Checksum Status: active
                                           Cluster: FsxId056d2eed50b9f81af
                                   Home Cluster ID: e6df6fa2-8f1b-11ee-aeee-1374650d2152
                                        DR Home ID: -
                                      DR Home Name: -
                                   Inofile Version: 4
                                  Has Mroot Volume: false
                     Has Partner Node Mroot Volume: false
                                           Home ID: 3323134984
                                         Home Name: FsxId056d2eed50b9f81af-03
                           Total Hybrid Cache Size: 0B
                                            Hybrid: false
                                      Inconsistent: false
                                 Is Aggregate Home: true
                                     Max RAID Size: 8
       Flash Pool SSD Tier Maximum RAID Group Size: -
                                          Owner ID: 3323134984
                                        Owner Name: FsxId056d2eed50b9f81af-03
                                   Used Percentage: 1%
                                            Plexes: /aggr2/plex0, /aggr2/plex1
                                       RAID Groups: /aggr2/plex0/rg0 (advanced_zoned)
                                                    /aggr2/plex1/rg0 (advanced_zoned)
                             RAID Lost Write State: off
                                       RAID Status: raid0, mirrored, normal
                                         RAID Type: raid0
   SyncMirror Resync Snapshot Frequency in Minutes: 5
                                           Is Root: false
      Space Used by Metadata for Volume Efficiency: 0B
                                              Size: 861.7GB
                                             State: online
                        Maximum Write Alloc Blocks: 0
                                         Used Size: 6.01GB
                                 Uses Shared Disks: false
                                       UUID String: a1fd62fd-8f1c-11ee-aeee-1374650d2152
                                 Number Of Volumes: 8
                             Is Flash Pool Caching: -
            Is Eligible for Auto Balance Aggregate: false
             State of the aggregate being balanced: ineligible
                          Total Physical Used Size: 89.29MB
                          Physical Used Percentage: 0%
            State Change Counter for Auto Balancer: 0
                                     SnapLock Type: non-snaplock
                                    Is NVE Capable: false
 Is in the precommit phase of Copy-Free Transition: false
Is a 7-Mode transitioning aggregate that is not yet committed in clustered Data ONTAP and is currently out of space: false
Threshold When Aggregate Is Considered Unbalanced (%): 70
Threshold When Aggregate Is Considered Balanced (%): 40
                        Resynchronization Priority: low
                    Space Saved by Data Compaction: 0B
               Percentage Saved by Data Compaction: 0%
                          Amount of compacted data: 0B
                   Timestamp of Aggregate Creation: 11/30/2023 01:06:02
                                       Enable SIDL: off
                                         Composite: true
                            Is FabricPool Mirrored: false
                           Capacity Tier Used Size: 0B
                 Space Saved by Storage Efficiency: 0B
   Percentage of Space Saved by Storage Efficiency: 0%
Amount of Shared bytes count by Storage Efficiency: 0B
                   Inactive Data Reporting Enabled: -
Timestamp when Inactive Data Reporting was Enabled: -
                 Enable Aggregate level Encryption: false
                Aggregate uses data protected SEDs: false
                            azcs read optimization: on
        Metadata Reserve Space Required For Revert: 0B
2 entries were displayed.

aggregateが2つ存在していますね。そして、ノード1とノード3がそれぞれのオーナーとなっています。

aggregateが2つに分かれているため、HAペア間では同じデータを保持していないと考えると良いでしょう。

続いて、LIFです。

::> network interface show
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId056d2eed50b9f81af
            fsxadmin     up/up    10.0.8.232/24      FsxId056d2eed50b9f81af-01
                                                                   e0e     true
            inter_1      up/up    10.0.8.194/24      FsxId056d2eed50b9f81af-01
                                                                   e0e     true
            inter_2      up/up    10.0.8.161/24      FsxId056d2eed50b9f81af-02
                                                                   e0e     true
            inter_3      up/up    10.0.8.225/24      FsxId056d2eed50b9f81af-03
                                                                   e0e     true
            inter_4      up/up    10.0.8.196/24      FsxId056d2eed50b9f81af-04
                                                                   e0e     true
svm
            iscsi_1      up/up    10.0.8.146/24      FsxId056d2eed50b9f81af-01
                                                                   e0e     true
            iscsi_2      up/up    10.0.8.155/24      FsxId056d2eed50b9f81af-02
                                                                   e0e     true
            iscsi_3      up/up    10.0.8.11/24       FsxId056d2eed50b9f81af-03
                                                                   e0e     true
            iscsi_4      up/up    10.0.8.122/24      FsxId056d2eed50b9f81af-04
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.8.59/24       FsxId056d2eed50b9f81af-01
                                                                   e0e     true
            nfs_smb_management_3
                         up/up    10.0.8.48/24       FsxId056d2eed50b9f81af-03
                                                                   e0e     true
11 entries were displayed.

ノードが4つあることが確認できます。

ノード数はnetwork port showからでも確認できます。

::> network port show

Node: FsxId056d2eed50b9f81af-01
                                                  Speed(Mbps) Health
Port      IPspace      Broadcast Domain Link MTU  Admin/Oper  Status
--------- ------------ ---------------- ---- ---- ----------- --------
e0e       Default      Fsx              up   9001  auto/auto  healthy

Node: FsxId056d2eed50b9f81af-02
                                                  Speed(Mbps) Health
Port      IPspace      Broadcast Domain Link MTU  Admin/Oper  Status
--------- ------------ ---------------- ---- ---- ----------- --------
e0e       Default      Fsx              up   9001  auto/auto  healthy

Node: FsxId056d2eed50b9f81af-03
                                                  Speed(Mbps) Health
Port      IPspace      Broadcast Domain Link MTU  Admin/Oper  Status
--------- ------------ ---------------- ---- ---- ----------- --------
e0e       Default      Fsx              up   9001  auto/auto  healthy

Node: FsxId056d2eed50b9f81af-04
                                                  Speed(Mbps) Health
Port      IPspace      Broadcast Domain Link MTU  Admin/Oper  Status
--------- ------------ ---------------- ---- ---- ----------- --------
e0e       Default      Fsx              up   9001  auto/auto  healthy
4 entries were displayed.

最後にボリュームです。

::> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm       svm_root     aggr1        online     RW          1GB    972.5MB    0%
svm       vol1         -            online     RW       1.60TB     1.51TB    0%
2 entries were displayed.

::> volume show -fields aggregate
vserver volume   aggregate
------- -------- ---------
svm     svm_root aggr1
svm     vol1     -

::> volume show -fields aggregate -is-constituent true
vserver volume     aggregate
------- ---------- ---------
svm     vol1__0001 aggr2
svm     vol1__0002 aggr1
svm     vol1__0003 aggr2
svm     vol1__0004 aggr1
svm     vol1__0005 aggr2
svm     vol1__0006 aggr1
svm     vol1__0007 aggr2
svm     vol1__0008 aggr1
svm     vol1__0009 aggr2
svm     vol1__0010 aggr1
svm     vol1__0011 aggr2
svm     vol1__0012 aggr1
svm     vol1__0013 aggr2
svm     vol1__0014 aggr1
svm     vol1__0015 aggr2
svm     vol1__0016 aggr1

マネジメントコンソールから作成したボリュームはFlexGroupで各ノードに8つのコンスティチュエントボリュームがあることが分かります。

FlexVolumeのボリュームの作成

FlexVolumeのボリュームを作成できるか確認します。

::> volume create -volume flexvolume -aggregate aggr1 -size 1G -state online -policy default -junction-path /flexvolume
[Job 69] Job succeeded: Successful

::> volume show -fields aggregatevserver volume     aggregate
------- ---------- ---------
svm     flexvolume aggr1
svm     svm_root   aggr1
svm     vol1       -
3 entries were displayed.

はい、問題なくできました。

FlexGroupではiSCSIは使えません。スケールアウトファイルシステムでiSCSIがどうしても使いたい時はFlexVolumeを用意すると良いでしょう。

超ハイパーマンスを求める環境に

Amazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになったアップデートを紹介しました。

超ハイパーマンスを求める環境にマッチしそうですね。

ただし、HAペアの数を変更したり、スループットキャパシティを変更したりできないと制約事項は色々とあります。採用する際は制約事項を確認した上で利用しましょう。

また、そもそもストレージがボトルネックであるのかどうかも確認すると良いかと思います。ボトルネックがFSxNまでのネットワークの帯域なのにストレージ側で改善しようとするなど的外れな対応となると、無駄な課金が発生してしまいます。

まずは1HAペアで試してみて、それでも確実にストレージが原因でパフォーマンスが出ないことを確認できたら、スケールアウトファイルシステムを採用すると良いでしょう。

また、スケールアウトファイルシステムは複数のaggregate、3つ以上のノードが存在するため、CloudWatchメトリクスも通常のFSxNファイルシステムとは異なるようです。各メトリクスの詳細は以下AWS公式ドキュメントをご覧ください。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!