はい、RAID1 の Linux 実装は、2 つの別々のディスク読み取り操作が同時に実行される限り、ディスク読み取り操作を 2 倍高速化します .つまり、1 つの 10 GB ファイルの読み取りは、単一のディスクよりも RAID1 の方が高速ではありませんが、2 つの個別の 10 GB ファイル*の読み取りは高速になります。
それを実証するために、 dd
でいくつかのデータを読み取るだけです .何かを実行する前に、ディスク読み取りキャッシュを sync && echo 3 > /proc/sys/vm/drop_caches
でクリアします .それ以外の場合 hdparm
超高速読み取りを要求します。
単一ファイル:
# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s
2 つのファイル:
# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s
10 GB のデータの読み取りには 65 秒かかりましたが、10 GB + 10 GB =20 GB のデータの読み取りには合計 68.7 秒かかりました。これは、複数のディスクの読み取りが RAID1 から大きな恩恵を受けることを意味します Linux で。 skip=$COUNT
部分は非常に重要です。 2 番目のプロセスは、10 GB オフセットから 10 GB のデータを読み取ります。
http://www.unicom.com/node/459 を参照する Jared の回答と ssh のコメントは間違っています。そこからのベンチマークは、ディスクの読み取りが RAID1 の恩恵を受けないことを証明しています。ただし、テストは、一度に 2 つの個別の読み取りを実行しない bonnie++ ベンチマーク ツールで実行されました。著者は、bonnie++ は RAID アレイのベンチマークには使用できないと明言しています (readme を参照してください)。
はい、読み取りパフォーマンスの向上 + 冗長性が得られます。ファイルは両方の HDD にあるため、2 つの異なる HDD から同時にファイルの一部を読み取ることができるため、容易に想像できます。
理論的には、RAID コントローラが適切に機能すれば、O(n) のスピードアップを得ることができます。
-
man 4 md
状態:"… ドライバによって実行される読み取りバランスでは、RAID1 のパフォーマンス プロファイルは RAID0 と同じにはならないことに注意してください。;入力の単一ストリームは高速化されません (例:単一の dd)、でも 複数のシーケンシャル ストリームまたはランダム ワークロードでは、複数のスピンドルが使用されます。 理論上 、N ディスク RAID1 を使用すると、N シーケンシャル スレッドがすべてのディスクから読み取ることができます。 …" -
最後に — 実践 、
iostat
に基づく 典型的な 2 HDD ソフトウェア RAID セットアップで出力が観察され、バランス調整はありません .実際、効果的にmdadm
のように見えます のオプション--write-mostly