Oracle Cloud Infrastructure(OCI)ネットワーキングは、コンバージド・イーサネット上でRDMAを実行する専用の非ブロッキング・ネットワーク上の32,000以上のGPUを持つ超大規模クラスタ上で分散AIおよびHPCワークロードを実行します。最大16,000 GPUのクラスタで、最大3.2 Tb/秒のネットワーキング速度を活用します。Virtual Cloud Network(VCN)は、次の特徴があります。
・ 高帯域幅、低遅延環境
Oracleのクラスターネットワーキングは、コンバージドイーサネット(RoCE)v2および100 Gbpsネットワークを介したリモート・ダイレクト・メモリ・アクセス(RDMA)を提供し、マイクロ秒の遅延を備えた高性能コンピューティングクラスターを作成します。これは最も要求の厳しいワークロードに最適です。
・ フラット・ネットワーク
オラクルの非常にスケーラブルでフラットなネットワーク設計により、コンピューティングとストレージ間のネットワークホップ数が最大2つまで制限されます。Oracleはネットワークリソースをオーバーサブスクライブしないため、顧客は予測可能なパフォーマンスを備えた低遅延ネットワークを体験できます。
・ パフォーマンスSLA
Oracleは、ネットワーキング用のパフォーマンスSLAを提供する唯一の大規模なクラウドサービスプロバイダーです。お客様がアプリケーションのワークロードに対する予測可能なネットワーク応答に依存できるよう、一貫したネットワークパフォーマンスを保証します。
Oracle Cloud Infrastructure (OCI) Compute BM.Standard.E5 は 100 Gbps のネットワークを備えているということで、前回実施した 40Gbpsスループット備えた VM.Optimized3.Flexシェイプにアタッチした Ultra High Performance Volumes (UHP) ブロック ボリュームでは 100万IOPS 出たのでそれ以上の IOPS が出そうです。
ストレージ技術基礎より、ストレージの IOPSとスループットの算出は次のようになります。
[スループット] = [1回のアクセスで処理する容量] x [IOPS]
--> 100Gbps = 4KB x IOPS
--> IOPS = 100Gb / 4KB = 12.5GB / 4 KB = 12,500,000 KB / 4 KB = 3,125,000
ということで 100Gbps の帯域幅を備えた BM.Standard.E5 コンピユートのストレージ・パフォーマンスは、300万 IOPS出そうです。
また、前回は Singlepath で実施しましたが、Ultra High Performance(UHP) のボリュームを Multipath で最大32まで複数アタッチすることがサポートされるようになりましたのでやってみてみます。
■ 超高パフォーマンス・ボリュームのためのアタッチメントの構成
超高パフォーマンス・レベルで構成されたボリュームをアタッチして、最適なパフォーマンスを実現するには、ボリューム・アタッチメントをマルチパス対応にする必要があります。
ブロック・ボリューム・サービスでは、ボリュームをアタッチする際に、アタッチメントがマルチパス対応になるよう試行します。満たしていない前提条件があると、ボリューム・アタッチメントはマルチパス対応になりません。
● マルチパス対応の iSCSI アタッチメント前提条件
マルチパス対応の iSCSI ボリュームアタッチメントを構成するために必要な前提条件
・参考: 超高パフォーマンス・ボリュームのためのアタッチメントの構成
- サポートされているシェイプ
- サポートされてるイメージ
- インスタンスのブロック・ボリューム管理プラグインを有効化
- ブロック・ボリューム管理プラグインのパブリックIPアドレスまたはサービス・ゲートウェイを設定
- 権限の構成
- 一貫性のあるデバイス・パスを使用
- インスタンスに、同じインスタンスの別のマルチパス対応アタッチメントが存在しないこと(Oracle Cloud Agentバージョン1.39未満の場合)
■ 権限の構成
ブロック・ボリューム管理プラグインが、マルチパス対応iSCSIアタッチメントの iSCSI設定の結果をレポートできるよう、権限を構成する必要があります
1) 動的グループの作成
次のコード・サンプルの一致ルールを使用して動的グループを作成し、指定したコンパートメント内のすべてのインスタンスを追加します
ANY {instance.compartment.id = '<テナンシOCID>', instance.compartment.id = '<コンパートメントOCID>'}
2) 動的グループのポリシーの構成
前のステップで作成した動的グループに権限を付与するポリシーを構成して、インスタンス・エージェントによるアクセスを可能にし、ブロック・ボリューム・サービスをコールして、アタッチメント構成を取得できるようにします。
Allow dynamic-group InstantAgent to use instances in tenancy <テナンシ名>
Allow dynamic-group InstantAgent to use volume-attachments in tenancy <テナンシ名>
■ サービス・ゲートウェイ設定
コンピュート・インスタンスが Oracleサービス (OCN) にアクセスできるよう
サービス・ゲートウェイを作成して、インスタンス配置するサブネットの ルート・ルールへ「 All Oracle Services Network Service」を設定します。
■ コンピュート・インスタンス作成
1) OCIコンソール画面
メニューから [コンピュート] > [コンピュート] をクリックし、[インスタンス作成]をクリック
2) コンピュート・インスタンスの作成画面
今回、BM.Standard.E5 を使用して UHPブロック・ボリュームのマルチパス有効化するために 以下項目を設定して作成します。
・サポートされているシェイプ: Oracle Linux 8
・サポートされてるイメージ: BM.Standard.E5
・インスタンスのブロック・ボリューム管理プラグイン: 有効化
・すべてのシェイプの参照画面
主に次の項目を設定して[Select Shape]をクリック
Instance type: 今回は、[Bare metal machine]を選択
Shape name: 今回は、[BM.Standard.E5.192]を選択
Provision only a percentage of cores and disable the rest: 192あるCPUから利用する%を指定します。
全ての項目の入力が完了したら、[Create]をクリック
5) Block Volume Management プラグイン確認
UHPのiSCSIを自動認識するようにBlock Volume Management プラグインが有効化されていることを確認
● 複数 UHPボリューム・サポート確認
Oracle Cloud Agentバージョン1.39以降のインスタンスでは、複数の超高パフォーマンス・ボリュームがサポートされています。次のコマンドを使用して、バージョンを確認します。
[opc@bm-e5 ~]$ yum info oracle-cloud-agent
Ksplice for Oracle Linux 9 (x86_64) 11 MB/s | 992 kB 00:00
Oracle Linux 9 OCI Included Packages (x86_64) 81 MB/s | 109 MB 00:01
Oracle Linux 9 BaseOS Latest (x86_64) 141 MB/s | 34 MB 00:00
Oracle Linux 9 Application Stream Packages (x86_64) 144 MB/s | 40 MB 00:00
Oracle Linux 9 Addons (x86_64) 4.8 MB/s | 453 kB 00:00
Oracle Linux 9 UEK Release 7 (x86_64) 142 MB/s | 41 MB 00:00
Installed Packages
Name : oracle-cloud-agent
Version : 1.44.0
Release : 5257.el9
Architecture : x86_64
Size : 450 M
Source : oracle-cloud-agent-1.44.0-5257.el9.src.rpm
Repository : @System
From repo : @commandline
Summary : Oracle Cloud Agent
URL : https://docs.cloud.oracle.com/iaas/
License : https://oss.oracle.com/licenses/upl/
Description : Oracle Cloud Infrastructure agent for management and monitoring.
■ ブロック・ボリューム作成とアタッチ
VPUのパフォーマンスの特性を参照してブロック・ボリュームのパフォーマンスが最大になるように設定します。
超高パフォーマンス VPU=120は、1つのブロック・ボリュームを 1,333GBで作成すると最大IOPS は 300,000 です。
3,000,000 IOPSになるように 10つのブロック・ボリュームを作成して コンピュートへアタッチします。
1) OCIコンソール画面
メニューから [ストレージ] > [ブロック・ストレージ] をクリックし、[ブロック・ストレージの作成]をクリック
2) ブロック・ボリューム作成画面
次の項目を入力し、[ブロック・ボリュームの作成]をクリック
・Volume size (in GB): 1500
・VPUs/GB: 120
● ブロック・ボリュームのアタッチ
作成した10個のブロック・ボリュームをアタッチします。
1) コンピュート画面
左リストにある[Attached block volumes]をクリックし、[Attach block volume]をクリック
2) Attach block volume画面
次の項目を入力し、[Attach]をクリック
・ Select volume: 作成したボリュームを選択
・ Use Oracle Cloud Agent to automatically connect to iSCSI-attached volumes:自動認識するようにチェック
3) Attach block volume画面
内容を確認し、[Close]をクリック
4) コンピュート: Attached block volumes画面
アタッチ完了したら、Multipath の項目が 'Yes' であることを確認
5) 10個の Block Volumeをアタッチ
10個の Block Volumeをアタッチして、全て Multipath の項目が 'Yes' であることを確認
● OSコマンドで物理ボリューム確認
物理ボリュームの情報を表示して追加した /dev/oracleoci/oraclevdb があることを確認
・ 物理ボリュームの情報
[opc@bm-e5 ~]$ sudo -i
[root@bm-e5 ~]# pvs -a
PV VG Fmt Attr PSize PFree
/dev/oracleoci/oraclevdb --- 0 0
/dev/oracleoci/oraclevdc --- 0 0
/dev/oracleoci/oraclevdd --- 0 0
/dev/oracleoci/oraclevde --- 0 0
/dev/oracleoci/oraclevdf --- 0 0
/dev/oracleoci/oraclevdg --- 0 0
/dev/oracleoci/oraclevdh --- 0 0
/dev/oracleoci/oraclevdi --- 0 0
/dev/oracleoci/oraclevdj --- 0 0
/dev/oracleoci/oraclevdk --- 0 0
/dev/sda1 --- 0 0
/dev/sda2 --- 0 0
/dev/sda3 ocivolume lvm2 a-- 44.50g 0
・ 各物理ボリュームの詳細
[root@bm-e5 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ocivolume
PV Size 44.50 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 11392
Free PE 0
Allocated PE 11392
PV UUID C6GHix-nzze-n8Pt-hcuw-VlYT-zyhY-dli5LO
・ LVM ブロックデバイスをすべてスキャン
[root@bm-e5 ~]# pvscan
PV /dev/sda3 VG ocivolume lvm2 [44.50 GiB / 0 free]
Total: 1 [44.50 GiB] / in use: 1 [44.50 GiB] / in no VG: 0 [0 ]
・ 物理ボリュームに使用できるブロックデバイスを一覧表示
[root@bm-e5 ~]# lvmdiskscan
/dev/sda1 [ 100.00 MiB]
/dev/sda2 [ 2.00 GiB]
/dev/oracleoci/oraclevdf [ 1.46 TiB]
/dev/sda3 [ 44.50 GiB] LVM physical volume
/dev/oracleoci/oraclevdg [ 1.46 TiB]
/dev/oracleoci/oraclevdj [ 1.46 TiB]
/dev/oracleoci/oraclevdb [ 1.46 TiB]
/dev/oracleoci/oraclevdc [ 1.46 TiB]
/dev/oracleoci/oraclevdd [ 1.46 TiB]
/dev/oracleoci/oraclevde [ 1.46 TiB]
/dev/oracleoci/oraclevdh [ 1.46 TiB]
/dev/oracleoci/oraclevdi [ 1.46 TiB]
/dev/oracleoci/oraclevdk [ 1.46 TiB]
10 disks
2 partitions
0 LVM physical volume whole disks
1 LVM physical volume
・ ブロックデバイス確認
[root@bm-e5 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 46.6G 0 disk
├─sda1 8:1 0 100M 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 44.5G 0 part
├─ocivolume-root 252:0 0 29.5G 0 lvm /
└─ocivolume-oled 252:1 0 15G 0 lvm /var/oled
sdb 8:16 0 1.5T 0 disk
└─mpathd 252:2 0 1.5T 0 mpath
sdc 8:32 0 1.5T 0 disk
└─mpathd 252:2 0 1.5T 0 mpath
sdd 8:48 0 1.5T 0 disk
└─mpathd 252:2 0 1.5T 0 mpath
sde 8:64 0 1.5T 0 disk
└─mpathd 252:2 0 1.5T 0 mpath
sdf 8:80 0 1.5T 0 disk
└─mpathd 252:2 0 1.5T 0 mpath
sdg 8:96 0 1.5T 0 disk
└─mpathf 252:3 0 1.5T 0 mpath
sdh 8:112 0 1.5T 0 disk
└─mpathf 252:3 0 1.5T 0 mpath
sdi 8:128 0 1.5T 0 disk
└─mpathf 252:3 0 1.5T 0 mpath
sdj 8:144 0 1.5T 0 disk
└─mpathf 252:3 0 1.5T 0 mpath
sdk 8:160 0 1.5T 0 disk
└─mpathf 252:3 0 1.5T 0 mpath
sdl 8:176 0 1.5T 0 disk
└─mpathh 252:4 0 1.5T 0 mpath
sdm 8:192 0 1.5T 0 disk
└─mpathh 252:4 0 1.5T 0 mpath
sdn 8:208 0 1.5T 0 disk
└─mpathh 252:4 0 1.5T 0 mpath
sdo 8:224 0 1.5T 0 disk
└─mpathh 252:4 0 1.5T 0 mpath
sdp 8:240 0 1.5T 0 disk
└─mpathh 252:4 0 1.5T 0 mpath
sdq 65:0 0 1.5T 0 disk
└─mpatha 252:5 0 1.5T 0 mpath
sdr 65:16 0 1.5T 0 disk
└─mpatha 252:5 0 1.5T 0 mpath
sds 65:32 0 1.5T 0 disk
└─mpatha 252:5 0 1.5T 0 mpath
sdt 65:48 0 1.5T 0 disk
└─mpatha 252:5 0 1.5T 0 mpath
sdu 65:64 0 1.5T 0 disk
└─mpatha 252:5 0 1.5T 0 mpath
sdv 65:80 0 1.5T 0 disk
└─mpathb 252:6 0 1.5T 0 mpath
sdw 65:96 0 1.5T 0 disk
└─mpathb 252:6 0 1.5T 0 mpath
sdx 65:112 0 1.5T 0 disk
└─mpathb 252:6 0 1.5T 0 mpath
sdy 65:128 0 1.5T 0 disk
└─mpathb 252:6 0 1.5T 0 mpath
sdz 65:144 0 1.5T 0 disk
└─mpathb 252:6 0 1.5T 0 mpath
sdaa 65:160 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
sdab 65:176 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
sdac 65:192 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
sdad 65:208 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
sdae 65:224 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
sdaf 65:240 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
sdag 66:0 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
sdah 66:16 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
sdai 66:32 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
sdaj 66:48 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
sdak 66:64 0 1.5T 0 disk
└─mpathg 252:9 0 1.5T 0 mpath
sdal 66:80 0 1.5T 0 disk
└─mpathg 252:9 0 1.5T 0 mpath
sdam 66:96 0 1.5T 0 disk
└─mpathg 252:9 0 1.5T 0 mpath
sdan 66:112 0 1.5T 0 disk
└─mpathg 252:9 0 1.5T 0 mpath
sdao 66:128 0 1.5T 0 disk
└─mpathg 252:9 0 1.5T 0 mpath
sdap 66:144 0 1.5T 0 disk
└─mpathi 252:10 0 1.5T 0 mpath
sdaq 66:160 0 1.5T 0 disk
└─mpathi 252:10 0 1.5T 0 mpath
sdar 66:176 0 1.5T 0 disk
└─mpathi 252:10 0 1.5T 0 mpath
sdas 66:192 0 1.5T 0 disk
└─mpathi 252:10 0 1.5T 0 mpath
sdat 66:208 0 1.5T 0 disk
└─mpathi 252:10 0 1.5T 0 mpath
sdau 66:224 0 1.5T 0 disk
└─mpathj 252:11 0 1.5T 0 mpath
sdav 66:240 0 1.5T 0 disk
└─mpathj 252:11 0 1.5T 0 mpath
sdaw 67:0 0 1.5T 0 disk
└─mpathj 252:11 0 1.5T 0 mpath
sdax 67:16 0 1.5T 0 disk
└─mpathj 252:11 0 1.5T 0 mpath
sday 67:32 0 1.5T 0 disk
└─mpathj 252:11 0 1.5T 0 mpath
⚫︎ マルチパスの構成確認
・ マルチパスのステータス確認
[root@bm-e5 ~]# mpathconf
multipath is enabled
find_multipaths is yes
user_friendly_names is enabled
recheck_wwid is disabled
default property blacklist is disabled
enable_foreign is not set (no foreign multipath devices will be shown)
dm_multipath module is loaded
multipathd is running
・ mpath確認
[root@bm-e5 ~]# ls -l /dev/mapper/mpath*
lrwxrwxrwx. 1 root root 7 Aug 28 09:46 /dev/mapper/mpatha -> ../dm-6
lrwxrwxrwx. 1 root root 7 Aug 28 09:47 /dev/mapper/mpathb -> ../dm-9
lrwxrwxrwx. 1 root root 7 Aug 28 09:46 /dev/mapper/mpathc -> ../dm-7
lrwxrwxrwx. 1 root root 8 Aug 28 09:47 /dev/mapper/mpathd -> ../dm-10
lrwxrwxrwx. 1 root root 7 Aug 28 09:47 /dev/mapper/mpathe -> ../dm-8
lrwxrwxrwx. 1 root root 7 Aug 28 09:45 /dev/mapper/mpathf -> ../dm-2
lrwxrwxrwx. 1 root root 7 Aug 28 09:45 /dev/mapper/mpathg -> ../dm-3
lrwxrwxrwx. 1 root root 8 Aug 28 09:47 /dev/mapper/mpathh -> ../dm-11
lrwxrwxrwx. 1 root root 7 Aug 28 09:46 /dev/mapper/mpathi -> ../dm-4
lrwxrwxrwx. 1 root root 7 Aug 28 09:46 /dev/mapper/mpathj -> ../dm-5
・ マルチパス構成表示
[root@bm-e5 ~]# sudo multipath -ll
mpatha (360a796f115364dff97f73b4e0867d815) dm-5 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 31:0:0:2 sdq 65:0 active ready running
|- 32:0:0:2 sdr 65:16 active ready running
|- 33:0:0:2 sds 65:32 active ready running
|- 34:0:0:2 sdt 65:48 active ready running
`- 35:0:0:2 sdu 65:64 active ready running
mpathb (360428eb3d062454793b4d0ab778f749a) dm-6 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 36:0:0:3 sdv 65:80 active ready running
|- 37:0:0:3 sdw 65:96 active ready running
|- 38:0:0:3 sdx 65:112 active ready running
|- 39:0:0:3 sdy 65:128 active ready running
`- 40:0:0:3 sdz 65:144 active ready running
mpathc (360336d34e5b74c558e346fd67dd34f66) dm-7 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 41:0:0:4 sdaa 65:160 active ready running
|- 42:0:0:4 sdab 65:176 active ready running
|- 43:0:0:4 sdac 65:192 active ready running
|- 44:0:0:4 sdad 65:208 active ready running
`- 45:0:0:4 sdae 65:224 active ready running
mpathd (3602794d2ac9e47bc994d5c5d692548c0) dm-2 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 16:0:0:6 sdb 8:16 active ready running
|- 17:0:0:6 sdc 8:32 active ready running
|- 18:0:0:6 sdd 8:48 active ready running
|- 19:0:0:6 sde 8:64 active ready running
`- 20:0:0:6 sdf 8:80 active ready running
mpathe (360ad875a035b4dff803fec551cb9d51f) dm-8 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 46:0:0:5 sdaf 65:240 active ready running
|- 47:0:0:5 sdag 66:0 active ready running
|- 48:0:0:5 sdah 66:16 active ready running
|- 49:0:0:5 sdai 66:32 active ready running
`- 50:0:0:5 sdaj 66:48 active ready running
mpathf (3603c7ab7b0a94db5a9a0c2dd4e8d9e92) dm-3 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 21:0:0:7 sdg 8:96 active ready running
|- 22:0:0:7 sdh 8:112 active ready running
|- 23:0:0:7 sdi 8:128 active ready running
|- 24:0:0:7 sdj 8:144 active ready running
`- 25:0:0:7 sdk 8:160 active ready running
mpathg (36024de39adfe48289e7e52efc451f801) dm-9 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 51:0:0:8 sdak 66:64 active ready running
|- 52:0:0:8 sdal 66:80 active ready running
|- 53:0:0:8 sdam 66:96 active ready running
|- 54:0:0:8 sdan 66:112 active ready running
`- 55:0:0:8 sdao 66:128 active ready running
mpathh (360f946887743429fa1901706f2e37428) dm-4 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 26:0:0:10 sdl 8:176 active ready running
|- 27:0:0:10 sdm 8:192 active ready running
|- 28:0:0:10 sdn 8:208 active ready running
|- 29:0:0:10 sdo 8:224 active ready running
`- 30:0:0:10 sdp 8:240 active ready running
mpathi (3600c2e5bc6c142c389879f9588b54c49) dm-10 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 56:0:0:9 sdap 66:144 active ready running
|- 57:0:0:9 sdaq 66:160 active ready running
|- 58:0:0:9 sdar 66:176 active ready running
|- 59:0:0:9 sdas 66:192 active ready running
`- 60:0:0:9 sdat 66:208 active ready running
mpathj (3608c2251bcbe4c4e828c14c5f90885b0) dm-11 ORACLE,BlockVolume
size=1.5T features='4 queue_if_no_path retain_attached_hw_handler queue_mode bio' hwhandler='0' wp=rw
`-+- policy='queue-length 0' prio=1 status=active
|- 61:0:0:11 sdau 66:224 active ready running
|- 62:0:0:11 sdav 66:240 active ready running
|- 63:0:0:11 sdaw 67:0 active ready running
|- 64:0:0:11 sdax 67:16 active ready running
`- 65:0:0:11 sday 67:32 active ready running
・ マルチパス構成ファイル確認
[root@bm-e5 ~]# cat /etc/multipath.conf
defaults {
user_friendly_names yes
find_multipaths yes
rr_weight uniform
path_selector "queue-length 0"
path_grouping_policy multibus
polling_interval 30
path_checker tur
checker_timeout 300
failback immediate
verbosity 2
rr_min_io 1
rr_min_io_rq 1
dev_loss_tmo 9000
fast_io_fail_tmo off
no_path_retry queue
skip_kpartx no
features "2 queue_mode bio"
}
・ multipath.conf 設定の例ファイル
DM-Multipathがサポートするストレージ・アレイの詳細とそのデフォルトの構成値を次のファイルで確認できます。
[root@bm-e5 ~]# cat /usr/share/doc/device-mapper-multipath/multipath.conf
# This is a basic configuration file with some examples, for device mapper
# multipath.
#
# For a complete list of the default configuration values, run either
# multipath -t
# or
# multipathd show config
#
# For a list of configuration options with descriptions, see the multipath.conf
# man page
## By default, devices with vendor = "IBM" and product = "S/390.*" are
## blacklisted. To enable mulitpathing on these devies, uncomment the
## following lines.
#blacklist_exceptions {
# device {
# vendor "IBM"
# product "S/390.*"
# }
#}
## Use user friendly names, instead of using WWIDs as names.
defaults {
user_friendly_names yes
find_multipaths yes
}
##
## Here is an example of how to configure some standard options.
##
#
#defaults {
# udev_dir /dev
# polling_interval 10
# selector "round-robin 0"
# path_grouping_policy multibus
# prio alua
# path_checker readsector0
# rr_min_io 100
# max_fds 8192
# rr_weight priorities
# failback immediate
# no_path_retry fail
# user_friendly_names yes
#}
##
## The wwid line in the following blacklist section is shown as an example
## of how to blacklist devices by wwid. The 2 devnode lines are the
## compiled in default blacklist. If you want to blacklist entire types
## of devices, such as all scsi devices, you should use a devnode line.
## However, if you want to blacklist specific devices, you should use
## a wwid line. Since there is no guarantee that a specific device will
## not change names on reboot (from /dev/sda to /dev/sdb for example)
## devnode lines are not recommended for blacklisting specific devices.
##
#blacklist {
# wwid 26353900f02796769
# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
# devnode "^hd[a-z]"
#}
#multipaths {
# multipath {
# wwid 3600508b4000156d700012000000b0000
# alias yellow
# path_grouping_policy multibus
# path_checker readsector0
# path_selector "round-robin 0"
# failback manual
# rr_weight priorities
# no_path_retry 5
# }
# multipath {
# wwid 1DEC_____321816758474
# alias red
# }
#}
#devices {
# device {
# vendor "COMPAQ "
# product "HSV110 (C)COMPAQ"
# path_grouping_policy multibus
# path_checker readsector0
# path_selector "round-robin 0"
# hardware_handler "0"
# failback 15
# rr_weight priorities
# no_path_retry queue
# }
# device {
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# }
#}
■ ストライプ化論理ボリューム(LV)作成
アタッチした 10個の UHP ブロック・ボリュームを LVM (logical volume manager) でひとつのボリュームグループにまとめ、単一の論理ボリューム(LV)/dev/volgroup01/striped_logical_volume を作成します。
● 物理ボリューム(PV)確認
1) 物理ボリューム(PV)作成
・ pvs確認
[root@bm-e5 ~]# pvs -a
PV VG Fmt Attr PSize PFree
/dev/oracleoci/oraclevdb --- 0 0
/dev/oracleoci/oraclevdc --- 0 0
/dev/oracleoci/oraclevdd --- 0 0
/dev/oracleoci/oraclevde --- 0 0
/dev/oracleoci/oraclevdf --- 0 0
/dev/oracleoci/oraclevdg --- 0 0
/dev/oracleoci/oraclevdh --- 0 0
/dev/oracleoci/oraclevdi --- 0 0
/dev/oracleoci/oraclevdj --- 0 0
/dev/oracleoci/oraclevdk --- 0 0
/dev/sda1 --- 0 0
/dev/sda2 --- 0 0
/dev/sda3 ocivolume lvm2 a-- 44.50g 0
・ PV作成
-vオプションを指定してコマンドを実行し、詳細情報を取得します。
[root@bm-e5 ~]# pvcreate -v /dev/oracleoci/oraclevd[b-k]
Wiping signatures on new PV /dev/oracleoci/oraclevdb.
Wiping signatures on new PV /dev/oracleoci/oraclevdc.
Wiping signatures on new PV /dev/oracleoci/oraclevdd.
Wiping signatures on new PV /dev/oracleoci/oraclevde.
Wiping signatures on new PV /dev/oracleoci/oraclevdf.
Wiping signatures on new PV /dev/oracleoci/oraclevdg.
Wiping signatures on new PV /dev/oracleoci/oraclevdh.
Wiping signatures on new PV /dev/oracleoci/oraclevdi.
Wiping signatures on new PV /dev/oracleoci/oraclevdj.
Wiping signatures on new PV /dev/oracleoci/oraclevdk.
Set up physical volume for "/dev/oracleoci/oraclevdb" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdb.
Writing physical volume data to disk "/dev/oracleoci/oraclevdb".
Physical volume "/dev/oracleoci/oraclevdb" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdc" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdc.
Writing physical volume data to disk "/dev/oracleoci/oraclevdc".
Physical volume "/dev/oracleoci/oraclevdc" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdd" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdd.
Writing physical volume data to disk "/dev/oracleoci/oraclevdd".
Physical volume "/dev/oracleoci/oraclevdd" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevde" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevde.
Writing physical volume data to disk "/dev/oracleoci/oraclevde".
Physical volume "/dev/oracleoci/oraclevde" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdf" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdf.
Writing physical volume data to disk "/dev/oracleoci/oraclevdf".
Physical volume "/dev/oracleoci/oraclevdf" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdg" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdg.
Writing physical volume data to disk "/dev/oracleoci/oraclevdg".
Physical volume "/dev/oracleoci/oraclevdg" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdh" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdh.
Writing physical volume data to disk "/dev/oracleoci/oraclevdh".
Physical volume "/dev/oracleoci/oraclevdh" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdi" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdi.
Writing physical volume data to disk "/dev/oracleoci/oraclevdi".
Physical volume "/dev/oracleoci/oraclevdi" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdj" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdj.
Writing physical volume data to disk "/dev/oracleoci/oraclevdj".
Physical volume "/dev/oracleoci/oraclevdj" successfully created.
Set up physical volume for "/dev/oracleoci/oraclevdk" with 3145728000 available sectors.
Zeroing start of device /dev/oracleoci/oraclevdk.
Writing physical volume data to disk "/dev/oracleoci/oraclevdk".
Physical volume "/dev/oracleoci/oraclevdk" successfully created.
Not creating system devices file due to existing VGs.
2) pvs 確認
[root@bm-e5 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/oracleoci/oraclevdb lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdc lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdd lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevde lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdf lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdg lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdh lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdi lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdj lvm2 --- 1.46t 1.46t
/dev/oracleoci/oraclevdk lvm2 --- 1.46t 1.46t
/dev/sda3 ocivolume lvm2 a-- 44.50g 0
● ボリュームグループ(VG) 作成
1) ボリュームグループ volgroup01 を作成
新しく作成した物理ボリュームを使用してボリューム・グループ(VG)を作成します。
[root@bm-e5 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
ocivolume 1 2 0 wz--n- 44.50g 0
[root@bm-e5 ~]# vgcreate -v volgroup01 /dev/oracleoci/oraclevd[b-k]
Wiping signatures on new PV /dev/oracleoci/oraclevdb.
Wiping signatures on new PV /dev/oracleoci/oraclevdc.
Wiping signatures on new PV /dev/oracleoci/oraclevdd.
Wiping signatures on new PV /dev/oracleoci/oraclevde.
Wiping signatures on new PV /dev/oracleoci/oraclevdf.
Wiping signatures on new PV /dev/oracleoci/oraclevdg.
Wiping signatures on new PV /dev/oracleoci/oraclevdh.
Wiping signatures on new PV /dev/oracleoci/oraclevdi.
Wiping signatures on new PV /dev/oracleoci/oraclevdj.
Wiping signatures on new PV /dev/oracleoci/oraclevdk.
Not creating system devices file due to existing VGs.
Adding physical volume '/dev/oracleoci/oraclevdb' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdc' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdd' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevde' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdf' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdg' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdh' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdi' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdj' to volume group 'volgroup01'
Adding physical volume '/dev/oracleoci/oraclevdk' to volume group 'volgroup01'
Creating volume group backup "/etc/lvm/backup/volgroup01" (seqno 1).
Volume group "volgroup01" successfully created
2) VG作成確認
vgs コマンドを使用すると、作成したボリュームグループの属性を表示できます。
[root@bm-e5 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
ocivolume 1 2 0 wz--n- 44.50g 0
volgroup01 10 0 0 wz--n- <14.65t <14.65t
● ストライプ化論理ボリューム(LV)作成
1) 論理ボリューム(LV)作成
ストライプサイズが 4 キロバイトの 10 つのストライプがある、全てのボリューム・サイズを使用するリニア論理ボリューム(LV)を作成します。
[root@bm-e5 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
oled ocivolume -wi-ao---- 15.00g
root ocivolume -wi-ao---- 29.50g
[root@bm-e5 ~]# lvcreate -v -i 10 -I 4 -l 100%FREE -n striped_logical_volume volgroup01
Converted 100% of FREE (3839990) extents into 3839990 (with mimages 1 and stripes 10 for segtype striped).
Creating logical volume striped_logical_volume
Archiving volume group "volgroup01" metadata (seqno 1).
Activating logical volume volgroup01/striped_logical_volume.
activation/volume_list configuration setting not defined: Checking only host tags for volgroup01/striped_logical_volume.
Creating volgroup01-striped_logical_volume
Loading table for volgroup01-striped_logical_volume (252:12).
Resuming volgroup01-striped_logical_volume (252:12).
Wiping known signatures on logical volume volgroup01/striped_logical_volume.
Initializing 4.00 KiB of logical volume volgroup01/striped_logical_volume with value 0.
Logical volume "striped_logical_volume" created.
Creating volume group backup "/etc/lvm/backup/volgroup01" (seqno 2).
2) LV作成確認
volgroup01 VG内に含まれるすべての論理ボリュームが表示されます。
[root@bm-e5 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
oled ocivolume -wi-ao---- 15.00g
root ocivolume -wi-ao---- 29.50g
striped_logical_volume volgroup01 -wi-a----- <14.65t
3) LV詳細表示
論理ボリュームの詳細な情報を表示
[root@bm-e5 ~]# lvdisplay /dev/volgroup01
--- Logical volume ---
LV Path /dev/volgroup01/striped_logical_volume
LV Name striped_logical_volume
VG Name volgroup01
LV UUID ujbMI9-27Kn-DdTK-suNe-tJwl-Qgvc-DvaZXD
LV Write Access read/write
LV Creation host, time bm-e5, 2024-08-28 11:16:58 +0000
LV Status available
# open 0
LV Size <14.65 TiB
Current LE 3839990
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:12
4) LV一覧表示
[root@bm-e5 ~]# lvscan
ACTIVE '/dev/ocivolume/oled' [15.00 GiB] inherit
ACTIVE '/dev/ocivolume/root' [29.50 GiB] inherit
ACTIVE '/dev/volgroup01/striped_logical_volume' [<14.65 TiB] inherit
5) ブロックデバイス一覧表示
[root@bm-e5 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 46.6G 0 disk
├─sda1 8:1 0 100M 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 44.5G 0 part
├─ocivolume-root 252:0 0 29.5G 0 lvm /
└─ocivolume-oled 252:1 0 15G 0 lvm /var/oled
sdb 8:16 0 1.5T 0 disk
└─mpathf 252:2 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdc 8:32 0 1.5T 0 disk
└─mpathf 252:2 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdd 8:48 0 1.5T 0 disk
└─mpathf 252:2 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sde 8:64 0 1.5T 0 disk
└─mpathf 252:2 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdf 8:80 0 1.5T 0 disk
└─mpathf 252:2 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdg 8:96 0 1.5T 0 disk
└─mpathg 252:3 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdh 8:112 0 1.5T 0 disk
└─mpathg 252:3 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdi 8:128 0 1.5T 0 disk
└─mpathg 252:3 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdj 8:144 0 1.5T 0 disk
└─mpathg 252:3 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdk 8:160 0 1.5T 0 disk
└─mpathg 252:3 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdl 8:176 0 1.5T 0 disk
└─mpathi 252:4 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdm 8:192 0 1.5T 0 disk
└─mpathi 252:4 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdn 8:208 0 1.5T 0 disk
└─mpathi 252:4 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdo 8:224 0 1.5T 0 disk
└─mpathi 252:4 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdp 8:240 0 1.5T 0 disk
└─mpathi 252:4 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdq 65:0 0 1.5T 0 disk
└─mpathj 252:5 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdr 65:16 0 1.5T 0 disk
└─mpathj 252:5 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sds 65:32 0 1.5T 0 disk
└─mpathj 252:5 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdt 65:48 0 1.5T 0 disk
└─mpathj 252:5 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdu 65:64 0 1.5T 0 disk
└─mpathj 252:5 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdv 65:80 0 1.5T 0 disk
└─mpatha 252:6 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdw 65:96 0 1.5T 0 disk
└─mpatha 252:6 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdx 65:112 0 1.5T 0 disk
└─mpatha 252:6 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdy 65:128 0 1.5T 0 disk
└─mpatha 252:6 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdz 65:144 0 1.5T 0 disk
└─mpatha 252:6 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdaa 65:160 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdab 65:176 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdac 65:192 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdad 65:208 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdae 65:224 0 1.5T 0 disk
└─mpathc 252:7 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdaf 65:240 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdag 66:0 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdah 66:16 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdai 66:32 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdaj 66:48 0 1.5T 0 disk
└─mpathe 252:8 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdak 66:64 0 1.5T 0 disk
└─mpathb 252:9 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdal 66:80 0 1.5T 0 disk
└─mpathb 252:9 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdam 66:96 0 1.5T 0 disk
└─mpathb 252:9 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdan 66:112 0 1.5T 0 disk
└─mpathb 252:9 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdao 66:128 0 1.5T 0 disk
└─mpathb 252:9 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdap 66:144 0 1.5T 0 disk
└─mpathd 252:10 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdaq 66:160 0 1.5T 0 disk
└─mpathd 252:10 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdar 66:176 0 1.5T 0 disk
└─mpathd 252:10 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdas 66:192 0 1.5T 0 disk
└─mpathd 252:10 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdat 66:208 0 1.5T 0 disk
└─mpathd 252:10 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdau 66:224 0 1.5T 0 disk
└─mpathh 252:11 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdav 66:240 0 1.5T 0 disk
└─mpathh 252:11 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdaw 67:0 0 1.5T 0 disk
└─mpathh 252:11 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sdax 67:16 0 1.5T 0 disk
└─mpathh 252:11 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
sday 67:32 0 1.5T 0 disk
└─mpathh 252:11 0 1.5T 0 mpath
└─volgroup01-striped_logical_volume 252:12 0 14.6T 0 lvm
■ FIOコマンド使用してブロック・ボリューム・パフォーマンス・テスト
Linuxベース・インスタンスでブロック・ボリューム・パフォーマンス・テストを行うためのサンプルFIOコマンドを参照して FIOコマンドで IOPSとスループットのパフォーマンス・テストをします。
● FIO インストール
1) install fio
Oracle LinuxまたはCentOSシステムにFIOをインストールして構成するには、次のコマンドを実行します
[root@bm-e5 ~]# dnf install fio -y
Ksplice for Oracle Linux 9 (x86_64) 10 MB/s | 992 kB 00:00
Oracle Linux 9 OCI Included Packages (x86_64) 117 MB/s | 107 MB 00:00
Oracle Linux 9 BaseOS Latest (x86_64) 133 MB/s | 33 MB 00:00
Oracle Linux 9 Application Stream Packages (x86_64) 110 MB/s | 39 MB 00:00
Oracle Linux 9 Addons (x86_64) 3.6 MB/s | 453 kB 00:00
Oracle Linux 9 UEK Release 7 (x86_64) 147 MB/s | 41 MB 00:00
Dependencies resolved.
================================================================================================================================
Package Architecture Version Repository Size
================================================================================================================================
Installing:
fio x86_64 3.35-1.el9 ol9_appstream 6.4 M
Installing dependencies:
boost-iostreams x86_64 1.75.0-8.el9 ol9_appstream 38 k
libnbd x86_64 1.18.1-3.el9 ol9_appstream 174 k
librados2 x86_64 2:16.2.4-5.0.3.el9 ol9_appstream 3.4 M
librbd1 x86_64 2:16.2.4-5.0.3.el9 ol9_appstream 3.0 M
librdmacm x86_64 48.0-1.el9 ol9_baseos_latest 75 k
Installing weak dependencies:
fio-engine-http x86_64 3.35-1.el9 ol9_appstream 17 k
fio-engine-libaio x86_64 3.35-1.el9 ol9_appstream 14 k
fio-engine-nbd x86_64 3.35-1.el9 ol9_appstream 13 k
fio-engine-rados x86_64 3.35-1.el9 ol9_appstream 15 k
fio-engine-rbd x86_64 3.35-1.el9 ol9_appstream 15 k
fio-engine-rdma x86_64 3.35-1.el9 ol9_appstream 19 k
Transaction Summary
================================================================================================================================
Install 12 Packages
Total download size: 13 M
Installed size: 32 M
Downloading Packages:
(1/12): librdmacm-48.0-1.el9.x86_64.rpm 828 kB/s | 75 kB 00:00
(2/12): boost-iostreams-1.75.0-8.el9.x86_64.rpm 343 kB/s | 38 kB 00:00
(3/12): fio-engine-http-3.35-1.el9.x86_64.rpm 163 kB/s | 17 kB 00:00
(4/12): fio-engine-nbd-3.35-1.el9.x86_64.rpm 162 kB/s | 13 kB 00:00
(5/12): fio-engine-libaio-3.35-1.el9.x86_64.rpm 67 kB/s | 14 kB 00:00
(6/12): fio-engine-rados-3.35-1.el9.x86_64.rpm 165 kB/s | 15 kB 00:00
(7/12): fio-engine-rdma-3.35-1.el9.x86_64.rpm 100 kB/s | 19 kB 00:00
(8/12): libnbd-1.18.1-3.el9.x86_64.rpm 1.7 MB/s | 174 kB 00:00
(9/12): librados2-16.2.4-5.0.3.el9.x86_64.rpm 89 MB/s | 3.4 MB 00:00
(10/12): fio-engine-rbd-3.35-1.el9.x86_64.rpm 40 kB/s | 15 kB 00:00
(11/12): fio-3.35-1.el9.x86_64.rpm 8.8 MB/s | 6.4 MB 00:00
(12/12): librbd1-16.2.4-5.0.3.el9.x86_64.rpm 69 MB/s | 3.0 MB 00:00
--------------------------------------------------------------------------------------------------------------------------------
Total 18 MB/s | 13 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : librdmacm-48.0-1.el9.x86_64 1/12
Installing : libnbd-1.18.1-3.el9.x86_64 2/12
Installing : boost-iostreams-1.75.0-8.el9.x86_64 3/12
Installing : librados2-2:16.2.4-5.0.3.el9.x86_64 4/12
Running scriptlet: librados2-2:16.2.4-5.0.3.el9.x86_64 4/12
Installing : librbd1-2:16.2.4-5.0.3.el9.x86_64 5/12
Running scriptlet: librbd1-2:16.2.4-5.0.3.el9.x86_64 5/12
Installing : fio-engine-http-3.35-1.el9.x86_64 6/12
Installing : fio-engine-libaio-3.35-1.el9.x86_64 7/12
Installing : fio-engine-nbd-3.35-1.el9.x86_64 8/12
Installing : fio-engine-rados-3.35-1.el9.x86_64 9/12
Installing : fio-engine-rdma-3.35-1.el9.x86_64 10/12
Installing : fio-3.35-1.el9.x86_64 11/12
Installing : fio-engine-rbd-3.35-1.el9.x86_64 12/12
Running scriptlet: fio-engine-rbd-3.35-1.el9.x86_64 12/12
Verifying : librdmacm-48.0-1.el9.x86_64 1/12
Verifying : boost-iostreams-1.75.0-8.el9.x86_64 2/12
Verifying : fio-3.35-1.el9.x86_64 3/12
Verifying : fio-engine-http-3.35-1.el9.x86_64 4/12
Verifying : fio-engine-libaio-3.35-1.el9.x86_64 5/12
Verifying : fio-engine-nbd-3.35-1.el9.x86_64 6/12
Verifying : fio-engine-rados-3.35-1.el9.x86_64 7/12
Verifying : fio-engine-rbd-3.35-1.el9.x86_64 8/12
Verifying : fio-engine-rdma-3.35-1.el9.x86_64 9/12
Verifying : libnbd-1.18.1-3.el9.x86_64 10/12
Verifying : librados2-2:16.2.4-5.0.3.el9.x86_64 11/12
Verifying : librbd1-2:16.2.4-5.0.3.el9.x86_64 12/12
Installed:
boost-iostreams-1.75.0-8.el9.x86_64 fio-3.35-1.el9.x86_64 fio-engine-http-3.35-1.el9.x86_64
fio-engine-libaio-3.35-1.el9.x86_64 fio-engine-nbd-3.35-1.el9.x86_64 fio-engine-rados-3.35-1.el9.x86_64
fio-engine-rbd-3.35-1.el9.x86_64 fio-engine-rdma-3.35-1.el9.x86_64 libnbd-1.18.1-3.el9.x86_64
librados2-2:16.2.4-5.0.3.el9.x86_64 librbd1-2:16.2.4-5.0.3.el9.x86_64 librdmacm-48.0-1.el9.x86_64
Complete!
- FIO インストール確認
[root@bm-e5 ~]# fio -h
fio-3.35
fio [options] [job options] <job file(s)>
--debug=options Enable debug logging. May be one/more of:
process,file,io,mem,blktrace,verify,random,parse,
diskutil,job,mutex,profile,time,net,rate,compress,
steadystate,helperthread,zbd
--parse-only Parse options only, don't start any IO
--merge-blktrace-only Merge blktraces only, don't start any IO
--output Write output to file
--bandwidth-log Generate aggregate bandwidth logs
--minimal Minimal (terse) output
--output-format=type Output format (terse,json,json+,normal)
--terse-version=type Set terse version output format (default 3, or 2 or 4 or 5)
--version Print version info and exit
--help Print this page
--cpuclock-test Perform test/validation of CPU clock
--crctest=[type] Test speed of checksum functions
--cmdhelp=cmd Print command help, "all" for all of them
--enghelp=engine Print ioengine help, or list available ioengines
--enghelp=engine,cmd Print help for an ioengine cmd
--showcmd Turn a job file into command line options
--eta=when When ETA estimate should be printed
May be "always", "never" or "auto"
--eta-newline=t Force a new line for every 't' period passed
--status-interval=t Force full status dump every 't' period passed
--readonly Turn on safety read-only checks, preventing writes
--section=name Only run specified section in job file, multiple sections can be specified
--alloc-size=kb Set smalloc pool to this size in kb (def 16384)
--warnings-fatal Fio parser warnings are fatal
--max-jobs=nr Maximum number of threads/processes to support
--server=args Start a backend fio server
--daemonize=pidfile Background fio server, write pid to file
--client=hostname Talk to remote backend(s) fio server at hostname
--remote-config=file Tell fio server to load this local job file
--idle-prof=option Report cpu idleness on a system or percpu basis
(option=system,percpu) or run unit work
calibration only (option=calibrate)
--inflate-log=log Inflate and output compressed log
--trigger-file=file Execute trigger cmd when file exists
--trigger-timeout=t Execute trigger at this time
--trigger=cmd Set this command as local trigger
--trigger-remote=cmd Set this command as remote trigger
--aux-path=path Use this path for fio state generated files
Fio was written by Jens Axboe <axboe@kernel.dk>
● IOPS パフォーマンス・テスト
IOPSパフォーマンスをテストするには、次のFIOサンプル・コマンドを使用します。コマンドを直接実行することも、コマンドを使用してジョブ・ファイルを作成してからそのジョブ・ファイルを実行することもできます。
・参考: Sample FIO Commands for Block Volume Performance Tests on Linux-based Instances
FIO実行するときは--numjobs オプションを使用して、ストライプしているデバイス(/dev/sd?)の数に応じて並列度を上げて実行します。
今回50個のデバイス・ファイルがあるので、50以上の値で調整します。
・ Sequential Reads テスト
データベース・ワークロードなど、順次アクセス・パターンを利用できるワークロードに対しては、順次読取りをテストすることにより、このパターンのパフォーマンスを確認できます。
順次読取りをテストするには、次のコマンドを実行します。
[root@bm-e5 ~]# fio --filename=/dev/volgroup01/striped_logical_volume --direct=1 --rw=read --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=80 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
iops-test-job: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256
...
fio-3.35
Starting 80 processes
Jobs: 80 (f=80): [R(80)][2.5%][r=11.4GiB/s][r=2976k IOPS][eta 01m:57s]
Jobs: 80 (f=80): [R(80)][4.2%][r=11.4GiB/s][r=2978k IOPS][eta 01m:55s]
Jobs: 80 (f=80): [R(80)][5.8%][r=11.4GiB/s][r=2979k IOPS][eta 01m:53s]
Jobs: 80 (f=80): [R(80)][7.5%][r=11.4GiB/s][r=2978k IOPS][eta 01m:51s]
Jobs: 80 (f=80): [R(80)][9.2%][r=11.4GiB/s][r=2978k IOPS][eta 01m:49s]
Jobs: 80 (f=80): [R(80)][10.8%][r=11.4GiB/s][r=2977k IOPS][eta 01m:47s]
Jobs: 80 (f=80): [R(80)][12.5%][r=11.4GiB/s][r=2978k IOPS][eta 01m:45s]
Jobs: 80 (f=80): [R(80)][14.2%][r=11.4GiB/s][r=2978k IOPS][eta 01m:43s]
Jobs: 80 (f=80): [R(80)][15.8%][r=11.4GiB/s][r=2979k IOPS][eta 01m:41s]
Jobs: 80 (f=80): [R(80)][17.5%][r=11.4GiB/s][r=2978k IOPS][eta 01m:39s]
Jobs: 80 (f=80): [R(80)][19.2%][r=11.4GiB/s][r=2978k IOPS][eta 01m:37s]
Jobs: 80 (f=80): [R(80)][20.8%][r=11.4GiB/s][r=2978k IOPS][eta 01m:35s]
Jobs: 80 (f=80): [R(80)][22.5%][r=11.4GiB/s][r=2977k IOPS][eta 01m:33s]
Jobs: 80 (f=80): [R(80)][24.2%][r=11.4GiB/s][r=2979k IOPS][eta 01m:31s]
Jobs: 80 (f=80): [R(80)][25.8%][r=11.4GiB/s][r=2976k IOPS][eta 01m:29s]
Jobs: 80 (f=80): [R(80)][27.5%][r=11.4GiB/s][r=2978k IOPS][eta 01m:27s]
Jobs: 80 (f=80): [R(80)][29.2%][r=11.4GiB/s][r=2979k IOPS][eta 01m:25s]
Jobs: 80 (f=80): [R(80)][30.8%][r=11.4GiB/s][r=2978k IOPS][eta 01m:23s]
Jobs: 80 (f=80): [R(80)][32.5%][r=10.4GiB/s][r=2725k IOPS][eta 01m:21s]
Jobs: 80 (f=80): [R(80)][34.2%][r=11.4GiB/s][r=2977k IOPS][eta 01m:19s]
Jobs: 80 (f=80): [R(80)][35.8%][r=11.4GiB/s][r=2977k IOPS][eta 01m:17s]
Jobs: 80 (f=80): [R(80)][37.5%][r=11.4GiB/s][r=2977k IOPS][eta 01m:15s]
Jobs: 80 (f=80): [R(80)][39.2%][r=11.4GiB/s][r=2977k IOPS][eta 01m:13s]
Jobs: 80 (f=80): [R(80)][40.8%][r=11.4GiB/s][r=2978k IOPS][eta 01m:11s]
Jobs: 80 (f=80): [R(80)][42.5%][r=11.4GiB/s][r=2976k IOPS][eta 01m:09s]
Jobs: 80 (f=80): [R(80)][44.2%][r=11.4GiB/s][r=2977k IOPS][eta 01m:07s]
Jobs: 80 (f=80): [R(80)][45.8%][r=11.4GiB/s][r=2977k IOPS][eta 01m:05s]
Jobs: 80 (f=80): [R(80)][47.5%][r=11.4GiB/s][r=2978k IOPS][eta 01m:03s]
Jobs: 80 (f=80): [R(80)][49.2%][r=11.4GiB/s][r=2977k IOPS][eta 01m:01s]
Jobs: 80 (f=80): [R(80)][50.8%][r=11.4GiB/s][r=2976k IOPS][eta 00m:59s]
Jobs: 80 (f=80): [R(80)][52.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:57s]
Jobs: 80 (f=80): [R(80)][54.2%][r=11.4GiB/s][r=2977k IOPS][eta 00m:55s]
Jobs: 80 (f=80): [R(80)][55.8%][r=11.4GiB/s][r=2977k IOPS][eta 00m:53s]
Jobs: 80 (f=80): [R(80)][57.5%][r=11.4GiB/s][r=2978k IOPS][eta 00m:51s]
Jobs: 80 (f=80): [R(80)][59.2%][r=11.4GiB/s][r=2977k IOPS][eta 00m:49s]
Jobs: 80 (f=80): [R(80)][60.8%][r=10.4GiB/s][r=2728k IOPS][eta 00m:47s]
Jobs: 80 (f=80): [R(80)][62.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:45s]
Jobs: 80 (f=80): [R(80)][64.2%][r=9.96GiB/s][r=2612k IOPS][eta 00m:43s]
Jobs: 80 (f=80): [R(80)][65.8%][r=11.4GiB/s][r=2978k IOPS][eta 00m:41s]
Jobs: 80 (f=80): [R(80)][67.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:39s]
Jobs: 80 (f=80): [R(80)][69.2%][r=11.4GiB/s][r=2979k IOPS][eta 00m:37s]
Jobs: 80 (f=80): [R(80)][70.8%][r=11.4GiB/s][r=2978k IOPS][eta 00m:35s]
Jobs: 80 (f=80): [R(80)][72.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:33s]
Jobs: 80 (f=80): [R(80)][74.2%][r=8654MiB/s][r=2215k IOPS][eta 00m:31s]
Jobs: 80 (f=80): [R(80)][75.8%][r=11.4GiB/s][r=2976k IOPS][eta 00m:29s]
Jobs: 80 (f=80): [R(80)][77.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:27s]
Jobs: 80 (f=80): [R(80)][79.2%][r=11.4GiB/s][r=2977k IOPS][eta 00m:25s]
Jobs: 80 (f=80): [R(80)][80.8%][r=11.4GiB/s][r=2977k IOPS][eta 00m:23s]
Jobs: 80 (f=80): [R(80)][82.5%][r=11.4GiB/s][r=2976k IOPS][eta 00m:21s]
Jobs: 80 (f=80): [R(80)][84.2%][r=11.4GiB/s][r=2977k IOPS][eta 00m:19s]
Jobs: 80 (f=80): [R(80)][85.8%][r=11.4GiB/s][r=2977k IOPS][eta 00m:17s]
Jobs: 80 (f=80): [R(80)][87.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:15s]
Jobs: 80 (f=80): [R(80)][89.2%][r=11.4GiB/s][r=2977k IOPS][eta 00m:13s]
Jobs: 80 (f=80): [R(80)][90.8%][r=11.4GiB/s][r=2976k IOPS][eta 00m:11s]
Jobs: 80 (f=80): [R(80)][92.5%][r=11.4GiB/s][r=2977k IOPS][eta 00m:09s]
Jobs: 80 (f=80): [R(80)][94.2%][r=11.4GiB/s][r=2976k IOPS][eta 00m:07s]
Jobs: 80 (f=80): [R(80)][95.8%][r=11.4GiB/s][r=2978k IOPS][eta 00m:05s]
Jobs: 80 (f=80): [R(80)][97.5%][r=11.4GiB/s][r=2976k IOPS][eta 00m:03s]
Jobs: 80 (f=80): [R(80)][99.2%][r=11.4GiB/s][r=2978k IOPS][eta 00m:01s]
Jobs: 80 (f=80): [R(80)][100.0%][r=11.4GiB/s][r=2977k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=80): err= 0: pid=35361: Wed Aug 28 11:27:37 2024
read: IOPS=2959k, BW=11.3GiB/s (12.1GB/s)(1354GiB/120003msec)
slat (usec): min=3, max=41688, avg=25.84, stdev=38.82
clat (usec): min=528, max=152332, avg=6894.94, stdev=1059.75
lat (usec): min=558, max=155752, avg=6920.79, stdev=1063.29
clat percentiles (usec):
| 1.00th=[ 5538], 5.00th=[ 5932], 10.00th=[ 6063], 20.00th=[ 6325],
| 30.00th=[ 6456], 40.00th=[ 6652], 50.00th=[ 6783], 60.00th=[ 6915],
| 70.00th=[ 7111], 80.00th=[ 7308], 90.00th=[ 7701], 95.00th=[ 8094],
| 99.00th=[ 9634], 99.50th=[11338], 99.90th=[17433], 99.95th=[20841],
| 99.99th=[30802]
bw ( MiB/s): min= 7142, max=12326, per=100.00%, avg=11565.44, stdev= 8.08, samples=19120
iops : min=1828508, max=3155659, avg=2960746.62, stdev=2067.56, samples=19120
lat (usec) : 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=99.16%, 20=0.78%, 50=0.05%
lat (msec) : 100=0.01%, 250=0.01%
cpu : usr=2.08%, sys=81.42%, ctx=1259841, majf=0, minf=104877
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%
issued rwts: total=355069846,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=256
Run status group 0 (all jobs):
READ: bw=11.3GiB/s (12.1GB/s), 11.3GiB/s-11.3GiB/s (12.1GB/s-12.1GB/s), io=1354GiB (1454GB), run=120003-120003msec
・ IOPS パフォーマンス・テスト結果
IOPS パフォーマンスは、次の iops 行を見ると、max=3155659 であることを確認できます。
iops : min=1828508, max=3155659, avg=2960746.62, stdev=2067.56, samples=19120
● スループット・パフォーマンス・テスト
スループット・パフォーマンスをテストするには、次のFIOサンプル・コマンドを使用します。
・ Sequential Reads テスト
データベース・ワークロードなど、順次アクセス・パターンを利用できるワークロードに対しては、順次読取りをテストすることにより、このパターンのパフォーマンスを確認できます。
順次読取りをテストするには、次のコマンドを実行します:
[root@bm-e5 ~]# fio --filename=/dev/volgroup01/striped_logical_volume --direct=1 --rw=read --bs=64k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=80 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
throughput-test-job: (g=0): rw=read, bs=(R) 64.0KiB-64.0KiB, (W) 64.0KiB-64.0KiB, (T) 64.0KiB-64.0KiB, ioengine=libaio, iodepth=64
...
fio-3.35
Starting 80 processes
Jobs: 80 (f=80): [R(80)][2.5%][r=11.4GiB/s][r=186k IOPS][eta 01m:57s]
Jobs: 80 (f=80): [R(80)][4.2%][r=10.8GiB/s][r=177k IOPS][eta 01m:55s]
Jobs: 80 (f=80): [R(80)][5.8%][r=11.4GiB/s][r=186k IOPS][eta 01m:53s]
Jobs: 80 (f=80): [R(80)][7.5%][r=11.4GiB/s][r=186k IOPS][eta 01m:51s]
Jobs: 80 (f=80): [R(80)][9.2%][r=11.4GiB/s][r=186k IOPS][eta 01m:49s]
Jobs: 80 (f=80): [R(80)][10.8%][r=11.4GiB/s][r=186k IOPS][eta 01m:47s]
Jobs: 80 (f=80): [R(80)][12.5%][r=11.4GiB/s][r=186k IOPS][eta 01m:45s]
Jobs: 80 (f=80): [R(80)][14.2%][r=11.4GiB/s][r=186k IOPS][eta 01m:43s]
Jobs: 80 (f=80): [R(80)][15.8%][r=11.4GiB/s][r=186k IOPS][eta 01m:41s]
Jobs: 80 (f=80): [R(80)][17.5%][r=11.4GiB/s][r=186k IOPS][eta 01m:39s]
Jobs: 80 (f=80): [R(80)][19.2%][r=11.4GiB/s][r=186k IOPS][eta 01m:37s]
Jobs: 80 (f=80): [R(80)][20.8%][r=11.4GiB/s][r=186k IOPS][eta 01m:35s]
Jobs: 80 (f=80): [R(80)][22.5%][r=11.4GiB/s][r=186k IOPS][eta 01m:33s]
Jobs: 80 (f=80): [R(80)][24.2%][r=11.4GiB/s][r=186k IOPS][eta 01m:31s]
Jobs: 80 (f=80): [R(80)][25.8%][r=11.3GiB/s][r=186k IOPS][eta 01m:29s]
Jobs: 80 (f=80): [R(80)][27.5%][r=11.4GiB/s][r=186k IOPS][eta 01m:27s]
Jobs: 80 (f=80): [R(80)][29.2%][r=11.4GiB/s][r=186k IOPS][eta 01m:25s]
Jobs: 80 (f=80): [R(80)][30.8%][r=11.4GiB/s][r=186k IOPS][eta 01m:23s]
Jobs: 80 (f=80): [R(80)][31.7%][r=11.4GiB/s][r=186k IOPS][eta 01m:22s]
Jobs: 80 (f=80): [R(80)][33.3%][r=11.4GiB/s][r=186k IOPS][eta 01m:20s]
Jobs: 80 (f=80): [R(80)][35.0%][r=11.4GiB/s][r=186k IOPS][eta 01m:18s]
Jobs: 80 (f=80): [R(80)][36.7%][r=11.4GiB/s][r=186k IOPS][eta 01m:16s]
Jobs: 80 (f=80): [R(80)][38.3%][r=11.4GiB/s][r=186k IOPS][eta 01m:14s]
Jobs: 80 (f=80): [R(80)][40.0%][r=11.4GiB/s][r=186k IOPS][eta 01m:12s]
Jobs: 80 (f=80): [R(80)][41.7%][r=11.4GiB/s][r=186k IOPS][eta 01m:10s]
Jobs: 80 (f=80): [R(80)][43.3%][r=11.4GiB/s][r=186k IOPS][eta 01m:08s]
Jobs: 80 (f=80): [R(80)][45.0%][r=11.4GiB/s][r=186k IOPS][eta 01m:06s]
Jobs: 80 (f=80): [R(80)][46.7%][r=11.4GiB/s][r=186k IOPS][eta 01m:04s]
Jobs: 80 (f=80): [R(80)][48.3%][r=11.4GiB/s][r=186k IOPS][eta 01m:02s]
Jobs: 80 (f=80): [R(80)][50.0%][r=11.4GiB/s][r=186k IOPS][eta 01m:00s]
Jobs: 80 (f=80): [R(80)][51.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:58s]
Jobs: 80 (f=80): [R(80)][53.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:56s]
Jobs: 80 (f=80): [R(80)][55.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:54s]
Jobs: 80 (f=80): [R(80)][56.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:52s]
Jobs: 80 (f=80): [R(80)][58.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:50s]
Jobs: 80 (f=80): [R(80)][60.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:48s]
Jobs: 80 (f=80): [R(80)][61.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:46s]
Jobs: 80 (f=80): [R(80)][63.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:44s]
Jobs: 80 (f=80): [R(80)][65.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:42s]
Jobs: 80 (f=80): [R(80)][66.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:40s]
Jobs: 80 (f=80): [R(80)][68.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:38s]
Jobs: 80 (f=80): [R(80)][70.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:36s]
Jobs: 80 (f=80): [R(80)][71.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:34s]
Jobs: 80 (f=80): [R(80)][73.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:32s]
Jobs: 80 (f=80): [R(80)][75.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:30s]
Jobs: 80 (f=80): [R(80)][76.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:28s]
Jobs: 80 (f=80): [R(80)][78.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:26s]
Jobs: 80 (f=80): [R(80)][80.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:24s]
Jobs: 80 (f=80): [R(80)][81.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:22s]
Jobs: 80 (f=80): [R(80)][83.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:20s]
Jobs: 80 (f=80): [R(80)][85.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:18s]
Jobs: 80 (f=80): [R(80)][86.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:16s]
Jobs: 80 (f=80): [R(80)][88.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:14s]
Jobs: 80 (f=80): [R(80)][90.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:12s]
Jobs: 80 (f=80): [R(80)][91.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:10s]
Jobs: 80 (f=80): [R(80)][93.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:08s]
Jobs: 80 (f=80): [R(80)][95.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:06s]
Jobs: 80 (f=80): [R(80)][96.7%][r=11.4GiB/s][r=186k IOPS][eta 00m:04s]
Jobs: 80 (f=80): [R(80)][98.3%][r=11.4GiB/s][r=186k IOPS][eta 00m:02s]
Jobs: 80 (f=80): [R(80)][100.0%][r=11.4GiB/s][r=186k IOPS][eta 00m:00s]
throughput-test-job: (groupid=0, jobs=80): err= 0: pid=38439: Wed Aug 28 11:38:32 2024
read: IOPS=186k, BW=11.3GiB/s (12.2GB/s)(1360GiB/120071msec)
slat (usec): min=60, max=31114, avg=428.44, stdev=346.81
clat (usec): min=302, max=176592, avg=27137.15, stdev=3495.37
lat (usec): min=1159, max=176801, avg=27565.59, stdev=3530.91
clat percentiles (usec):
| 1.00th=[21627], 5.00th=[22938], 10.00th=[23725], 20.00th=[24511],
| 30.00th=[25297], 40.00th=[26084], 50.00th=[26608], 60.00th=[27395],
| 70.00th=[28181], 80.00th=[29230], 90.00th=[30802], 95.00th=[32637],
| 99.00th=[38536], 99.50th=[41681], 99.90th=[53216], 99.95th=[61080],
| 99.99th=[88605]
bw ( MiB/s): min= 9867, max=12502, per=100.00%, avg=11615.89, stdev= 4.83, samples=19153
iops : min=157851, max=200036, avg=185843.21, stdev=77.18, samples=19153
lat (usec) : 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.08%, 50=99.77%
lat (msec) : 100=0.15%, 250=0.01%
cpu : usr=0.31%, sys=58.12%, ctx=5507414, majf=2, minf=810285
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=22288691,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=11.3GiB/s (12.2GB/s), 11.3GiB/s-11.3GiB/s (12.2GB/s-12.2GB/s), io=1360GiB (1461GB), run=120071-120071msec
・ スループット・パフォーマンス・テスト結果
スループット・パフォーマンスは、次の bw 行を見ると、max= 12502 (MiB/s) = 104.87 Gbit/s であることを確認できます。
bw ( MiB/s): min= 9867, max=12502, per=100.00%, avg=11615.89, stdev= 4.83, samples=19153
■ おまけ
● Disk初期化
[root@bm-e5 ~]# lvremove striped_logical_volume volgroup01
Volume group "striped_logical_volume" not found
Cannot process volume group striped_logical_volume
Do you really want to remove active logical volume volgroup01/striped_logical_volume? [y/n]: y
Logical volume "striped_logical_volume" successfully removed.
[root@bm-e5 ~]#
[root@bm-e5 ~]# vgremove volgroup01
Volume group "volgroup01" successfully removed
[root@bm-e5 ~]#
[root@bm-e5 ~]# pvremove /dev/oracleoci/oraclevd[b-f]
Labels on physical volume "/dev/oracleoci/oraclevdb" successfully wiped.
Labels on physical volume "/dev/oracleoci/oraclevdc" successfully wiped.
Labels on physical volume "/dev/oracleoci/oraclevdd" successfully wiped.
Labels on physical volume "/dev/oracleoci/oraclevde" successfully wiped.
Labels on physical volume "/dev/oracleoci/oraclevdf" successfully wiped.
■ 参考
・ Oracle Cloud Infrastructureドキュメント
- Oracle Cloud Infrastructure(OCI)ネットワーキング
- Virtual Cloud Network
- ブロック・ボリューム・パフォーマンス
- シェイプのパフォーマンスの詳細
- 複数ボリューム・アタッチメントのUltra High Performanceサポート
- 超高パフォーマンス・ボリュームのためのアタッチメントの構成
- Linuxベース・インスタンスでブロック・ボリューム・パフォーマンス・テストを行うためのサンプルFIOコマンド
- OCI新機能ハイライト
・ Oracle Blog
- AMD EPYCプロセッサ上のE5インスタンスでパフォーマンスを最大2倍向上
- Shatter the Million IOPS Barrier in the Cloud with OCI Block Storage
・ 計算
- ストレージ技術基礎
- データのサイズ コンバーター
- IOPS, MB/s, GB/day Converter
- メビバイト/秒 (MiB/s - 毎秒), 帯域幅
- MB/sとIOPSの換算の仕方と変換ツール。ランダムリード/ライトの指標の変換。
・ My Oracle Support (MOS)
- How to Calculate the Number of IOPS and Throughput of a Database (Doc ID 2206831.1)
・ Google Cloud
- Linux VM で永続ディスクのパフォーマンスをベンチマークする