web-dev-qa-db-ja.com

mdadm raid6リカバリは1つのドライブからより多くを読み取りますか?

リカバリ中にraid6-array(8台のドライブで構成)の障害ドライブを交換したところ、iostatで何か奇妙なことに気づきました。 1つのドライブ(sdi)が他のドライブよりも常に高速に読み取られていることを除いて、すべてのドライブは(予想どおり)同じ速度になっています。

また、アレイ内に合計8つのドライブがあることと関係があるかもしれない、約8分の1の速度で読み取っていますが、理由はわかりません...

これは、リカバリ全体(常に同じドライブの読み取り速度が他のすべてのドライブよりも高速)中に当てはまり、リカバリの合計統計を見ると、8分の1以上の読み取りを行ったsdiを除いて、すべてのドライブがほぼ同じ量の読み取り/書き込みを行いました。

いくつかのiostat統計は100秒間平均されました:

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdb             444.80        26.15         0.00       2615          0
sdb1            444.80        26.15         0.00       2615          0
sdc             445.07        26.15         0.00       2615          0
sdc1            445.07        26.15         0.00       2615          0
sdd             443.21        26.15         0.00       2615          0
sdd1            443.21        26.15         0.00       2615          0
sde             444.01        26.15         0.00       2615          0
sde1            444.01        26.15         0.00       2615          0
sdf             448.79        26.15         0.00       2615          0
sdf1            448.79        26.15         0.00       2615          0
sdg             521.66         0.00        26.15          0       2615
sdg1            521.66         0.00        26.15          0       2615
sdh             443.32        26.15         0.00       2615          0
sdh1            443.32        26.15         0.00       2615          0
sdi             369.23        29.43         0.00       2942          0
sdi1            369.23        29.43         0.00       2942          0

誰かが賢明な説明を提供できますか? 〜正確に8分の1速いことを発見したとき、それはパリティに関係していると思いましたが、それはあまり意味がありませんでした(mdadmでの特定のraid 6の実装についてはわかりませんが、確かに可能ですすべてのパリティを1つのドライブに保存しないでください...)。

更新:まあ、私はちょうど今別のドライブ(同じアレイ)を交換しました、そして私はまったく同じ結果を見ていますが、今回は別のドライブの読み取りがより速くなりました(実際、それが欲しいと決めたのは最後の回復のために追加したドライブですより多くの仕事をするために)。

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdb             388.48        24.91         0.00       2490          0
sdb1            388.48        24.91         0.00       2490          0
sdc             388.13        24.91         0.00       2491          0
sdc1            388.13        24.91         0.00       2491          0
sdd             388.32        24.91         0.00       2491          0
sdd1            388.32        24.91         0.00       2491          0
sde             388.81        24.91         0.00       2491          0
sde1            388.81        24.91         0.00       2491          0
sdf             501.07         0.00        24.89          0       2489
sdf1            501.07         0.00        24.89          0       2489
sdg             356.86        28.03         0.00       2802          0
sdg1            356.86        28.03         0.00       2802          0
sdh             387.52        24.91         0.00       2491          0
sdh1            387.52        24.91         0.00       2491          0
sdi             388.79        24.92         0.00       2491          0
sdi1            388.79        24.92         0.00       2491          0

これらは4kドライブです(ただし、すべてのドライブがそうであるように(または少なくともそうしました)、512バイトのセクターを報告します)。だから私はどういうわけかパーティションを間違って配置したのではないかと思いました(私が知らなかったかもしれない影響は、mdadmの動作とストライプサイズに依存しますが、とにかく簡単にチェックできます):

debbie:~# fdisk -l -u /dev/sd[bcdefghi] | grep ^/dev/sd
/dev/sdb1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdc1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdd1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sde1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdf1            2048  3907024064  1953511008+  fd  Linux raid autodetect
/dev/sdg1            2048  3907024064  1953511008+  fd  Linux raid autodetect
/dev/sdh1            2048  3906988207  1953493080   fd  Linux raid autodetect
/dev/sdi1            2048  3906988207  1953493080   fd  Linux raid autodetect

fとgは新しいドライブで、少し大きいように見えますが、すべて同じセクターで開始されます(すべてのドライブは同じモデル(および同じコントローラー)ですが、新しいドライブは、残り)。

3
Peter

奇妙な。 RAID6は確かにanythingすべてを1つのドライブに保存しないため、一般に、1つのドライブが他のドライブよりも多く読み取られる理由はありません。その1つのドライブのTPSに対応する減少があることに注意してください。私の推測では、sdiはドライブの異なるモデルまたはテクノロジーであるか、コントローラーの異なるモデルに接続されているため、異なる方法で読み取ることができます(トランザクションごとの読み取りが大きくなります)。

1
womble