Lustre (ラスター) は、大規模のクラスターコンピューティング・スーパーコンピュータで使用されている並列分散ファイルシステムです。
Oracle Cloud Infrastructure (OCI) File Storage with Lustre は、Lustreのパフォーマンスとスケールメリット(ミリ秒単位のメタデータレイテンシ、ペタバイト規模の容量、テラバイト/秒の高スループットなど)を提供しながら、管理の複雑さを排除するフルマネージド型共有ストレージです。OCIはファイルシステムの導入、スケーリング、メンテナンスを完全に自動化・管理するため、お客様は高パフォーマンス・アプリケーションに集中できます。
-
大規模なパフォーマンス:
数千のクライアントとGPUからファイルシステムに並列アクセスします。OCI File Storage with Lustreは、膨大なデータロードを効率的に処理します。このファイルシステムは最大20ペタバイト(PB)まで拡張可能で、トレーニングデータセット、研究モデル、チェックポイントなど、AI、ML、HPCデータを保存できます。プロビジョニングされた容量のテラバイト(TB)ごとに、高い持続的なパフォーマンスを実現します。OCI File Storage with Lustreは、以下のパフォーマンス層を提供します。
プロビジョニングされた TB あたり 125 MBps
プロビジョニングされた TB あたり 250 MBps
プロビジョニングされた TB あたり 500 MBps
プロビジョニングされた TB あたり 1000 MBps
-
フルマネージドサービス:
ストレージサーバー、メタデータサーバー、データボリュームといったLustreインフラストラクチャコンポーネントのセットアップとメンテナンスを代行します。本番環境のアプリケーションを継続しながら、必要に応じて簡単に容量を拡張し、パフォーマンスを集約できます。 -
高可用性アーキテクチャ:
LustreファイルシステムをOCI Object Storageバケットにリンクすることで、オブジェクトストレージのデータをオンデマンドでコピーし、Lustreファイルシステムから直接アクセスできるようになります。これにより、オブジェクトストレージからファイルシステムへのデータのロードが可能になり、アクセス速度が向上します。 -
クォータ管理:
OCI File Storage with Lustreを使用すると、ユーザー、グループ、プロジェクトごとに容量制限を設定できます。これにより、ストレージ消費量を予測し、ストレージコストを抑制できます。
ということで Luster File Storage と Lustreクライアントを作成し、マウントしてスループット・パフォーマンスを測定してみてみます。
■ 構成
■ Lustre ファイル・ストレージ 作成
Lustreファイル・システムを使用したファイル・ストレージを作成します。
● 前提条件とセキュリティ情報および推奨事項
Lustre ファイル・ストレージを作成する前に、次の前提条件が満たされていることを確認してください。
・ 制限事項および考慮事項
・ 必要VCNセキュリティ・ルール
・ 必須IAMポリシー
・ Lustreによるファイル・ストレージの保護
● Service Limit 確認
Lustre ファイル・ストレージサービス制限を確認し不足している場合は、サービス制限の増加をリクエストします。
1) OCI コンソール
リストメニューから、[Governance & Administration] > [Limits, Quotas and Usage] をクリック
2) Limits, Quotas and Usage 画面
[Service]へ "Luster File Storage" を選択し、Service Limit を確認
● Lustre file storage 作成
1) OCI コンソール
リストメニューから、[Storage] > [Luster File Systems] をクリック
2) Lustre file systems 画面
[Create] をクリック
3) Create Lustre file system 画面
次の情報を入力し、[Create] をクリックして作成
・ ファイル・システム名: ファイル・システムの名前を入力
・ マウント名: ファイル・システムのマウント時に使用する名前を入力。 Lustreクライアントは、マウント時にこの名前を使用してファイル・システムを参照します。
・ ファイル・システムの説明: ファイル・システムの説明を入力
・ クラスタ配置グループ: レイテンシが低いように、ファイル・システムやその他のリソースを可用性ドメインに物理的に配置するクラスタ配置グループを選択することをお薦めします。
クラスタ配置グループは、ファイル・システムの作成後に変更できません。
・ パフォーマンス層: ファイル・システムのパフォーマンス層を選択。パフォーマンス層は、ファイル・システムのスループットを制御します。スループットは、プロビジョニングされたストレージのテラバイト(TB)単位で指定されます。ファイル・システムの作成後は、パフォーマンス層を変更できません。
・ 容量: ファイルシステムのストレージ容量を選択。サービス制限を超える容量を選択した場合、増加のリクエストを求めるプロンプトが表示されることがあります。詳細は、Increasing File System Capacityを参照してください。
・ 確認: このボックスをチェックすることで、ファイル・システムを作成すると月次サブスクリプションが開始されることに同意したことになります。ファイル・システムは、請求サイクルの終了前に削除された場合でも、請求サイクルの終了まで請求されます。
・ ネットワーキング: ファイル・システムをマウントするVCNおよびサブネットを選択。ワークロードが実行されているVCNおよびサブネットにファイル・システムをマウントすることをお薦めします。
・ ネットワーク・セキュリティ・グループ: このオプションを有効にし、ファイル・システムの仮想ファイアウォールとして機能するネットワーク・セキュリティ・グループ(NSG)を選択
・ ルート・スカッシュ: ファイル・システムにアクセスするクライアントに、「Squash UID」および「Squash GID」に再マップされたユーザーID (UID)およびグループID (GID)があるかどうかを制御
Squash: 「None」または「Root」を選択。デフォルト値は「なし」であるため、デフォルトでは再マッピングは行われません。
Squash UID: 「Squash」が「Root」に設定されている場合、ルート・ユーザー(UID 0)はこの値に再マップされます。デフォルト値は「65534」です。
Squash GID: 「Squash」が「Root」に設定されている場合、ルート・グループ・ユーザー(GID 0)はこの値に再マップされます。デフォルト値は「65534」です。
rootユーザーをスカッシュする場合、ルート・スカッシュ例外を指定して、特定のクライアントをスカッシュ構成から除外できます。有効なIPアドレスまたは範囲として除外するクライアント・アドレスを入力します。たとえば、10.0.2.4または10.0[2-10][1-255]です。「+別のクライアント・アドレス」を選択して、最大10個の例外を追加します。
■ Lustre File Systemのマウントおよびアクセス
Lustreファイル・システムにアクセスするには、コンピュート・インスタンスで実行されているLustreクライアントが必要です。Mounting and Accessing a Lustre File Systemを参考にファイル・システムをマウントするインスタンスのOSと互換性のあるクライアントを構築およびインストールします。今回は、Oracle Linux 8 へインストールします。
● Unbreakable Enterprise Kernel(UEK) から Red Hat Compatible Kernel (RHCK) へ変更
Oracle LinuxでLustreクライアントを使用するには、カーネルをRed Hat Compatible Kernel (RHCK)に変更する必要があります。カーネル・バージョンの切替えについては、Oracle Linuxでのデフォルト・カーネルの変更を参照して実施します。
1) 設定カーネル確認
起動時に使用するデフォルトカーネルとして既に設定されているカーネルを確認するには、 grubby --default-kernel コマンドを実行します。 さらに、システムで現在実行中のカーネルを確認するには、 uname -r コマンドを使用します。
以下に示すOracle Linux 8 インスタンスでは、起動時に使用するデフォルトカーネルとしてUEKが設定されており、現在システム上でUEKが実行されています。
[opc@client ~]$ sudo grubby --default-kernel
/boot/vmlinuz-5.15.0-306.177.4.el8uek.x86_64
[opc@client ~]$ uname -r
5.15.0-306.177.4.el8uek.x86_64
2) インストールおよび設定されているすべてのカーネルを表示
grubby --info=ALL | grep ^kernelコマンドを使用して、システムにインストールおよび設定されているすべてのカーネルを表示します。システムの/bootディレクトリにある各カーネルに関連付けられたブート構成に関する詳細情報を取得したい場合は、grepの出力のパイプ処理を削除し、grubby --info=ALL を実行するだけです。
以下の例では、el8サフィックスはRHCKを示し、el8uekはUEKを示します。
[opc@client ~]$ sudo grubby --info=ALL | grep ^kernel
kernel="/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64"
kernel="/boot/vmlinuz-5.15.0-306.177.4.el8uek.x86_64"
kernel="/boot/vmlinuz-0-rescue-c6ba8a0f7826174140463c4a8bdad37a"
3) 起動カーネル変更
再起動後に実行するカーネルを指定してgrubby --set-defaultコマンドを実行することで、デフォルトのカーネルを変更できます。以下では、デフォルトのカーネルを 上記で確認した RHCK (5.14.0-503.26.1.el9_5.x86_64) に変更しています。
変更はすぐに反映されるため、あとはシステムを再起動するだけです。
[opc@client ~]$ sudo grubby --set-default /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
The default is /boot/loader/entries/7063910fe2979258f8fd66f2fb8b8567-4.18.0-553.40.1.el8_10.x86_64.conf with index 0 and kernel /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
4) 再起動
[opc@client ~]$ sudo reboot
Connection to 10.0.0.2 closed by remote host.
Connection to 10.0.0.2 closed.
5) 起動カーネル変更確認
[opc@client ~]$ sudo grubby --default-kernel
/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
[opc@client ~]$ uname -r
4.18.0-553.40.1.el8_10.x86_64
● Oracle Linux 8 用 Lustreクライアント構築
管理者は、ファイル・システムにアクセスする必要があるGPUホストまたは他のコンピュート・ホストにLustreクライアントをデプロイします。
Lustreを使用したファイル・ストレージでは、Lustreバージョン2.15.5が使用され、次のOSに2.15.5クライアントを使用できます。
Lustreクライアントを1つのシステムに構築し、Lustreファイル・システムをマウントする各インスタンスにクライアント・パッケージをインストールします。
1) 必要パッケージ インストール
Lustreクライアントを1つのシステムに構築し、Lustreファイル・システムをマウントする各インスタンスにクライアント・パッケージをインストールします。
次のコマンドを使用して、必要なパッケージをインストールします。
release=$(cat /etc/os-release | grep ^VERSION= |cut -f2 -d\" |cut -f1 -d.)
sudo dnf config-manager --set-enabled ol${release}_codeready_builder
sudo dnf config-manager --enable ol${release}_developer_EPEL
sudo yum-config-manager --enable ol${release}_developer
sudo yum install git libtool patch pkgconfig libnl3-devel.x86_64 libblkid-devel libuuid-devel rpm-build kernel-rpm-macros kernel-devel kernel-abi-whitelists libmount libmount-devel libyaml-devel
[opc@client ~]$ release=$(cat /etc/os-release | grep ^VERSION= |cut -f2 -d\" |cut -f1 -d.)
[opc@client ~]$ sudo dnf config-manager --set-enabled ol${release}_codeready_builder
[opc@client ~]$ sudo dnf config-manager --enable ol${release}_developer_EPEL
[opc@client ~]$ sudo yum-config-manager --enable ol${release}_developer
[opc@client ~]$ sudo yum install git libtool patch pkgconfig libnl3-devel.x86_64 libblkid-devel libuuid-devel rpm-build kernel-rpm-macros kernel-devel kernel-abi-whitelists libmount libmount-devel libyaml-devel
Ksplice for Oracle Linux 8 (x86_64) 50 MB/s | 19 MB 00:00
MySQL 8.4 Server Community for Oracle Linux 8 (x86_64) 19 MB/s | 846 kB 00:00
MySQL 8.4 Tools Community for Oracle Linux 8 (x86_64) 2.7 MB/s | 305 kB 00:00
・・・
省略
・・・
python3-rpm-macros-3-45.el8.noarch qt5-srpm-macros-5.15.3-1.el8.noarch
redhat-rpm-config-131-1.0.1.el8.noarch rpm-build-4.14.3-32.0.1.el8_10.x86_64
rust-srpm-macros-5-2.el8.noarch zstd-1.4.4-1.0.1.el8.x86_64
Complete!
2) クライアント チェックアウト
次のコマンドを使用して、Lustreクライアント・ソース・リポジトリをクローニングし、クライアントをチェックアウトします。
git clone git://git.whamcloud.com/fs/lustre-release.git lustre-client
cd lustre-client/
git checkout tags/2.15.5
[opc@client ~]$ git clone git://git.whamcloud.com/fs/lustre-release.git lustre-client
Cloning into 'lustre-client'...
remote: Counting objects: 399611, done.
remote: Compressing objects: 100% (86956/86956), done.
remote: Total 399611 (delta 293903), reused 398206 (delta 292500)
Receiving objects: 100% (399611/399611), 230.64 MiB | 7.67 MiB/s, done.
Resolving deltas: 100% (293903/293903), done.
[opc@client ~]$ cd lustre-client/
[opc@client lustre-client]$ git checkout tags/2.15.5
Note: switching to 'tags/2.15.5'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 21921fb111 New release 2.15.5
3) RPM構築
クライアントおよびRPMを構築します。現在のディレクトリ内のすべてのLustre RPMは、次のコマンドを使用して構築されます。
sudo sh autogen.sh
./configure --enable-client
sudo make
sudo make rpms
sudo make dkms-rpm
[opc@client lustre-client]$ sudo sh autogen.sh
configure.ac:15: installing 'config/compile'
configure.ac:10: installing 'config/config.guess'
configure.ac:10: installing 'config/config.sub'
・・・
省略
・・・
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
CC: gcc
LD: /usr/bin/ld -m elf_x86_64
CPPFLAGS: -include /home/opc/lustre-client/undef.h -include /home/opc/lustre-client/config.h -I/home/opc/lustre-client/lnet/include/uapi -I/home/opc/lustre-client/lustre/include/uapi -I/home/opc/lustre-client/libcfs/include -I/home/opc/lustre-client/lnet/utils/ -I/home/opc/lustre-client/lustre/include
CFLAGS: -g -O2 -Wall -Werror
EXTRA_KCFLAGS: -include /home/opc/lustre-client/undef.h -include /home/opc/lustre-client/config.h -g -I/home/opc/lustre-client/libcfs/include -I/home/opc/lustre-client/libcfs/include/libcfs -I/home/opc/lustre-client/lnet/include/uapi -I/home/opc/lustre-client/lnet/include -I/home/opc/lustre-client/lustre/include/uapi -I/home/opc/lustre-client/lustre/include -Wno-format-truncation -Wno-stringop-truncation -Wno-stringop-overflow
Type 'make' to build Lustre.
[opc@client lustre-client]$ sudo make
grep -v config.h.in config.h.in > undef.h
make all-recursive
make[1]: Entering directory '/home/opc/lustre-client'
Making all in .
make[2]: Entering directory '/home/opc/lustre-client'
・・・
省略
・・・
make[3]: Leaving directory '/home/opc/lustre-client/lustre'
make[2]: Leaving directory '/home/opc/lustre-client/lustre'
make[1]: Leaving directory '/home/opc/lustre-client'
[opc@client lustre-client]$ sudo make rpms
make dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory '/home/opc/lustre-client'
make distdir-am
make[2]: Entering directory '/home/opc/lustre-client'
・・・
省略
・・・
+ cd /tmp/rpmbuild-lustre-root-jUEFXMcI/BUILD
+ rm -rf lustre-2.15.5
+ exit 0
[opc@client lustre-client]$ sudo make dkms-rpm
make dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory '/home/opc/lustre-client'
make distdir-am
・・・
省略
・・・
+ cd /tmp/rpmbuild-lustre-root-YO2NcifH/BUILD
+ rm -rf lustre-2.15.5
+ exit 0
4) RPM 確認
RPMを調べます。
[opc@client lustre-client]$ ls -l *.rpm
-rw-r--r--. 1 root root 2618112 Apr 15 02:08 kmod-lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 24856240 Apr 15 02:08 kmod-lustre-client-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 51232 Apr 15 02:08 kmod-lustre-client-tests-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 308968 Apr 15 02:08 kmod-lustre-client-tests-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 20313002 Apr 15 02:06 lustre-2.15.5-1.src.rpm
-rw-r--r--. 1 root root 682464 Apr 15 02:08 lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 1189124 Apr 15 02:08 lustre-client-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 2414888 Apr 15 02:08 lustre-client-debugsource-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 211328 Apr 15 02:08 lustre-client-devel-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 17856948 Apr 15 02:17 lustre-client-dkms-2.15.5-1.el8.noarch.rpm
-rw-r--r--. 1 root root 20304529 Apr 15 02:17 lustre-client-dkms-2.15.5-1.el8.src.rpm
-rw-r--r--. 1 root root 12671564 Apr 15 02:08 lustre-client-tests-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 517556 Apr 15 02:08 lustre-client-tests-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 46280 Apr 15 02:08 lustre-iokit-2.15.5-1.el8.x86_64.rpm
5) Lustre クライアント インストール準備
構築した同じインスタンスに Lustreクライアントをインストールする場合は、次のコマンドを実行します。
sudo make install
sudo depmod
sudo modprobe lustre
[opc@client lustre-client]$ sudo make install
Making install in .
make[1]: Entering directory '/home/opc/lustre-client'
make DEQUOTE_CC_VERSION_TEXT=yes \
・・・
省略
・・・
make[3]: Leaving directory '/home/opc/lustre-client/lustre'
make[2]: Leaving directory '/home/opc/lustre-client/lustre'
make[1]: Leaving directory '/home/opc/lustre-client/lustre'
[opc@client lustre-client]$ sudo depmod
[opc@client lustre-client]$ sudo modprobe lustre
■ Oracle Linux 8 Lustreクライアントのインストール
この例では、Lustre Dynamic Kernel Module Support (DKMS)クライアント・パッケージを使用して、異なるカーネル・バージョン間の柔軟性を確保しています。構築したDKMS RPMは、Oracle Linux 8 で動作します。ただし、DKMSクライアントを使用している場合は、インストール時にLustreモジュールを構築するか、カーネルをアップグレードする必要があります。Linuxモジュール用の非DKMS kmod-lustre-clientパッケージなど、インストールするRPMを選択できます。
● Lustreクライアント ディレクトリ作成
Lustreクライアントをインストールするインスタンスにディレクトリを作成
[opc@client lustre-client]$ pwd
/home/opc/lustre-client
[opc@client lustre-client]$ ls -l | grep lustre-client-
-rw-r--r--. 1 root root 2618112 Apr 15 02:08 kmod-lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 24856240 Apr 15 02:08 kmod-lustre-client-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 51232 Apr 15 02:08 kmod-lustre-client-tests-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 308968 Apr 15 02:08 kmod-lustre-client-tests-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 682464 Apr 15 02:08 lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 1189124 Apr 15 02:08 lustre-client-debuginfo-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 2414888 Apr 15 02:08 lustre-client-debugsource-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 211328 Apr 15 02:08 lustre-client-devel-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 17856948 Apr 15 02:17 lustre-client-dkms-2.15.5-1.el8.noarch.rpm
-rw-r--r--. 1 root root 20304529 Apr 15 02:17 lustre-client-dkms-2.15.5-1.el8.src.rpm
-rw-r--r--. 1 root root 12671564 Apr 15 02:08 lustre-client-tests-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 517556 Apr 15 02:08 lustre-client-tests-debuginfo-2.15.5-1.el8.x86_64.rpm
[opc@client lustre-client]$ mkdir lustre-rpms
[opc@client lustre-client]$ cp lustre-client-2.15.5-1.el8.x86_64.rpm lustre-client-dkms-2.15.5-1.el8.noarch.rpm ./lustre-rpms/
[opc@client lustre-client]$ ls -l ./lustre-rpms/
total 18108
-rw-r--r--. 1 opc opc 682464 Apr 15 03:05 lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 opc opc 17856948 Apr 15 03:05 lustre-client-dkms-2.15.5-1.el8.noarch.rpm
● RHCKカーネルを実行していることを確認
Oracle LinuxでLustreクライアントを使用するには、カーネルをRed Hat Compatible Kernel (RHCK)に変更する必要があります。
[opc@client lustre-client]$ uname -r
4.18.0-553.40.1.el8_10.x86_64
● 依存関係インストール
依存関係に必要な Linuxリポジトリを有効にし、次のコマンドを使用して依存関係をインストールします。
[opc@client lustre-client]$ release=$(cat /etc/os-release | grep ^VERSION= |cut -f2 -d\" |cut -f1 -d.)
[opc@client lustre-client]$ sudo dnf config-manager --set-enabled ol${release}_codeready_builder
[opc@client lustre-client]$ sudo dnf config-manager --enable ol${release}_developer_EPEL
[opc@client lustre-client]$ sudo yum install dkms libmount-devel libyaml-devel
Oracle Linux 8 EPEL Packages for Development (x86_64) 380 kB/s | 4.3 kB 00:00
Oracle Linux 8 BaseOS Latest (x86_64) 102 kB/s | 4.3 kB 00:00
Oracle Linux 8 Application Stream (x86_64) 343 kB/s | 4.5 kB 00:00
Oracle Linux 8 CodeReady Builder (x86_64) - Unsupported 184 kB/s | 3.8 kB 00:00
Oracle Linux 8 Addons (x86_64) 185 kB/s | 3.5 kB 00:00
Package libmount-devel-2.32.1-46.0.1.el8.x86_64 is already installed.
Package libyaml-devel-0.1.7-5.el8.x86_64 is already installed.
Dependencies resolved.
===============================================================================================================
Package Architecture Version Repository Size
===============================================================================================================
Installing:
dkms noarch 3.1.6-1.el8 ol8_developer_EPEL 86 k
Transaction Summary
===============================================================================================================
Install 1 Package
Total download size: 86 k
Installed size: 196 k
Is this ok [y/N]: y
Downloading Packages:
dkms-3.1.6-1.el8.noarch.rpm 1.1 MB/s | 86 kB 00:00
---------------------------------------------------------------------------------------------------------------
Total 1.1 MB/s | 86 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : dkms-3.1.6-1.el8.noarch 1/1
Running scriptlet: dkms-3.1.6-1.el8.noarch 1/1
Verifying : dkms-3.1.6-1.el8.noarch 1/1
Installed:
dkms-3.1.6-1.el8.noarch
Complete!
● クライアントRPM インストール
次のコマンドを使用して、クライアントRPMをインストールします。
[opc@client lustre-client]$ cd lustre-rpms
[opc@client lustre-rpms]$ ls -l
total 18108
-rw-r--r--. 1 opc opc 682464 Apr 15 03:05 lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 opc opc 17856948 Apr 15 03:05 lustre-client-dkms-2.15.5-1.el8.noarch.rpm
[opc@client lustre-rpms]$ sudo yum localinstall -y ./*.rpm
Last metadata expiration check: 0:00:48 ago on Tue 15 Apr 2025 03:08:41 AM GMT.
Error: Will not install a source rpm package (lustre-2.15.5-1.src).
[opc@client lustre-client]$ cd lustre-rpms
[opc@client lustre-rpms]$ ls -l
total 18108
-rw-r--r--. 1 opc opc 682464 Apr 15 03:05 lustre-client-2.15.5-1.el8.x86_64.rpm
-rw-r--r--. 1 opc opc 17856948 Apr 15 03:05 lustre-client-dkms-2.15.5-1.el8.noarch.rpm
[opc@client lustre-rpms]$ sudo yum localinstall -y ./*.rpm
Last metadata expiration check: 0:03:46 ago on Tue 15 Apr 2025 03:08:41 AM GMT.
Dependencies resolved.
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
・・・
省略
・・・
perl-perlfaq-5.20180605-1.el8.noarch
perl-utils-5.26.3-422.el8.noarch
perl-version-6:0.99.24-1.el8.x86_64
Complete!
● モジュール テスト
次のコマンドを使用してモジュールをテストします。
[opc@client lustre-rpms]$ sudo modprobe lustre
[opc@client lustre-rpms]$ sudo lsmod |grep lustre
lustre 1052672 0
lmv 208896 1 lustre
mdc 286720 1 lustre
lov 348160 2 mdc,lustre
ptlrpc 1441792 7 fld,osc,fid,lov,mdc,lmv,lustre
obdclass 3371008 8 fld,osc,fid,ptlrpc,lov,mdc,lmv,lustre
lnet 720896 6 osc,obdclass,ptlrpc,ksocklnd,lmv,lustre
libcfs 266240 11 fld,lnet,osc,fid,obdclass,ptlrpc,ksocklnd,lov,mdc,lmv,lustre
● 設定反映再起動
Lustreクライアントの準備ができました。システムを再起動してください。
[opc@client lustre-rpms]$ sudo reboot
Connection to 10.0.0.2 closed by remote host.
Connection to 10.0.0.2 closed.
■ マウント・コマンド
Lustreクライアント・モジュールがインストールされているインスタンスから、ファイル・システムをマウントできます。
● mountコマンドの取得
特定のファイル・システムの mountコマンドを取得するには、次のステップを実行します。
1) Luter 画面
「Lustre File Systems」リスト・ページで、使用するファイル・システムを選択し、ファイル・システムの詳細ページの「Lustre Properties」で、「Mount command」を見つけます。
「コピー」を選択して、マウント・コマンドをクリップボードにコピーします。
mount -t lustre 10.0.2.6@tcp:/lustrefs /mnt/mymountpoint
● Firewalld 設定
OCI コンピュートはデフォルト Firewalld がONです。
mount前にFirewallの設定を確認し、TCP 988 Port が通るよう設定します。
1) firewalld 設定
TCP 988 Portを登録
[root@client ~]# firewall-cmd --permanent --add-port=988/tcp
success
2) firewalld 設定確認
[root@client ~]# firewall-cmd --list-all --permanent | grep 988
ports: 988/tcp
3) firewalld 設定チェック
[root@client ~]# firewall-cmd --check-config
success
4) firewalld 設定反映
[root@client ~]# firewall-cmd --reload
success
● ファイルシステムのマウント
1) Mount ディレクトリ作成
[root@client ~]# sudo mkdir /mnt/lustre
[root@client ~]# ls -ld /mnt/lustre/
drwxr-xr-x. 2 root root 6 Apr 15 03:24 /mnt/lustre/
2) Mount実行
[root@client ~]# mount -t lustre 10.0.2.6@tcp:/lustrefs /mnt/lustre
3) Mount確認
[root@client ~]# mount | grep lustre
10.0.2.6@tcp:/lustrefs on /mnt/lustre type lustre (rw,seclabel,checksum,flock,nouser_xattr,lruresize,lazystatfs,nouser_fid2path,verbose,encrypt)
[root@client ~]# df -hT | grep lustre
10.0.2.6@tcp:/lustrefs lustre 30T 102G 28T 1% /mnt/lustre
[root@client ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 40G 0 40G 0% /dev
tmpfs tmpfs 40G 0 40G 0% /dev/shm
tmpfs tmpfs 40G 8.8M 40G 1% /run
tmpfs tmpfs 40G 0 40G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root xfs 36G 14G 22G 39% /
/dev/mapper/ocivolume-oled xfs 10G 351M 9.7G 4% /var/oled
/dev/sda2 xfs 1014M 394M 621M 39% /boot
/dev/sda1 vfat 100M 6.0M 94M 6% /boot/efi
tmpfs tmpfs 7.9G 0 7.9G 0% /run/user/986
tmpfs tmpfs 7.9G 0 7.9G 0% /run/user/1000
10.0.2.6@tcp:/lustrefs lustre 30T 102G 28T 1% /mnt/lustre
[root@client ~]# lfs df -h
UUID bytes Used Available Use% Mounted on
lustrefs-MDT0000_UUID 563.4G 976.7M 512.4G 1% /mnt/lustre[MDT:0]
lustrefs-MDT0001_UUID 563.4G 3.5G 509.9G 1% /mnt/lustre[MDT:1]
lustrefs-OST0000_UUID 2.4T 1.5T 835.1G 65% /mnt/lustre[OST:0]
lustrefs-OST0001_UUID 2.4T 1.5T 837.9G 65% /mnt/lustre[OST:1]
lustrefs-OST0002_UUID 2.4T 1.5T 838.9G 65% /mnt/lustre[OST:2]
lustrefs-OST0003_UUID 2.4T 1.5T 838.2G 65% /mnt/lustre[OST:3]
lustrefs-OST0004_UUID 2.4T 1.5T 833.9G 65% /mnt/lustre[OST:4]
lustrefs-OST0005_UUID 2.4T 1.5T 847.9G 65% /mnt/lustre[OST:5]
lustrefs-OST0006_UUID 2.4T 1.5T 837.5G 65% /mnt/lustre[OST:6]
lustrefs-OST0007_UUID 2.4T 1.5T 835.5G 65% /mnt/lustre[OST:7]
lustrefs-OST0008_UUID 2.4T 1.5T 842.6G 65% /mnt/lustre[OST:8]
lustrefs-OST0009_UUID 2.4T 1.5T 836.9G 65% /mnt/lustre[OST:9]
lustrefs-OST000a_UUID 2.4T 1.5T 838.6G 65% /mnt/lustre[OST:10]
lustrefs-OST000b_UUID 2.4T 1.5T 847.9G 65% /mnt/lustre[OST:11]
filesystem_summary: 29.4T 17.9T 9.8T 65% /mnt/lustre
・ ストライピング確認
[root@client ~]# lfs getstripe /mnt/lustre/
/mnt/lustre/
lcm_layout_gen: 0
lcm_mirror_count: 1
lcm_entry_count: 4
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 0
lcme_extent.e_end: 104857600
stripe_count: 1 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 104857600
lcme_extent.e_end: 10737418240
stripe_count: 8 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 10737418240
lcme_extent.e_end: 107374182400
stripe_count: 16 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 107374182400
lcme_extent.e_end: EOF
stripe_count: 32 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
・ /mnt/lustre/内ディレクトリ配下に存在する全てのオブジェクトについてStripe 情報確認
[root@client ~]# lfs getstripe -r /mnt/lustre/
/mnt/lustre/
lcm_layout_gen: 0
lcm_mirror_count: 1
lcm_entry_count: 4
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 0
lcme_extent.e_end: 104857600
stripe_count: 1 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 104857600
lcme_extent.e_end: 10737418240
stripe_count: 8 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 10737418240
lcme_extent.e_end: 107374182400
stripe_count: 16 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
lcme_id: N/A
lcme_mirror_id: N/A
lcme_flags: 0
lcme_extent.e_start: 107374182400
lcme_extent.e_end: EOF
stripe_count: 32 stripe_size: 1048576 pattern: raid0 stripe_offset: -1
・ Quota 確認
[root@client ~]# lfs quota /mnt/lustre/
Disk quotas for usr root (uid 0):
Filesystem kbytes quota limit grace files quota limit grace
/mnt/lustre/ 2624327948 0 0 - 764 0 0 -
Disk quotas for grp root (gid 0):
Filesystem kbytes quota limit grace files quota limit grace
/mnt/lustre/ 2624327948 0 0 - 764 0 0
・ 各obdidx Object Name 確認
[root@client ~]# lfs osts
OBDS:
0: lustrefs-OST0000_UUID ACTIVE
1: lustrefs-OST0001_UUID ACTIVE
2: lustrefs-OST0002_UUID ACTIVE
3: lustrefs-OST0003_UUID ACTIVE
4: lustrefs-OST0004_UUID ACTIVE
5: lustrefs-OST0005_UUID ACTIVE
6: lustrefs-OST0006_UUID ACTIVE
7: lustrefs-OST0007_UUID ACTIVE
8: lustrefs-OST0008_UUID ACTIVE
9: lustrefs-OST0009_UUID ACTIVE
10: lustrefs-OST000a_UUID ACTIVE
11: lustrefs-OST000b_UUID ACTIVE
■ FIO コマンド使用して スループット・パフォーマンス・テスト
Linuxベース・インスタンスでブロック・ボリューム・パフォーマンス・テストを行うためのサンプルFIOコマンドを参照して FIOコマンドで IOPSとスループットのパフォーマンス・テストをします。
テストするには、次のFIOサンプル・コマンドを使用します。コマンドを直接実行することも、コマンドを使用してジョブ・ファイルを作成してからそのジョブ・ファイルを実行することもできます。
● Lustre File System パフォーマンス確認
作成した Lustre File System Aggregate throughput (MB/s) を確認します。
今回は金銭の都合で、、最小容量 31.2 TB と 最小パフォーマンス TB あたり 125 MBps の Aggregate throughput (MB/s): 3,900 であることを確認できます。
● FIO インストール
1) Install FIO
Oracle LinuxまたはCentOSシステムにFIOをインストールして構成するには、次のコマンドを実行します
[root@client ~]# dnf install fio -y
Last metadata expiration check: 0:05:37 ago on Thu 17 Apr 2025 12:07:22 PM GMT.
Dependencies resolved.
==================================================================================================================================================================================================
Package Architecture Version Repository Size
==================================================================================================================================================================================================
Installing:
fio x86_64 3.19-4.el8 ol8_appstream 538 k
Installing dependencies:
boost-iostreams x86_64 1.66.0-13.el8 ol8_appstream 42 k
boost-program-options x86_64 1.66.0-13.el8 ol8_appstream 141 k
boost-random x86_64 1.66.0-13.el8 ol8_appstream 22 k
daxctl-libs x86_64 73-1.0.2.el8 ol8_UEKR7 44 k
libpmem x86_64 1.6.1-1.el8 ol8_appstream 79 k
libpmemblk x86_64 1.6.1-1.el8 ol8_appstream 92 k
librados2 x86_64 1:12.2.7-9.0.2.el8 ol8_appstream 2.9 M
librbd1 x86_64 1:12.2.7-9.0.2.el8 ol8_appstream 1.1 M
librdmacm x86_64 48.0-1.el8 ol8_baseos_latest 77 k
ndctl-libs x86_64 73-1.0.2.el8 ol8_UEKR7 87 k
Transaction Summary
==================================================================================================================================================================================================
Install 11 Packages
Total download size: 5.0 M
Installed size: 17 M
Downloading Packages:
(1/11): boost-iostreams-1.66.0-13.el8.x86_64.rpm 1.8 MB/s | 42 kB 00:00
(2/11): boost-random-1.66.0-13.el8.x86_64.rpm 6.2 MB/s | 22 kB 00:00
(3/11): librdmacm-48.0-1.el8.x86_64.rpm 2.4 MB/s | 77 kB 00:00
(4/11): boost-program-options-1.66.0-13.el8.x86_64.rpm 4.1 MB/s | 141 kB 00:00
(5/11): fio-3.19-4.el8.x86_64.rpm 31 MB/s | 538 kB 00:00
(6/11): libpmem-1.6.1-1.el8.x86_64.rpm 2.4 MB/s | 79 kB 00:00
(7/11): librados2-12.2.7-9.0.2.el8.x86_64.rpm 62 MB/s | 2.9 MB 00:00
(8/11): librbd1-12.2.7-9.0.2.el8.x86_64.rpm 30 MB/s | 1.1 MB 00:00
(9/11): daxctl-libs-73-1.0.2.el8.x86_64.rpm 3.9 MB/s | 44 kB 00:00
(10/11): libpmemblk-1.6.1-1.el8.x86_64.rpm 1.3 MB/s | 92 kB 00:00
(11/11): ndctl-libs-73-1.0.2.el8.x86_64.rpm 6.8 MB/s | 87 kB 00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 43 MB/s | 5.0 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : daxctl-libs-73-1.0.2.el8.x86_64 1/11
Installing : libpmem-1.6.1-1.el8.x86_64 2/11
Running scriptlet: libpmem-1.6.1-1.el8.x86_64 2/11
Installing : boost-random-1.66.0-13.el8.x86_64 3/11
Running scriptlet: boost-random-1.66.0-13.el8.x86_64 3/11
Installing : boost-program-options-1.66.0-13.el8.x86_64 4/11
Running scriptlet: boost-program-options-1.66.0-13.el8.x86_64 4/11
Installing : boost-iostreams-1.66.0-13.el8.x86_64 5/11
Running scriptlet: boost-iostreams-1.66.0-13.el8.x86_64 5/11
Installing : librados2-1:12.2.7-9.0.2.el8.x86_64 6/11
Running scriptlet: librados2-1:12.2.7-9.0.2.el8.x86_64 6/11
Installing : librbd1-1:12.2.7-9.0.2.el8.x86_64 7/11
Running scriptlet: librbd1-1:12.2.7-9.0.2.el8.x86_64 7/11
Installing : ndctl-libs-73-1.0.2.el8.x86_64 8/11
Installing : libpmemblk-1.6.1-1.el8.x86_64 9/11
Running scriptlet: libpmemblk-1.6.1-1.el8.x86_64 9/11
Installing : librdmacm-48.0-1.el8.x86_64 10/11
Installing : fio-3.19-4.el8.x86_64 11/11
Running scriptlet: fio-3.19-4.el8.x86_64 11/11
Verifying : librdmacm-48.0-1.el8.x86_64 1/11
Verifying : boost-iostreams-1.66.0-13.el8.x86_64 2/11
Verifying : boost-program-options-1.66.0-13.el8.x86_64 3/11
Verifying : boost-random-1.66.0-13.el8.x86_64 4/11
Verifying : fio-3.19-4.el8.x86_64 5/11
Verifying : libpmem-1.6.1-1.el8.x86_64 6/11
Verifying : libpmemblk-1.6.1-1.el8.x86_64 7/11
Verifying : librados2-1:12.2.7-9.0.2.el8.x86_64 8/11
Verifying : librbd1-1:12.2.7-9.0.2.el8.x86_64 9/11
Verifying : daxctl-libs-73-1.0.2.el8.x86_64 10/11
Verifying : ndctl-libs-73-1.0.2.el8.x86_64 11/11
Installed:
boost-iostreams-1.66.0-13.el8.x86_64 boost-program-options-1.66.0-13.el8.x86_64 boost-random-1.66.0-13.el8.x86_64 daxctl-libs-73-1.0.2.el8.x86_64 fio-3.19-4.el8.x86_64
libpmem-1.6.1-1.el8.x86_64 libpmemblk-1.6.1-1.el8.x86_64 librados2-1:12.2.7-9.0.2.el8.x86_64 librbd1-1:12.2.7-9.0.2.el8.x86_64 librdmacm-48.0-1.el8.x86_64
ndctl-libs-73-1.0.2.el8.x86_64
Complete!
2) FIO インストール確認
[root@client ~]# fio -v
fio-3.19
● 順次読取りのテスト
・順次読取りのテスト実行
データベース・ワークロードなど、順次アクセス・パターンを利用できるワークロードに対しては、順次読取りをテストすることにより、このパターンのパフォーマンスを確認できます。
順次読取りをテストするには、次のコマンドを実行します。
[root@client ~]# sudo fio --directory=/mnt/lustre/fio --direct=1 --rw=read --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=200 --time_based --group_reporting --name=read_throughput --eta-newline=1 --readonly
read_throughput: (g=0): rw=read, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, (T) 256KiB-256KiB, ioengine=libaio, iodepth=64
...
fio-3.19
Starting 200 processes
Jobs: 200 (f=200)
Jobs: 200 (f=200): [R(200)][2.5%][r=2246MiB/s][r=8983 IOPS][eta 01m:57s]
Jobs: 200 (f=200): [R(200)][3.3%][r=2212MiB/s][r=8846 IOPS][eta 01m:56s]
Jobs: 200 (f=200): [R(200)][5.0%][r=2258MiB/s][r=9030 IOPS][eta 01m:55s]
Jobs: 200 (f=200): [R(200)][5.8%][r=2320MiB/s][r=9278 IOPS][eta 01m:54s]
Jobs: 200 (f=200): [R(200)][6.6%][r=2350MiB/s][r=9398 IOPS][eta 01m:53s]
Jobs: 200 (f=200): [R(200)][7.4%][r=2502MiB/s][r=10.0k IOPS][eta 01m:52s]
Jobs: 200 (f=200): [R(200)][8.3%][r=2437MiB/s][r=9746 IOPS][eta 01m:51s]
Jobs: 200 (f=200): [R(200)][9.1%][r=2465MiB/s][r=9858 IOPS][eta 01m:50s]
Jobs: 200 (f=200): [R(200)][9.9%][r=2437MiB/s][r=9749 IOPS][eta 01m:49s]
Jobs: 200 (f=200): [R(200)][10.7%][r=2498MiB/s][r=9990 IOPS][eta 01m:48s]
Jobs: 200 (f=200): [R(200)][11.6%][r=2543MiB/s][r=10.2k IOPS][eta 01m:47s]
Jobs: 200 (f=200): [R(200)][12.4%][r=2582MiB/s][r=10.3k IOPS][eta 01m:46s]
Jobs: 200 (f=200): [R(200)][13.2%][r=2547MiB/s][r=10.2k IOPS][eta 01m:45s]
Jobs: 200 (f=200): [R(200)][14.0%][r=2569MiB/s][r=10.3k IOPS][eta 01m:44s]
Jobs: 200 (f=200): [R(200)][14.9%][r=2535MiB/s][r=10.1k IOPS][eta 01m:43s]
Jobs: 200 (f=200): [R(200)][15.7%][r=2418MiB/s][r=9671 IOPS][eta 01m:42s]
Jobs: 200 (f=200): [R(200)][16.5%][r=2452MiB/s][r=9807 IOPS][eta 01m:41s]
Jobs: 200 (f=200): [R(200)][17.4%][r=2449MiB/s][r=9797 IOPS][eta 01m:40s]
Jobs: 200 (f=200): [R(200)][18.2%][r=2369MiB/s][r=9474 IOPS][eta 01m:39s]
Jobs: 200 (f=200): [R(200)][19.0%][r=2258MiB/s][r=9032 IOPS][eta 01m:38s]
Jobs: 200 (f=200): [R(200)][19.8%][r=2266MiB/s][r=9065 IOPS][eta 01m:37s]
Jobs: 200 (f=200): [R(200)][20.7%][r=2264MiB/s][r=9054 IOPS][eta 01m:36s]
Jobs: 200 (f=200): [R(200)][21.5%][r=2203MiB/s][r=8811 IOPS][eta 01m:35s]
Jobs: 200 (f=200): [R(200)][22.3%][r=2180MiB/s][r=8719 IOPS][eta 01m:34s]
Jobs: 200 (f=200): [R(200)][23.1%][r=2213MiB/s][r=8851 IOPS][eta 01m:33s]
Jobs: 200 (f=200): [R(200)][24.0%][r=2129MiB/s][r=8516 IOPS][eta 01m:32s]
Jobs: 200 (f=200): [R(200)][24.8%][r=2176MiB/s][r=8705 IOPS][eta 01m:31s]
Jobs: 200 (f=200): [R(200)][25.6%][r=2215MiB/s][r=8861 IOPS][eta 01m:30s]
Jobs: 200 (f=200): [R(200)][26.4%][r=2193MiB/s][r=8772 IOPS][eta 01m:29s]
Jobs: 200 (f=200): [R(200)][27.3%][r=2206MiB/s][r=8823 IOPS][eta 01m:28s]
Jobs: 200 (f=200): [R(200)][28.1%][r=2287MiB/s][r=9148 IOPS][eta 01m:27s]
Jobs: 200 (f=200): [R(200)][28.9%][r=2228MiB/s][r=8912 IOPS][eta 01m:26s]
Jobs: 200 (f=200): [R(200)][29.8%][r=2338MiB/s][r=9353 IOPS][eta 01m:25s]
Jobs: 200 (f=200): [R(200)][30.6%][r=2265MiB/s][r=9061 IOPS][eta 01m:24s]
Jobs: 200 (f=200): [R(200)][31.4%][r=2380MiB/s][r=9518 IOPS][eta 01m:23s]
Jobs: 200 (f=200): [R(200)][32.2%][r=2294MiB/s][r=9177 IOPS][eta 01m:22s]
Jobs: 200 (f=200): [R(200)][33.1%][r=2271MiB/s][r=9084 IOPS][eta 01m:21s]
Jobs: 200 (f=200): [R(200)][33.9%][r=2250MiB/s][r=9000 IOPS][eta 01m:20s]
Jobs: 200 (f=200): [R(200)][34.7%][r=2166MiB/s][r=8662 IOPS][eta 01m:19s]
Jobs: 200 (f=200): [R(200)][35.5%][r=2249MiB/s][r=8995 IOPS][eta 01m:18s]
Jobs: 200 (f=200): [R(200)][36.4%][r=2337MiB/s][r=9347 IOPS][eta 01m:17s]
Jobs: 200 (f=200): [R(200)][37.2%][r=2365MiB/s][r=9458 IOPS][eta 01m:16s]
Jobs: 200 (f=200): [R(200)][38.0%][r=2210MiB/s][r=8840 IOPS][eta 01m:15s]
Jobs: 200 (f=200): [R(200)][38.8%][r=2206MiB/s][r=8825 IOPS][eta 01m:14s]
Jobs: 200 (f=200): [R(200)][39.7%][r=2354MiB/s][r=9414 IOPS][eta 01m:13s]
Jobs: 200 (f=200): [R(200)][40.5%][r=2276MiB/s][r=9103 IOPS][eta 01m:12s]
Jobs: 200 (f=200): [R(200)][41.3%][r=2350MiB/s][r=9400 IOPS][eta 01m:11s]
Jobs: 200 (f=200): [R(200)][42.1%][r=2330MiB/s][r=9318 IOPS][eta 01m:10s]
Jobs: 200 (f=200): [R(200)][43.0%][r=2248MiB/s][r=8990 IOPS][eta 01m:09s]
Jobs: 200 (f=200): [R(200)][43.8%][r=2139MiB/s][r=8554 IOPS][eta 01m:08s]
Jobs: 200 (f=200): [R(200)][44.6%][r=2142MiB/s][r=8566 IOPS][eta 01m:07s]
Jobs: 200 (f=200): [R(200)][45.5%][r=2261MiB/s][r=9045 IOPS][eta 01m:06s]
Jobs: 200 (f=200): [R(200)][46.3%][r=2318MiB/s][r=9273 IOPS][eta 01m:05s]
Jobs: 200 (f=200): [R(200)][47.1%][r=2387MiB/s][r=9548 IOPS][eta 01m:04s]
Jobs: 200 (f=200): [R(200)][47.9%][r=2386MiB/s][r=9544 IOPS][eta 01m:03s]
Jobs: 200 (f=200): [R(200)][48.8%][r=2328MiB/s][r=9311 IOPS][eta 01m:02s]
Jobs: 200 (f=200): [R(200)][49.6%][r=2283MiB/s][r=9131 IOPS][eta 01m:01s]
Jobs: 200 (f=200): [R(200)][50.4%][r=2355MiB/s][r=9421 IOPS][eta 01m:00s]
Jobs: 200 (f=200): [R(200)][51.2%][r=2232MiB/s][r=8928 IOPS][eta 00m:59s]
Jobs: 200 (f=200): [R(200)][52.1%][r=2301MiB/s][r=9203 IOPS][eta 00m:58s]
Jobs: 200 (f=200): [R(200)][52.9%][r=2328MiB/s][r=9312 IOPS][eta 00m:57s]
Jobs: 200 (f=200): [R(200)][53.7%][r=2281MiB/s][r=9123 IOPS][eta 00m:56s]
Jobs: 200 (f=200): [R(200)][54.5%][r=2366MiB/s][r=9465 IOPS][eta 00m:55s]
Jobs: 200 (f=200): [R(200)][55.4%][r=2406MiB/s][r=9623 IOPS][eta 00m:54s]
Jobs: 200 (f=200): [R(200)][56.2%][r=2300MiB/s][r=9201 IOPS][eta 00m:53s]
Jobs: 200 (f=200): [R(200)][57.0%][r=2276MiB/s][r=9102 IOPS][eta 00m:52s]
Jobs: 200 (f=200): [R(200)][57.9%][r=2199MiB/s][r=8797 IOPS][eta 00m:51s]
Jobs: 200 (f=200): [R(200)][58.7%][r=2308MiB/s][r=9230 IOPS][eta 00m:50s]
Jobs: 200 (f=200): [R(200)][59.5%][r=2293MiB/s][r=9171 IOPS][eta 00m:49s]
Jobs: 200 (f=200): [R(200)][60.3%][r=2235MiB/s][r=8941 IOPS][eta 00m:48s]
Jobs: 200 (f=200): [R(200)][61.2%][r=2245MiB/s][r=8978 IOPS][eta 00m:47s]
Jobs: 200 (f=200): [R(200)][62.0%][r=2293MiB/s][r=9173 IOPS][eta 00m:46s]
Jobs: 200 (f=200): [R(200)][62.8%][r=2156MiB/s][r=8624 IOPS][eta 00m:45s]
Jobs: 200 (f=200): [R(200)][63.6%][r=2204MiB/s][r=8816 IOPS][eta 00m:44s]
Jobs: 200 (f=200): [R(200)][64.5%][r=2154MiB/s][r=8617 IOPS][eta 00m:43s]
Jobs: 200 (f=200): [R(200)][65.3%][r=2234MiB/s][r=8935 IOPS][eta 00m:42s]
Jobs: 200 (f=200): [R(200)][66.1%][r=2242MiB/s][r=8969 IOPS][eta 00m:41s]
Jobs: 200 (f=200): [R(200)][66.9%][r=2235MiB/s][r=8939 IOPS][eta 00m:40s]
Jobs: 200 (f=200): [R(200)][67.8%][r=2359MiB/s][r=9437 IOPS][eta 00m:39s]
Jobs: 200 (f=200): [R(200)][68.6%][r=2335MiB/s][r=9338 IOPS][eta 00m:38s]
Jobs: 200 (f=200): [R(200)][69.4%][r=2350MiB/s][r=9399 IOPS][eta 00m:37s]
Jobs: 200 (f=200): [R(200)][70.2%][r=2464MiB/s][r=9856 IOPS][eta 00m:36s]
Jobs: 200 (f=200): [R(200)][71.1%][r=2376MiB/s][r=9505 IOPS][eta 00m:35s]
Jobs: 200 (f=200): [R(200)][71.9%][r=2395MiB/s][r=9578 IOPS][eta 00m:34s]
Jobs: 200 (f=200): [R(200)][72.7%][r=2327MiB/s][r=9306 IOPS][eta 00m:33s]
Jobs: 200 (f=200): [R(200)][73.6%][r=2240MiB/s][r=8961 IOPS][eta 00m:32s]
Jobs: 200 (f=200): [R(200)][74.4%][r=2171MiB/s][r=8682 IOPS][eta 00m:31s]
Jobs: 200 (f=200): [R(200)][75.2%][r=2144MiB/s][r=8576 IOPS][eta 00m:30s]
Jobs: 200 (f=200): [R(200)][76.0%][r=2241MiB/s][r=8962 IOPS][eta 00m:29s]
Jobs: 200 (f=200): [R(200)][76.9%][r=2385MiB/s][r=9538 IOPS][eta 00m:28s]
Jobs: 200 (f=200): [R(200)][77.7%][r=2391MiB/s][r=9564 IOPS][eta 00m:27s]
Jobs: 200 (f=200): [R(200)][78.5%][r=2344MiB/s][r=9374 IOPS][eta 00m:26s]
Jobs: 200 (f=200): [R(200)][79.3%][r=2315MiB/s][r=9261 IOPS][eta 00m:25s]
Jobs: 200 (f=200): [R(200)][80.2%][r=2131MiB/s][r=8524 IOPS][eta 00m:24s]
Jobs: 200 (f=200): [R(200)][81.0%][r=2167MiB/s][r=8667 IOPS][eta 00m:23s]
Jobs: 200 (f=200): [R(200)][81.8%][r=2356MiB/s][r=9423 IOPS][eta 00m:22s]
Jobs: 200 (f=200): [R(200)][82.6%][r=2309MiB/s][r=9234 IOPS][eta 00m:21s]
Jobs: 200 (f=200): [R(200)][83.5%][r=2244MiB/s][r=8975 IOPS][eta 00m:20s]
Jobs: 200 (f=200): [R(200)][84.3%][r=2296MiB/s][r=9185 IOPS][eta 00m:19s]
Jobs: 200 (f=200): [R(200)][85.1%][r=2328MiB/s][r=9311 IOPS][eta 00m:18s]
Jobs: 200 (f=200): [R(200)][86.0%][r=2394MiB/s][r=9575 IOPS][eta 00m:17s]
Jobs: 200 (f=200): [R(200)][86.8%][r=2277MiB/s][r=9108 IOPS][eta 00m:16s]
Jobs: 200 (f=200): [R(200)][87.6%][r=2198MiB/s][r=8790 IOPS][eta 00m:15s]
Jobs: 200 (f=200): [R(200)][89.2%][r=2261MiB/s][r=9042 IOPS][eta 00m:13s]
Jobs: 200 (f=200): [R(200)][90.0%][r=2196MiB/s][r=8784 IOPS][eta 00m:12s]
Jobs: 200 (f=200): [R(200)][90.8%][r=2280MiB/s][r=9120 IOPS][eta 00m:11s]
Jobs: 200 (f=200): [R(200)][91.7%][r=2323MiB/s][r=9292 IOPS][eta 00m:10s]
Jobs: 200 (f=200): [R(200)][92.5%][r=2403MiB/s][r=9612 IOPS][eta 00m:09s]
Jobs: 200 (f=200): [R(200)][93.3%][r=2406MiB/s][r=9624 IOPS][eta 00m:08s]
Jobs: 200 (f=200): [R(200)][94.2%][r=2294MiB/s][r=9174 IOPS][eta 00m:07s]
Jobs: 200 (f=200): [R(200)][95.0%][r=2226MiB/s][r=8904 IOPS][eta 00m:06s]
Jobs: 200 (f=200): [R(200)][95.8%][r=2271MiB/s][r=9085 IOPS][eta 00m:05s]
Jobs: 200 (f=200): [R(200)][96.7%][r=2279MiB/s][r=9115 IOPS][eta 00m:04s]
Jobs: 200 (f=200): [R(200)][97.5%][r=2290MiB/s][r=9160 IOPS][eta 00m:03s]
Jobs: 200 (f=200): [R(200)][98.3%][r=2192MiB/s][r=8769 IOPS][eta 00m:02s]
Jobs: 200 (f=200): [R(200)][99.2%][r=2230MiB/s][r=8918 IOPS][eta 00m:01s]
Jobs: 200 (f=200): [R(200)][100.0%][r=2200MiB/s][r=8798 IOPS][eta 00m:00s]
Jobs: 200 (f=200): [R(200)][7.8%][r=2108MiB/s][r=8433 IOPS][eta 23m:55s]
Jobs: 189 (f=189): [_(1),R(1),_(1),R(5),_(1),R(86),_(1),R(20),_(1),R(17),_(1),R(19),_(1),E(1),R(4),_(1),R(10),_(1),R(6),_(1),R(21)][9.2%][r=209MiB/s][r=837 IOPS][eta 20m:00s]
Jobs: 75 (f=71): [_(6),R(1),_(2),R(1),_(2),R(1),_(2),R(1),_(2),R(1),_(1),R(2),_(3),R(1),_(1),R(1),_(2),f(1),R(2),_(4),R(3),_(3),R(3),_(2),R(1),_(1),R(1),_(3),R(1),_(6),R(3),_(2),R(1),_(1),R(1),_(3),R(1),_(1),R(2),_(2),R(2),_(4),R(4),_(2),R(2),_(5),R(1),_(1),R(1),_(4),R(1),f(1),_(2),R(2),_(4),R(2),_(4),R(1),_(5),R(1),_(2),R(1),_(2),R(1),_(5),R(4),_(2),R(4),_(3),R(1),_(1),R(1),_(4),f(1),_(3),R(2),_(1),R(1),_(2),f(1),R(2),_(3),R(3),_(4),R(2),_(9),R(3),_(3),R(1),_(1)][7.8%][r=1855MiB/s][r=7419 IOPS][eta 24m:18s]
read_throughput: (groupid=0, jobs=200): err= 0: pid=226774: Thu Apr 17 12:47:40 2025
read: IOPS=9091, BW=2273MiB/s (2383MB/s)(272GiB/122639msec)
slat (usec): min=12, max=79892, avg=45.71, stdev=226.35
clat (usec): min=1837, max=47608k, avg=1397520.69, stdev=3365459.31
lat (usec): min=1891, max=47608k, avg=1397566.63, stdev=3365458.60
clat percentiles (msec):
| 1.00th=[ 5], 5.00th=[ 6], 10.00th=[ 7], 20.00th=[ 8],
| 30.00th=[ 9], 40.00th=[ 12], 50.00th=[ 22], 60.00th=[ 113],
| 70.00th=[ 481], 80.00th=[ 1469], 90.00th=[ 4665], 95.00th=[ 8658],
| 99.00th=[16442], 99.50th=[17113], 99.90th=[17113], 99.95th=[17113],
| 99.99th=[17113]
bw ( MiB/s): min= 153, max=16684, per=100.00%, avg=4242.13, stdev=16.08, samples=25924
iops : min= 509, max=66719, avg=16939.90, stdev=64.33, samples=25924
lat (msec) : 2=0.01%, 4=1.00%, 10=34.02%, 20=14.30%, 50=5.78%
lat (msec) : 100=4.18%, 250=6.00%, 500=5.02%, 750=3.35%, 1000=2.65%
lat (msec) : 2000=6.68%, >=2000=17.00%
cpu : usr=0.02%, sys=0.19%, ctx=561806, majf=0, minf=106492
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.3%, 32=0.6%, >=64=98.9%
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=1114993,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=2273MiB/s (2383MB/s), 2273MiB/s-2273MiB/s (2383MB/s-2383MB/s), io=272GiB (292GB), run=122639-122639msec
・ 順次読取りのテスト結果
スループット・パフォーマンスは、次の bw 行を見ると、
bw ( MiB/s): min= 153, max=16684, per=100.00%, avg=4242.13, stdev=16.08, samples=25924
OCIコンソールに表示された Aggregate throughput (MB/s): 3,900 以上であることを確認できました。
max = 16684 (MiB/s) ≒ 17494.44 (MB/s) = 133.47 (Gbps)
avg = 4242.13 (MiB/s) ≒ 4448.16 (MB/s) = 35.58 (Gbps)
今回は、最小容量、最小パフォーマンスで構成しました。
次回は、Luster の Performance tier を上げて 200 Gbps スループット・チャレンジします
\(^o^)/
■ 参考
● Lustre .org
・ lustre.org
・ Documentation
・ Luster Wiki
・ Introduction to Lustre
● Lustre 概要
・ Lustre によるファイル ストレージ
・ File Storage with Lustre Pricing
● Oracle Cloud Infrastructureドキュメント
・ Lustreを使用したファイル・ストレージ
・ 必要なIAMポリシー
・ 制限事項および考慮事項
・ Lustreリソースを使用したファイル・ストレージの制限
・ Service Limit: Lustre制限のあるファイル・ストレージ
・ Lustreポリシーを使用したファイル・ストレージ
・ Lusterに必要なVCNセキュリティ・ルール
・ Lustreファイル・システムを使用したファイル・ストレージの管理
・ Lustreファイル・システムの作成
・ Lustre File Systemのマウントおよびアクセス
● アーキテクチャ
・ Lustreを使用したスケーラブルな分散ファイル・システムの導入
・ Lustreファイル・システムのデプロイについて
● Oracle Cloud Infrastructure Blog
・ Generally Available: Fully Managed Lustre File Storage in the Cloud
・ Lustre File System Performance on Oracle Cloud Infrastructure
・ Building storage systems for the future: The OCI roadmap
・ Storage Solutions for AI Applications in Oracle Cloud Infrastructure
・ Changing the default kernel in Oracle Linux | It's as simple as 1-2-3