esxcli コマンドを使用して、マルチパス PSA 要求ルールをシステムの要求ルール セットに追加します。新規の要求ルールを有効にするには、まずルールを定義してから、使用しているシステムにロードします。

次のような場合に PSA 要求ルールを追加します。
  • 新規のサードパーティ製マルチパス モジュールをロードしており、このモジュールが要求するパスを定義する必要がある。
  • ネイティブの HPP を有効にする必要がある。
注意: 2 つの異なるプラグインが同じデバイスへのパスを要求するルールは作成できません。これらの要求ルールを作成すると、失敗して vmkernel.log に警告が表示されます。

前提条件

vCLI をインストールするか、vSphere Management Assistant (vMA) 仮想マシンを導入します。vSphere Command-Line Interface スタート ガイド を参照してください。トラブルシューティングするには、ESXi Shell で esxcli コマンドを実行します。

手順

  1. 新規の要求ルールを定義するには、次のコマンドを使用します。
    esxcli storage core claimrule add

    このコマンドには次のオプションがあります。

    オプション 説明
    -A|--adapter=<adapter> 使用するパスのアダプタ。--typelocation の場合にのみ有効です。
    -u|--autoassign 特性に基づいて要求ルールを追加します。ルール番号は不要です。
    -C|--channel=<channel> 使用するパスのチャネル。--typelocation の場合にのみ有効です。
    -c|--claimrule-class=<cl> この操作で使用する要求ルール クラス。MP(デフォルト)、Filter、または VAAI を指定できます。

    新しいアレイのハードウェア アクセラレーションを設定するには、VAAI フィルタ用と VAAI プラグイン用に 1 つずつ要求ルールを追加します。詳細については、ハードウェア アクセラレーションの要求ルールの追加を参照してください。

    -d|--device=<device_uid> デバイスの UID。 --typedevice の場合にのみ有効です。
    -D|--driver=<driver> 使用するパスの HBA 用ドライバ。--typedriver の場合にのみ有効です。
    -f|--force 要求ルールで妥当性チェックを無視し、ルールを設定するように強制します。
    --force-reserved 予約済みのルール ID 範囲の保護をオーバーライドします。

    予約済みの要求ルールは、ID が 100 未満のルールです。それらを使用して、ローカル デバイスを特定のプラグインに(たとえば、NVMe デバイスを HPP に)再割り当てすることができます。

    --if-unset=<str> この上級ユーザー変数が 1 に設定されていない場合にはこのコマンドを実行します。
    -i|--iqn=<iscsi_name> ターゲットの iSCSI 修飾名。 --typetarget の場合にのみ有効です。
    -L|--lun=<lun_id> パスの LUN。--typelocation の場合にのみ有効です。

    LUN ID は、詳細設定オプション /Disk/MaxLUN の値を超えないように設定します。

    -M|--model=<model> 使用するパスのモデル。--typevendor の場合にのみ有効です。

    有効な値は、SCSI INQUIRY 文字列からのモデル文字列の値です。モデル文字列の値を表示するには、各デバイスで vicfg-scsidevs <conn_options> -l を実行します。

    -P|--plugin=<plugin> 使用する PSA プラグイン。値は NMPMASK_PATH、または HPP です。サード パーティは、独自の PSA プラグインを指定することもできます。必須。
    -r|--rule=<rule_ID> 使用する ルール ID。ルール ID は、要求ルールを評価する順序を示します。ユーザー定義の要求ルールは、101 から始まる数値順に評価されます。

    使用可能なルール ID を特定するには、esxcli storage core claimrule list を実行します。

    -T|--target=<target> 使用するパスのターゲット。--typelocation の場合にのみ有効です。
    -R|--transport=<transport>

    使用するパスの転送。--typetransport の場合にのみ有効です。次の値がサポートされています。

    • block: ブロック ストレージ
    • fc: ファイバ チャネル
    • iscsivendor: iSCSI
    • iscsi: 現在使用されていません
    • ide: IDE ストレージ
    • sas: SAS ストレージ
    • sata: SATA ストレージ
    • usb: USB ストレージ
    • parallel: パラレル
    • fcoe: FCoE
    • unknown
    -t|--type=<type> 処理に使用する一致タイプ。有効な値は次のとおりです。必須。
    • vendor
    • location
    • driver
    • transport
    • device
    • target
    -V|--vendor=<vendor> 使用するパスのベンダー。--typevendor の場合にのみ有効です。

    有効な値は、SCSI INQUIRY 文字列からのベンダー文字列の値です。ベンダー文字列の値を表示するには、各デバイスで vicfg-scsidevs <conn_options> -l を実行します。

    --wwnn=<wwnn> ターゲットの WWNN (World-Wide Node Number)。
    --wwpn=<wwpn> ターゲットの WWPN (World-Wide Port Number)。
    -a|--xcopy-use-array-values アレイからレポートされた値を使用して、ストレージ アレイに送信する XCOPY コマンドを作成します。これは、VAAI の要求ルールにのみ適用されます。
    -s|--xcopy-use-multi-segs XCOPY 要求を発行する場合は、複数のセグメントを使用します。--xcopy-use-array-values が指定されている場合にのみ有効です。
    -m|--xcopy-max-transfer-size アレイからレポートされた値とは異なる転送サイズを使用する場合の最大データ転送サイズ (MB)。--xcopy-use-array-values が指定されている場合にのみ有効です。
    -k|--xcopy-max-transfer-size-kib アレイからレポートされた値とは異なる転送サイズを使用する場合の、XCOPY コマンドの最大転送サイズ (KB)。--xcopy-use-array-values が指定されている場合にのみ有効です。
  2. システムに新規の要求ルールをロードするには、次のコマンドを使用します。
    esxcli storage core claimrule load
    このコマンドは、新規作成されたマルチパスの要求ルールすべてを、 esx.conf 構成ファイルから VMkernel にロードします。このコマンドにはオプションはありません。
  3. ロードされている要求ルールを適用するには、次のコマンドを使用します。
    esxcli storage core claimrule run

    このコマンドには次のオプションがあります。

    オプション 説明
    -A|--adapter=<adapter> --typelocation の場合に、要求ルールを実行するパスの HBA の名前。すべてのアダプタからのパスで要求ルールを実行する場合は、このオプションは省略します。
    -C|--channel=<channel> --typelocation の場合に、要求ルールを実行するパスの SCSI チャネル番号の値。すべてのチャネル番号を持つパスで要求ルールを実行するには、このオプションを省略します。
    -c|--claimrule-class=<cl> この操作で使用する要求ルール クラス。
    -d|--device=<device_uid> デバイスの UID。
    -L|--lun=<lun_id> --typelocation の場合の、要求ルールを実行するパスの SCSI LUN の値。すべての LUN を持つパスで要求ルールを実行するには、このオプションを省略します。
    -p|--path=<path_uid> --typepath の場合、このオプションは、要求ルールを実行するパスの一意の識別子 (UID) またはランタイム名を示します。
    -T|--target=<target> --typelocation の場合に、要求ルールを実行するパスの SCSI ターゲット番号の値。すべてのターゲット番号を持つパスで要求ルールを実行するには、このオプションを省略します。
    -t|--type=<location|path|all> 実行する要求のタイプ。デフォルトでは all が使用されます。つまり、要求ルールが特定のパスや SCSI アドレスに制限されずに実行されるということです。有効な値は、locationpath、および all です。
    -w|--wait このオプションは、--type all も使用する場合にのみ使用できます。

    このオプションが含まれている場合、要求処理を実行する前に、パスが解決されるまで待機します。その場合、システム上のすべてのパスが検出されたと考えられるまで、システムは要求プロセスを開始しません。

    要求プロセスが開始された後、デバイスの登録が完了するまでコマンドは返されません。

    要求中または検出中にパスを追加または削除すると、このオプションが正しく機能しない場合があります。

例: マルチパスの要求ルールの定義

次の例では、ルール番号 500 を追加してロードします。このルールは、モデル文字列に NewMod およびベンダー文字列に NewVend を持つすべてのパスを NMP プラグインに要求します。

# esxcli storage core claimrule add -r 500 -t vendor -V NewVend -M NewMod -P NMP

# esxcli storage core claimrule load

esxcli storage core claimrule list コマンドを実行すると、リストに新規の要求ルールが表示されます。

次の出力は、要求ルール 500 がシステムにロードされていて、アクティブなことを示します。
Rule Class  Rule   Class    Type       Plugin     Matches
...         ...    ...      ...        ...        ...
MP          500    runtime  vendor     NMP        vendor=NewVend model=NewMod  
MP          500    file     vendor     NMP        vendor=NewVend model=NewMod