Linux RAID 1 は高レイテンシを考慮できますか?

Linux RAID 1 は高レイテンシを考慮できますか?

シナリオ: EC2 で大規模な (クラスターで合計 3 TB) Solr インストールを実行しています。心配なのは、読み取り側のディスク パフォーマンスだけです。ディスク I/O によって制限されていると思われ、特に EBS ボリュームが不安定になり、速度が低下すると問題が発生します。

RAID 1 を試してみようかと考えています。Linux ソフトウェア RAID はディスク間の読み取りを分割するようです。しかし、それがどの程度スマートなのかはよくわかりません。RAID 1 ペアのディスクの 1 つが読み取りでバックアップされた場合、他のディスクにさらに読み取りが送られるのでしょうか。読み取りが長時間保留されている場合、その読み取りは他のディスクに再スケジュールされるのでしょうか。

この動作をテストする方法が思いつきません。コードを確認できればいいのですが、これが I/O スケジューラによって処理されるのか、それとも RAID ドライバの一部なのかさえわかりません。ソフトウェア RAID HowTo よりも詳細に説明されているドキュメントは見つかりません。

答え1

読み取りバランシングはカーネル内のmdドライバで処理されます。drivers/md/raid1.c

それほど賢い方法ではありません。シークを最小限に抑えるだけです。RAID 実装のどれかが、あなたが望むほど賢い方法であるかどうかはわかりません...

システムに十分なメモリがありますか? 読み取りが大量に発生する場合は、キャッシュが少し役立つはずです。

関連情報