[Amazon FSx for NetApp ONTAP] cloud write modeを有効にして直接キャパシティプールストレージに書き込みしてみた
直接キャパシティプールストレージに書き込みたい
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)のキャパシティプールストレージに直接書き込みたいなと思ったことはありますか? 私はあります。
従来のFSxNではTiering PolicyをAllにしていたとしても、書き込み時は一度SSDに書き込まれてからキャパシティプールストレージに書き込まれていました。そのため、大容量のデータを一気に書き込むとSSDが溢れる可能性があります。
SSDの空き容量を気にしながらの転送となると、移行やバックアップなど大量のデータを書き込む際には想定以上に時間がかります。
「この仕様はなんとかならないかな」と思いながらFSxNのドキュメント履歴を見ると、「cloud write modeをサポートした」と記載がありました。
抜粋 : Document History for Amazon FSx for NetApp ONTAP - FSx for ONTAP
リンク先のAWS公式ドキュメントにはcloud write modeを有効にすることで、どのような挙動をするのか記載はありませんでした。
よくよく調べるとONTAP 9.14.1からの機能のようです。
調べて試してみたので紹介します。
いきなりまとめ
- cloud write modeを有効にすることでキャパシティプールストレージに直接書き込みができる
- SSDの空き容量以上の書き込みがある場合でも、一気に書き込みができる
- 条件は以下のとおり
- 既存のボリュームに対してのみ設定可能
- サポートプロトコルはNFSのみ
- SMBなどの他のプロトコルは2024/2/11時点では未サポート
- 対象ボリュームのタイプはRWである必要がある
- SnapMirrorの転送先のボリュームはDPであるため、使用不可
- Tiering PolicyはAllである必要がある
- 検証した限りcloud write modeを有効にしても、無効状態と比べて書き込み速度の大きな差はない
cloud write modeとは
概要
cloud write modeとはデータ書き込み時にSSDに一度書き込むのではなく、直接キャパシティプールストレージに書き込むモードです。
ONTAP 9.14.1 以降では、FabricPool 内の新規または既存のボリュームでクラウド書き込みモードを有効または無効にして、NFS クライアントが階層化スキャンを待たずにクラウドに直接データを書き込むことができるようになりました。 SMB クライアントは引き続き、クラウド書き込み対応ボリュームのパフォーマンス層に書き込みます。クラウド書き込みモードはデフォルトでは無効になっています。
こうすることで、大量の書き込みによってSSDが圧迫されることを気にする必要がなくなります。
NetApp公式ドキュメントにもFabric Poolのローカル層(FSxNの場合はSSD)のサイズ以上の書き込みがある場合に役立つと記載がありました。
クラウド書き込みモードは、クラスターがローカル層でサポートできる量を超える大量のデータがクラスターに転送される移行などの場合に役立ちます。クラウド書き込みモードを使用しない場合、移行中、移行が完了するまで、少量のデータが転送され、その後階層化され、さらに転送され、再び階層化されます。クラウド書き込みモードを使用すると、データがローカル層に転送されないため、この種の管理は必要なくなります。
大規模移行の時にはかなり役立ちますね。帯域制御をかけてSSDの空き容量をケアしながら転送する必要がないので、移行にかかる時間も短くなります。
条件
条件は以下のとおりです。
- 既存のボリュームに対してのみ設定可能
- FSxNファイルシステム、またはSVMの管理者であること
- advanced 以上の権限が必要
- ボリュームタイプはRWであること
- ボリュームのTiering PolicyはAllであること
- サポートプロトコルはNFSのみ
通常のONTAPではボリューム作成時にcloud write modeを有効にすることができるようですが、FSxNでは有効にできないようです。作成後に設定変更を行いましょう。
特に気になるのは以下2点です。
- ボリュームタイプはRWであること
- サポートプロトコルはNFSのみ
ボリュームタイプがRWである必要があります。そのため、転送先ボリュームのボリュームタイプがDPである必要があるSnapMirrorでは必然的に使用できません。それに関連して、FSxNのバックアップからのリストアもSnapMirror Cloudを使用しているためcloud write modeは使用できないと考えます。ONTAP間での移行ではSnapMirrorを使用するのがベターと考えます。SnapMirrorによる移行をスムーズに行えるようにするためにも、早くDPボリュームでも使用できることを期待しておきましょう。
2024/2/11時点でのサポートプロトコルはNFSのみです。SMBによる書き込み時はcloud write modeが有効であってもSSDに一度書き込まれるようです。
移行元のファイルサーバーがSMBでアクセスするものの場合、一時的にNFSとのマルチプロトコルアクセスを有効化してNFSでデータ転送をするとスムーズに転送ができそうです。(未検証)
やってみた
cloud write modeが無効な状態での書き込み
実際にやってみましょう。
ONTAPのバージョンを確認します。
::> version NetApp Release 9.13.1P6: Tue Dec 05 16:06:25 UTC 2023
ONTAP 9.13.1P6でした。cloud write modeはONTAP 9.14.1からの機能のようですが、FSxNにおいてはONTAP 9.13.1でも使用できるようです。
cloud write modeを設定できるか確認すると、確かにvolume modify
で設定できそうでした。なお、volume create
では設定できませんでした。
::> set diag Warning: These diagnostic commands are for use by NetApp personnel only. Do you want to continue? {y|n}: y FsxId04e5e03055492f9d9::*> volume activity-tracking analytics autosize clone conversion create delete efficiency encryption expand file flexcache flexgroup make-vsroot modify mount move offline online qtree quota reallocation rebalance recovery-queue rehost remove-junction rename restrict show show-footprint show-space size snaplock snapshot unmount FsxId04e5e03055492f9d9::*> volume ? activity-tracking> The activity-tracking directory analytics> The analytics directory autosize Set/Display the autosize settings of the flexible volume. clone> Manage FlexClones conversion> *The conversion directory create Create a new volume delete Delete an existing volume efficiency> Manage volume efficiency encryption> The encryption directory expand Expand the size of a volume by adding constituents file> File related commands flexcache> Manage FlexCache flexgroup> *Manage FlexGroup operations make-vsroot *Designate a non-root volume as a root volume of the Vserver modify Modify volume attributes mount Mount a volume on another volume with a junction-path move> Manage volume move operations offline Take an existing volume offline online Bring an existing volume online qtree> Manage qtrees quota> Manage Quotas, Policies, Rules and Reports reallocation> Commands for measuring and optimizing data layout rebalance> The rebalance directory recovery-queue> *Manage volume recovery queue rehost Rehost a volume from one Vserver into another Vserver remove-junction *Remove a dead junction by junction path rename Rename an existing volume restrict Restrict an existing volume show Display a list of volumes show-footprint Display a list of volumes and their data and metadata footprints in their associated aggregate. show-space Display space usage for volume(s) size Set/Display the size of the volume. snaplock> Manages SnapLock attributes of a SnapLock volume snapshot> Manage snapshots unmount Unmount a volume ::*> volume modify -volume vol1 ? [ -vserver <vserver name> ] Vserver Name (default: svm) [ -size {<integer>[KB|MB|GB|TB|PB]} ] Volume Size [ -state {online|restricted|offline|force-online|force-offline|mixed} ] Volume State [ -policy <text> ] Export Policy [ -user <user name> ] User ID [ -group <group name> ] Group ID [ -security-style <security style> ] Security Style [ -unix-permissions <unix perm> ] UNIX Permissions [ -junction-active {true|false} ] *Junction Active [ -comment <text (size 0..1023)> ] Comment [ -space-nearly-full-threshold-percent <percent> ] Volume Nearly Full Threshold Percent [ -space-full-threshold-percent <percent> ] Volume Full Threshold Percent { [ -max-autosize {<integer>[KB|MB|GB|TB|PB]} ] Maximum Autosize [ -min-autosize {<integer>[KB|MB|GB|TB|PB]} ] Minimum Autosize [ -autosize-grow-threshold-percent <percent> ] Autosize Grow Threshold Percentage [ -autosize-shrink-threshold-percent <percent> ] Autosize Shrink Threshold Percentage [ -autosize-mode {off|grow|grow_shrink} ] Autosize Mode | [ -autosize-reset [true] ] } Autosize Reset [ -files <integer> ] Total Files (for user-visible data) [ -files-set-maximum {true|false} ] *Set Total Files (for user-visible data) to the Highest Value that the Volume can Hold [ -maxdir-size {<integer>[KB|MB|GB|TB|PB]} ] *Maximum Directory Size { [ -space-slo {none|thick|semi-thick} ] Space SLO | [ -space-guarantee|-s {none|volume} ] Space Guarantee Style [ -fractional-reserve <percent> ] Fractional Reserve [ -min-readahead {true|false} ] *Minimum Read Ahead [ -atime-update {true|false} ] *Access Time Update Enabled [ -snapdir-access {true|false} ] Snapshot Directory Access Enabled [ -percent-snapshot-space <percent> ] Space Reserved for Snapshot Copies [ -snapshot-policy <snapshot policy> ] Snapshot Policy [ -language <language_code> ] Language [ -foreground {true|false} ] Foreground Process [ -nvfail {on|off} ] NVFAIL Option [ -in-nvfailed-state {true|false} ] *Volume's NVFAIL State [ -dr-force-nvfail {on|off} ] Force NVFAIL on MetroCluster Switchover [ -filesys-size-fixed {true|false} ] Is File System Size Fixed [ -extent-enabled {off|on|space-optimized} ] (DEPRECATED)-Extent Option [ -max-write-alloc-blocks {0..2048} ] *Maximum Write Allocation Blocks [ -convert-ucode {true|false} ] *Convert Directories to Unicode Format [ -space-mgmt-try-first {volume_grow|snap_delete} ] Primary Space Management Strategy [ -read-realloc {off|on|space-optimized} ] Read Reallocation Option [ -sched-snap-name {create-time|ordinal} ] Naming Scheme for Automatic Snapshot Copies { [ -qos-policy-group <text> ] QoS Policy Group Name | [ -qos-adaptive-policy-group <text> ] } QoS Adaptive Policy Group Name [ -caching-policy <text> ] Caching Policy Name [ -cache-retention-priority {normal|low|high} ] *Cache Retention Priority [ -is-autobalance-eligible {true|false} ] *Is Eligible for Auto Balance Aggregate [ -flexgroup-index <integer> ] *FlexGroup Index [ -max-constituent-size {<integer>[KB|MB|GB|TB|PB]} ] *Maximum size of a FlexGroup Constituent [ -vserver-dr-protection {protected|unprotected} ] Vserver DR Protection [ -snapshot-snapdb-enabled {true|false} ] *SnapDB Snapshot Metadata Cache [ -is-space-reporting-logical {true|false} ] Logical Space Reporting [ -is-space-enforcement-logical {true|false} ] Logical Space Enforcement [ -tiering-policy <Tiering Policy> ] Volume Tiering Policy [ -cloud-retrieval-policy {default|on-read|never|promote} ] *Volume Cloud Retrieval Policy [ -tiering-minimum-cooling-days {2..183} ] *Volume Tiering Minimum Cooling Days [ -tiering-object-tags <text>, ... ] Tags to be Associated with Objects Stored on a FabricPool [ -is-qos-internal-allowed {true|false} ] *Allow Volume to Use Internal QoS Policy [ -is-flexgroup-constituent-active {true|false} ] *Is Active FlexGroup Constituent [ -workflow {auto|data|hybrid|metadata} ] *Type of Workflow [ -anti-ransomware-state {disabled|enabled|dry-run|paused|dry-run-paused|enable-paused|disable-in-progress} ] Anti-ransomware State [ -granular-data {disabled|enabled} ] Granular data [ -atime-update-period <integer> ] *Access Time Update Period (Seconds) [ -snapshot-locking-enabled {true|false} ] Enable Snapshot Copy Locking [ -is-large-size-enabled {true|false} ] Are Large Size Volumes and Files Enabled [ -is-preserve-unlink-enabled {true|false} ] *Is Preserve Unlink Enabled [ -is-cloud-write-enabled {true|false} ] *Is Cloud Write Enabled [ -aggressive-readahead-mode {none|file_prefetch} ] *Aggressive readahead mode ::*> volume create ? [ -vserver <vserver name> ] Vserver Name (default: svm) [-volume] <volume name> Volume Name { [[-aggregate] <aggregate name>] Aggregate Name | [ -aggr-list <aggregate name>, ... ] List of Aggregates for FlexGroup Constituents [ -aggr-list-multiplier {1..1000} ] Aggregate List Repeat Count [ -optimize-aggr-list {true|false} ] Have the System Optimize the Order of the Aggregate List | [ -auto-provision-as <FlexGroup> ] Automatically Provision as Volume of Type [ -support-tiering {true|false} ] Automatically Provision FlexGroup on FabricPools [ -use-mirrored-aggregates {true|false} ] Automatically Provision FlexGroup on Mirrored Aggregates [ -encryption-type {none|volume|aggregate} ] Encryption Type [ -nodes <nodename>, ... ] } List of Nodes Hosting the Volume [ -size {<integer>[KB|MB|GB|TB|PB]} ] Volume Size [ -state {online|restricted|offline|force-online|force-offline|mixed} ] Volume State (default: online) [ -policy <text> ] Export Policy (default: default) [ -user <user name> ] User ID [ -group <group name> ] Group ID [ -security-style <security style> ] Security Style [ -unix-permissions <unix perm> ] UNIX Permissions (default: ---rwxr-xr-x) [ -junction-path <junction path> ] Junction Path [ -junction-active {true|false} ] *Junction Active (default: true) [ -vsroot {true|false} ] *Vserver Root Volume (default: false) [ -comment <text (size 0..1023)> ] Comment { [ -max-autosize {<integer>[KB|MB|GB|TB|PB]} ] Maximum Autosize [ -min-autosize {<integer>[KB|MB|GB|TB|PB]} ] Minimum Autosize [ -autosize-grow-threshold-percent <percent> ] Autosize Grow Threshold Percentage [ -autosize-shrink-threshold-percent <percent> ] Autosize Shrink Threshold Percentage [ -autosize-mode {off|grow|grow_shrink} ] Autosize Mode [ -files-set-maximum {true|false} ] *Set Total Files (for user-visible data) to the Highest Value that the Volume can Hold [ -maxdir-size {<integer>[KB|MB|GB|TB|PB]} ] *Maximum Directory Size { [ -space-slo {none|thick|semi-thick} ] Space SLO | [ -space-guarantee|-s {none|volume} ] Space Guarantee Style [ -type {RW|DP} ] } Volume Type (default: RW) [ -snapdir-access {true|false} ] Snapshot Directory Access Enabled (default: true) [ -percent-snapshot-space <percent> ] Space Reserved for Snapshot Copies [ -snapshot-policy <snapshot policy> ] Snapshot Policy (default: default) [ -language <language_code> ] Language [ -foreground {true|false} ] Foreground Process (default: true) [ -nvfail {on|off} ] NVFAIL Option [ -max-write-alloc-blocks {0..2048} ] *Maximum Write Allocation Blocks (default: 0) [ -vm-align-sector|-e {1..7} ] *Virtual Machine Alignment 512-Byte Sector Count [ -vm-align-suffix|-u <text (size 1..32)> ] *Virtual Machine Alignment Suffix [ -constituent-role <Constituent Roles> ] Constituent Volume Role { [ -qos-policy-group <text> ] QoS Policy Group Name | [ -qos-adaptive-policy-group <text> ] } QoS Adaptive Policy Group Name [ -caching-policy <text> ] Caching Policy Name [ -cache-retention-priority {normal|low|high} ] *Cache Retention Priority [ -is-autobalance-eligible {true|false} ] *Is Eligible for Auto Balance Aggregate [ -max-constituent-size {<integer>[KB|MB|GB|TB|PB]} ] *Maximum size of a FlexGroup Constituent [ -efficiency-policy <efficiency policy> ] *Storage Efficiency Policy [ -snaplock-type {non-snaplock|compliance|enterprise} ] SnapLock Type [ -vserver-dr-protection {protected|unprotected} ] Vserver DR Protection [ -snapshot-snapdb-enabled {true|false} ] *SnapDB Snapshot Metadata Cache [ -encrypt {true|false} ] Enable or Disable Encryption [ -is-space-reporting-logical {true|false} ] Logical Space Reporting [ -is-space-enforcement-logical {true|false} ] Logical Space Enforcement [ -tiering-policy <Tiering Policy> ] Volume Tiering Policy (default: none) [ -cloud-retrieval-policy {default|on-read|never|promote} ] *Volume Cloud Retrieval Policy [ -tiering-minimum-cooling-days {2..183} ] *Volume Tiering Minimum Cooling Days [ -tiering-object-tags <text>, ... ] Tags to be Associated with Objects Stored on a FabricPool { [ -application-io-size <Application I/O Size> ] *Block Size to Use by Compression | [ -storage-efficiency-mode {default|efficient} ] } Storage Efficiency Mode [ -is-qos-internal-allowed {true|false} ] *Allow Volume to Use Internal QoS Policy [ -workflow {auto|data|hybrid|metadata} ] *Type of Workflow [ -analytics-state <Analytics State> ] File System Analytics State (default: off) [ -activity-tracking-state <Activity Tracking State> ] Activity Tracking State (default: off) [ -key-manager-attribute <text> ] Key Manager Attribute [ -anti-ransomware-state {disabled|enabled|dry-run|paused|dry-run-paused|enable-paused|disable-in-progress} ] Anti-ransomware State (default: disabled) [ -granular-data {disabled|enabled} ] Granular data (default: disabled) [ -atime-update-period <integer> ] *Access Time Update Period (Seconds) [ -snapshot-locking-enabled {true|false} ] Enable Snapshot Copy Locking (default: false) [ -is-large-size-enabled {true|false} ] Are Large Size Volumes and Files Enabled [ -is-preserve-unlink-enabled {true|false} ] *Is Preserve Unlink Enabled (default: false) [ -aggressive-readahead-mode {none|file_prefetch} ] *Aggressive readahead mode
現在のボリュームの状態は以下のとおりです。cloud write modeは無効です。
FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent, tiering-policy, is-cloud-write-enabled vserver volume size available filesystem-size total used percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs tiering-policy performance-tier-inactive-user-data performance-tier-inactive-user-data-percent is-cloud-write-enabled ------- ------ ----- --------- --------------- ------- ----- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- -------------- ----------------------------------- ------------------------------------------- ---------------------- svm vol1 128TB 860.6GB 128TB 121.6TB 308KB 0% 0B 0% 0B 308KB 0% 308KB 0% - 308KB all - - false FsxId04e5e03055492f9d9::*> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 308KB 0% Footprint in Performance Tier 1.85MB 100% Footprint in FSxFabricpoolObjectStore 0B 0% Volume Guarantee 0B 0% Flexible Volume Metadata 107.5MB 0% Delayed Frees 1.55MB 0% File Operation Metadata 4KB 0% Total Footprint 109.3MB 0% Effective Total Footprint 109.3MB 0% FsxId04e5e03055492f9d9::*> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 1.12GB 0% Aggregate Metadata 4.36MB 0% Snapshot Reserve 45.36GB 5% Total Used 46.48GB 5% Total Physical Used 51.32MB 0% Total Provisioned Space 128.0TB 14449% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 0B - Logical Referenced Capacity 0B - Logical Unreferenced Capacity 0B - Total Physical Used 0B - 2 entries were displayed.
まず、cloud write modeが無効な状態での書き込みをしてみます。
NFSクライアントからボリュームをマウントして、32GiBのファイルを作成します。
$ sudo mount -t nfs svm-00a3699667c00c2c0.fs-04e5e03055492f9d9.fsx.us-east-1.amazonaws.com:/vol1 /mnt/fsxn/vol1 $ df -hT -t nfs4 Filesystem Type Size Used Avail Use% Mounted on svm-00a3699667c00c2c0.fs-04e5e03055492f9d9.fsx.us-east-1.amazonaws.com:/vol1 nfs4 122T 121T 861G 100% /mnt/fsxn/vol1 $ sudo dd if=/dev/urandom of=/mnt/fsxn/vol1/random_pattern_binary_block_32GiB bs=1M count=32768 32768+0 records in 32768+0 records out 34359738368 bytes (34 GB, 32 GiB) copied, 232.134 s, 148 MB/s
書き込み速度は148MBpsでした。
この時のボリュームの情報は以下のとおりです。
::*> date show -fields date (cluster date show) node date ------------------------- ------------------------- FsxId04e5e03055492f9d9-01 2/11/2024 07:17:56 +00:00 FsxId04e5e03055492f9d9-02 2/11/2024 07:17:56 +00:00 2 entries were displayed. FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent, tiering-policy, is-cloud-write-enabled vserver volume size available filesystem-size total used percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs tiering-policy performance-tier-inactive-user-data performance-tier-inactive-user-data-percent is-cloud-write-enabled ------- ------ ----- --------- --------------- ------- ------- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- -------------- ----------------------------------- ------------------------------------------- ---------------------- svm vol1 128TB 844.1GB 128TB 121.6TB 32.14GB 0% 0B 0% 0B 32.14GB 0% 32.14GB 0% - 32.14GB all - - false FsxId04e5e03055492f9d9::*> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 32.14GB 4% Footprint in Performance Tier 308.5MB 1% Footprint in FSxFabricpoolObjectStore 32GB 99% Volume Guarantee 0B 0% Flexible Volume Metadata 322.4MB 0% Delayed Frees 167.4MB 0% File Operation Metadata 4KB 0% Total Footprint 32.62GB 4% Effective Total Footprint 32.62GB 4% FsxId04e5e03055492f9d9::*> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 1.63GB 0% Aggregate Metadata 16.08GB 2% Snapshot Reserve 45.36GB 5% Total Used 63.06GB 7% Total Physical Used 32.96GB 4% Total Provisioned Space 128.0TB 14449% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 17.36GB - Logical Referenced Capacity 17.36GB - Logical Unreferenced Capacity 0B - Total Physical Used 17.36GB - 2 entries were displayed. --- ::*> date show -fields date (cluster date show) node date ------------------------- ------------------------- FsxId04e5e03055492f9d9-01 2/11/2024 07:21:56 +00:00 FsxId04e5e03055492f9d9-02 2/11/2024 07:21:56 +00:00 2 entries were displayed. FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent, tiering-policy, is-cloud-write-enabled vserver volume size available filesystem-size total used percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs tiering-policy performance-tier-inactive-user-data performance-tier-inactive-user-data-percent is-cloud-write-enabled ------- ------ ----- --------- --------------- ------- ------- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- -------------- ----------------------------------- ------------------------------------------- ---------------------- svm vol1 128TB 859.9GB 128TB 121.6TB 32.14GB 0% 0B 0% 0B 32.14GB 0% 32.14GB 0% - 32.14GB all - - false FsxId04e5e03055492f9d9::*> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 32.14GB 4% Footprint in Performance Tier 308.5MB 1% Footprint in FSxFabricpoolObjectStore 32GB 99% Volume Guarantee 0B 0% Flexible Volume Metadata 322.4MB 0% Delayed Frees 167.4MB 0% File Operation Metadata 4KB 0% Total Footprint 32.62GB 4% Effective Total Footprint 32.62GB 4% FsxId04e5e03055492f9d9::*> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 1.63GB 0% Aggregate Metadata 257.4MB 0% Snapshot Reserve 45.36GB 5% Total Used 47.23GB 5% Total Physical Used 4.12GB 0% Total Provisioned Space 128.0TB 14449% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 32.28GB - Logical Referenced Capacity 32.12GB - Logical Unreferenced Capacity 159.8MB - Total Physical Used 32.28GB - 2 entries were displayed.
書き込み完了後にすぐに確認すると、volume show-footprint
では99%のデータがキャパシティプール上にあるとレポートされていましたが、実際にはキャパシティプールストレージには17.36GBしか書き込まれていませんでした。しばらくすると、32.28GB書き込まれていたので、SSDからキャパシティプールストレージへの書き込みにはラグがあることが分かります。
CloudWatchメトリクスは以下のとおりです。
書き込みを開始すると、まずSSDの使用量が増加し、その後キャパシティプールストレージの使用量が増加していることが分かります。
ONTAPの挙動として、階層化の処理よりもNASアクセスの方が優先されます。大量の書き込みがあればキャパシティプールストレージへの書き込みよりもSSDが一杯になってしまうでしょう。
cloud write modeが有効な状態での書き込み
次に、cloud write modeが有効な状態での書き込みです。
cloud write modeを有効にします。
::*> volume modify -volume vol1 -is-cloud-write-enabled true Volume modify successful on volume vol1 of Vserver svm. FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields is-cloud-write-enabled vserver volume is-cloud-write-enabled ------- ------ ---------------------- svm vol1 true
先ほどと同様に32GiBのファイルを作成します。
$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol1/random_pattern_binary_block_32GiB_2 bs=1M count=32768 32768+0 records in 32768+0 records out 34359738368 bytes (34 GB, 32 GiB) copied, 233.64 s, 147 MB/s
書き込み速度は147MBpsでした。cloud write modeが無効の場合と変わりありません。SSDとキャパシティプールストレージを比較すると、SSDの方が書き込み性能は優れていそうです。書き込み速度が変わらないということは、FSxNのメモリ上で一度受け止めて捌いているのでしょうか。それともキャパシティプールストレージへの書き込み速度はSSDと遜色ないのでしょうか。
この時のボリュームの情報は以下のとおりです。
FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent, tiering-policy, is-cloud-write-enabled vserver volume size available filesystem-size total used percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs tiering-policy performance-tier-inactive-user-data performance-tier-inactive-user-data-percent is-cloud-write-enabled ------- ------ ----- --------- --------------- ------- ------- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- -------------- ----------------------------------- ------------------------------------------- ---------------------- svm vol1 128TB 859.4GB 128TB 121.6TB 64.27GB 0% 0B 0% 0B 64.27GB 0% 64.27GB 0% - 64.27GB all - - true FsxId04e5e03055492f9d9::*> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 64.27GB 7% Footprint in Performance Tier 466.7MB 1% Footprint in FSxFabricpoolObjectStore 64GB 99% Volume Guarantee 0B 0% Flexible Volume Metadata 429.9MB 0% Delayed Frees 186.4MB 0% File Operation Metadata 4KB 0% Total Footprint 64.88GB 7% Effective Total Footprint 64.88GB 7% FsxId04e5e03055492f9d9::*> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 1.89GB 0% Aggregate Metadata 507.5MB 0% Snapshot Reserve 45.36GB 5% Total Used 47.74GB 5% Total Physical Used 19.66GB 2% Total Provisioned Space 128.0TB 14449% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 64.56GB - Logical Referenced Capacity 64.25GB - Logical Unreferenced Capacity 319.5MB - Total Physical Used 64.56GB - 2 entries were displayed.
書き込みが完了して数秒以内に確認しましたが、すでにキャパシティプールストレージの使用量は64.56GBとなっています。
CloudWatchメトリクスは以下のとおりです。
SSD使用量の増減がほとんどありません。一方で、キャパシティプールストレージの使用量は書き込んでいる間、ほぼ単調に増加しています。
これはすごい。顧客が求めていたものです。
cloud write modeが有効な状態での書き込み (64GiB)
より、大きいサイズのデータを一気に書き込む場合はどうでしょうか。転送速度が落ちるのか気になります。
FSxNファイルシステムのスループットキャパシティは128MBpsです。
::*> node virtual-machine instance show-settings -node FsxId04e5e03055492f9d9-01 -instance Node: FsxId04e5e03055492f9d9-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: 128 Total Network Bandwidth Limit in MB/s: - Total Volume Bandwidth Limit in MB/s: -
スループットキャパシティが128MBpsの場合のインメモリキャッシュサイズは16GBです。インメモリキャッシュサイズ = メモリサイズという訳ではないですが、目安にはなるような気がします。
試しに64GiBのファイルを追加します。
64GiBのデータを受け止められるように、ボリュームサイズを256GiBに変更します。
::*> volume modify -volume vol1 -size 256GB Volume modify successful on volume vol1 of Vserver svm. FsxId04e5e03055492f9d9::*> volume show -volume vol1 Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm vol1 aggr1 online RW 256GB 178.9GB 26%
64GiBのファイルを作成します。
$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol1/random_pattern_binary_block_64GiB bs=1M count=65536 65536+0 records in 65536+0 records out 68719476736 bytes (69 GB, 64 GiB) copied, 467.893 s, 147 MB/s
書き込み速度は147MBpsでした。またしてもcloud write modeが無効の状態と変わりありません。
ボリュームの状態は以下のとおりです。
FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent, tiering-policy, is-cloud-write-enabled vserver volume size available filesystem-size total used percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs tiering-policy performance-tier-inactive-user-data performance-tier-inactive-user-data-percent is-cloud-write-enabled ------- ------ ----- --------- --------------- ------- ------- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- -------------- ----------------------------------- ------------------------------------------- ---------------------- svm vol1 256GB 114.7GB 256GB 243.2GB 128.5GB 52% 0B 0% 0B 128.5GB 50% 128.5GB 53% - 128.5GB all - - true FsxId04e5e03055492f9d9::*> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 128.5GB 14% Footprint in Performance Tier 782.7MB 1% Footprint in FSxFabricpoolObjectStore 128GB 99% Volume Guarantee 0B 0% Flexible Volume Metadata 752.3MB 0% Delayed Frees 224.1MB 0% File Operation Metadata 4KB 0% Total Footprint 129.5GB 14% Effective Total Footprint 129.5GB 14% FsxId04e5e03055492f9d9::*> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 2.51GB 0% Aggregate Metadata 748.3MB 0% Snapshot Reserve 45.36GB 5% Total Used 48.60GB 5% Total Physical Used 22.83GB 3% Total Provisioned Space 257GB 28% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 129.1GB - Logical Referenced Capacity 128.5GB - Logical Unreferenced Capacity 639MB - Total Physical Used 129.1GB - 2 entries were displayed.
書き込みが完了して即座に確認しましたが、キャパシティプールストレージの使用量は129.1GBとなっています。
cloud write modeが有効な状態での書き込み (スループットキャパシティ 512MBps)
スループットキャパシティが512MBpsの場合はどうでしょうか。もしかすると、キャパシティプールストレージへの書き込みスループットの上限が150MBpsほどで、それ以上はスケールしないかもしれません。
FSxNファイルシステムのスループットキャパシティを128MBpsから512MBpsに変更しました。30分ほどかかりました。
::*> node virtual-machine instance show-settings -node FsxId04e5e03055492f9d9-0* -instance Node: FsxId04e5e03055492f9d9-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: 512 Total Network Bandwidth Limit in MB/s: - Total Volume Bandwidth Limit in MB/s: - Node: FsxId04e5e03055492f9d9-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: 512 Total Network Bandwidth Limit in MB/s: - Total Volume Bandwidth Limit in MB/s: - 2 entries were displayed.
ファイルを追加するにあたって、ボリュームサイズを100TiBに拡張します。
::*> volume modify -volume vol1 -size 100TB Volume modify successful on volume vol1 of Vserver svm. FsxId04e5e03055492f9d9::*> volume show -volume vol1 Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm vol1 aggr1 online RW 100TB 858.6GB 0%
また、EC2インスタンスの性能がボトルネックになるのは嫌です。c7i2.xlargeに変更します。
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 46 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) Platinum 8488C CPU family: 6 Model: 143 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 Stepping: 8 BogoMIPS: 4800.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_a djust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx_vnni avx512_bf16 wbnoinvd ida arat avx512vbmi umip pku ospk e waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq rdpid cldemote movdiri movdir64b md_clear serialize amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities Virtualization features: Hypervisor vendor: KVM Virtualization type: full Caches (sum of all): L1d: 192 KiB (4 instances) L1i: 128 KiB (4 instances) L2: 8 MiB (4 instances) L3: 105 MiB (1 instance) NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0-7 Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence Srbds: Not affected Tsx async abort: Not affected
せっかくなのでfioで計測しましょう。fioをインストールします。
$ sudo dnf install fio Last metadata expiration check: 2:24:20 ago on Sun Feb 11 07:02:45 2024.Dependencies resolved. ============================================================================================================== Package Architecture Version Repository Size ============================================================================================================== Installing: fio x86_64 3.32-2.amzn2023.0.3 amazonlinux 5.2 M Installing dependencies: librdmacm x86_64 37.0-1.amzn2023.0.3 amazonlinux 72 k Installing weak dependencies: fio-engine-http x86_64 3.32-2.amzn2023.0.3 amazonlinux 20 k fio-engine-libaio x86_64 3.32-2.amzn2023.0.3 amazonlinux 17 k fio-engine-rdma x86_64 3.32-2.amzn2023.0.3 amazonlinux 23 k Transaction Summary ============================================================================================================== Install 5 Packages Total download size: 5.3 M Installed size: 7.6 M Is this ok [y/N]: y Downloading Packages: (1/5): fio-engine-http-3.32-2.amzn2023.0.3.x86_64.rpm 300 kB/s | 20 kB 00:00 (2/5): librdmacm-37.0-1.amzn2023.0.3.x86_64.rpm 801 kB/s | 72 kB 00:00 (3/5): fio-engine-rdma-3.32-2.amzn2023.0.3.x86_64.rpm 546 kB/s | 23 kB 00:00 (4/5): fio-engine-libaio-3.32-2.amzn2023.0.3.x86_64.rpm 301 kB/s | 17 kB 00:00 (5/5): fio-3.32-2.amzn2023.0.3.x86_64.rpm 26 MB/s | 5.2 MB 00:00 -------------------------------------------------------------------------------------------------------------- Total 22 MB/s | 5.3 MB 00:00 Running transaction check Transaction check succeeded. . . (中略) . . Installed: fio-3.32-2.amzn2023.0.3.x86_64 fio-engine-http-3.32-2.amzn2023.0.3.x86_64 fio-engine-libaio-3.32-2.amzn2023.0.3.x86_64 fio-engine-rdma-3.32-2.amzn2023.0.3.x86_64 librdmacm-37.0-1.amzn2023.0.3.x86_64 Complete!
fioでスループット計測します。16多重でランダムで書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_1MiB_block_128GiB_16jobs \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=1M \ --size=128G \ --numjobs=16 \ --runtime=600 \ --group_reporting \ --norandommap fio_rw_1MiB_block_128GiB_16jobs: (g=0): rw=randwrite, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 ... fio-3.32 Starting 16 processes fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_16jobs: Laying out IO file (1 file / 131072MiB) Jobs: 16 (f=16): [w(16)][100.0%][w=360MiB/s][w=360 IOPS][eta 00m:00s] fio_rw_1MiB_block_128GiB_16jobs: (groupid=0, jobs=16): err= 0: pid=26180: Sun Feb 11 09:37:45 2024 write: IOPS=404, BW=405MiB/s (424MB/s)(237GiB/600022msec); 0 zone resets clat (msec): min=9, max=379, avg=39.51, stdev=29.64 lat (msec): min=9, max=379, avg=39.55, stdev=29.64 clat percentiles (msec): | 1.00th=[ 23], 5.00th=[ 25], 10.00th=[ 26], 20.00th=[ 27], | 30.00th=[ 27], 40.00th=[ 28], 50.00th=[ 28], 60.00th=[ 29], | 70.00th=[ 32], 80.00th=[ 39], 90.00th=[ 74], 95.00th=[ 108], | 99.00th=[ 171], 99.50th=[ 188], 99.90th=[ 218], 99.95th=[ 236], | 99.99th=[ 305] bw ( KiB/s): min=235520, max=606208, per=100.00%, avg=414409.25, stdev=3333.75, samples=19184 iops : min= 230, max= 592, avg=404.61, stdev= 3.25, samples=19184 lat (msec) : 10=0.01%, 20=0.01%, 50=84.13%, 100=10.27%, 250=5.55% lat (msec) : 500=0.04% cpu : usr=0.13%, sys=0.28%, ctx=242772, majf=0, minf=142 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,242718,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=405MiB/s (424MB/s), 405MiB/s-405MiB/s (424MB/s-424MB/s), io=237GiB (255GB), run=600022-600022msec
書き込みスループットは405MiBpsです。これは速い。また、そこまでCPUは使われていなさそうです。
EC2インスタンスのCloudWatchメトリクスCPU使用率を確認すると、8%ほどでした。
CloudWatchメトリクスは以下のとおりです。線形に増加していますね。
ボリュームの情報は以下のとおりです。
FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent, tiering-policy, is-cloud-write-enabled vserver volume size available filesystem-size total used percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs tiering-policy performance-tier-inactive-user-data performance-tier-inactive-user-data-percent is-cloud-write-enabled ------- ------ ----- --------- --------------- ----- ------- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- -------------- ----------------------------------- ------------------------------------------- ---------------------- svm vol1 100TB 853.4GB 100TB 95TB 357.9GB 0% 0B 0% 0B 357.8GB 0% 357.9GB 0% - 357.9GB all - - true FsxId04e5e03055492f9d9::*> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 357.8GB 39% Footprint in Performance Tier 4.18GB 1% Footprint in FSxFabricpoolObjectStore 355.4GB 99% Volume Guarantee 0B 0% Flexible Volume Metadata 2.08GB 0% Delayed Frees 1.73GB 0% File Operation Metadata 4KB 0% Total Footprint 361.6GB 40% Effective Total Footprint 361.6GB 40% FsxId04e5e03055492f9d9::*> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 7.27GB 1% Aggregate Metadata 1.11GB 0% Snapshot Reserve 45.36GB 5% Total Used 53.74GB 6% Total Physical Used 26.59GB 3% Total Provisioned Space 100.0TB 11289% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 368.2GB - Logical Referenced Capacity 366.4GB - Logical Unreferenced Capacity 1.78GB - Space Saved by Storage Efficiency 59.97MB - Total Physical Used 368.2GB - 2 entries were displayed.
cloud write modeの有無での書き込みスループットの比較
cloud write modeが有効の場合
少しだけcloud write modeの有無での書き込みスループットの比較をしていきます。
EC2インスタンスがボトルネックになると嫌なのでc7i.16xlargeに変更します。
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 46 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 64 On-line CPU(s) list: 0-63 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) Platinum 8488C CPU family: 6 Model: 143 Thread(s) per core: 2 Core(s) per socket: 32 Socket(s): 1 Stepping: 8 BogoMIPS: 4800.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmo n rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_de adline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 s mep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx_vnni a vx512_bf16 wbnoinvd ida arat avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq rdpid cldemot e movdiri movdir64b md_clear serialize amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities Virtualization features: Hypervisor vendor: KVM Virtualization type: full Caches (sum of all): L1d: 1.5 MiB (32 instances) L1i: 1 MiB (32 instances) L2: 64 MiB (32 instances) L3: 105 MiB (1 instance) NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0-63 Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence Srbds: Not affected Tsx async abort: Not affected
1MiBブロックを64多重で書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_1MiB_block_128GiB_64jobs \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=1M \ --size=128G \ --numjobs=64 \ --runtime=600 \ --group_reporting \ --norandommap fio_rw_1MiB_block_128GiB_64jobs: (g=0): rw=randwrite, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 ... fio-3.32 Starting 64 processes fio_rw_1MiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) . . (中略) . . fio_rw_1MiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) fio_rw_1MiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) Jobs: 64 (f=64): [w(64)][100.0%][w=387MiB/s][w=387 IOPS][eta 00m:00s] fio_rw_1MiB_block_128GiB_64jobs: (groupid=0, jobs=64): err= 0: pid=7110: Sun Feb 11 10:14:00 2024 write: IOPS=400, BW=400MiB/s (420MB/s)(235GiB/600060msec); 0 zone resets clat (msec): min=62, max=797, avg=159.79, stdev=67.63 lat (msec): min=62, max=797, avg=159.81, stdev=67.62 clat percentiles (msec): | 1.00th=[ 106], 5.00th=[ 108], 10.00th=[ 109], 20.00th=[ 111], | 30.00th=[ 113], 40.00th=[ 116], 50.00th=[ 120], 60.00th=[ 142], | 70.00th=[ 180], 80.00th=[ 215], 90.00th=[ 275], 95.00th=[ 305], | 99.00th=[ 342], 99.50th=[ 355], 99.90th=[ 451], 99.95th=[ 493], | 99.99th=[ 793] bw ( KiB/s): min=184348, max=610656, per=100.00%, avg=410607.87, stdev=1172.25, samples=76672 iops : min= 180, max= 596, avg=400.84, stdev= 1.14, samples=76672 lat (msec) : 100=0.01%, 250=85.88%, 500=14.07%, 750=0.01%, 1000=0.03% cpu : usr=0.02%, sys=0.06%, ctx=240512, majf=1, minf=704 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,240286,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=400MiB/s (420MB/s), 400MiB/s-400MiB/s (420MB/s-420MB/s), io=235GiB (252GB), run=600060-600060msec
書き込みスループットは400MiBpsですね。
4KiBブロックを64多重で書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_4KiB_block_128GiB_64jobs \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=4K \ --size=128G \ --numjobs=64 \ --loop=0 \ --group_reporting \ --norandommap fio_rw_4KiB_block_128GiB_64jobs: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 ... fio-3.32 Starting 64 processes fio_rw_4KiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) fio_rw_4KiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) . . (中略) . . fio_rw_4KiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) fio_rw_4KiB_block_128GiB_64jobs: Laying out IO file (1 file / 131072MiB) ^Cbs: 64 (f=64): [w(64)][-.-%][w=95.3MiB/s][w=24.4k IOPS][eta 00m:00s] fio: terminating on signal 2 fio_rw_4KiB_block_128GiB_64jobs: (groupid=0, jobs=64): err= 0: pid=8020: Sun Feb 11 10:26:51 2024 write: IOPS=32.1k, BW=125MiB/s (132MB/s)(54.9GiB/447899msec); 0 zone resets clat (usec): min=1312, max=1118.4k, avg=1990.60, stdev=2670.15 lat (usec): min=1312, max=1118.4k, avg=1990.91, stdev=2670.15 clat percentiles (usec): | 1.00th=[ 1483], 5.00th=[ 1549], 10.00th=[ 1598], 20.00th=[ 1663], | 30.00th=[ 1713], 40.00th=[ 1762], 50.00th=[ 1811], 60.00th=[ 1844], | 70.00th=[ 1909], 80.00th=[ 1991], 90.00th=[ 2147], 95.00th=[ 2376], | 99.00th=[ 6587], 99.50th=[ 8160], 99.90th=[ 21627], 99.95th=[ 40109], | 99.99th=[104334] bw ( KiB/s): min=20689, max=152396, per=100.00%, avg=128517.47, stdev=244.54, samples=57276 iops : min= 5172, max=38099, avg=32127.63, stdev=61.16, samples=57276 lat (msec) : 2=81.03%, 4=17.28%, 10=1.40%, 20=0.18%, 50=0.07% lat (msec) : 100=0.03%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01% lat (msec) : 2000=0.01% cpu : usr=0.27%, sys=0.78%, ctx=14380851, majf=1, minf=737 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,14380182,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=125MiB/s (132MB/s), 125MiB/s-125MiB/s (132MB/s-132MB/s), io=54.9GiB (58.9GB), run=447899-447899msec
書き込みスループットは125MiBpsでした。ただしIOPSが32.1Kです。FSxNファイルシステムSSDのIOPSは3,072です。IOPS周りのメトリクスを確認してみます。
10:03~10:15の山が1MiBブロックで書き込んだとき、10:18~の山が1KiBブロック書き込んだときです。ファイルサーバーとストレージボリューム間のディスク IOPSをSSDのプロビジョニングされたディスク IOPS 制限に対する割合DiskIopsUtilization
はどちらのパターンも100%付近を指しています。
一方で、ファイルサーバーの使用可能なディスク IOPSキャパシティのIOPS 使用率FileServerDiskIopsUtilization
は20%未満と低い値を指しています。そのため、NFSクライアントとFSxNファイルシステムのインターフェイス間のIOPSには余裕がありそうです。
SSDに対する書き込みIOPSを確認してみます。
3,000前後を推移しています。cloud write modeを有効化していてもFSxN的にはSSDに書き込むときと同じ操作を指しているようです。そのため、SSDのIOPS上限の影響は受けそうですね。
キャパシティプールストレージの書き込みIOPSを確認してみます。
こちらは100前後です。キャパシティプールストレージの書き込みは4KiBのデータブロックを1,000個単位でまとめて行うので違和感はありません。
続いて、4MiBブロックで64多重で書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_4MiB_block_64GiB_64jobs \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=4M \ --size=64G \ --numjobs=64 \ --runtime=60 \ --group_reporting \ --norandommap fio_rw_4MiB_block_64GiB_64jobs: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1 ... fio-3.32 Starting 64 processes fio_rw_4MiB_block_64GiB_64jobs: Laying out IO file (1 file / 65536MiB) fio_rw_4MiB_block_64GiB_64jobs: Laying out IO file (1 file / 65536MiB) . . (中略) . . fio_rw_4MiB_block_64GiB_64jobs: Laying out IO file (1 file / 65536MiB) fio_rw_4MiB_block_64GiB_64jobs: Laying out IO file (1 file / 65536MiB) Jobs: 64 (f=64): [w(64)][100.0%][w=368MiB/s][w=92 IOPS][eta 00m:00s] fio_rw_4MiB_block_64GiB_64jobs: (groupid=0, jobs=64): err= 0: pid=9083: Sun Feb 11 10:30:55 2024 write: IOPS=97, BW=391MiB/s (410MB/s)(23.0GiB/60214msec); 0 zone resets clat (msec): min=92, max=1355, avg=653.74, stdev=128.16 lat (msec): min=92, max=1355, avg=653.93, stdev=128.16 clat percentiles (msec): | 1.00th=[ 439], 5.00th=[ 510], 10.00th=[ 523], 20.00th=[ 558], | 30.00th=[ 592], 40.00th=[ 625], 50.00th=[ 642], 60.00th=[ 659], | 70.00th=[ 693], 80.00th=[ 735], 90.00th=[ 776], 95.00th=[ 827], | 99.00th=[ 1284], 99.50th=[ 1351], 99.90th=[ 1351], 99.95th=[ 1351], | 99.99th=[ 1351] bw ( KiB/s): min=524271, max=533376, per=100.00%, avg=524387.68, stdev=106.77, samples=5824 iops : min= 127, max= 130, avg=128.01, stdev= 0.03, samples=5824 lat (msec) : 100=0.02%, 500=4.13%, 750=81.29%, 1000=12.33%, 2000=2.24% cpu : usr=0.02%, sys=0.07%, ctx=6107, majf=1, minf=583 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,5889,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=391MiB/s (410MB/s), 391MiB/s-391MiB/s (410MB/s-410MB/s), io=23.0GiB (24.7GB), run=60214-60214msec
書き込みスループットは391MiBpsでした。
cloud write modeが無効の場合
cloud write modeが無効の場合も確認します。
まず、cloud write modeを無効にします。
::*> volume modify -volume vol1 -is-cloud-write-enabled false Volume modify successful on volume vol1 of Vserver svm. FsxId04e5e03055492f9d9::*> volume show -volume vol1 -fields is-cloud-write-enabled vserver volume is-cloud-write-enabled ------- ------ ---------------------- svm vol1 false
4MiBブロックを64多重で書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=1M \ --size=64G \ --numjobs=64 \ --runtime=60 \ --group_reporting \ --norandommap fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false: (g=0): rw=randwrite, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 ... fio-3.32 Starting 64 processes fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) . . (中略) . . fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) Jobs: 64 (f=64): [w(64)][100.0%][w=553MiB/s][w=552 IOPS][eta 00m:00s] fio_rw_1MiB_block_64GiB_64jobs_cloud_write_false: (groupid=0, jobs=64): err= 0: pid=9502: Sun Feb 11 10:34:41 2024 write: IOPS=555, BW=555MiB/s (582MB/s)(32.6GiB/60067msec); 0 zone resets clat (msec): min=4, max=153, avg=115.13, stdev= 4.08 lat (msec): min=4, max=153, avg=115.16, stdev= 4.08 clat percentiles (msec): | 1.00th=[ 108], 5.00th=[ 109], 10.00th=[ 111], 20.00th=[ 113], | 30.00th=[ 114], 40.00th=[ 115], 50.00th=[ 115], 60.00th=[ 116], | 70.00th=[ 117], 80.00th=[ 118], 90.00th=[ 120], 95.00th=[ 121], | 99.00th=[ 126], 99.50th=[ 129], 99.90th=[ 146], 99.95th=[ 148], | 99.99th=[ 148] bw ( KiB/s): min=489659, max=655440, per=99.97%, avg=568523.63, stdev=977.84, samples=7649 iops : min= 477, max= 640, avg=555.18, stdev= 0.96, samples=7649 lat (msec) : 10=0.01%, 50=0.01%, 100=0.18%, 250=99.81% cpu : usr=0.03%, sys=0.09%, ctx=33604, majf=0, minf=586 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,33359,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=60067-60067msec
書き込みスループットは555MiBpsでした。cloud write modeが有効の場合はインスタンスタイプと書き込み時の多重度が違うので直接的な比較はできないですが、流石の速さです。
1KiBブロックを64多重で書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=4K \ --size=64G \ --numjobs=64 \ --runtime=60 \ --group_reporting \ --norandommap fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 ... fio-3.32 Starting 64 processes fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) . . (中略) . . fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) Jobs: 64 (f=64): [w(64)][100.0%][w=108MiB/s][w=27.7k IOPS][eta 00m:00s] fio_rw_4KiB_block_64GiB_64jobs_cloud_write_false: (groupid=0, jobs=64): err= 0: pid=9738: Sun Feb 11 10:36:15 2024 write: IOPS=34.0k, BW=133MiB/s (139MB/s)(7977MiB/60003msec); 0 zone resets clat (usec): min=1319, max=98844, avg=1877.64, stdev=635.29 lat (usec): min=1319, max=98844, avg=1877.95, stdev=635.30 clat percentiles (usec): | 1.00th=[ 1467], 5.00th=[ 1549], 10.00th=[ 1598], 20.00th=[ 1663], | 30.00th=[ 1696], 40.00th=[ 1745], 50.00th=[ 1778], 60.00th=[ 1827], | 70.00th=[ 1876], 80.00th=[ 1942], 90.00th=[ 2073], 95.00th=[ 2245], | 99.00th=[ 4359], 99.50th=[ 7242], 99.90th=[ 9241], 99.95th=[10421], | 99.99th=[15664] bw ( KiB/s): min=77136, max=151000, per=100.00%, avg=136180.57, stdev=164.80, samples=7616 iops : min=19284, max=37750, avg=34045.14, stdev=41.20, samples=7616 lat (msec) : 2=85.16%, 4=13.65%, 10=1.13%, 20=0.06%, 50=0.01% lat (msec) : 100=0.01% cpu : usr=0.28%, sys=0.83%, ctx=2042283, majf=2, minf=649 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,2042017,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=133MiB/s (139MB/s), 133MiB/s-133MiB/s (139MB/s-139MB/s), io=7977MiB (8364MB), run=60003-60003msec
書き込みスループットは133MiBpsでした。SSD IOPS3,000前後と頭打ちだからかcloud write modeが有効の場合と変わりありません。
4MiBブロックを64多重で書き込みます。
$ sudo fio \ --directory=/mnt/fsxn/vol1/ \ --name fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false \ --ioengine=psync \ --direct=1 \ --rw=randwrite \ --bs=4M \ --size=64G \ --numjobs=64 \ --runtime=60 \ --group_reporting \ --norandommap fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false: (g=0): rw=randwrite, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1 ... fio-3.32 Starting 64 processes fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) . . (中略) . . fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false: Laying out IO file (1 file / 65536MiB) Jobs: 64 (f=64): [w(64)][0.6%][w=400MiB/s][w=100 IOPS][eta 02h:54m:19s] fio_rw_4MiB_block_64GiB_64jobs_cloud_write_false: (groupid=0, jobs=64): err= 0: pid=10046: Sun Feb 11 10:38:09 2024 write: IOPS=101, BW=408MiB/s (427MB/s)(24.0GiB/60303msec); 0 zone resets clat (msec): min=315, max=1181, avg=627.54, stdev=182.18 lat (msec): min=316, max=1181, avg=627.73, stdev=182.18 clat percentiles (msec): | 1.00th=[ 439], 5.00th=[ 439], 10.00th=[ 443], 20.00th=[ 443], | 30.00th=[ 447], 40.00th=[ 485], 50.00th=[ 567], 60.00th=[ 735], | 70.00th=[ 768], 80.00th=[ 802], 90.00th=[ 844], 95.00th=[ 927], | 99.00th=[ 1133], 99.50th=[ 1133], 99.90th=[ 1183], 99.95th=[ 1183], | 99.99th=[ 1183] bw ( KiB/s): min=524237, max=1048576, per=100.00%, avg=546491.41, stdev=1642.92, samples=5834 iops : min= 125, max= 256, avg=133.39, stdev= 0.40, samples=5834 lat (msec) : 500=41.96%, 750=23.71%, 1000=33.28%, 2000=1.04% cpu : usr=0.04%, sys=0.06%, ctx=6336, majf=0, minf=560 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,6144,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=408MiB/s (427MB/s), 408MiB/s-408MiB/s (427MB/s-427MB/s), io=24.0GiB (25.8GB), run=60303-60303msec
書き込みスループットは408MiBpsでした。cloud write modeが有効の場合と変わりありません。
パターン数はかなり少ないですが、検証した限りcloud write modeを有効にしても、無効状態と比べて書き込み速度の大きな差はないように思えます。
大容量のデータ移行の時は有効にしたい
Amazon FSx for NetApp ONTAPでcloud write modeを試してみました。
大容量のデータ移行をする際、転送先のFSxN上で重複排除を追加でかける必要がないのであれば、ぜひ使っていきたいですね。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!