web-dev-qa-db-ja.com

LinuxSCSIキューの深さを理解する

CentOS Linux 5.4(x86_64)を実行しているDellサーバーでのさまざまなSCSIキューの深さの値の影響を実験しています。

サーバーには、マルチパスを介してストレージシステムに接続された2つのQLogic QLE2560 FCHBAがあります。ストレージシステムはサーバーに2つのLUNを割り当て、それぞれがアクティブ-アクティブ-アクティブ-アクティブラウンドロビン構成の4つのパスを介して接続されています。全体として、2つのLUNは8つの/ dev/sdXデバイスとして存在し、/ dev/mpathの2つのデバイスで表されます。

現在、/ etc/modprobe.confのキューの深さの値を調整し、/ proc/scsi/sg/devicesの7番目の列を調べて(再起動後)結果を確認しています。 =。

これに関連する2つの質問:

  • Qla2xxxカーネルモジュールを再起動またはアンロードせずにキューの深さを調整する方法はありますか?たとえば、新しいキューの深さの値を/ procまたは/ sysのようなファイルにエコーして、キューの深さを更新できますか?

  • キューの深さを128に設定した場合、それは

    • qla2xxxモジュールによって処理されるすべてのデバイスで合計128 ?、または
    • 各HBAに128? (合計256)、または
    • 8つの/ dev/sdXデバイスのそれぞれに128(合計で1024)?、または
    • 2つの/ dev/mpath/...デバイスのそれぞれに128(合計256)?

    これは、サーバーがストレージシステムにフラッディングして、それに接続されている他のサーバーに影響を与えないようにするために知っておくことが重要です。

4
Troels Arvin

通常、キューの深さは、rrマルチパス構成ではLUN /パスごとです。これはマルチパスドライバーの実装に大きく依存しており、マルチパスドライバーのドキュメントを確認する必要があります。この場合、AFAIRはESXと同じ概念を使用し、すべてのパスのキューの深さがデバイスマッパーのマルチパスです。いずれかのパスの最小キュー深度は、ESXの例を参照してください。

ESXのネイティブマルチパスは、rrマルチパス構成のキューの深さを、関連するキューの中で最小の共通の深さになるように構成します。つまり、各LUN /パスの深さが32で、パスが4つある場合、キューの合計の深さはわずか32です。これが、一部のベンダーが独自のドライバー(EMCのパワーパスなど)を提供している理由です。パフォーマンスの観点から、ラウンドロービング負荷分散ESXは、各IOの特定のパスを循環しません。デフォルトでは、最初の1000 IOが最初のパスを通過し、次の1000IOが次のパスを通過するようにスケジュールされますVMベースは、単一のIOパススイッチごとにすべてのパスの全体的な負荷を平滑化する必要があり、IOごとに遅延ペナルティが発生します。

2
pfo

これについての私の理解は、それがパスであるESX環境からですキューの深さ 1024になるLun。CentOSとは異なっていたら非常に驚きます。

1
Helvick