web-dev-qa-db-ja.com

RAID0(ハードウェアとmdの両方)はLVMより遅いですか?

分散ファイルシステムを構築するときに、ノードのベンチマークを行っています。ファイルは多くのノードに分散および複製されるため、ノード自体でraid0を使用しています。ただし、パフォーマンスの数値がおかしいので、StackOverflowコミュニティがその理由を理解するのに役立つかどうか知りたいです。私はベンチマークツールとしてfioを使用しています。バージョン1.38は機能せず、バージョン1.59または1.60を使用する必要があることに注意してください。

これが私のfio設定ファイルです:

[global]
directory=/mnt/gluster
lockfile=readwrite
ioengine=libaio
iodepth=8
rw=randrw
nrfiles=200
openfiles=30
runtime=900

[file]
filesize=16-8k/8M-512M
size=1GiB

ソフトウェアRAIDを使用したraid0の場合、次の結果が得られました(基本事項を抜粋)。

  read : io=285240KB, bw=324535 B/s, iops=79 , runt=900011msec
  write: io=283532KB, bw=322592 B/s, iops=78 , runt=900011msec

ソフトウェアRAIDを使用したraid1で、次の結果が得られました。

  read : io=683808KB, bw=778021 B/s, iops=189 , runt=900000msec
  write: io=488184KB, bw=628122 B/s, iops=153 , runt=795864msec

シングルディスクのパフォーマンスは、raid0のパフォーマンスを上回っています。

  read : io=546848KB, bw=622179 B/s, iops=151 , runt=900018msec
  write: io=486736KB, bw=591126 B/s, iops=144 , runt=843166msec

4kエクステントの4つのディスクにまたがるLVMストライプ:

  read : io=727036KB, bw=827198 B/s, iops=201 , runt=900007msec
  write: io=489424KB, bw=604693 B/s, iops=147 , runt=828800msec

ハードウェアRAID0(HighPoint RocketRaid 2470)

  read : io=326884KB, bw=371918 B/s, iops=90 , runt=900008msec
  write: io=328824KB, bw=374125 B/s, iops=91 , runt=900008msec

上記の最初の4つの結果は、マザーボードのSATAコントローラーでのみ実行されていることに注意してください。ただし、RocketRaidカードに移動した後、ソフトウェアRAIDで結果を再現しました。これらは1TBのSATAドライブです。マルチスレッドテストを実行すると、ほぼ同じ結果が得られました。 RAID0の実行速度がこれほど遅くなる理由はありますか?シングルドライブやRAID1よりも優れたランダムI/Oのパフォーマンスを提供すると思いました。


フォローアップ:Scalable InformaticsのJoeからのいくつかの提案に基づいて(ナイスガイ、彼のものを購入してください!)、より深いキューとよりランダムなブロックサイズを使用するようにテストを変更しました。

[global]
directory=/mnt/glusterfs
lockfile=readwrite
ioengine=libaio
iodepth=32
rw=randrw
numjobs=8

[file]
filesize=16-8k/8M-512M
blocksize_range=64k-1M
size=1GiB
nrfiles=50
openfiles=8
runtime=900

そして最終的な結果は、HighPoint RocketRaid2740カードが最悪だということです。

  • シングルディスクパフォ​​ーマンス(SuperMicroマザーボードSATA):43.2mb/s読み取り、42.6 mb/s書き込み
  • MD RAID 0(HBAとして使用されるRocketRAID、ドライバーのロードの有無にかかわらず):53.1 mb/s読み取り、54.1 mb/s書き込み
  • RocketRaid Raid 0:読み取り29.4 mb/s、書き込み29.2 mb/s
  • MD RAID 0(マザーボードSATA):読み取り58.0 mb/s、書き込み58.3mb/s

RocketRaidカードに接続されたパフォーマンスは、全体的に遅くなりました。

私はこの質問を開いたままにしておきます-テストのために来週か2週間以内にRAIDカードの新しいスレートを入手します、そして私はまだ単一ディスク以上のパフォーマンスを得るための最適化のヒントを探しています、完全に答えられていないようです。

4
Karl Katzke

書き込みまたは読み取りデータが単一のディスクをホットスポットしているストライプサイズの問題が発生している可能性があります。詳細については、 ソフトウェアRAIDハウツー を参照してください。 iostat の出力を見ると、これが当てはまるかどうかを確認できます。

線形アクセスのパフォーマンスを確認する場合は、ベンチマークに「hdparm -t」またはddを使用してみてください。これにより、単一ディスクのパフォーマンスの約2倍のパフォーマンス数値が表示されます。

2
the-wabbit

シングルドライブやRAID1よりも優れたランダムI/Oのパフォーマンスを提供すると思いました。

いいえ、ランダムに検索しているブロックがストライプサイズよりも大きい場合は、ほぼ1台のドライブの速度である必要があります。それでも、単一のドライブよりも悪い結果を説明することはできません。

ウィキペディア から。

ファイルのコピーやビデオの再生など、ストライプサイズよりも大きい読み取りと書き込みの場合、ディスクは各ディスクの同じ位置をシークするため、アレイのシーク時間は単一のドライブのそれと同じである。データベースアクセスなど、ストライプサイズよりも小さい読み取りと書き込みの場合、ドライブは独立してシークできます。

1
Zoredache