Red Hat Training

A Red Hat training course is available for RHEL 8

18.3. NVMe デバイスでの DM Multipath の有効化

ネイティブ NVMe マルチパスを無効にすることで、接続された NVMe デバイスで DM マルチパスを有効にできます。

前提条件

手順

  1. ネイティブ NVMe マルチパスが無効になっているかどうかを確認します。

    # cat /sys/module/nvme_core/parameters/multipath

    コマンドは以下のいずれかを表示します。

    N
    ネイティブ NVMe マルチパスは無効です。
    Y
    ネイティブ NVMe マルチパスは有効です。
  2. ネイティブ NVMe マルチパスが有効になっている場合は、次のいずれかの方法を使用して無効にします。

    • カーネルオプションの使用

      1. カーネルのコマンドラインから nvme_core.multipath=Y オプションを削除しました。

        # grubby --update-kernel=ALL --remove-args="nvme_core.multipath=Y"
      2. 64 ビットの IBM Z アーキテクチャーでは、ブートメニューを更新します。

        # zipl
      3. システムを再起動します。
    • カーネルモジュール設定ファイルの使用

      1. /etc/modprobe.d/nvme_core.conf ファイルに nvme_core multipath=Y オプションの行が存在する場合は、それを削除します。
      2. initramfs ファイルをバックアップします。

        # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname r).bak.$(date +%m%d-%H%M%S).img
      3. initramfs を再構築します。

        # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
        # dracut --force --verbose
      4. システムを再起動します。
  3. DM マルチパスを有効にします。

    # systemctl enable --now multipathd.service
  4. 利用可能なすべてのパスに I/O を分配します。/etc/multipath.conf ファイルに以下の内容を追加します。

    devices {
            device {
                    vendor "NVME"
                    product ".*"
                    path_grouping_policy group_by_prio
            }
    }
    注記

    DM Multipath が NVMe デバイスを管理する場合、/sys/class/nvme-subsystem/nvme-subsys0/iopolicy 設定ファイルは I/O ディストリビューションには影響を与えません。

  5. 設定の変更を適用するために、multipathd サービスをリロードします。

    # multipath -r

検証

  • ネイティブ NVMe マルチパスが無効になっているかどうかを確認します。

    # cat /sys/module/nvme_core/parameters/multipath
    N
  • DM マルチパスが NVMe デバイスを認識しているかどうかを確認します。

    # multipath -l
    
    eui.00007a8962ab241100a0980000d851c8 dm-6 NVME,NetApp E-Series
    size=20G features='0' hwhandler='0' wp=rw
    `-+- policy='service-time 0' prio=0 status=active
      |- 0:10:2:2 nvme0n2 259:3 active undef running
    `-+- policy='service-time 0' prio=0 status=enabled
      |- 4:11:2:2 nvme4n2 259:28 active undef running
    `-+- policy='service-time 0' prio=0 status=enabled
      |- 5:32778:2:2 nvme5n2 259:38 active undef running
    `-+- policy='service-time 0' prio=0 status=enabled
      |- 6:32779:2:2 nvme6n2 259:44 active undef running