Amazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになりました #AWSreInvent
今までの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ペアです。
以下の図が分かりやすいかと思います。
HAペアが複数存在するということを図示すると、以下のようになります。
1つのファイルシステムに最大6つのHAペアを作成することが可能です。そして、HAペア1つあたり6GiBpsのスループットキャパシティと200,000 SSD IOPSを最大割り当てることが可能です。
HAペアが複数用意して各HAペアで処理を行わせることで、従来の1つのHAペアの数倍もの性能を出すことが可能です。
HAペアの説明はAWS公式ドキュメントに記載されています。併せてご覧ください。
やってみた
スケールアウトファイルシステムの作成
実際にスケールアウトファイルシステムを作成してみましょう。
Multi-AZ構成ではスケールアウトファイルシステムはサポートされていません。そのため、スループットキャパシティは1つのHAペアのものしか選択できません。
デプロイタイプをSingle-AZに変更すると、以下の通り最大6つのHAペアのスループットキャパシティを選択できます。
今回は試しにスループットキャパシティを6,144MBpsのものを選択します。
次にボリュームの作成です。ボリュームサイズの説明書きを確認すると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.
というエラーで怒られました。
これもHAペア毎のミニマムのSSDサイズが1,024GiBという制約があるためだと考えます。
SSDサイズを2,048GiBに変更してリトライします。
確認画面を確認していくと作成後に変更可能なパラメーターが分かります。HAペア数を変更したり、スループットキャパシティを変更したりすることはできないようです。
ネットワーク周りの設定は特筆すべき点はありません。
ボリュームは推測のとおり、FlexGroupですね。
FlexGroupを使うことによって大量のボリュームへの操作を複数のノードで行うことが可能です。
作成したFSxNファイルシステムの確認
作成したFSxNファイルシステムを確認します。
スループットキャパシティやSSDのIOPSが6,144と頼もしい値になっています。
エンドポイントを確認すると、クラスター間エンドポイントのIPアドレスが通常2つのところ、4つになっていました。こちらは各ノード毎に1つIPアドレスが割り当てられるため、HAペアが2つ × HAペア毎のノード数2 で4つになっていると考えます。
SVMのエンドポイントもそれぞれHAペアの数分増えています。
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)でした!