AIGFS検証結果

AIGFSの検証結果

最小構成・低速HDDメディアを用いてAIGFS(分散ファイルシステム)を構築し、基本的な性能検証を行いました。
本ページでは、検証環境の構成を図解するとともに、fioによる性能測定結果を紹介します。
検証には、2U AIGFS Supermicro Server 1台とクライアント機器6台を使用しました。

AIGFSのデータ経路と性能向上

AIGFS図

検証環境

SPEC

サーバー 1台
本体 Supermicro 2U 12ドライブモデル
CPU AMD EPYC 64 Core × 2 128 Core / 256 Thread
Memory DDR4 Registered ECC 32GB × 6 192GB
Disk Seagate MACH2 14TB × 10 140TB
Disk WD NVMe 500GB × 3 1.5TB
LAN Intel E810C 100Gbps Dual Ports
OS Rocky Linux release 9.8 (Blue Onyx)
Virtual KVM
クライアント 3台
CPU Xeon-D × 1 8 Core / 16 Thread
Memory DDR4 Registered ECC 8GB × 1 8GB
Disk WD SATA 500GB 500GB
LAN ConnectX5 25Gbps Dual Ports
OS Ubuntu 24.04
クライアント 3台
CPU Xeon-D × 1 8 Core / 16 Thread
Memory DDR4 Registered ECC 8GB × 1 8GB
Disk WD SATA 500GB 500GB
LAN Intel 10Gbps RJ45 Dual Ports
OS Rocky Linux release 9.8 (Blue Onyx)
ネットワークスイッチ 4台
100Gbps Edgecore networks 100Gbps × 32 port AS7712-32X(VXLAN)
10Gbps Edgecore networks 10Gbps × 18 port ECS5520-18T(MLAG)

TOOL

fio-3.35を使用し、以下のパラメーターで性能測定を行いました。

bs 1M
size 16G
numjobs 4
direct 1
invalidate 1
iodepth 32
ioengine libaio

Client 6台からStorage Targetに対して、同時にfioのジョブを実行しました。

Storage Target

vm(Rocky Linux 9.8)は全てNVMe 500GB上に展開し、用意した10個のVMに其々5TBのデータ用datasetをマウントした。

num_target

I/Oの分散処理はclientがディレクトリを作成する時点で自動的にDefaultの分散先が適用される。
今回はこの適用される分散数をマニュアルで1から10 targetまで作成し順にfioを実行した。
分散数はマニュアルで適用可能だが分散先のstorage targetは自動的に割り振られてしまうため結果にばらつきが出てしまう。
極少数の分散処理環境を構築していることから避けられないことかもしれない。

検証結果


Clientごとの測定値について

Clientごとの測定値を見ると、特定のClientだけが突出した値を示したり、他のClientと比較して低い値となるケースが確認されました。

これは、Clientごとに使用するStorage Targetの割り当て状況が異なるためです。

例えばWrite測定のnt2では、Client 5が他のClientより高い値を示しています。これは、Client 5がStorage Targetを単独で使用できたことによるものです。

一方、nt2のClient 1・3・6では、同一のStorage Targetを3台のClientで共有しているため、I/Oが分散され、測定値が低くなっています。

このように、今回のような少数のStorage Targetによる検証環境では、Targetの自動割り当てによってClientごとの測定値にばらつきが生じます。

AIGFSの性能

一般的なZFSによる冗長化ストレージでは、キャッシュ性能などがI/O性能のボトルネックとなり、10~60台程度のディスク構成でも、性能は1GB/secを超える程度となるケースがあります。

今回の検証では、標準的な4分散を下回る条件においても、KVMによる仮想環境上で3GB/secを超える性能を確認しました。

また、AIGFSはスケールアウトに対応しているため、低速なディスクを使用した構成でも、AIGFSノードを追加することでI/O性能を段階的に向上させることができます。

さらに、ストレージにNVMeディスクを使用することで、ネットワークスイッチの帯域性能を活かした、より高いスループットを実現できる構成であることを確認しました。