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

Elastic Compute Service:LinuxカスタムイメージをNVMeベースのシステムディスクに適応させる

最終更新日:Feb 27, 2024

ECS. g7se、ecs.c7se、ecs.r7seなどの一部のElastic Compute Service (ecs) インスタンスファミリーでは、NVMe (Non-Volatile Memory Express) プロトコルに基づいてディスクを接続できます。 カスタムイメージを使用してそのようなインスタンスファミリーの安定したインスタンスを作成する場合は、必要なNVMe関連の設定を含むオペレーティングシステムに基づいてカスタムイメージが作成されていることを確認してください。

背景情報

NVMeプロトコルに基づいてディスクをアタッチできるインスタンスファミリーについては、「インスタンスファミリーの概要」をご参照ください。

インスタンスにNVMe関連の設定を設定し、インスタンスを使用してカスタムイメージを作成する前に、インスタンスのシステムディスクとデータディスクのスナップショットを作成してデータをバックアップすることをお勧めします。 詳細については、「ディスクのスナップショットの作成」をご参照ください。

このトピックでは、次のオペレーティングシステムでNVMe関連の設定を構成する方法について説明します。

Alibaba CloudのCloud Assistantは、サポートされているオペレーティングシステムでNVMe関連の設定を自動的に構成するためのプラグインを提供します。 詳細については、「Cloud Assistantプラグインを使用したNVMe関連の設定の自動設定」をご参照ください。

CentOS

  1. カスタムイメージを作成するCentOSインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. オペレーティングシステムの設定に基づいてNVMe関連の設定を構成します。

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

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

      以下のようなコマンド出力が返されます。 CONFIG_BLK_DEV_NVMEの値がyであるかどうかを確認します。これは、NVMeプロトコルをサポートするインスタンスファミリーでオペレーティングシステムを起動できることを示しています。 はいの場合、ステップbおよびcをスキップし、ステップdに進む。 そうでない場合は、次の手順を順番に実行します。centos1

    2. 次のコマンドを実行して、初期のRAM (Resource Access Management) ファイルシステム (initramfs) にNVMeドライバが含まれているかどうかを確認します

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

      次のようなコマンド出力が返されたかどうかを確認します。これは、NVMeプロトコルをサポートするインスタンスファミリーでオペレーティングシステムを起動できることを示しています。 はいの場合、ステップcをスキップしてステップdに進みます。 そうでない場合は、次の手順を順番に実行します。centos2

    3. 次のコマンドを順番に実行して、NVMeドライバをサポートするようにinitramfsを設定します。

      mkdir -p /etc/dracut.conf.d
      echo 'add_drivers +="nvme nvme-core nvme-fabrics nvme-fc me-rdma nvme-loop nvmet nvmet-nvfc me-tcp" ' >/etc/dracut.conf.d /
      dracut.
      . v -f
      説明

      お使いのオペレーティングシステムにdracutツールがインストールされていない場合は、yum -y install dracutコマンドを実行してツールをインストールします。

    4. GRand Unified Bootloader (GRUB) にNVMe関連のタイムアウトパラメーターを追加します。

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

        vi /etc/default/grub
      2. Iキーを押して挿入モードに入ります。 GRUB_CMDLINE_LINUX= 行で、nvme_core.io_timeoutおよびnvme_core.admin_timeoutパラメーターを追加し、両方を4294967295に設定します。

        次の図に示すように centos3

        説明

        grubファイルに前述のパラメーター設定が既に含まれている場合は、パラメーターを再度追加する必要はありません。

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

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

      オペレーティングシステムのブートモードに基づいて、次のいずれかのコマンドを実行します。

      • レガシーブートモード

        grub2-mkconfig -o /boot/grub2/grub.cfg
      • Unified Extensible Firmware Interface (UEFI) ブートモード

        grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
    6. 次のコマンドを再実行して、NVMe関連情報を確認します。

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

      次のコマンド出力は、NVMeプロトコルをサポートするインスタンスファミリーでオペレーティングシステムを起動できることを示しています。centos2

  3. CentOSインスタンスからカスタムイメージを作成します。

    CentOSインスタンスのオペレーティングシステムでNVMe関連の設定を構成した後、インスタンスからカスタムイメージを作成できます。 インスタンスからカスタムイメージを作成する方法については、「インスタンスからカスタムイメージを作成する」をご参照ください。

    説明

    オンプレミス環境で作成したカスタムイメージの場合、イメージインポート機能を使用してイメージをAlibaba Cloudにインポートできます。 詳細については、「Linuxイメージのインポート」をご参照ください。

    カスタムイメージの作成には時間がかかります。 カスタムイメージが作成され、[使用可能] 状態になるまで待ちます。 次に、次のステップに進みます。

  4. 作成したカスタムイメージからインスタンスを作成します。

    カスタムイメージからインスタンスを作成する方法については、「カスタムイメージを使用したECSインスタンスの作成」をご参照ください。 カスタムイメージからインスタンスを作成するときは、ビジネス要件を満たし、NVMeプロトコルに基づいてディスクをアタッチできるインスタンスタイプを選択します。

  5. 新しいインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  6. 新しいインスタンスで次のコマンドを順番に実行して、NVMe関連の設定が期待どおりに機能するかどうかを確認します。

    1. 次のコマンドを実行して、NVMeプロトコルをサポートするディスクの情報を確認します。

      lsblk
    2. 次のコマンドを実行して、/proc/cmdlineファイルにNVMe関連のタイムアウトパラメーター設定が含まれているかどうかを確認します。

      cat /proc/cmdline

      次のコマンド出力は、カスタムイメージがNVMeベースのシステムディスクに適合していることを示しています。centos-g7se

Debian

  1. カスタムイメージを作成するDebianインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. NVMe関連の設定を構成します。

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

      デフォルトでは、各DebianオペレーティングシステムのinitrdがNVMeドライバをロードします。

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

      次のようなコマンドが返されます。

    2. GRUBでNVMe関連のタイムアウトパラメーターを追加します。

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

        vi /etc/default/grub
      2. Iキーを押して挿入モードに入ります。 GRUB_CMDLINE_LINUX= 行に、nvme_core.multipath、nvme_core.io_timeout、およびnvme_core.admin_timeoutパラメーターを追加します。 次に、nvme_core.multipathをnに、nvme_core.io_timeoutとnvme_core.admin_timeoutを4294967295に設定します。

        次の図に示すように debian2

        説明

        grubファイルに前述のパラメーター設定が既に含まれている場合は、パラメーターを再度追加する必要はありません。

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

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

      オペレーティングシステムのブートモードに基づいて、次のいずれかのコマンドを実行します。

      • レガシーブートモード

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

        grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg
      説明

      または、次のコマンドを実行して、Debianが提供するスクリプトを実行し、GRUB設定を適用することもできます。 オペレーティングシステムのブートモードは、スクリプトとは無関係である。 このスクリプトは、オペレーティングシステムのブートモードがLegacyまたはUEFIであるかどうかに関係なく使用できます。

      update-grub2
  3. CentOSインスタンスからカスタムイメージを作成します。

    CentOSインスタンスのオペレーティングシステムでNVMe関連の設定を構成した後、インスタンスからカスタムイメージを作成できます。 インスタンスからカスタムイメージを作成する方法については、「インスタンスからカスタムイメージを作成する」をご参照ください。

    説明

    オンプレミス環境で作成したカスタムイメージの場合、イメージインポート機能を使用してイメージをAlibaba Cloudにインポートできます。 詳細については、「Linuxイメージのインポート」をご参照ください。

    カスタムイメージの作成には時間がかかります。 カスタムイメージが作成され、[使用可能] 状態になるまで待ちます。 次に、次のステップに進みます。

  4. 作成したカスタムイメージからインスタンスを作成します。

    カスタムイメージからインスタンスを作成する方法については、「カスタムイメージを使用したECSインスタンスの作成」をご参照ください。 カスタムイメージからインスタンスを作成するときは、ビジネス要件を満たし、NVMeプロトコルに基づいてディスクをアタッチできるインスタンスタイプを選択します。

  5. 新しいインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  6. 新しいインスタンスで次のコマンドを順番に実行して、NVMe関連の設定が期待どおりに機能するかどうかを確認します。

    1. 次のコマンドを実行して、NVMeプロトコルをサポートするディスクの情報を確認します。

      lsblk
    2. 次のコマンドを実行して、/proc/cmdlineファイルにNVMe関連のタイムアウトパラメーター設定が含まれているかどうかを確認します。

      cat /proc/cmdline

      次のコマンド出力は、カスタムイメージがNVMeベースのシステムディスクに適合していることを示しています。debian3

Ubuntu

  1. カスタムイメージを作成するUbuntuインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. NVMe関連の設定を構成します。

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

      デフォルトでは、各UbuntuオペレーティングシステムのinitrdがNVMeドライバをロードします。

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

      次のようなコマンドが返されます。ubuntu1

    2. GRUBでNVMe関連のタイムアウトパラメーターを追加します。

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

        vi /etc/default/grub
      2. Iキーを押して挿入モードに入ります。 GRUB_CMDLINE_LINUX= 行に、nvme_core.multipath、nvme_core.io_timeout、およびnvme_core.admin_timeoutパラメーターを追加します。 次に、nvme_core.multipathをnに、nvme_core.io_timeoutとnvme_core.admin_timeoutを4294967295に設定します。

        次の図に示すように ubuntu2

        説明

        grubファイルに前述のパラメーター設定が既に含まれている場合は、パラメーターを再度追加する必要はありません。

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

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

      オペレーティングシステムのブートモードに基づいて、次のいずれかのコマンドを実行します。

      • レガシーブートモード

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

        grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
      説明

      または、次のコマンドを実行して、Ubuntuが提供するスクリプトを実行し、GRUB設定を適用することもできます。 オペレーティングシステムのブートモードは、スクリプトとは無関係である。 このスクリプトは、オペレーティングシステムのブートモードがLegacyまたはUEFIであるかどうかに関係なく使用できます。

      update-grub2
  3. CentOSインスタンスからカスタムイメージを作成します。

    CentOSインスタンスのオペレーティングシステムでNVMe関連の設定を構成した後、インスタンスからカスタムイメージを作成できます。 インスタンスからカスタムイメージを作成する方法については、「インスタンスからカスタムイメージを作成する」をご参照ください。

    説明

    オンプレミス環境で作成したカスタムイメージの場合、イメージインポート機能を使用してイメージをAlibaba Cloudにインポートできます。 詳細については、「Linuxイメージのインポート」をご参照ください。

    カスタムイメージの作成には時間がかかります。 カスタムイメージが作成され、[使用可能] 状態になるまで待ちます。 次に、次のステップに進みます。

  4. 作成したカスタムイメージからインスタンスを作成します。

    カスタムイメージからインスタンスを作成する方法については、「カスタムイメージを使用したECSインスタンスの作成」をご参照ください。 カスタムイメージからインスタンスを作成するときは、ビジネス要件を満たし、NVMeプロトコルに基づいてディスクをアタッチできるインスタンスタイプを選択します。

  5. 新しいインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  6. 新しいインスタンスで次のコマンドを順番に実行して、NVMe関連の設定が期待どおりに機能するかどうかを確認します。

    1. 次のコマンドを実行して、NVMeプロトコルをサポートするディスクの情報を確認します。

      lsblk
    2. 次のコマンドを実行して、/proc/cmdlineファイルにNVMe関連のタイムアウトパラメーター設定が含まれているかどうかを確認します。

      cat /proc/cmdline

      次のコマンド出力は、カスタムイメージがNVMeベースのシステムディスクに適合していることを示しています。ubuntu3

SUSE Linuxエンタープライズサーバー (SLES)

  1. カスタムイメージを作成するSLESインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. オペレーティングシステムの設定に基づいてNVMe関連の設定を構成します。

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

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

      以下のようなコマンド出力が返されます。 CONFIG_BLK_DEV_NVMEの値がyであるかどうかを確認します。これは、NVMeプロトコルをサポートするインスタンスファミリーでオペレーティングシステムを起動できることを示しています。 はいの場合、ステップbおよびcをスキップし、ステップdに進む。 そうでない場合は、次の手順を順番に実行します。suselinux1

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

      lsinitrd /boot/initrd-'uname -r' | grep -i nvme | awk '{print $NF}'

      次のようなコマンド出力が返されたかどうかを確認します。これは、NVMeプロトコルをサポートするインスタンスファミリーでオペレーティングシステムを起動できることを示しています。 はいの場合、ステップcをスキップしてステップdに進みます。 そうでない場合は、次の手順を順番に実行します。suselinux2

    3. 次のコマンドを順番に実行して、NVMeドライバをサポートするようにinitrdを設定します。

      mkdir -p /etc/dracut.conf.d
      echo 'add_drivers +="nvme nvme-core nvme-fabrics nvme-fc me-rdma nvme-loop nvmet nvmet-nvfc me-tcp" ' >/etc/dracut.conf.d /
      dracut.
      . v -f
      説明

      オペレーティングシステムにdracutツールがインストールされていない場合は、zypper install -y dracutコマンドを実行してツールをインストールします。

    4. GRUBでNVMe関連のタイムアウトパラメーターを追加します。

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

        vi /etc/default/grub
      2. Iキーを押して挿入モードに入ります。 GRUB_CMDLINE_LINUX= 行で、nvme_core.io_timeoutおよびnvme_core.admin_timeoutパラメーターを追加し、両方を4294967295に設定します。

        次の図に示すように suselinux3

        説明

        grubファイルに前述のパラメーター設定が既に含まれている場合は、パラメーターを再度追加する必要はありません。

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

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

      オペレーティングシステムのブートモードに基づいて、次のいずれかのコマンドを実行します。

      • レガシーブートモード

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

        grub2-mkconfig -o /boot/efi/EFI/sles/grub.cfg
    6. 次のコマンドを再実行して、NVMe関連情報を確認します。

      lsinitrd /boot/initrd-'uname -r' | grep -i nvme | awk '{print $NF}'

      次のコマンド出力は、NVMeプロトコルをサポートするインスタンスファミリーでオペレーティングシステムを起動できることを示しています。suselinux2

  3. CentOSインスタンスからカスタムイメージを作成します。

    CentOSインスタンスのオペレーティングシステムでNVMe関連の設定を構成した後、インスタンスからカスタムイメージを作成できます。 インスタンスからカスタムイメージを作成する方法については、「インスタンスからカスタムイメージを作成する」をご参照ください。

    説明

    オンプレミス環境で作成したカスタムイメージの場合、イメージインポート機能を使用してイメージをAlibaba Cloudにインポートできます。 詳細については、「Linuxイメージのインポート」をご参照ください。

    カスタムイメージの作成には時間がかかります。 カスタムイメージが作成され、[使用可能] 状態になるまで待ちます。 次に、次のステップに進みます。

  4. 作成したカスタムイメージからインスタンスを作成します。

    カスタムイメージからインスタンスを作成する方法については、「カスタムイメージを使用したECSインスタンスの作成」をご参照ください。 カスタムイメージからインスタンスを作成するときは、ビジネス要件を満たし、NVMeプロトコルに基づいてディスクをアタッチできるインスタンスタイプを選択します。

  5. 新しいインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  6. 新しいインスタンスで次のコマンドを順番に実行して、NVMe関連の設定が期待どおりに機能するかどうかを確認します。

    1. 次のコマンドを実行して、NVMeプロトコルをサポートするディスクの情報を確認します。

      lsblk
    2. 次のコマンドを実行して、/proc/cmdlineファイルにNVMe関連のタイムアウトパラメーター設定が含まれているかどうかを確認します。

      cat /proc/cmdline

      次のコマンド出力は、カスタムイメージがNVMeベースのシステムディスクに適合していることを示しています。suselinux4

Cloud Assistantプラグインを使用してNVMe関連の設定を自動的に構成する

Cloud Assistantは、オペレーティングシステムでNVMe関連の設定を構成するのに役立つecs_nvme_configプラグインを提供します。 ecs_nvme_configプラグインは、次のオペレーティングシステムをサポートしています。

  • Alibaba Cloud Linux

  • アナリスOS

  • CentOS/CentOSストリーム

  • Debian

  • Ubuntu

  • OpenSUSE

  • SUSE Linux Enterprise Server

  • レッドハットエンタープライズLinux

  • フェドラ

  • ロッキーLinux

  • AlmaLinux

ecs_nvme_configプラグインは、次のオペレーティングシステムバージョンをサポートしていません。

  • CentOSおよびRed Hat Enterprise Linux: CentOS 6.6およびRed Hat Enterprise Linux 6.6より前のバージョン

  • Debian: Debian 9より前のバージョン

  • Ubuntu: Ubuntu 16より前のバージョン

  • openSUSE: openSUSE 42より前のバージョン

  • SLES: SLES 11.4より前のバージョン

  1. カスタムイメージを作成するインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. 次のコマンドを実行して、インスタンスにCloud Assistant Agentがインストールされているかどうか、およびインストールされているCloud Assistant Agentがecs_nvme_configプラグインを提供しているかどうかを確認します。

    acs-plugin-manager -- リスト

    次のコマンド出力は、Cloud Assistant Agentがインストールされていることを示します。 Cloud Assistant Agentがインスタンスにインストールされていない場合、コマンド出力にはCloud Assistant Agentに関する情報は含まれません。 この場合、まずCloud Assistant Agentをインストールします。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。 云助手插件

    コマンド出力で、ecs_nvme_configプラグインを除外するCloud Assistantプラグインのリストが見つかった場合、そのプラグインは現在のリージョンとゾーンでは使用できません。 この場合、オペレーティングシステムに適用可能な方法を使用して、NVMe関連の設定を手動で構成します。

    Cloud Assistant Agentがインストールされており、インスタンスにecs_nvme_configプラグインが提供されている場合は、次の手順に進みます。

  3. ecs_nvme_configプラグインを使用して、NVMe関連の設定を構成します。

    1. 次のコマンドを実行し、ecs_nvme_configプラグインを使用して、インスタンスにNVMeモジュールがあるかどうか、およびインスタンスがNVMeモジュールをサポートしているかどうかを確認します。

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

      コマンド出力の説明:

      • コマンド出力に次のSUCCESSメッセージが表示された場合は、NVMe関連の設定を構成する必要なしにカスタムイメージを作成できます。

        [成功] サマリー: イメージはnvmeインスタンスでRunnigできます
      • コマンド出力に [エラー] メッセージが表示された場合は、次の手順に進みます。

    2. コマンド出力のエラーメッセージに基づいて、NVMeドライバーと関連パラメーターを設定します。

      サンプルエラーメッセージ:

      [エラー] 1.initrd/initramfsにnvmeモジュールがありません。acs-plugin-manager -- exec -- plugin ecs_nvme_config -- params -f/-- fix to enable nvme;

      次のコマンドを実行して、エラーメッセージに基づいてNVMe関連の設定を構成します。

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

      reboot
    4. インスタンスの再起動後、次のコマンドを実行して、NVMeモジュールが設定されているかどうかを確認します。

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

      サンプル成功出力:

      [OK] 1.initrd/initramfsにはすでにnvmeモジュールが含まれています。[OK] 2.fstabファイルは正常に見え、デバイス名は含まれていません。[OK] 3.nvmeパラメータは既に含まれています。
      
      [成功] サマリー: イメージはnvmeインスタンス
      でRunnigできます
  4. CentOSインスタンスからカスタムイメージを作成します。

    CentOSインスタンスのオペレーティングシステムでNVMe関連の設定を構成した後、インスタンスからカスタムイメージを作成できます。 インスタンスからカスタムイメージを作成する方法については、「インスタンスからカスタムイメージを作成する」をご参照ください。

    説明

    オンプレミス環境で作成したカスタムイメージの場合、イメージインポート機能を使用してイメージをAlibaba Cloudにインポートできます。 詳細については、「Linuxイメージのインポート」をご参照ください。

    カスタムイメージの作成には時間がかかります。 カスタムイメージが作成され、[使用可能] 状態になるまで待ちます。 次に、次のステップに進みます。

  5. 作成したカスタムイメージからインスタンスを作成します。

    カスタムイメージからインスタンスを作成する方法については、「カスタムイメージを使用したECSインスタンスの作成」をご参照ください。 カスタムイメージからインスタンスを作成するときは、ビジネス要件を満たし、NVMeプロトコルに基づいてディスクをアタッチできるインスタンスタイプを選択します。

  6. 新しいインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  7. 新しいインスタンスで次のコマンドを順番に実行して、NVMe関連の設定が期待どおりに機能するかどうかを確認します。

    1. 次のコマンドを実行して、NVMeプロトコルをサポートするディスクの情報を確認します。

      lsblk
    2. 次のコマンドを実行して、/proc/cmdlineファイルにNVMe関連のタイムアウトパラメーター設定が含まれているかどうかを確認します。

      cat /proc/cmdline

      次のコマンド出力は、カスタムイメージがNVMeベースのシステムディスクに適合していることを示しています。centos-g7se