[アップデート] Amazon FSx for NetApp ONTAPの第二世代ファイルシステムがGAされました

[アップデート] Amazon FSx for NetApp ONTAPの第二世代ファイルシステムがGAされました

Clock Icon2024.07.18

HAペアを後から追加したい

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

皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)のHAペアを後から追加したいなと思ったことはありますか? 私はあります。

re:Invent 2023でスケールアウトファイルシステムがGAされました。スケールアウトファイルシステムの詳細は以下記事をご覧ください。

https://dev.classmethod.jp/articles/amazon-fsx-netapp-ontap-scale-out-file-systems/

GA時のスケールアウトファイルシステムはファイルシステム作成後にHAペアの追加/削除および、スループットキャパシティの変更ができませんでした。

もし、これらの変更を行う場合はFSxNファイルシステムを新規に作成し、SnapMirrorでデータを転送する必要がありました。これは面倒です。

今回、Amazon FSx for NetApp ONTAPの第二世代ファイルシステムがGAされました。

https://aws.amazon.com/jp/about-aws/whats-new/2024/07/amazon-fsx-for-netapp-ontap-file-systems/

これによりFSxNファイルシステム作成後にHAペア追加したり、スループットキャパシティを変更したりできるようになりました。アツいですね。

詳細を確認したので紹介します。

FSxNの第二世代ファイルシステムの主な変更点

FSxNの第二世代ファイルシステムの主な変更点を以下にまとめます。

  • FSxNファイルシステム作成後にHAペアを追加できるようになった
    • HAペアの削除は未サポート
  • 複数HAペアの状態でFSxNファイルシステム作成後にHAペアを追加できるようになった
    • Multi-AZファイルシステムの最大HAペアは1つのまま
  • Multi-AZファイルシステムの最大スループットキャパシティが6GBpsになった
  • スケールアップファイルシステムで選択できるスループットキャパシティの値が変わった
    • 第二世代の場合
      • 384MBps
      • 768MBps
      • 1536MBps
      • 3072MBps
      • 6144MBps
    • 第一世代の場合
      • 128MBps
      • 256MBps
      • 512MBps
      • 1024MBps
      • 2048MBps
      • 4096MBps
  • SSDの最大サイズの上限が192TiBから変わった
    • Multi-AZ : 512TiB
    • Single-AZ : 1PiB
  • 第一世代と比較してディスクスループットのバースト値とSSD IOPSのバースト値の上限が増加した
    • ディスクスループットのバースト値
      • Single-AZ : 1,250 → 3,125
      • Multi-AZ : 1,250 → 3,125
    • SSD IOPSのバースト値
      • Single-AZ : 40,000 → 65,000
      • Multi-AZ : 40,000 → 65,000
  • 第一世代ファイルシステムのSingle-AZファイルシステムではスケールアウトファイルシステムを指定できなくなった
  • 第二世代ファイルシステム用のCloudWatchメトリクスが使用できるようになった
    • 元々はスケールアウトファイルシステム用だったが、第二世代ファイルシステムでは1HAペアからでも使えるように
    • ディメンションとしてFSxNのaggregateやノードを指定できる
    • 従来のCloudWatchメトリクスも継続して使用できる
  • 第二世代ファイルシステムではNitroベースの転送データ暗号化をシドニーリージョンで行えるようになった

第二世代ファイルシステム ⊃ スケールアウトファイルシステムという立て付けになっていそうです。

最大のReadスループットは72GBpsで、Writeスループットは12GBpsです。これは少し前のアップデートにてHAペアの最大が6個から12個に増えたことにより、最大72GBpsのスループットキャパシティを選択できるようになっています。

https://aws.amazon.com/jp/about-aws/whats-new/2024/03/amazon-fsx-netapp-ontap-maximum-throughput-capacity-72-gbps/

スループットキャパシティごとの第二世代ファイルシステムのパフォーマンスは以下のとおりです。

43.Single-AZ 2パフォーマンス
44.Multi-AZ 2パフォーマンス
抜粋 : Amazon FSx for NetApp ONTAP performance - FSx for ONTAP

注意書きにもありますが、 Single-AZの第2世代ファイルシステムでHAペアを複数設定する場合はスループットキャパシティを1,536 MBpsに設定する必要があります。細かい調整はできないので注意しましょう。

以下でも1HAペアのスペックで十分であれば1HAペアの利用を推奨すると記載されています。

We recommend that you use a single HA pair if your file system requirements are satisfied by up to 6 GBps of throughput capacity and 200,000 SSD IOPs, and multiple HA pairs if your workloads need higher levels of performance scalability.

Administering FSx for ONTAP resources - FSx for ONTAP

第二世代ファイルシステム用のCloudWatchメトリクスの詳細は以下AWS公式ドキュメントをご覧ください。ノード単位のCPU使用率やスループット使用率、aggregate単位でのIOPSなどの情報が確認できます。

https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/so-file-system-metrics.html

Amazon FSx for NetApp ONTAP performance - FSx for ONTAP

注意点

第二世代ファイルシステムの主な注意点は以下のとおりです。

  • 第一世代ファイルシステムから第二世代ファイルシステムへ、およびその逆の変更はできない
  • HAペアは追加後に削除はできない
    • 一時的なパフォーマンス変更であればスループットキャパシティで調整するのが望ましい
  • HAペア数に応じてSSDサイズ、IOPSが変動する
    • HAペアごとに個別の値を割り当てることはできない
    • 全HAペアで同一の値を設定することになる
  • HAペアを追加するだけではパフォーマンスの改善には繋がらない
    • クライアント側から再マウントする
    • FlexVolumeの場合はFlexGroupに変換する
  • iSCSIで接続する場合はHAペアが6つ以下である必要がある
  • NVMe/TCPで接続する場合はHAペアが6つ以下である必要がある
  • NetApp BlueXPは未サポート
  • 第二世代ファイルシステムをマウントする際はDNS名を使用してアクセスすることが推奨されることが明記
  • 東京リージョンは現時点で未サポート
    • 現時点ではバージニア北部、オハイオ、オレゴン、アイルランド、シドニーでサポート
  • スループットキャパシティの単価が2倍以上高額になっている

HAペア追加時の注意点は以下AWS公式ドキュメントにまとまっています。

Adding high-availability (HA) pairs - FSx for ONTAP

HAペアを追加するだけではパフォーマンスの改善には繋がらないのは特に注意が必要です。ノード部分が増えたとしてもノードに対してロードバランシングされないと効果が薄いです。アクセス先のノードが偏らないように一度クライアントからアンマウントして、再度マウントします。

You can rebalance clients to other HA pairs. To do so, unmount the volume from the client and remount it using the DNS name for the SVM’s NFS/SMB endpoint—this returns a random endpoint corresponding to a random HA pair.

We recommend you re-use the DNS name, but you have the option to explicitly choose which HA pair a given client mounts. To guarantee that you are mounting a client to a different endpoint, you can instead specify a different endpoint IP address than the one that corresponds to the file server that is experiencing high traffic.

Balancing workloads - FSx for ONTAP

以下でもDNS名でアクセスすることが推奨されています。IPアドレス直接指定をしている場合は見直しましょう。

You can also use the IP address of the SVM instead of its DNS name. We recommend using the DNS name to mount clients to second-generation file systems because it helps ensure that your clients are balanced across your file system's high-availability (HA) pairs.

Mounting volumes on Microsoft Windows clients - FSx for ONTAP

FlexVolumeを使用しており、ディスクスループットやIOPSがボトルネックになっている状況においてはFlexGroupに変換することも検討すると良いでしょう。FlexGroupにすることで1つの名前空間で異なるaggregateに対してアクセスできるようになるため、ディスクアクセスのロードバランシングを行うことが可能になります。FlexGroupの詳細や注意点については以下記事をご覧ください。

https://dev.classmethod.jp/articles/amazon-fsx-for-netapp-ontap-flexgroup/

スループットキャパシティの単価は2倍以上になっています。その他の料金は変動ありません。

16.Single-AZ 1
17.Single-AZ 2
18.Multi-AZ 1
19.Multi-AZ 2
抜粋 : Amazon FSx for NetApp ONTAP Pricing – AWS

選択可能なミニマムのスループットキャパシティも底上げされているので、必ずしも第二世代ファイルシステムを選ぶ必要はないと考えます。コストとパフォーマンスのバランスを鑑みると良いでしょう。

NetApp BlueXPが未サポートである点については以下で言及されています。

Note
NetApp BlueXP isn't supported for second-generation file systems with more than one high-availability (HA) pair.

Note
NetApp System Manager isn't supported for second-generation file systems with more than one HA pair.

Managing FSx for ONTAP resources using NetApp applications - FSx for ONTAP

やってみた

ファイルシステムの作成

それでは実際に第二世代ファイルシステムを作成してみましょう。

マネジメントコンソールを覗くと、デプロイタイプにマルチ AZ 2 (推奨)シングル AZ 2と第二世代ファイルシステムらしきものが選択できるようになっています。ここはFSx for Windows File Serverと似たような表記ですね。

35.選択できるスループット_Multi-AZ 2

マルチ AZ 1の場合と比べると指定できるスループットキャパシティが異なることがわかりますね。

36.選択できるスループット_Multi-AZ 1

シングル AZ 2の場合はスケールアウトすることができるのでスループットキャパシティの選択肢が大量です。

36.選択できるスループット_Single-AZ 2

シングル AZ 1ではスケールアウトすることができなくなっていました。

38.選択できるスループット_Single-AZ 1

試しに最大の73,728MBpsを選択すると、SSDサイズのミニマムが12,288GiBとなりました。これは先述のとおり全HAペアで同一の値を設定することになるためです。1HAペアの最小SSDサイズは1TiBであり、73,728MBpsは12HAペアでなので12TiBとなっています。

39.HAペア数に応じてミニマムのSSDサイズが変動する

今回はシングル AZ 2でスループットキャパシティ384MBpsで作成をします。

40.ファイルシステムの作成

25分ほどで作成が完了しました。デプロイタイプがシングル AZ 2になっており、現在のHAペア数を確認できるようになっています。

4.ファイルシステム作成完了

モニタリングパフォーマンスタブを確認してみます。

5.メトリクス_概要
6.メトリクス_ストレージ
7.メトリクス_パフォーマンス

集約あたりのストレージキャパシティの使用状況と第二世代ファイルシステムのメトリクスが表示されていますね。

CloudWatchメトリクスからも確認してみます。

8.CloudWatchメトリクス

File Server MetricsFile System Aggregate MetricsDetailed File System Aggregate Metrics今までなかったディメンションのメトリクスがありそうです。

それぞれ以下のようにノードやaggregate単位での情報を確認できるようになっています。

  • File Server Metrics
    9.File Server Metrics
  • File System Aggregate Metrics
    10.File System Aggregate Metrics
  • Detailed File System Aggregate Metrics
    11.Detailed File System Aggregate Metrics

ONTAP CLIからでも確認しましょう。

ONTAPバージョンは9.14.1でした。

::> set diag

Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y

::*> version
NetApp Release 9.14.1P5: Sat May 18 19:42:16 UTC 2024

aggregateやLIF、クラスター、ボリューム、ノードの情報を確認しておきます。

aggregate
::*> aggr show

Aggregate     Size Available Used% State   #Vols  Nodes            RAID Status
--------- -------- --------- ----- ------- ------ ---------------- ------------
aggr1      861.7GB   860.6GB    0% online       2 FsxId083a8bcb2bf raid0,
                                                  1d0e68-01        mirrored,
                                                                   normal

::*> aggr clusterspace show

                     Performance tier used space: 149.4GB
                    Performance tier total space: 1.07TB
                Performance tier available space: 947.9GB
                           On premise used space: 149.4GB
                          On premise total space: 1.07TB
                      On premise available space: 947.9GB
              Capacity tier licensed total space: 0B
       Capacity tier licensed object store types: AWS_S3
  Capacity tier licensed object store used space: 0B
     Capacity tier unlicensed object store types: -
Capacity tier unlicensed object store used space: -
                   Local Tier Inactive User Data: 0B
           Local Tier Inactive User Data Percent: 0%
LIF
::*> network interface show
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId083a8bcb2bf1d0e68
            fsxadmin     up/up    10.0.8.28/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            inter_1      up/up    10.0.8.72/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            inter_2      up/up    10.0.8.206/24      FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     true
svm
            iscsi_1      up/up    10.0.8.32/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            iscsi_2      up/up    10.0.8.128/24      FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.8.81/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
6 entries were displayed.
volume
::*> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm       svm_root     aggr1        online     RW          1GB    972.5MB    0%
svm       vol1         aggr1        online     RW        128GB    121.6GB    0%
2 entries were displayed.

::*> volume show -fields aggregate -is-constituent true
There are no entries matching your query.
cluster
::*> cluster ha show
High-Availability Configured: true
High-Availability Backend Configured (MBX): true
Cloud High-Availability Type: Shared Nothing
Cloud High-Availability Scope: Zonal

::*> cluster show
Node                 Health  Eligibility   Epsilon
-------------------- ------- ------------  ------------
FsxId083a8bcb2bf1d0e68-01
                     true    true          false
FsxId083a8bcb2bf1d0e68-02
                     true    true          false
2 entries were displayed.
node
::*> node show
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
FsxId083a8bcb2bf1d0e68-01
          true   true             00:29:04 CDvM200
FsxId083a8bcb2bf1d0e68-02
          true   true             00:18:14 CDvM200
2 entries were displayed.

::*> node virtual-machine instance show-settings -instance

                                   Node: FsxId083a8bcb2bf1d0e68-01
                       Provider VM Name: -
              Consumer of this Instance: FSx
          Storage Type for the Instance: SSD
Storage Capacity for the Instance in GB: 1024
 Committed IOPS per GB for the Instance: 3072
Maximum Throughput Capacity in MB/s for the Instance: 384
  Total Network Bandwidth Limit in MB/s: -
   Total Volume Bandwidth Limit in MB/s: -

                                   Node: FsxId083a8bcb2bf1d0e68-02
                       Provider VM Name: -
              Consumer of this Instance: FSx
          Storage Type for the Instance: SSD
Storage Capacity for the Instance in GB: 1024
 Committed IOPS per GB for the Instance: 3072
Maximum Throughput Capacity in MB/s for the Instance: 384
  Total Network Bandwidth Limit in MB/s: -
   Total Volume Bandwidth Limit in MB/s: -
2 entries were displayed.

ちなみにノードのモデルのCDvM200はHA CVOを表しているとのことです。

CDVM200 は HA CVO を表し、 CDVM100 はシングルノードの CVO インスタンスを表します。

CDVM200 と CDVM100 の違いは何ですか。 - NetApp

書き込み速度の確認

HAペアを追加する前に書き込み速度の確認をします。

$ sudo mount -t nfs svm-0d99bacbf08945e37.fs-083a8bcb2bf1d0e68.fsx.us-east-1.amazonaws.com:/vol1 /mnt/fsxn/vol1
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0d99bacbf08945e37.fs-083a8bcb2bf1d0e68.fsx.us-east-1.amazonaws.com:/vol1 nfs4  122G  320K  122G   1% /mnt/fsxn/vol1

$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol1/random_pattern_binary_block_1GiB bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.42116 s, 167 MB/s

$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol1/random_pattern_binary_block_1GiB_2 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.46572 s, 166 MB/s

166MBpsほどでした。

fioでも計測します。

$ sudo fio \
  --directory=/mnt/fsxn/vol1/ \
  --name fio_rw_4MiB_block_4GiB_4jobs \
  --ioengine=psync \
  --direct=1 \
  --rw=randwrite \
  --bs=4M \
  --size=4G \
  --numjobs=4 \
  --runtime=60 \
  --eta-newline=5 \
  --time_based=1 \
  --group_reporting \
  --norandommap
fio_rw_4MiB_block_4GiB_4jobs: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 4 processes
fio_rw_4MiB_block_4GiB_4jobs: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs: Laying out IO file (1 file / 4096MiB)
Jobs: 4 (f=4): [w(4)][10.0%][w=144MiB/s][w=36 IOPS][eta 00m:54s]
.
.
(中略)
.
.
Jobs: 4 (f=4): [w(4)][100.0%][w=144MiB/s][w=36 IOPS][eta 00m:00s]
fio_rw_4MiB_block_4GiB_4jobs: (groupid=0, jobs=4): err= 0: pid=2513: Tue Jul 16 09:24:16 2024
  write: IOPS=36, BW=145MiB/s (152MB/s)(8720MiB/60062msec); 0 zone resets
    clat (msec): min=8, max=158, avg=109.82, stdev=21.22
     lat (msec): min=8, max=158, avg=110.14, stdev=21.21
    clat percentiles (msec):
     |  1.00th=[   27],  5.00th=[   69], 10.00th=[   85], 20.00th=[  102],
     | 30.00th=[  111], 40.00th=[  112], 50.00th=[  113], 60.00th=[  114],
     | 70.00th=[  120], 80.00th=[  125], 90.00th=[  130], 95.00th=[  133],
     | 99.00th=[  142], 99.50th=[  144], 99.90th=[  153], 99.95th=[  155],
     | 99.99th=[  159]
   bw (  KiB/s): min=114556, max=581632, per=99.96%, avg=148608.75, stdev=10811.87, samples=478
   iops        : min=   26, max=  142, avg=36.11, stdev= 2.65, samples=478
  lat (msec)   : 10=0.05%, 20=0.14%, 50=3.26%, 100=15.28%, 250=81.28%
  cpu          : usr=0.25%, sys=0.52%, ctx=2400, majf=1, minf=40
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,2180,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=145MiB/s (152MB/s), 145MiB/s-145MiB/s (152MB/s-152MB/s), io=8720MiB (9144MB), run=60062-60062msec

平均152MBpsでした。スループットキャパシティ384MBpsの割にはパフォーマンス出ていないなという感想です。

スループットキャパシティを1,536MBpsに変更

HAペアを1つ追加したいのでスループットキャパシティを1,536MBpsに変更します。

スループットキャパシティが1,536MBps未満だとInvalid desired throughput capacity value provided- 384 MB/s. Valid values are [1536, 3072, 6144]と怒られます。

13.Invalid desired throughput capacity value provided- 384 MB:s. Valid values are [1536, 3072, 6144]

AWS CLIにもSingle-AZ 2は1,536以降が指定できると記載がありました。

ThroughputCapacityPerHAPair -> (integer)

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

You can define either the ThroughputCapacityPerHAPair or the ThroughputCapacity when creating a file system, but not both.

This field and ThroughputCapacity are the same for file systems powered by one HA pair.

For SINGLE_AZ_1 and MULTI_AZ_1 file systems, valid values are 128, 256, 512, 1024, 2048, or 4096 MBps.
For SINGLE_AZ_2 , valid values are 1536, 3072, or 6144 MBps.
For MULTI_AZ_2 , valid values are 384, 768, 1536, 3072, or 6144 MBps.
Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value for file systems with one HA pair.
The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / ThroughputCapacityPerHAPair is not a valid HA pair (a value between 1 and 12).
The value of ThroughputCapacityPerHAPair is not a valid value.

create-file-system — AWS CLI 1.33.26 Command Reference
update-file-system — AWS CLI 1.33.26 Command Reference

スループットキャパシティを1,536MBpsに変更します。

14.スループットキャパシティを変更

ステータスが進行中となっていますね。

15.進行中

しばらくすると、FSxNファイルシステムへのSSH接続が切れました。フェイルオーバーが発生したのでしょう。

再接続をして様子を見ると、ノードが一つしか表示されなくなり、fsxadminnfs_smb_management_1のLIFが2つ目のノードにフェイルオーバーしていることが分かります。

::*> node virtual-machine instance show-settings -instance

                                   Node: FsxId083a8bcb2bf1d0e68-02
                       Provider VM Name: -
              Consumer of this Instance: FSx
          Storage Type for the Instance: SSD
Storage Capacity for the Instance in GB: 1024
 Committed IOPS per GB for the Instance: 3072
Maximum Throughput Capacity in MB/s for the Instance: 384
  Total Network Bandwidth Limit in MB/s: -
   Total Volume Bandwidth Limit in MB/s: -

::*> network interface show
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId083a8bcb2bf1d0e68
            fsxadmin     up/up    10.0.8.28/24       FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     false
            inter_1      up/-     10.0.8.72/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            inter_2      up/up    10.0.8.206/24      FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     true
svm
            iscsi_1      up/-     10.0.8.32/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            iscsi_2      up/up    10.0.8.128/24      FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.8.81/24       FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     false
6 entries were displayed.

再度SSH接続が切れ、FSxのコンソールを確認すると更新が完了していました。トータルでは20分ほどかかりました。

20.更新完了

ONTAP CLIでも確かにスループットキャパシティが1,536MBpsに変わったことを確認できました。

::*> node virtual-machine instance show-settings -instance

                                   Node: FsxId083a8bcb2bf1d0e68-01
                       Provider VM Name: -
              Consumer of this Instance: FSx
          Storage Type for the Instance: SSD
Storage Capacity for the Instance in GB: 1024
 Committed IOPS per GB for the Instance: 3072
Maximum Throughput Capacity in MB/s for the Instance: 1536
  Total Network Bandwidth Limit in MB/s: -
   Total Volume Bandwidth Limit in MB/s: -

                                   Node: FsxId083a8bcb2bf1d0e68-02
                       Provider VM Name: -
              Consumer of this Instance: FSx
          Storage Type for the Instance: SSD
Storage Capacity for the Instance in GB: 1024
 Committed IOPS per GB for the Instance: 3072
Maximum Throughput Capacity in MB/s for the Instance: 1536
  Total Network Bandwidth Limit in MB/s: -
   Total Volume Bandwidth Limit in MB/s: -
2 entries were displayed.

書き込み速度の確認 (スループットキャパシティ1,536MBpsの場合)

スループットキャパシティ1,536MBpsの場合の書き込み速度を確認します。

sudo fio \
  --directory=/mnt/fsxn/vol1/ \
  --name fio_rw_4MiB_block_4GiB_4jobs_2 \
  --ioengine=psync \
  --direct=1 \
  --rw=randwrite \
  --bs=4M \
  --size=4G \
  --numjobs=4 \
  --runtime=60 \
  --eta-newline=5 \
  --time_based=1 \
  --group_reporting \
  --norandommap
fio_rw_4MiB_block_4GiB_4jobs_2: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 4 processes
fio_rw_4MiB_block_4GiB_4jobs_2: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs_2: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs_2: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs_2: Laying out IO file (1 file / 4096MiB)
Jobs: 4 (f=4): [w(4)][10.0%][w=585MiB/s][w=146 IOPS][eta 00m:54s]
.
.
(中略)
.
.
Jobs: 4 (f=4): [w(4)][100.0%][w=555MiB/s][w=138 IOPS][eta 00m:00s]
fio_rw_4MiB_block_4GiB_4jobs_2: (groupid=0, jobs=4): err= 0: pid=3839: Tue Jul 16 09:53:46 2024
  write: IOPS=138, BW=555MiB/s (582MB/s)(32.6GiB/60024msec); 0 zone resets
    clat (msec): min=8, max=127, avg=28.45, stdev= 4.19
     lat (msec): min=9, max=127, avg=28.79, stdev= 4.22
    clat percentiles (msec):
     |  1.00th=[   21],  5.00th=[   24], 10.00th=[   25], 20.00th=[   27],
     | 30.00th=[   27], 40.00th=[   28], 50.00th=[   29], 60.00th=[   29],
     | 70.00th=[   30], 80.00th=[   31], 90.00th=[   32], 95.00th=[   34],
     | 99.00th=[   40], 99.50th=[   45], 99.90th=[   68], 99.95th=[   92],
     | 99.99th=[  128]
   bw (  KiB/s): min=465584, max=622592, per=100.00%, avg=569095.16, stdev=6126.42, samples=476
   iops        : min=  113, max=  152, avg=138.64, stdev= 1.52, samples=476
  lat (msec)   : 10=0.01%, 20=0.96%, 50=98.79%, 100=0.19%, 250=0.05%
  cpu          : usr=0.97%, sys=2.18%, ctx=9259, majf=0, minf=37
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,8334,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=555MiB/s (582MB/s), 555MiB/s-555MiB/s (582MB/s-582MB/s), io=32.6GiB (35.0GB), run=60024-60024msec

582MBpsでした。スループットキャパシティが4倍になったので書き込み速度も約4倍になっていますね。

HAペアの追加

それではHAペアの追加を行います。

21.HAペアを更新

ステータスが進行中になりました。更新タイプはスループットキャパシティのようです。

22.HAペア更新進行中

10分ほど待つ、と3つ目と4つ目のノードが追加されていることを確認できました。

::*> node show
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
FsxId083a8bcb2bf1d0e68-01
          true   true             00:30:36 CDvM200
FsxId083a8bcb2bf1d0e68-02
          true   true             00:19:45 CDvM200
FsxId083a8bcb2bf1d0e68-03
          true   true             00:05:43 CDvM200
FsxId083a8bcb2bf1d0e68-04
          true   true             00:05:59 CDvM200

Warning: Cluster operation (cluster join) for node "FsxId083a8bcb2bf1d0e68-04" is not complete and the node is not fully functional. Run "cluster join" on that node to complete the operation.
4 entries were displayed.

ただ、コンソールのステータスは更新中のままです。aggregateもこの時点では1つしかありませんでした。

::*> aggr show

Aggregate     Size Available Used% State   #Vols  Nodes            RAID Status
--------- -------- --------- ----- ------- ------ ---------------- ------------
aggr1      861.7GB   836.5GB    3% online       2 FsxId083a8bcb2bf raid0,
                                                  1d0e68-01        mirrored,
                                                                   normal

完了になったのは更新開始してから1時間20分後でした。

23.更新完了済み

通常は数分で完了するようですが、私の環境で時間がかかったのはたまたまなのでしょうか。

Adding HA pairs isn't disruptive and typically takes only a few minutes to complete.

Adding high-availability (HA) pairs - FSx for ONTAP

スケールアウトファイルシステムとなったのでクラスタ間エンドポイントが2つ追加されたことを確認できます。

25.ネットワーク

2HAペアに変更後に、1HAペアには変更できなくなりました。

41.HAペアを2個にした後の選択できるHAペア数

また、スループットキャパシティで3,072MBps未満は選択できなくなりました。

42.HAペア2の状態で選択できるスループットキャパシティ.png

SSDのサイズやIOPSを変更しようとした際に、入力値×HAペア数の値で設定されることも確認できました。

24.SSD ストレージ容量と IOPS を更新

モニタリングとパフォーマンスタブから確認できるメトリクスは以下のとおりです。aggregateとノードそれぞれの情報を確認できるようになっています。

26.集約あたりのストレージキャパシティの使用状況
27.パフォーマンス

CloudWatchのコンソールから確認できる情報は以下のとおりです。

  • File Server Metrics
    34.HAペア追加後_File Server Metrics
  • File System Aggregate Metrics
    33.HAペア追加後_File System Aggregate Metrics
  • Detailed File System Aggregate Metrics
    32.HAペア追加後Detailed File System Aggregate Metrics

ONTAP CLIからHAペア確認後の情報を確認しましょう。

aggregate
::*> aggr show

Aggregate     Size Available Used% State   #Vols  Nodes            RAID Status
--------- -------- --------- ----- ------- ------ ---------------- ------------
aggr1      861.7GB   836.5GB    3% online       2 FsxId083a8bcb2bf raid0,
                                                  1d0e68-01        mirrored,
                                                                   normal
aggr2      861.7GB   861.7GB    0% online       0 FsxId083a8bcb2bf raid0,
                                                  1d0e68-03        mirrored,
                                                                   normal
2 entries were displayed.

::*> aggr clusterspace show

                     Performance tier used space: 397.6GB
                    Performance tier total space: 2.14TB
                Performance tier available space: 1.75TB
                           On premise used space: 397.6GB
                          On premise total space: 2.14TB
                      On premise available space: 1.75TB
              Capacity tier licensed total space: 0B
       Capacity tier licensed object store types: AWS_S3
  Capacity tier licensed object store used space: 0B
     Capacity tier unlicensed object store types: -
Capacity tier unlicensed object store used space: -
                   Local Tier Inactive User Data: 0B
           Local Tier Inactive User Data Percent: 0%
LIF
::*> network interface show
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId083a8bcb2bf1d0e68
            fsxadmin     up/up    10.0.8.28/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            inter_1      up/up    10.0.8.72/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            inter_2      up/up    10.0.8.206/24      FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     true
            inter_3      up/up    10.0.8.55/24       FsxId083a8bcb2bf1d0e68-03
                                                                   e0e     true
            inter_4      up/up    10.0.8.89/24       FsxId083a8bcb2bf1d0e68-04
                                                                   e0e     true
svm
            iscsi_1      up/up    10.0.8.32/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            iscsi_2      up/up    10.0.8.128/24      FsxId083a8bcb2bf1d0e68-02
                                                                   e0e     true
            iscsi_3      up/up    10.0.8.96/24       FsxId083a8bcb2bf1d0e68-03
                                                                   e0e     true
            iscsi_4      up/up    10.0.8.9/24        FsxId083a8bcb2bf1d0e68-04
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.8.81/24       FsxId083a8bcb2bf1d0e68-01
                                                                   e0e     true
            nfs_smb_management_3
                         up/up    10.0.8.197/24      FsxId083a8bcb2bf1d0e68-03
                                                                   e0e     true
11 entries were displayed.
volume
::*> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm       svm_root     aggr1        online     RW          1GB    972.3MB    0%
svm       vol1         aggr1        online     RW        128GB    98.99GB   18%
2 entries were displayed.

::*> volume show -fields aggregate -is-constituent true
There are no entries matching your query.
cluster
8::*> cluster show -instance

          Node: FsxId083a8bcb2bf1d0e68-01
          UUID: 469d5838-434f-11ef-bbc6-619c44ccebb0
       Epsilon: true
   Eligibility: true
        Health: true

          Node: FsxId083a8bcb2bf1d0e68-02
          UUID: 4474b5f0-434f-11ef-aac5-dfa4e32741e4
       Epsilon: false
   Eligibility: true
        Health: true

          Node: FsxId083a8bcb2bf1d0e68-03
          UUID: 3f7b2b8f-435f-11ef-84b7-ad45adbba2a1
       Epsilon: false
   Eligibility: true
        Health: true

          Node: FsxId083a8bcb2bf1d0e68-04
          UUID: 46fe9581-435f-11ef-8949-33b69f251d08
       Epsilon: false
   Eligibility: true
        Health: true
4 entries were displayed.

::*> cluster ha show
High-Availability Configured: false
High-Availability Backend Configured (MBX): false
node
::*> node show
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
FsxId083a8bcb2bf1d0e68-01
          true   true             01:43:06 CDvM200
FsxId083a8bcb2bf1d0e68-02
          true   true             01:32:16 CDvM200
FsxId083a8bcb2bf1d0e68-03
          true   true             00:41:51 CDvM200
FsxId083a8bcb2bf1d0e68-04
          true   true             00:41:38 CDvM200
4 entries were displayed.

aggregateが追加されていることが分かりますね。また、LIFもNFSとSMB用のものがもう一つ追加されています。クラスターのHA設定がtrueからfalseに変わっているのは少し気になりました。

ちなみに第一世代ファイルシステムから第二世代ファイルシステムへの変更はできないようでした。

1.既存のファイルシステムは変更できない

書き込み速度の確認 (スループットキャパシティ3,072MBpsの場合)

書き込み速度の確認を行います。

$ sudo fio \
  --directory=/mnt/fsxn/vol1/ \
  --name fio_rw_4MiB_block_4GiB_4jobs_3 \
  --ioengine=psync \
  --direct=1 \
  --rw=randwrite \
  --bs=4M \
  --size=4G \
  --numjobs=4 \
  --runtime=60 \
  --eta-newline=5 \
  --time_based=1 \
  --group_reporting \
  --norandommap
fio_rw_4MiB_block_4GiB_4jobs_3: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 4 processes
fio_rw_4MiB_block_4GiB_4jobs_3: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs_3: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs_3: Laying out IO file (1 file / 4096MiB)
fio_rw_4MiB_block_4GiB_4jobs_3: Laying out IO file (1 file / 4096MiB)
Jobs: 4 (f=4): [w(4)][10.0%][w=576MiB/s][w=144 IOPS][eta 00m:54s]
.
.
(中略)
.
.
Jobs: 4 (f=4): [w(4)][100.0%][w=561MiB/s][w=140 IOPS][eta 00m:00s]
fio_rw_4MiB_block_4GiB_4jobs_3: (groupid=0, jobs=4): err= 0: pid=7692: Tue Jul 16 11:26:14 2024
  write: IOPS=137, BW=548MiB/s (575MB/s)(32.1GiB/60021msec); 0 zone resets
    clat (msec): min=9, max=130, avg=28.79, stdev= 5.43
     lat (msec): min=9, max=131, avg=29.16, stdev= 5.48
    clat percentiles (msec):
     |  1.00th=[   20],  5.00th=[   23], 10.00th=[   25], 20.00th=[   27],
     | 30.00th=[   27], 40.00th=[   28], 50.00th=[   29], 60.00th=[   29],
     | 70.00th=[   30], 80.00th=[   32], 90.00th=[   33], 95.00th=[   35],
     | 99.00th=[   50], 99.50th=[   62], 99.90th=[   85], 99.95th=[   89],
     | 99.99th=[  131]
   bw (  KiB/s): min=285707, max=622592, per=100.00%, avg=562026.30, stdev=9563.29, samples=476
   iops        : min=   66, max=  152, avg=136.91, stdev= 2.40, samples=476
  lat (msec)   : 10=0.01%, 20=1.31%, 50=97.74%, 100=0.89%, 250=0.05%
  cpu          : usr=0.93%, sys=2.35%, ctx=9295, majf=0, minf=33
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,8230,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=548MiB/s (575MB/s), 548MiB/s-548MiB/s (575MB/s-575MB/s), io=32.1GiB (34.5GB), run=60021-60021msec

はい、1,536MBpsの時と比べて特に変わりはありません。

これはボリュームがFlexVolumeであり、複数aggregateのメリットを活かしきれていないためです。

ボリュームを追加します。

マネジメントコンソールからボリュームを作成する場合、2HAペア以上だとFlexGroupになります。

30.vol2

1HAペアあたりのコンスティチュエントボリュームは8個なので、2HAペアのFlexGroupでは16個のコンスティチュエントボリュームで構成されています。

コンスティチュエントボリュームのミニマムは100GiBであることにも注意しましょう。

29.Invalid storage capacity provided. Minimum storage capacity for ONTAP FlexGroup volumes is 100 GiB per constituent

ONTAP CLIから追加したボリュームを確認すると、複数のaggregateにコンスティチュエントボリュームが分散して存在していることが確認できます。

::*> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm       svm_root     aggr1        online     RW          1GB    972.2MB    0%
svm       vol1         aggr1        online     RW        128GB    85.30GB   29%
svm       vol2         -            online     RW       1.56TB     1.48TB    0%
svm       vol2__0001   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0002   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0003   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0004   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0005   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0006   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0007   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0008   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0009   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0010   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0011   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0012   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0013   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0014   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0015   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0016   aggr1        online     RW        100GB    94.52GB    0%
19 entries were displayed.

もう一度書き込みテストをしてみます。

$ sudo fio \
  --directory=/mnt/fsxn/vol2/ \
  --name fio_rw_4MiB_block_4GiB_4jobs_1 \
  --ioengine=psync \
  --direct=1 \
  --rw=randwrite \
  --bs=4M \
  --size=4G \
  --numjobs=4 \
  --runtime=60 \
  --eta-newline=5 \
  --time_based=1 \
  --group_reporting \
  --norandommap
fio_rw_4MiB_block_4GiB_4jobs_1: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 4 processes
fio_rw_4MiB_block_4GiB_4jobs_1: Laying out IO file (1 file / 4096MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_4GiB_4jobs_1: Laying out IO file (1 file / 4096MiB)
Jobs: 4 (f=4): [w(4)][11.5%][w=566MiB/s][w=141 IOPS][eta 00m:54s]
.
.
(中略)
.
.
Jobs: 4 (f=4): [w(4)][98.4%][w=592MiB/s][w=148 IOPS][eta 00m:01s]
Jobs: 4 (f=4): [w(4)][100.0%][w=573MiB/s][w=143 IOPS][eta 00m:00s]
fio_rw_4MiB_block_4GiB_4jobs_1: (groupid=0, jobs=4): err= 0: pid=8171: Tue Jul 16 11:34:55 2024
  write: IOPS=145, BW=582MiB/s (610MB/s)(34.1GiB/60012msec); 0 zone resets
    clat (msec): min=7, max=135, avg=27.14, stdev= 3.65
     lat (msec): min=7, max=135, avg=27.49, stdev= 3.66
    clat percentiles (msec):
     |  1.00th=[   20],  5.00th=[   24], 10.00th=[   25], 20.00th=[   26],
     | 30.00th=[   27], 40.00th=[   27], 50.00th=[   28], 60.00th=[   28],
     | 70.00th=[   28], 80.00th=[   29], 90.00th=[   30], 95.00th=[   32],
     | 99.00th=[   37], 99.50th=[   41], 99.90th=[   52], 99.95th=[   73],
     | 99.99th=[  136]
   bw (  KiB/s): min=442368, max=638976, per=100.00%, avg=596140.87, stdev=5820.73, samples=476
   iops        : min=  108, max=  156, avg=145.24, stdev= 1.44, samples=476
  lat (msec)   : 10=0.05%, 20=1.11%, 50=98.74%, 100=0.06%, 250=0.05%
  cpu          : usr=1.00%, sys=2.49%, ctx=9098, majf=0, minf=33
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,8728,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=582MiB/s (610MB/s), 582MiB/s-582MiB/s (610MB/s-610MB/s), io=34.1GiB (36.6GB), run=60012-60012msec

610MBpsと劇的な変化はありません。

4並列で書き込んだので、4つのコンスティチュエントボリュームに書き込まれていることを確認できました。

::*> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm       svm_root     aggr1        online     RW          1GB    972.2MB    0%
svm       vol1         aggr1        online     RW        128GB    85.30GB   29%
svm       vol2         -            online     RW       1.56TB     1.46TB    1%
svm       vol2__0001   aggr2        online     RW        100GB    90.97GB    4%
svm       vol2__0002   aggr1        online     RW        100GB    91.03GB    4%
svm       vol2__0003   aggr2        online     RW        100GB    90.96GB    4%
svm       vol2__0004   aggr1        online     RW        100GB    91.05GB    4%
svm       vol2__0005   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0006   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0007   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0008   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0009   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0010   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0011   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0012   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0013   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0014   aggr1        online     RW        100GB    94.52GB    0%
svm       vol2__0015   aggr2        online     RW        100GB    94.52GB    0%
svm       vol2__0016   aggr1        online     RW        100GB    94.52GB    0%
19 entries were displayed.

並列数を増やしても特に変わりありませんでした。

$ sudo fio \
  --directory=/mnt/fsxn/vol2/ \
  --name fio_rw_4MiB_block_4GiB_8jobs_1 \
  --ioengine=psync \
  --direct=1 \
  --rw=randwrite \
  --bs=4M \
  --size=4G \
  --numjobs=8 \
  --runtime=60 \
  --eta-newline=5 \
  --time_based=1 \
  --group_reporting \
  --norandommap
fio_rw_4MiB_block_4GiB_8jobs_1: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 8 processes
fio_rw_4MiB_block_4GiB_8jobs_1: Laying out IO file (1 file / 4096MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_4GiB_8jobs_1: Laying out IO file (1 file / 4096MiB)
Jobs: 8 (f=8): [w(8)][13.1%][w=591MiB/s][w=147 IOPS][eta 00m:53s]
.
.
(中略)
.
.
Jobs: 8 (f=8): [w(8)][100.0%][w=589MiB/s][w=147 IOPS][eta 00m:00s]
fio_rw_4MiB_block_4GiB_8jobs_1: (groupid=0, jobs=8): err= 0: pid=8430: Tue Jul 16 11:38:43 2024
  write: IOPS=146, BW=585MiB/s (613MB/s)(34.3GiB/60020msec); 0 zone resets
    clat (usec): min=9026, max=82027, avg=54335.98, stdev=2474.56
     lat (usec): min=9428, max=82382, avg=54681.08, stdev=2471.96
    clat percentiles (usec):
     |  1.00th=[50070],  5.00th=[52167], 10.00th=[52691], 20.00th=[53216],
     | 30.00th=[53740], 40.00th=[53740], 50.00th=[54264], 60.00th=[54264],
     | 70.00th=[54789], 80.00th=[55313], 90.00th=[55837], 95.00th=[57934],
     | 99.00th=[63177], 99.50th=[66323], 99.90th=[76022], 99.95th=[81265],
     | 99.99th=[82314]
   bw (  KiB/s): min=524288, max=663552, per=100.00%, avg=599352.51, stdev=3454.39, samples=952
   iops        : min=  128, max=  162, avg=145.67, stdev= 0.88, samples=952
  lat (msec)   : 10=0.02%, 20=0.02%, 50=0.82%, 100=99.13%
  cpu          : usr=0.48%, sys=1.26%, ctx=9265, majf=6, minf=94
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,8778,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=585MiB/s (613MB/s), 585MiB/s-585MiB/s (613MB/s-613MB/s), io=34.3GiB (36.8GB), run=60020-60020msec

もしかすると、EC2インスタンス側がボトルネックになっているかもしれません。

t3.microからc6in.largeに変更します。

31.インスタンスタイプの変更

この状態で再チャレンジします。

$ sudo fio \
  --directory=/mnt/fsxn/vol2/ \
  --name fio_rw_4MiB_block_4GiB_4jobs_2 \
  --ioengine=psync \
  --direct=1 \
  --rw=randwrite \
  --bs=4M \
  --size=4G \
  --numjobs=4 \
  --runtime=60 \
  --eta-newline=5 \
  --time_based=1 \
  --group_reporting \
  --norandommap
fio_rw_4MiB_block_4GiB_4jobs_2: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1
...
fio-3.32
Starting 4 processes
fio_rw_4MiB_block_4GiB_4jobs_2: Laying out IO file (1 file / 4096MiB)
.
.
(中略)
.
.
fio_rw_4MiB_block_4GiB_4jobs_2: Laying out IO file (1 file / 4096MiB)
Jobs: 4 (f=4): [w(4)][13.1%][w=1130MiB/s][w=282 IOPS][eta 00m:53s]
.
.
(中略)
.
.
Jobs: 4 (f=4): [w(4)][100.0%][w=1109MiB/s][w=277 IOPS][eta 00m:00s]
fio_rw_4MiB_block_4GiB_4jobs_2: (groupid=0, jobs=4): err= 0: pid=2105: Tue Jul 16 11:46:16 2024
  write: IOPS=278, BW=1113MiB/s (1167MB/s)(65.2GiB/60018msec); 0 zone resets
    clat (msec): min=3, max=266, avg=14.11, stdev= 8.45
     lat (msec): min=3, max=266, avg=14.36, stdev= 8.48
    clat percentiles (msec):
     |  1.00th=[    5],  5.00th=[    5], 10.00th=[    6], 20.00th=[    7],
     | 30.00th=[    8], 40.00th=[    8], 50.00th=[   14], 60.00th=[   19],
     | 70.00th=[   21], 80.00th=[   22], 90.00th=[   24], 95.00th=[   25],
     | 99.00th=[   29], 99.50th=[   31], 99.90th=[   50], 99.95th=[   57],
     | 99.99th=[  266]
   bw (  MiB/s): min=  888, max= 1392, per=100.00%, avg=1114.30, stdev=21.76, samples=476
   iops        : min=  222, max=  348, avg=278.50, stdev= 5.44, samples=476
  lat (msec)   : 4=0.15%, 10=47.64%, 20=18.07%, 50=34.05%, 100=0.07%
  lat (msec)   : 500=0.02%
  cpu          : usr=1.42%, sys=3.72%, ctx=18091, majf=0, minf=34
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,16704,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=1113MiB/s (1167MB/s), 1113MiB/s-1113MiB/s (1167MB/s-1167MB/s), io=65.2GiB (70.1GB), run=60018-60018msec

1167MBpsと約2倍の速度を出せるようになりました。

比較としてFlexVolumeに同様の書き込みをすると585MBpsでした。FlexGroupはaggregateの性能を有効活用できていそうですね。

ハイパフォーマンスや大容量SSDが求められる可能性がある場合は第二世代ファイルシステムを検討しよう

Amazon FSx for NetApp ONTAPの第二世代ファイルシステムがGAされたアップデートを紹介しました。

HAペアを後から追加できるようになったのはアツいですね。

ハイパフォーマンスや大容量SSDが求められる可能性がある場合は第二世代ファイルシステムを検討すると良いでしょう。金銭的なコストは第一世代よりも増加してしまうのでコストインパクトとパフォーマンスのバランスを取りながら選択することになると考えます。

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

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

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.