HPCおよびAIイノベーション ラボのMario Gallegosが2019年10月に執筆した記事
クライアント ノードの数 |
16 |
クライアント ノード |
C6320 |
クライアント ノードあたりのプロセッサー数 |
2 インテル(R) Xeon(R) Gold E5-2697v4 18コア @ 2.30GHz |
クライアント ノードあたりのメモリー |
12 16GiB 2400 MT/s RDIMM |
BIOS |
2.8.0 |
OSカーネル |
3.10.0-957.10.1 |
GPFSのバージョン |
5.0.3 |
./iozone -i0 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./threadlist
./iozone -i1 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./threadlist
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -w -s 1 -t 8m -b 128G
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -r -s 1 -t 8m -b 128G
./iozone -i2 -c -O -w -r 4K -s 32G -t $Threads -+n -+m ./threadlist
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F
スレッド数 |
スレッドあたりのディレクトリー数 |
ファイルの総数 |
1 |
2048 |
2,097,152 |
2 |
1024 |
2,097,152 |
4 |
512 |
2,097,152 |
8 |
256 |
2,097,152 |
16 |
128 |
2,097,152 |
32 |
64 |
2,097,152 |
64 |
32 |
2,097,152 |
128 |
16 |
2,097,152 |
256 |
8 |
2,097,152 |
512 |
4 |
2,097,152 |
1024 |
2 |
2,097,152 |
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 4K -e 4K
図6: メタデータのパフォーマンス - 小容量ファイル(4K)
このシステムでは、Stat操作とRemoval操作で非常に良好な結果が得られ、それぞれ7.7M op/sと1M op/sで128スレッドのピーク値に達しています。削除操作は最大37.3K op/秒、作成操作は55.5K op/秒でピークに達しました(いずれも512スレッド)。統計と除去操作のばらつきは大きくなりますが、ピーク値に達すると、パフォーマンスは統計で4M op/s、削除で200K op/sを下回ることはありません。作成と読み取りでは変動が少なく、スレッドの数が増えるにつれて上昇し続けます。
これらの数値は単一のME4024を搭載したメタデータ モジュールの場合であるため、ME4024アレイを追加するごとにパフォーマンスは向上しますが、各操作で直線的に増加すると想定することはできません。このようなファイルのinode内にファイル全体が収まる場合を除き、ME4084上のデータ ターゲットは4Kファイルの格納に使用され、パフォーマンスがある程度制限されます。inodeサイズは4KiBですが、メタデータを保存する必要があるため、内部には3 KiB前後のファイルのみを格納し、それ以上のファイルはデータ ターゲットを使用します。
このテストは、3KiBの小さなファイルが使用されたことを除いて、前のテストとほぼ同じです。主な違いは、これらのファイルがinode内に完全に収まることです。したがって、ストレージ ノードとそのME4084は使用されず、ストレージにSSDメディアのみを使用し、ネットワーク アクセスを減らすことで全体的な速度が向上します。
次のコマンドを使用してベンチマークを実行しました。ここで、「Threads」は使用されたスレッド数の変数(1~512、2乗で増分)です。また、「my_hosts.$Threads」は、ラウンド ロビンを使用して各スレッドを16個のコンピューティング ノードに均一に分散したファイルです。
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1/mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 3K -e 3K
図7:メタデータのパフォーマンス - 小容量ファイル(3K)
統計操作と読み取り操作の結果は非常に良好で、それぞれ8.29M op/sと5.06M op/sで256スレッドのピーク値に達しています。削除操作は128スレッドで最大609K op/sを達成し、作成操作は512スレッドで78K op/sでピークに達しました。統計操作と読み取り操作は、作成と削除よりも変動性が大きくなります。削除により、上位2つのスレッド ポイントのパフォーマンスがわずかに低下し、128スレッド後の持続的なパフォーマンスが400K op/sをわずかに超えることが示唆されます。Createは最大512スレッドまで増加し続けましたが、頭打ちになっているように見えるため、最大パフォーマンスはまだ100K op/s未満である可能性があります。
このような小容量ファイルはSSDベースのメタデータ モジュールに完全に格納されるため、小容量ファイルの優れたパフォーマンスを必要とするアプリケーションでは、1つ以上のオプションの高負荷メタデータ モジュールを使用して小容量ファイルのパフォーマンスを向上させることができます。ただし、inodeに収まるファイルは、現在の基準では小さいものです。また、メタデータ ターゲットは比較的小さい(最大サイズ19.2TB)SSDを搭載したRAID1を使用するため、ストレージ ノードと比較すると容量は制限されます。そのため、メタデータ ターゲットがいっぱいにならないように注意する必要があります。メタデータ ターゲットがいっぱいになると、不要な障害やその他の問題が発生するおそれがあります。
PixStorの機能の中でも、高度な分析を使用してファイル システムを監視することは、管理を大幅に簡素化し、問題や潜在的な問題をプロアクティブまたはリアクティブに発見するために不可欠です。次に、これらの機能の一部について簡単に説明します。
図8は、ファイル システムの容量に基づく有用な情報を示しています。左側には、ファイル システムの使用済み領域の合計と、使用済みファイル システムの容量に基づく上位10人のユーザーが表示されます。右側には、長年にわたる使用済み容量の履歴ビュー、使用された容量に基づく上位10個のファイル タイプと上位10個のファイルセットが、パレート図に似た形式(累積合計の線なし)で表示されます。この情報を使用して、ファイル システムの公平なシェアを超える値を得ているユーザー、容量使用率のトレンドを簡単に見つけることができ、容量の将来の増加に関する決定に役立ちます。また、容量の大部分を使用しているファイルや、容量の大部分を占めているプロジェクトもどれかを確認できます。
図8: PixStor Analytics - 容量ビュー
図 9 は、問題を見つけるための 2 つの非常に便利な方法を備えたファイル数ビューを示しています。画面の前半には、上位 10 人のユーザーが円グラフで表示され、上位 10 個のファイル タイプと上位 10 個のファイルセット (プロジェクトなど) がパレート図に似た形式 (累積合計の線なし) で表示され、すべてファイル数に基づいています。この情報は、いくつかの重要な質問に答えるために使用できます。たとえば、作成しすぎるファイルによってファイル システムを独占しているユーザー、メタデータの悪夢を生み出しているファイルのタイプ、リソースの大部分を使用しているプロジェクトなどです。
下半分には、ファイルサイズごとに5つのカテゴリを使用したファイルサイズごとのファイル数(頻度)のヒストグラムがあります。これは、ファイル システム全体で使用されているファイル サイズを把握するために使用でき、ファイル タイプと連携して圧縮が有益かどうかを判断するために使用できます。
図9: PixStor Analytics - ファイル数ビュー
現在のソリューションは、 表4に示すように、使用スペースに関係なく安定して動作することが見込めます(システムが分散モードでフォーマットされているため)。さらに、ストレージ ノード モジュールが追加されると、ソリューションの容量とパフォーマンスが直線的に拡張され、オプションのハイ デマンド メタデータ モジュールでも同様のパフォーマンスの向上が期待できます。このソリューションは、HPCのお客様に、多くの上位500のHPCクラスターで使用される非常に信頼性の高い並列ファイル システムを提供します。さらに、卓越した検索機能、高度なモニタリングと管理を備え、オプションのゲートウェイを追加することで、NFSやSMBなどのユビキタス標準プロトコルを介して、必要な数のクライアントとファイルを共有できます。
表 4 ピーク時および持続的なパフォーマンス
|
ピーク時のパフォーマンス |
継続的なパフォーマンス |
||
書き込み |
読み取り |
書き込み |
読み取り |
|
大規模 - シーケンシャル - NクライアントからNファイル |
16.7 GB/秒 |
23 GB/秒 |
16.5 GB/秒 |
20.5 GB/秒 |
大規模 - シーケンシャル - Nクライアントから単一の共有ファイル |
16.5 GB/秒 |
23.8 GB/s |
16.2 GB/秒 |
20.5 GB/秒 |
ランダム - 小さなブロック - NクライアントからNファイル |
15.8キログラフ |
20.4Kアップ |
15,700キロ秒 |
20.4Kアップ |
メタデータ - 作成 - 空のファイル |
169.4K IOps |
127.2,000 IOPS |
||
メタデータ - 統計 - 空のファイル |
1,120万IOPS |
330万IOPS |
||
メタデータ - 読み取り - 空のファイル |
480万IOPS |
2.4M IOps |
||
メタデータ - 削除 - 空のファイル |
194.2K IOPS |
144.8K IOps |
||
メタデータ - 作成 - 4KiBファイル |
55,400 IOPS |
55,400 IOPS |
||
メタデータ - 統計 - 4KiBファイル |
640万IOPS |
400万IOPS |
||
メタデータ - 読み取り - 4KiBファイル |
37.3千のIOPS |
37.3千のIOPS |
||
メタデータ - 削除 4KiBファイル |
100万IOps |
219.5千IOPS |
このソリューションは、Cascade Lake CPUとより高速なRAMを搭載してリリースされる予定であるため、システムが最終的な構成になると、パフォーマンスのスポットチェックが実行されます。また、少なくとも2台のME4024と4KiBファイルを使用して、オプションのハイ デマンド メタデータ モジュールをテストし、データ ターゲットが関連する場合にメタデータのパフォーマンスがどのように拡張されるかをより的確に文書化する必要があります。さらに、ゲートウェイ ノードのパフォーマンスが測定され、スポット チェックからの関連する結果とともに、新しいブログまたはホワイト ペーパーで報告されます。最後に、さらに多くの機能を提供するために、より多くのソリューション コンポーネントをテストおよびリリースする予定です。