デバイスのサイズが異なる場合、RAID0は内部でどのように機能しますか?

デバイスのサイズが異なる場合、RAID0は内部でどのように機能しますか?

驚いたことに、CentOS 7インストーラを使用すると、約17GBのディスクと26GBのディスクで構成されたRAID0デバイスを作成できました。許可されていても論理サイズは2 * min(17 GB, 26 GB) ~= 34 GB

$ cat /sys/block/md127/md/dev*/size
16955392
26195968
$ df -h |grep md
/dev/md127   44G 1.9G 40G 5% /

同じディスクケースと比較して、mdサブシステムのパフォーマンスはどうですか?これは、2つのディスクに対して単純なバランスストライピングを実行できないためです。

ベストアンサー1

raid.wiki.kernel.org説明する:

RAID0 /ストライプモード:デバイスは同じサイズでなければなりません(必ずしもそうではありません)。 [...]あるデバイスが他のデバイスよりもはるかに大きい場合、RAIDデバイスは余分なスペースを利用し続けますが、RAIDデバイスの高度な書き込み中にこの大きなディスクにのみアクセスします。もちろん、パフォーマンスが低下します。

この表現は少し厄介ですが、mdadmのウィキペディアページそれはこう言います:

RAID 0 – ブロックレベルのストライピング。 MDはさまざまな長さのデバイスを処理でき、より大きなデバイスの余分なスペースはストライプされません。

したがって、サイズがそれぞれ4と2の「ブロック」の2つのディスクに単純化されている場合は、次のような結果が得られます。

disk0  disk1
00     01
02     03
04
05

「チャンク」04-05の読み取りはdisk0でのみ実行する必要があるため、ストライピングの利点はありません。mdデバイスは分割可能である必要があるため、デバイスの始まりと終わりにパーティションをテストして速度の違いが目立つことを確認できます。

おすすめ記事