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

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

最終更新日:Apr 28, 2026

カスタムイメージに NVMe ドライバーサポートを追加すると、ストレージパフォーマンスが向上した NVMe ベースの Elastic Compute Service (ECS) インスタンスタイプで起動できるようになります。

NVMe は、フラッシュベースの SSD などのソリッドステートストレージ向けに設計された高速プロトコルです。SCSI や virtio-blk と比較して、NVMe はより高い速度とより広い帯域幅を提供します。

ユースケース

次の場合には、この手順に従ってください。

  • カスタムイメージを Alibaba Cloud にインポートし、イメージチェック で NVMe ドライバーが見つからないと報告された場合。

  • イメージの NVMe 属性がインスタンスタイプの要件と一致しないため、NVMe をサポートする ECS インスタンスタイプを作成する際にカスタムイメージを選択できない場合。

    説明
    • NVMe 互換のインスタンスファミリーについては、「インスタンスファミリーの概要」をご参照ください。また、DescribeInstanceTypes API の NvmeSupport パラメーターで確認することもできます。

    • カスタムイメージが NVMe をサポートしているかどうかを確認するには、DescribeImages API の NvmeSupport パラメーターを確認してください。

    • ECS インスタンスの作成時に一部のイメージが表示されない場合は、「特定のイメージが見つからない」をご参照ください。

操作手順

  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. Cloud Assistant Agent がインストールされているか、ecs_nvme_config プラグインが利用可能かを確認します:

      acs-plugin-manager --list

      image

      • Cloud Assistant 関連の出力が表示されない場合は、まず Cloud Assistant Agent をインストールしてください。

      • プラグインリストに ecs_nvme_config が含まれている場合は、次の手順に進みます。

    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 running 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 running on nvme instance
      5. ドライバーをインストールしたインスタンスから新しいカスタムイメージを作成します。 次に、 新しいカスタムイメージの属性を変更 し、 [NVMe ドライバー] 属性を [サポート] に設定します。

        重要

        NVMe ドライバー属性を Supported に設定しない場合、システムはイメージを 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. NVMe ドライバーを initramfs に追加します:

      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 パラメーターを追加するのは、デバイスのタイムアウトによる 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 を使用してカーネルパラメーターを追加します:前の手順の確認結果に基づいて、io_timeout の値を設定します。システムがサポートしている場合は 4294967295 を、サポートしていない (Invalid argument が返された) 場合は 255 を使用してください。以下のコマンド例では 4294967295 を使用しています。

        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 パラメーターを追加します。 前の手順の確認結果に基づいて、io_timeout の値を設定します。システムがサポートしている場合は 4294967295 を、サポートしていない (Invalid argument が返された) 場合は 255 を使用してください。以下の例では 4294967295 を使用しています。

        パラメーター追加後のファイル内容:

        image

        説明

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

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

      4. GRUB 設定を適用します。

        インスタンス起動モード に一致するコマンドを選択します:

        • レガシー BIOS 起動モード

          sudo grub2-mkconfig -o /boot/grub2/grub.cfg
        • UEFI 起動モード

          1. GRUB 設定ファイルを表示します:

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

            • 設定ファイルが別の設定ファイル (例:/boot/grub/grub.cfg) を指している場合は、 次を実行してください: image

              sudo grub2-mkconfig -o /boot/grub2/grub.cfg
            • それ以外の場合は、 システムに適したコマンドを実行してください:

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

        重要

        NVMe ドライバー属性を Supported に設定しない場合、システムはイメージを 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 パラメーターを追加するのは、デバイスのタイムアウトによる 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。 前の手順の確認結果に基づいて、io_timeout の値を設定します。システムがサポートしている場合は 4294967295 を、サポートしていない (Invalid argument が返された) 場合は 255 を使用してください。以下の例では 4294967295 を使用しています。

        パラメーター追加後のファイル内容: image

        説明

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

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

    3. GRUB 設定を適用します。

      ECS インスタンスの インスタンス起動モード に基づいて、 次のいずれかのコマンドを選択してください:

      • このコマンドは、起動モードに関係なく Ubuntu と Debian で機能します:

        sudo update-grub2
      • レガシー BIOS 起動モード

        sudo grub-mkconfig -o /boot/grub/grub.cfg
      • UEFI 起動モード

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

      重要

      NVMe ドライバー属性を Supported に設定しないと、システムはイメージが NVMe 互換であると認識しません。このイメージからインスタンスを作成する際に、NVMe 対応のインスタンスタイプを選択できなくなります。

  3. (任意) 新しい NVMe 互換のカスタムイメージを使用してワークロードを再デプロイします。 たとえば、 カスタムイメージまたは共有イメージからインスタンスを作成 し、 NVMe 互換のインスタンスタイプを選択します。

説明

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

関連ドキュメント