ESXi のラウンド ロビン PSP (パス選択プラグイン)では、すべてのアクティブなストレージ パス間で負荷を分散するために、ラウンドロビン アルゴリズムが使用されます。1 つのパスは、特定の量のデータが送信されるまで選択されたままで使用されます。その量に達すると、PSP ではリスト内の次のパスが選択されます。
パスの変更がトリガーされるこの量は「制限」と呼ばれます。
ESXi のラウンド ロビン PSP では、2 つのタイプの制限がサポートされています。
- IOPS 制限: デフォルトの場合、ラウンド ロビン PSP の IOPS 制限の値は 1000 になります。このデフォルトの場合では、I/O 操作が 1000 回発行されると新しいパスが使用されます。
- バイト制限: バイト制限は、IOPS 制限の代わりの方法です。バイト制限では、パスが切り替えられるまでに指定した量のバイト数が送信されることを許可します。
制限を調整すると、パフォーマンスに好影響を与えるため、他のストレージ ベンダーでは IOPS 制限を 1 に変更することが推奨されています。
例:
デフォルトである 1 秒あたり 1000 回の入出力操作 (IOPS) では、切り替える前に I/O が各パスに 1000 回送信されます。負荷が、1000 回の IOPS の一部によってパスのバンド幅が飽和する可能性があるようなものの場合、ストレージ アレイで要求を処理できる場合でも、残りの I/O は待機する必要があります。IOPS 制限またはバイト制限を低い値に調整して、パスをより頻繁な割合で切り替えることを可能にできます。この調整によって、一方のパスが現在飽和している場合に、追加のパスの帯域幅を使用することができます。
IOPS パラメータの調整
IOPS パラメータをデフォルトの 1000 から 1 に調整するには、次のコマンドを実行します。
ESXi 5.x/6.0 の場合:
for i in `esxcfg-scsidevs -c |awk '{print $1}' | grep naa.xxxx`; do esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=$i; done
ここで、.xxxx は、naa ID の最初の数文字に一致します。
この変更が適用されたかどうかを確認するには、次のコマンドを実行します。
esxcli storage nmp device list
次のような出力が表示されます。
Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=iops,iops=1,bytes=10485760,useANO=0;lastPathIndex=1: NumIOsPending=0,numBytesPending=0}
Path Selection Policy Device Custom Config:
Working Paths: vmhba33:C1:T4:L0, vmhba33:C0:T4:L0
ESXi 4.x の場合:
for i in ` esxcfg-scsidevs -c |awk '{print $1}' |grep naa.xxxx ` ;do esxcli nmp roundrobin setconfig --device=$i --type=iops --iops=1; done
ここで、.xxxx は、naa ID の最初の数文字に一致します。
この変更が適用されたかどうかを確認するには、次のコマンドを実行します。
esxcli nmp device list
次のような出力が表示されます。
Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=iops,iops=1,bytes=10485760,useANO=0;lastPathIndex=0: NumIOsPending=0,numBytesPending=0}
Working Paths: vmhba33:C0:T1:L0
注:変更を有効にするためにホストを再起動する必要はありません。