フラッシュストレージのテスト。 ファイルシステムの効果

主要なフラッシュシステムのパフォーマンスをテストする際、ある時点で、次のことを自問しました。実際のストレージシステムのパフォーマンスに対するファイルシステムの影響は何ですか。 それはどれほど重要で、何に依存していますか?



ファイルシステムは、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コマンドによって実装される追加のファイルシステム設定は次のとおりです。



得られたグラフは、以前のテストの結果に重ねられ、ストレージシステムのパフォーマンスに対するファイルシステムの影響の程度について結論が導き出されます。



Symantec CFSクラスターファイルシステム上の2つのサーバーによって生成されるさまざまな種類の負荷に対するディスクアレイパフォーマンステスト。


この段階で、別のテストサーバーがスタンドに追加されます。





図2.テストスタンドNo. 2の構造図
最初のサーバーにインストールされたソフトウェアと同等のソフトウェアが追加されたサーバーにインストールされ、同じ最適化設定が行われます。 ストレージを備えた8つのLUNすべてが両方のサーバーに提供されます。 Symantec Volume Managerは、それらにstriped, 8 columns, unit size=1024KB



クラスタボリュームを作成します。 このボリュームは、両方のサーバーでオプションcio,nodatainlog,noatime,nomtime,convosync=unbuffered



でマウントされるCFSファイルシステムを作成します。 ファイルシステム上に16のファイルが作成され、両方のサーバーがアクセスできます。 サーバーは、以前のものと同様のテストを同時に実行します。 最初に、16個のファイルのセット全体が作成されました。 次に、各サーバーから、8つのファイルのサブセットである他のサーバーと交差しない独自のサーバーへ。 結果に基づいて、取得したインジケータの違いのグラフが作成され、パフォーマンスに対するSymantec CFSクラスタファイルシステムの影響の程度について結論が導き出されます。



試験結果



ブロックデバイスに関してext4およびvxfsファイルシステムをテストするときのパフォーマンスグラフ。
(すべての写真はクリック可能です)

同期入出力 キュー深度32の非同期I / O キュー深度が64の非同期I / O
ランダム読み取り





録音するとき





混合負荷時(読み取り70%、書き込み30%)









EXT4とVXFSの比較結果



  1. ファイルシステムは、最大50%低下するまで、ストレージのパフォーマンスに大きな影響を与えます。
  2. ストレージシステムの負荷が増加すると、ほとんどの場合、ファイルシステムのパフォーマンスへの影響は減少します(ディスクアレイのレベルでのレイテンシの大幅な増加を背景に、ディスクアレイが飽和状態になり、ファイルシステムのオーバーヘッドが目立たなくなります)。
  3. vxfsファイルシステムは、ディスクアレイの負荷が低い非同期書き込みおよび読み取り操作でパフォーマンスが向上することを示しています。 おそらく、マウントオプションconvosync=unbuffered



    の使用が原因です。これは、ユーザーアドレス空間のバッファとディスク間の直接データ転送を意味します(オペレーティングシステムのカーネルバッファにデータをコピーすることはありません)。 示された効果は、ext4ファイルシステムでは観察されません。 パフォーマンスext4ファイルシステムのパフォーマンスは、すべての次元でブロックデバイスよりも劣っています。
  4. ストレージが飽和モードの場合、vxfsファイルシステムはext4ファイルシステムと同等のパフォーマンスを示します。 原則として、ストレージ構成は、通常の操作モードでは飽和モードにならないように選択されます。したがって、ext4と比較して結果として得られるvxfsのパフォーマンスは、ファイルシステムの品質の重要な指標ではありません。
  5. 同期入出力中のファイルシステムの相対的なパフォーマンスの大幅な変動は、おそらく低遅延SSDディスクのファイルシステムドライバーの最適化の欠如と、ファイルシステムメタデータを変更するための追加の入出力操作の存在によるものです。 追加のファイルシステム設定により、これらの変動が軽減される可能性があります。


Symantec CFSクラスターファイルシステム上の2つのサーバーによって生成されるさまざまな種類の負荷に対するディスクアレイパフォーマンステスト。


さまざまなテストで得られた相対的なパフォーマンスのグラフ
(すべての写真はクリック可能です)



記録 読書 I / O混合
異なるファイルセットでロードするときのパフォーマンスに関して、1つのファイルセットで2つのサーバーからロードすることによりクラスターファイルシステムをテストするときに得られるパフォーマンス(iops)。 0の受け入れ 異なるファイルセットでロードする場合。





1つのサーバー上のvxfsで得られた実稼働と比較して、1つのファイルセット上の2つのサーバーからロードすることによりクラスターファイルシステムをテストするときに得られるパフォーマンス(iops)。 0で受け入れられます。 vxfs。















CFSとVXFSの比較結果



  1. 同じ16ファイル上の両方のサーバーから同時にロードされたパフォーマンスは、各サーバーが8つのファイルをロードしたときに得られるパフォーマンスと変わりません。 (小さなジャンプ(1セットのファイルで読み込むときに4-8Kブロックを読み込むとパフォーマンスが20%向上します。これは、おそらくテストが連続して実行されるため、ストレージ自体のバックグラウンドプロセスが原因です。)相互接続の場合、大きな負荷がないことを示しました。これは、1つのファイルセットで複数のサーバーを操作する場合のCFSの利点です。
  2. どちらの場合も、ほぼ同じ書き込みパフォーマンス。 CFSの結果がVXFSの2〜3倍高い小さなブロック(4〜8 K)を除きます。 混合I / Oでは、CFSはVXFSよりも10〜20%優れています。
  3. CFSクラスター化ファイルシステムは、パフォーマンスに悪影響を与えません。 場合によっては、さらに高いパフォーマンスが得られます。 これは、1台のサーバーよりも2台のサーバーの負荷の並列化が優れているためである可能性があります。



All Articles