web-dev-qa-db-ja.com

ソフトウェアRAID10は、Ubuntu14.04ボックスのs / w RAID 5よりも高速ではありません。なぜですか?

4 x 240 GBSSDディスクを搭載した新しいデータベースサーバーでいくつかのテストを行っています。私が読んだことから、RAID 10は、同じ「1ディスク損失OK」の冗長性を備えたRAID5よりも高速であるはずです。

ただし、bonnie ++でテストすると、RAID10はRAID5よりも高速ではないようです。理由は何ですか。

RAID5(4つのディスクすべて):

# cat /proc/mdstat
md2 : active raid5 sdd3[4] sdc3[2] sda3[0] sdb3[1]
      688730112 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md2        647G  1.6G  613G   1% /

# bonnie++ -d /tmp -u root

Version  1.97       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
db1a           252G  1113  99 474860  26 327393  16  5943  99 1192788  23 +++++ +++

Sequential write:   0.474 G/s
Sequential rewrite: 0.327 G/s
Sequential read:    1.192 G/s

RAID10:

# cat /proc/mdstat
md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
      459153408 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

 # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md2        431G  1.6G  408G   1% /

# bonnie++ -d /tmp -u root

Version  1.97       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
db1a           252G  1221  99 492972  27 323392  15  5688 100 1178194  23 +++++ +++

Sequential write:   0.492 G/s
Sequential rewrite: 0.323 G/s
Sequential read:    1.178 G/s

更新

Iozoneを使用してRAID10テストを実行し、bonnie ++によって報告された99%〜100%のCPUがボトルネックを示している可能性があると想定して、マルチスレッドベンチマークのパフォーマンスが向上するかどうかを確認しました。

# iozone -R -i 0 -i 1 -l 12 -u 12 -r 8k -s 22G
(12 threads, 8k block size, total file size of 264G)

"  Initial write "  538817.21  0.538 G/s
"        Rewrite "  511450.04  0.511 G/s
"           Read " 1087437.45  1.087 G/s
"        Re-read " 1201127.73  1.201 G/s
"    Random read "  576435.70  0.576 G/s
"   Random write "  400612.46  0.400 G/s

結果はbonnie ++よりわずかに優れていますが、それほどではありません。

rAID 5のiozoneの結果:

"  Initial write "  516469.10   0.516 G/s
"        Rewrite "  489970.21   0.489 G/s
"           Read " 1116074.84   1.116 G/s
"        Re-read " 1116666.97   1.116 G/s
"    Random read "  611738.43   0.611 G/s 
"   Random write "  199486.44   0.199 G/s

回答で説明されているように、RAID10のランダム書き込みパフォーマンスはRAID5の2倍高速ですが、他のすべての統計は類似しているか、わずかに優れています。

3
David Tinker

私が読んだところによると、RAID 10は、同じ「1ディスク損失OK」の冗長性を備えたRAID5よりも高速であるはずです。

同意しません。

読み取りを見てみましょう-ここでは、違いがあるはずの理由はありません。どちらも、4つのドライブすべてからデータを読み取り、それらの全帯域幅を使用できます。 RAID 5では、必要な場合を除いてパリティが読み取られないため、違いはありません。

それでは、書き込みを見てみましょう。 RAID 10の場合、各書き込みを2回実行する必要があるため、帯域幅は半分になります。 RAID 5では、それほど悪くはありません。パリティを書き出す必要がありますが、データの1/4だけがパリティです(書き込むデータの3バイトごとに、1バイトのパリティを書き込む必要があります)。したがって、RAID 10は帯域幅を半分にし、RAID 5には33%のペナルティがあります。したがって、RAID10はここでは少し悪いです。

RAID 10の方が優れているのはなぜですか? (デバイス障害がないと仮定します。)

2
David Schwartz

ストライピングRAIDがSSDで役に立たないことはありません。ストライピングは複数のディスクヘッドで機能しますが、SSDにはすでに優れたランダムアクセスがあります。

0
Halfgaar