ファイルシステムは、OSのカーネルレベル(カーネルスペース)、またはそれほど一般的ではないがユーザーレベル(ユーザースペース)で実装されるインフラストラクチャソフトウェア層であることが知られています 。 アプリケーション/システムソフトウェアとディスク領域の中間層として、ファイルシステムは独自の寄生負荷を導入する必要があり、システムのパフォーマンスに影響します。 したがって、ストレージシステムの実際のパフォーマンスを計算するときは、ファイルシステムとこのファイルシステムを使用するソフトウェアの実装に対する固定パラメータの依存性を考慮する必要があります。
テストプログラム。
ストレージパフォーマンスのためにさまざまなファイルシステム(EXT4、VXFS、CFS)によって生じるオーバーヘッドを調査するために、記事「 フラッシュストレージのテスト」で詳しく説明されているスタンドが作成されました。 IBM RamSan FlashSystem 820。
テストは、ブロックデバイス上でfioプログラムを使用して合成負荷を作成することによって実行されました。これは、テストされたシステムから提示された8個のLUNからVeritas Volume Managerを使用して作成されたタイプ
stripe, 8 column, stripe unit size=1MiB
論理ボリュームです。 ファイルシステムに関しては、記事「フラッシュストレージのテスト」で説明されているテストと同等のテストが実行されました。 IBM RamSan FlashSystem 820。
次に、ファイルシステムがストレージシステムのパフォーマンスに与える影響を示すグラフを作成し(ブロックデバイスのテスト中に得られたパフォーマンスの%でのパフォーマンスの差)、ストレージパフォーマンスに対するファイルシステムの影響の程度について結論を導きました。
|
図1.テストスタンドNo. 1の構造図 (クリック可能)
|
ext4ファイルシステムレベルで実行される、さまざまな種類の負荷に対するディスクアレイパフォーマンステスト。
Ext4ファイルシステムタイプ。
4Kファイルシステムブロック。
ファイルシステムは、マウントオプションnoatime、nobarrierでマウントされます。
作成されたファイルシステムでは、ファイルシステムボリューム全体で同じサイズの16個のファイルが生成されます。 生成されたすべてのファイルの名前は、fioプログラムのfilenameパラメーターの値として指定されます(テストを実行すると、生成された負荷は作成されたすべてのファイルに均等に分散されます)。
vxfsファイルシステムレベルで実行される、さまざまな種類の負荷に対するディスクアレイパフォーマンステスト。
vxfsファイルシステムのタイプ。
8Kファイルシステムブロック。
ファイルシステムは、マウントオプション
cio,nodatainlog,noatime,convosync=unbuffered
でマウントされます
vxtunefsコマンドによって実装される追加のファイルシステム設定は次のとおりです。
- initial_extent_size = 2048;
- read_ahead = 0。
得られたグラフは、以前のテストの結果に重ねられ、ストレージシステムのパフォーマンスに対するファイルシステムの影響の程度について結論が導き出されます。
Symantec CFSクラスターファイルシステム上の2つのサーバーによって生成されるさまざまな種類の負荷に対するディスクアレイパフォーマンステスト。
この段階で、別のテストサーバーがスタンドに追加されます。
|
図2.テストスタンドNo. 2の構造図 |
striped, 8 columns, unit size=1024KB
クラスタボリュームを作成します。 このボリュームは、両方のサーバーでオプション
cio,nodatainlog,noatime,nomtime,convosync=unbuffered
でマウントされるCFSファイルシステムを作成します。 ファイルシステム上に16のファイルが作成され、両方のサーバーがアクセスできます。 サーバーは、以前のものと同様のテストを同時に実行します。 最初に、16個のファイルのセット全体が作成されました。 次に、各サーバーから、8つのファイルのサブセットである他のサーバーと交差しない独自のサーバーへ。 結果に基づいて、取得したインジケータの違いのグラフが作成され、パフォーマンスに対するSymantec CFSクラスタファイルシステムの影響の程度について結論が導き出されます。
試験結果
ブロックデバイスに関してext4およびvxfsファイルシステムをテストするときのパフォーマンスグラフ。
EXT4とVXFSの比較結果
- ファイルシステムは、最大50%低下するまで、ストレージのパフォーマンスに大きな影響を与えます。
- ストレージシステムの負荷が増加すると、ほとんどの場合、ファイルシステムのパフォーマンスへの影響は減少します(ディスクアレイのレベルでのレイテンシの大幅な増加を背景に、ディスクアレイが飽和状態になり、ファイルシステムのオーバーヘッドが目立たなくなります)。
- vxfsファイルシステムは、ディスクアレイの負荷が低い非同期書き込みおよび読み取り操作でパフォーマンスが向上することを示しています。 おそらく、マウントオプション
convosync=unbuffered
の使用が原因です。これは、ユーザーアドレス空間のバッファとディスク間の直接データ転送を意味します(オペレーティングシステムのカーネルバッファにデータをコピーすることはありません)。 示された効果は、ext4ファイルシステムでは観察されません。 パフォーマンスext4ファイルシステムのパフォーマンスは、すべての次元でブロックデバイスよりも劣っています。 - ストレージが飽和モードの場合、vxfsファイルシステムはext4ファイルシステムと同等のパフォーマンスを示します。 原則として、ストレージ構成は、通常の操作モードでは飽和モードにならないように選択されます。したがって、ext4と比較して結果として得られるvxfsのパフォーマンスは、ファイルシステムの品質の重要な指標ではありません。
- 同期入出力中のファイルシステムの相対的なパフォーマンスの大幅な変動は、おそらく低遅延SSDディスクのファイルシステムドライバーの最適化の欠如と、ファイルシステムメタデータを変更するための追加の入出力操作の存在によるものです。 追加のファイルシステム設定により、これらの変動が軽減される可能性があります。
Symantec CFSクラスターファイルシステム上の2つのサーバーによって生成されるさまざまな種類の負荷に対するディスクアレイパフォーマンステスト。
さまざまなテストで得られた相対的なパフォーマンスのグラフ
CFSとVXFSの比較結果
- 同じ16ファイル上の両方のサーバーから同時にロードされたパフォーマンスは、各サーバーが8つのファイルをロードしたときに得られるパフォーマンスと変わりません。 (小さなジャンプ(1セットのファイルで読み込むときに4-8Kブロックを読み込むとパフォーマンスが20%向上します。これは、おそらくテストが連続して実行されるため、ストレージ自体のバックグラウンドプロセスが原因です。)相互接続の場合、大きな負荷がないことを示しました。これは、1つのファイルセットで複数のサーバーを操作する場合のCFSの利点です。
- どちらの場合も、ほぼ同じ書き込みパフォーマンス。 CFSの結果がVXFSの2〜3倍高い小さなブロック(4〜8 K)を除きます。 混合I / Oでは、CFSはVXFSよりも10〜20%優れています。
- CFSクラスター化ファイルシステムは、パフォーマンスに悪影響を与えません。 場合によっては、さらに高いパフォーマンスが得られます。 これは、1台のサーバーよりも2台のサーバーの負荷の並列化が優れているためである可能性があります。