すべてのプロダクト
Search
ドキュメントセンター

:既存のカスタムイメージへの NVMe ドライバーのインストール

最終更新日:Mar 06, 2026

ご利用のカスタムイメージに NVMe ドライバーをインストールしてから、そのイメージを使用する Elastic Compute Service (ECS) インスタンスにワークロードをデプロイしてください。これにより、Non-Volatile Memory Express (NVMe) プロトコルによるストレージパフォーマンスの向上が可能になります。

不揮発性メモリ用の NVMe インターフェイス標準は、フラッシュベース SSD などのソリッドステートストレージ用に設計された高速プロトコルです。SCSI や virtio-blk のような従来のプロトコルと比較して、NVMe はより高い速度とより広い帯域幅を提供します。

シナリオ

以下のいずれかの状況に遭遇した場合は、このトピックの手順を実行してください。

  • ローカルで構築したカスタムイメージを Alibaba Cloud にインポートし、Image Check で NVMe ドライバーが見つからないと報告された場合。

  • NVMe プロトコルをサポートする ECS インスタンスタイプを購入する際に、カスタムイメージを選択できない場合。これは、イメージの NVMe 属性がインスタンスタイプの要件と一致しない場合に発生します。

    説明

操作手順

  1. 既存のカスタムイメージから ECS インスタンスを起動します。このインスタンスは、イメージを更新するための中間環境として機能します。次に、インスタンスに接続します。

    重要

    中間インスタンスには料金が発生します。継続的な料金を回避するために、新しいカスタムイメージを作成した後、インスタンスを解放してください。

  2. ご利用のインスタンスのオペレーティングシステムに基づいて構成方法を選択します。次に、NVMe ドライバーを検証してインストールします。

    コンソール構成

    1. ECS コンソール - [インスタンス] で、対象のインスタンスを見つけて詳細ページに移動します。右上隅にある [その他の操作] をクリックし、[NVMe ドライバーのステータスを設定] を選択します。

    2. [ワンクリックインストール] をクリックして NVMe ドライバーをインストールします。システムは NVMe ドライバーのステータスを自動的に [インストール済み] に設定します。image

    Cloud Assistant を使用した自動構成

    Cloud Assistant は、NVMe ドライバーを迅速に構成するのに役立つ ecs_nvme_config プラグインを提供します。ただし、特定のオペレーティングシステムのみをサポートしています。

    ecs_nvme_configサポートされているオペレーティングシステム

    • ecs_nvme_config プラグインは、以下のオペレーティングシステムをサポートしています。

      • Alibaba Cloud Linux

      • Anolis OS

      • CentOS 6.6 以降

      • CentOS Stream

      • Debian 9 以降

      • Ubuntu 16 以降

      • OpenSUSE 42 以降

      • SUSE Linux Enterprise Server 11.4 以降

      • Red Hat Enterprise Linux

      • Fedora

      • Rocky Linux

      • AlmaLinux

    1. 次のコマンドを実行して、クラウドアシスタントエージェント がインストールされているか、および ecs_nvme_config プラグインが利用可能かどうかを確認します。

      acs-plugin-manager --list

      image

    2. ecs_nvme_config プラグインを使用して NVMe 構成を完了します。

      1. 次のコマンドを実行して、ecs_nvme_config プラグインを使用して NVMe モジュールが存在するか、および構成可能かどうかを確認します。

        sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --check
        • 出力に次のメッセージが含まれている場合、NVMe ドライバーはすでにインストールされています。それ以上の構成はスキップし、直接カスタムイメージの作成に進んでください。

          [SUCCESS]  Summary: Your image can Runnig on nvme instance
        • 返された結果に次の [ERROR] メッセージに類似したメッセージが含まれている場合は、次のステップに進む必要があります。

          [ERROR]  1.initrd/initramfs not has nvme module, Please run acs-plugin-manager --exec --plugin ecs_nvme_config --params -f/--fix to enable nvme;
      2. チェック結果に基づいて NVMe ドライバーと関連パラメーターを構成します。

        sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --fix
      3. 構成が完了したら、次のコマンドを実行してインスタンスを再起動します。

        sudo reboot
      4. インスタンスの再起動後、チェックコマンドを再度実行して、構成が成功したことを確認します。

        sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --check

        成功出力の例:

        [OK]  1.initrd/initramfs already contain nvme module;
        
        [OK]  2.fstab file looks fine and does not contain any device names;
        
        [OK]  3.The nvme parameters already included.
        
        [SUCCESS]  Summary: Your image can Runnig on nvme instance
      5. ドライバーをインストールしたインスタンスから 新しいカスタムイメージを作成します。次に、新しいカスタムイメージの属性を変更し、NVMe ドライバー属性を [サポート済み] に設定します。

        重要

        NVMe ドライバー属性を [サポート済み] に設定しない場合、システムはイメージを NVMe 互換として認識しません。その結果、このイメージからインスタンスを作成する際に、NVMe 対応のインスタンスタイプを選択できなくなります。

    手動構成 (CentOS/Alibaba Cloud Linux)

    1. 次のコマンドを実行して、カーネルが NVMe ドライバーをロードしているかどうかを確認します。

      cat /boot/config-`uname -r` | grep -i nvme | grep -v "^#"

      image

      • 出力に CONFIG_BLK_DEV_NVME=y が含まれている場合、オペレーティングシステムは NVMe 対応のインスタンスファミリーで直接起動できます。直接 コンソール構成 に進んでください。

      • 出力に CONFIG_BLK_DEV_NVME=m が含まれている場合は、次のステップを実行します。

    2. 次のコマンドを実行して、initramfs に NVMe ドライバーが含まれているかどうかを確認します。

      sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'

      image

      • 返された結果が図と一致する場合、オペレーティングシステムは NVMe プロトコルをサポートするインスタンスファミリーで起動でき、ステップ d に進むことができます。

      • コマンドが何も出力しない場合は、次のステップ (ステップ c) を実行します。

    3. 次のコマンドを実行して、initramfs に NVMe ドライバーを含めます。

      mkdir -p /etc/dracut.conf.d
      echo 'add_drivers+=" nvme nvme-core "' | sudo tee /etc/dracut.conf.d/nvme.conf > /dev/null
      sudo dracut -v -f
      説明

      dracut ツールがインストールされていない場合は、sudo yum -y install dracut を実行してインストールします。

    4. GRUB で NVMe 用の io_timeout パラメーターを追加します。

      説明

      GRUB で NVMe 用の io_timeout パラメーターを追加して、NVMe デバイスタイムアウトによる I/O 障害を防ぎます。この値をサポートされている最大制限に設定することで、システムは早期の障害なしに I/O リクエストの処理を継続できます。

      ほとんどの Linux ディストリビューションでは、io_timeout パラメーターのデフォルト値は 30 秒です。io_timeout パラメーターに値を追加する前に、echo 4294967295 > /sys/module/nvme_core/parameters/io_timeout または echo 4294967295 > /sys/module/nvme/parameters/io_timeout コマンドを実行して、io_timeout パラメーターを最大値の 4,294,967,295 秒に設定できるかどうかを確認する必要があります。コマンドが -bash: echo: write error: Invalid argument を返す場合、現在の Linux バージョンは 255 秒にのみ設定をサポートしています。

      方法 1: grubby を使用してパラメーターを追加
      1. grubby コマンドが利用可能かどうかを確認します。

        which grubby
        • 出力に grubby へのパス (例: /usr/sbin/grubby) が含まれている場合、ご利用のシステムは grubby をサポートしています。次のステップに進むことができます。

        • 出力が表示されない場合、ご利用のシステムは grubby をサポートしていません。パラメーターを追加するには、方法 2 を参照してください。

      2. 次のコマンドを実行して、grubby を使用してカーネルパラメーターを追加します。

        sudo grubby --update-kernel=ALL --args="nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
      方法 2: GRUB 構成ファイルを編集してパラメーターを追加
      1. 次のコマンドを実行して、grub ファイルを開きます。

        sudo vi /etc/default/grub
      2. i を押して挿入モードに入ります。GRUB_CMDLINE_LINUX= の行を見つけて、nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 パラメーターを追加します。

        次の図は、パラメーターを追加した後のファイルの内容を示しています。

        image

        説明

        これらのパラメーターが構成ファイルにすでに存在する場合は、再度追加しないでください。

      3. Esc を押して挿入モードを終了します。:wq と入力し、Enter を押してファイルを保存して閉じます。

      4. 次のコマンドを実行して GRUB 構成を適用します。

        ご利用の ECS インスタンスの インスタンス起動モード に対応するコマンドを選択します。

        • Legacy BIOS ブートモード

          sudo grub2-mkconfig -o /boot/grub2/grub.cfg
        • UEFI ブートモード

          1. GRUB 構成ファイルを表示します。

            # For CentOS, run:
            cat /boot/efi/EFI/centos/grub.cfg
            # For Alibaba Cloud Linux, run:
            cat /boot/efi/EFI/alinux/grub.cfg
          2. 出力に基づいて適切なコマンドを実行します。

            • 構成ファイルが別の構成ファイル (例: /boot/grub/grub.cfg) を指している場合は、次のコマンドを実行します。image

              sudo grub2-mkconfig -o /boot/grub2/grub.cfg
            • それ以外の場合は、次のコマンドを実行します (ご利用のシステムに一致する行を選択してください)。

              # For CentOS
              sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
              # For Alibaba Cloud Linux
              sudo grub2-mkconfig -o /boot/efi/EFI/alinux/grub.cfg
      5. ドライバーをインストールしたインスタンスから 新しいカスタムイメージを作成します。次に、新しいカスタムイメージの属性を変更し、NVMe ドライバー属性を [サポート済み] に設定します。

        重要

        NVMe ドライバー属性を [サポート済み] に設定しない場合、システムはイメージを NVMe 互換として認識しません。その結果、このイメージからインスタンスを作成する際に、NVMe 対応のインスタンスタイプを選択できなくなります。

    5. 次のコマンドを再度実行して、NVMe 関連の出力を確認します。

      sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'

      コマンドがドライバーのファイル名 (例: nvme.ko) を返す場合、構成は完了です。オペレーティングシステムは NVMe 対応の ECS インスタンスタイプで起動する準備ができました。

      image

    手動構成 (Ubuntu/Debian)

    1. (オプション) 次のコマンドを実行して、initrd に NVMe ドライバーが含まれているかどうかを確認します。

      lsinitramfs /boot/initrd.img-`uname -r` | grep -i nvme

      次の出力は、Ubuntu オペレーティングシステムがデフォルトで initrd に NVMe ドライバーをロードすることを示しています。image

    2. GRUB で NVMe 用の io_timeout パラメーターを追加します。

      説明

      GRUB で NVMe 用の io_timeout パラメーターを追加して、NVMe デバイスタイムアウトによる I/O 障害を防ぎます。この値をサポートされている最大制限に設定することで、システムは早期の障害なしに I/O リクエストの処理を継続できます。

      ほとんどの Linux ディストリビューションでは、io_timeout パラメーターはデフォルト値の 30 秒で構成されています。io_timeout パラメーターに値を追加する前に、echo 4294967295 > /sys/module/nvme_core/parameters/io_timeout コマンドまたは echo 4294967295 > /sys/module/nvme/parameters/io_timeout コマンドを実行して、io_timeout パラメーターを最大値の 4,294,967,295 秒に設定できるかどうかを確認する必要があります。コマンドがエラー -bash: echo: write error: Invalid argument を返す場合、現在の Linux ディストリビューションは 255 秒の値のみをサポートしています。

      1. 次のコマンドを実行して、/etc/default/grub ファイルを開きます。

        sudo vi /etc/default/grub
      2. i キーを押して編集モードに入り、GRUB_CMDLINE_LINUX= の行に次のパラメーターを追加します。nvme_core.multipath=n nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295

        パラメーターを追加すると、ファイルの内容は次のようになります。image

        説明

        これらのパラメーターが構成ファイルにすでに存在する場合は、再度追加しないでください。

      3. Esc を押して挿入モードを終了します。:wq と入力し、Enter を押してファイルを保存して閉じます。

    3. 次のコマンドを実行して、構成された GRUB 設定を適用します。

      ECS インスタンスの インスタンス起動モード に応じて、該当する次のコマンドのいずれかを選択します。

      • このコマンドは、ブートモードに関係なく Ubuntu および Debian システムで機能します。

        sudo update-grub2
      • Legacy BIOS ブートモード

        sudo grub-mkconfig -o /boot/grub/grub.cfg
      • UEFI ブートモード

        sudo grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg
    4. ドライバーをインストールしたインスタンスから 新しいカスタムイメージを作成します。次に、新しいカスタムイメージの属性を変更し、NVMe ドライバー属性を [サポート済み] に設定します。

      重要

      NVMe ドライバー属性を [サポート済み] に設定しない場合、システムはイメージを NVMe 互換として認識しません。その結果、このイメージからインスタンスを作成する際に、NVMe 対応のインスタンスタイプを選択できなくなります。

  3. (オプション) NVMe をサポートする新しいカスタムイメージを使用してワークロードを再デプロイします。例えば、カスタムイメージまたは共有イメージからインスタンスを作成します。作成時に、NVMe プロトコルをサポートするインスタンスタイプを選択します。

説明

デプロイメントを確認した後、アイドルリソースの料金を回避するために、元のカスタムイメージを削除してください。

参考資料