web-dev-qa-db-ja.com

MD RAID1読み取りバランシングアルゴリズム

Googleで検索しましたが、MDraid1の読み取りバランシングアルゴリズムに関する情報が見つかりませんでした。

数年前、どこかでhashing the process idを使用して使用するデバイスを判別していることを読んだことがありますが、よくわかりません。

私はraid1の上にKVM仮想化+ LVMを持っており、複数の仮想マシンからの読み取りが同じディスクに行き、100%の使用率になり、raid1の他のディスクがアイドル状態になっているのを何度も目撃しました。 (iostat -x経由)

EDIT:質問は、VM内の複数のプロセスに関するものでもあります。 VM内であっても、読み取りバランシングは発生しますか?

読み取りはバランスが取れていますか?はいの場合、どのアルゴリズムで?

私が尋ねている理由は、私が現在2つのバリアントに専念しているからです

  1. 単一のMDデバイスの上にLUKS
  2. 2つのLUKSデバイス上のMD

2番目のバリアントはより多くのCPUを使用しますが、それは問題ではありません。

3
Sidias-Korrado

LinuxでRAID1を実装すると、一度に2つの個別のディスク読み取り操作が実行される限り、ディスク読み取り操作が高速化されます。つまり、RAID1では1つのファイルの読み取りは単一のディスクよりも高速ではありませんが、2つの異なるファイルの同時読み取りは高速になります。

DDと読み取りキャッシュを無効にして実行された読み取りテスト:

Test single file:
1048576000 copied @ 224MB/s

Test same file 2 transfers:
Test single file:
1048576000 copied @ 116MB/s
1048576000 copied @ 104MB/s

Test 2 files 2 transfers:
1048576000 copied @ 212MB/s
1048576000 copied @ 217MB/s

オプションに関しては、単一のMDデバイス上のLUKSはより論理的に聞こえます。

同じディスクから発生する読み取りの問題は、best_dist_diskおよびbest_pending_diskパラメーターで微調整できます。あなたは完全な例を見ることができます ここ

2
Overmind