メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

VPC 内の Linux インスタンスにおける Intel 82599 VF インターフェイスを使用した拡張ネットワーキングの有効化

Amazon EC2 は、インテル ixgbevf ドライバーを使用するインテル 82599 VF インターフェイスによって、C3、C4、D2、I2、R3、M4 (m4.16xlarge を除く) インスタンスに拡張ネットワーキング機能を提供します。

Intel 82599 VF インターフェイスを使用した拡張ネットワーキングを準備するには、次のようにインスタンスをセットアップします。

  • Linux カーネルバージョン 2.6.32 以降を使用して、HVM AMI からインスタンスを起動します。最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要なモジュールがインストールされており、必要な属性も設定されています。したがって、拡張ネットワーキングがサポートされている、Amazon EBS-Backed インスタンスを最新の Amazon Linux HVM AMI を使用して起動した場合は、拡張ネットワーキングが既に有効化されています。

    警告

    拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなります。 また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定すると、インスタンスにアクセスできなくなる場合があります。

  • VPC 内でインスタンスを起動している (インスタンスが EC2-Classic 内で動作している場合、拡張ネットワーキングを有効にできません)。

  • 選択した任意のコンピュータ、できればローカルのデスクトップまたはノート PC に、AWS CLI または AWS Tools for Windows PowerShell をインストールして設定します。詳細については、「Amazon EC2 へのアクセス」を参照してください。拡張ネットワーキングは、Amazon EC2 コンソールから管理することはできません。

  • 保持する必要がある重要なデータがインスタンスにある場合、インスタンスから AMI を作成してそのデータをバックアップする必要があります。カーネルとカーネルモジュールを更新し、sriovNetSupport 属性を有効にすると、互換性のないインスタンスがレンダリングされたり、オペレーティングシステムにアクセスできなくなる場合があります。最新のバックアップがあれば、このような場合でもデータは保持されます。

Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが有効かどうかのテスト

Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが既に有効になっているかどうかをテストするには、ixgbevf モジュールがインスタンスにインストールされていることと、sriovNetSupport 属性が設定されていることを確認します。インスタンスがこれら 2 つの条件を満たしている場合は、ethtool -i ethn コマンドによって、ネットワークインターフェイスで使用されているモジュールが表示されます。

カーネルモジュール (ixgbevf)

ixgbevf モジュールがインストールされていることと、そのバージョン拡張ネットワーキングと互換性があることを確認するには、次のように modinfo コマンドを使用します。

Copy
[ec2-user ~]$ modinfo ixgbevf filename: /lib/modules/3.10.48-55.140.amzn1.x86_64/kernel/drivers/amazon/ixgbevf/ixgbevf.ko version: 2.14.2 license: GPL description: Intel(R) 82599 Virtual Function Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 50CBF6F36B99FE70E56C95A alias: pci:v00008086d00001515sv*sd*bc*sc*i* alias: pci:v00008086d000010EDsv*sd*bc*sc*i* depends: intree: Y vermagic: 3.10.48-55.140.amzn1.x86_64 SMP mod_unload modversions parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (956-488281, 0=off, 1=dynamic), default 1 (array of int)

前述の Amazon Linux の場合、ixgbevf モジュールは既にインストールされており、最小推奨バージョン (2.14.2) です。

Copy
ubuntu:~$ modinfo ixgbevf filename: /lib/modules/3.13.0-29-generic/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko version: 2.11.3-k license: GPL description: Intel(R) 82599 Virtual Function Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 0816EA811025C8062A9C269 alias: pci:v00008086d00001515sv*sd*bc*sc*i* alias: pci:v00008086d000010EDsv*sd*bc*sc*i* depends: intree: Y vermagic: 3.13.0-29-generic SMP mod_unload modversions signer: Magrathea: Glacier signing key sig_key: 66:02:CB:36:F1:31:3B:EA:01:C4:BD:A9:65:67:CF:A7:23:C9:70:D8 sig_hashalgo: sha512 parm: debug:Debug level (0=none,...,16=all) (int)

前述の Ubuntu インスタンスでは、モジュールはインストールされていますが、バージョンは 2.11.3-k であり、推奨されるバージョン 2.14.2 に含まれている最新のバグ修正の一部が含まれていない場合があります。この場合、ixgbevf モジュールは機能しますが、最適なエクスペリエンスのために、新しいバージョンをインスタンスにインストールしてロードすることができます。

インスタンス属性 (sriovNetSupport)

インスタンスに拡張ネットワーキングの sriovNetSupport 属性が設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。

  • describe-instance-attribute (AWS CLI)

    Copy
    aws ec2 describe-instance-attribute --instance-id instance_id --attribute sriovNetSupport
  • Get-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Copy
    Get-EC2InstanceAttribute -InstanceId instance-id -Attribute sriovNetSupport

属性が設定されていない場合、SriovNetSupport は空です。それ以外の場合は、次のようにして設定します。

"SriovNetSupport": {
    "Value": "simple"
},

イメージ属性 (sriovNetSupport)

AMI に拡張ネットワーキングの sriovNetSupport 属性がすでに設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。

  • describe-image-attribute (AWS CLI)

    Copy
    aws ec2 describe-image-attribute --image-id ami_id --attribute sriovNetSupport

    このコマンドは、所有しているイメージに対してのみ機能します。自分のアカウントに属していないイメージについては、AuthFailure エラーが出力される可能性があります。

  • Get-EC2ImageAttribute (AWS Tools for Windows PowerShell)

    Copy
    Get-EC2ImageAttribute -ImageId ami-id -Attribute sriovNetSupport

属性が設定されていない場合、SriovNetSupport は空です。それ以外の場合は、次のようにして設定します。

"SriovNetSupport": {
    "Value": "simple"
},

ネットワークインターフェイスドライバー

モジュールが特定のインターフェイスで使用されていることを確認するには、確認するインターフェイス名に置き換えて、次のコマンドを使用します。単一のインターフェイス (デフォルト) を使用している場合は、eth0 です。

Copy
[ec2-user ~]$ ethtool -i eth0 driver: vif version: firmware-version: bus-info: vif-0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no

前述の場合、リストされているドライバーは vif であるため、ixgbevf モジュールはロードされていません。

Copy
[ec2-user ~]$ ethtool -i eth0 driver: ixgbevf version: 2.14.2 firmware-version: N/A bus-info: 0000:00:03.0 supports-statistics: yes supports-test: yes supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no

この場合、ixgbevf モジュールはロードされており、最小推奨バージョンです。このインスタンスでは、拡張ネットワーキングが適切に設定されています。

Amazon Linux における Intel 82599 VF インターフェイスを使用した拡張ネットワーキングの有効化

最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要な ixgbevf モジュールがインストールされており、必要な sriovNetSupport 属性も設定されています。したがって、C3、C4、D2、I2、R3、または M4 (m4.16xlarge を除く) のいずれかのインスタンスを最新の Amazon Linux HVM AMI を使用して起動した場合は、拡張ネットワーキングが既にインスタンスに対して有効になっています。詳細については、「Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが有効かどうかのテスト」を参照してください。

以前の Amazon Linux AMI を使用してインスタンスを起動し、まだ拡張ネットワーキングが有効になっていない場合、拡張ネットワーキングを有効にするには次の手順を実行します。

警告

拡張ネットワーキング属性は、いったん有効にすると無効にする方法はありません。

警告

拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなります。 また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定すると、インスタンスにアクセスできなくなる場合があります。

To enable enhanced networking (EBS-backed instances)

  1. Connect to your instance.

  2. From the instance, run the following command to update your instance with the newest kernel and kernel modules, including ixgbevf:

    Copy
    [ec2-user ~]$ sudo yum update
  3. From your local computer, reboot your instance using the Amazon EC2 console or one of the following commands: reboot-instances (AWS CLI), Restart-EC2Instance (AWS Tools for Windows PowerShell).

  4. Connect to your instance again and verify that the ixgbevf module is installed and at the minimum recommended version using the modinfo ixgbevf command from Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが有効かどうかのテスト.

  5. From your local computer, stop the instance using the Amazon EC2 console or one of the following commands: stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). If your instance is managed by AWS OpsWorks, you should stop the instance in the AWS OpsWorks console so that the instance state remains in sync.

    重要

    If you are using an instance store-backed instance, you can't stop the instance. Instead, proceed to 拡張ネットワーキングを有効にするには (Instance store-backed インスタンス) .

  6. From your local computer, enable the enhanced networking attribute using one of the following commands:

    • modify-instance-attribute (AWS CLI)

      Copy
      aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

      Copy
      Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  7. (Optional) Create an AMI from the instance, as described in Amazon EBS-Backed Linux AMI の作成 . The AMI inherits the enhanced networking attribute from the instance. Therefore, you can use this AMI to launch another instance with enhanced networking enabled by default.

  8. From your local computer, start the instance using the Amazon EC2 console or one of the following commands: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). If your instance is managed by AWS OpsWorks, you should start the instance in the AWS OpsWorks console so that the instance state remains in sync.

  9. Connect to your instance and verify that the ixgbevf module is installed and loaded on your network interface using the ethtool -i ethn command from Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが有効かどうかのテスト.

拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

インスタンスが instance store–backed インスタンスである場合、前の手順の「ステップ 1」から「ステップ 4」までを実行し、Instance Store-Backed Linux AMI の作成」の説明に従って新しい AMI を作成します。AMI を登録するときに、必ず拡張ネットワーキング属性を有効化してください。

  • register-image (AWS CLI)

    Copy
    aws ec2 register-image --sriov-net-support simple ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Copy
    Register-EC2Image -SriovNetSupport "simple" ...

Ubuntu での Intel 82599 VF インターフェイスを使用した拡張ネットワーキングの有効化

次の手順では、Ubuntu インスタンスで Intel 82599 VF を使用した拡張ネットワーキングを有効にする場合の一般的なステップを説明します。

To enable enhanced networking on Ubuntu (EBS-backed instances)

  1. Connect to your instance.

  2. Update the package cache and packages.

    Copy
    ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y

    重要

    If during the update process, you are prompted to install grub, use /dev/xvda to install grub onto, and then choose to keep the current version of /boot/grub/menu.lst.

  3. Install the dkms package so that your ixgbevf module is rebuilt every time your kernel is updated.

    Copy
    ubuntu:~$ sudo apt-get install -y dkms
  4. Download the source for version 2.16.4 of the ixgbevf module on your instance from Sourceforge at http://sourceforge.net/projects/e1000/files/ixgbevf%20stable/.

    Note that earlier versions of ixgbevf, including the minimum recommended version, 2.14.2, do not build properly on some versions of Ubuntu. The 2.16.4 version of ixgbevf should be used for Ubuntu instances.

    Copy
    ubuntu:~$ wget "sourceforge.net/projects/e1000/files/ixgbevf stable/2.16.4/ixgbevf-2.16.4.tar.gz"
  5. Decompress and unarchive the ixgbevf package.

    Copy
    ubuntu:~$ tar -xzf ixgbevf-2.16.4.tar.gz
  6. Move the ixgbevf package to the /usr/src/ directory so that dkms can find it and build it for each kernel update.

    Copy
    ubuntu:~$ sudo mv ixgbevf-2.16.4 /usr/src/
  7. Create the dkms configuration file with the following values, substituting your version of ixgbevf.

    1. Create the file.

      Copy
      ubuntu:~$ sudo touch /usr/src/ixgbevf-2.16.4/dkms.conf
    2. Edit the file and add the following values.

      Copy
      ubuntu:~$ sudo vim /usr/src/ixgbevf-2.16.4/dkms.conf PACKAGE_NAME="ixgbevf" PACKAGE_VERSION="2.16.4" CLEAN="cd src/; make clean" MAKE="cd src/; make BUILD_KERNEL=${kernelver}" BUILT_MODULE_LOCATION[0]="src/" BUILT_MODULE_NAME[0]="ixgbevf" DEST_MODULE_LOCATION[0]="/updates" DEST_MODULE_NAME[0]="ixgbevf" AUTOINSTALL="yes"
  8. Add, build, and install the ixgbevf module on your instance using dkms.

    1. Add the module to dkms.

      Copy
      ubuntu:~$ sudo dkms add -m ixgbevf -v 2.16.4
    2. Build the module with dkms.

      Copy
      ubuntu:~$ sudo dkms build -m ixgbevf -v 2.16.4

      注記

      If your build fails, verify that perl is installed and that it is in your path. The dkms package requires perl, but it is not always installed by default on all operating systems.

      Copy
      ubuntu:~$ which perl

      If the output of the above command does not show perl in your path, you need to install it.

    3. Install the module with dkms.

      Copy
      ubuntu:~$ sudo dkms install -m ixgbevf -v 2.16.4
  9. Rebuild initramfs so the correct module is loaded at boot time.

    Copy
    ubuntu:~$ sudo update-initramfs -c -k all
  10. Verify that the ixgbevf module is installed and at the minimum recommended version using the modinfo ixgbevf command from Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが有効かどうかのテスト.

    Copy
    ubuntu:~$ modinfo ixgbevf filename: /lib/modules/3.13.0-74-generic/updates/dkms/ixgbevf.ko version: 2.16.4 license: GPL description: Intel(R) 10 Gigabit Virtual Function Network Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 759A432E3151C8F9F6EA882 alias: pci:v00008086d00001515sv*sd*bc*sc*i* alias: pci:v00008086d000010EDsv*sd*bc*sc*i* depends: vermagic: 3.13.0-74-generic SMP mod_unload modversions parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (956-488281, 0=off, 1=dynamic), default 1 (array of int)
  11. From your local computer, stop the instance using the Amazon EC2 console or one of the following commands: stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). If your instance is managed by AWS OpsWorks, you should stop the instance in the AWS OpsWorks console so that the instance state remains in sync.

    重要

    If you are using an instance store-backed instance, you can't stop the instance. Instead, proceed to Ubuntu で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス) .

  12. From your local computer, enable the enhanced networking sriovNetSupport attribute using one of the following commands. Note that there is no way to disable this attribute after you've enabled it.

    • modify-instance-attribute (AWS CLI)

      Copy
      aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

      Copy
      Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  13. (Optional) Create an AMI from the instance, as described in Amazon EBS-Backed Linux AMI の作成 . The AMI inherits the enhanced networking sriovNetSupport attribute from the instance. Therefore, you can use this AMI to launch another instance with enhanced networking enabled by default.

  14. From your local computer, start the instance using the Amazon EC2 console or one of the following commands: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). If your instance is managed by AWS OpsWorks, you should start the instance in the AWS OpsWorks console so that the instance state remains in sync.

  15. (Optional) Connect to your instance and verify that the module is installed.

Ubuntu で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

インスタンスが instance store–backed インスタンスである場合、前の手順の「ステップ 1」から「ステップ 10」までを実行し、「Instance Store-Backed Linux AMI の作成」の説明に従って新しい AMI を作成します。AMI を登録するときに、必ず拡張ネットワーキング属性を有効化してください。

  • register-image (AWS CLI)

    Copy
    aws ec2 register-image --sriov-net-support simple ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Copy
    Register-EC2Image -SriovNetSupport "simple" ...

他の Linux ディストリビューションにおける Intel 82599 VF インターフェイスを使用した拡張ネットワーキングの有効化

次の手順では、Amazon Linux または Ubuntu 以外の Linux ディストリビューションで Intel 82599 VF インターフェイスを使用した拡張ネットワーキングを有効にする場合の一般的なステップを説明します。コマンドの詳細な構文、ファイルの場所、パッケージやツールのサポートなどの詳細については、使用する Linux ディストリビューションのドキュメントを参照してください。

To enable enhanced networking on Linux (EBS-backed instances)

  1. Connect to your instance.

  2. Download the source for version 2.14.2 of the ixgbevf module on your instance from Sourceforge at http://sourceforge.net/projects/e1000/files/ixgbevf%20stable/. This is the minimum version recommended for enhanced networking.

    Earlier versions of ixgbevf, including the minimum recommended version, 2.14.2, do not build properly on some Linux distributions, including certain versions of Ubuntu. If you receive build errors, you may try a newer version, such as 2.16.4 (which fixes the build issue on affected Ubuntu versions).

  3. Compile and install the ixgbevf module on your instance.

    If your distribution supports dkms, then you should consider configuring dkms to recompile the ixgbevf module whenever your system's kernel is updated. If your distribution does not support dkms natively, you can find it in the EPEL repository (https://fedoraproject.org/wiki/EPEL) for Red Hat Enterprise Linux variants, or you can download the software at http://linux.dell.com/dkms/. Use ステップ 6 through ステップ 8 in To enable enhanced networking on Ubuntu (EBS-backed instances) for help configuring dkms.

    警告

    If you compile the ixgbevf module for your current kernel and then upgrade your kernel without rebuilding the driver for the new kernel, your system may revert to the distribution-specific ixgbevf module at the next reboot, which could make your system unreachable if the distribution-specific version is incompatible with enhanced networking.

  4. Run the sudo depmod command to update module dependencies.

  5. Update initramfs on your instance to ensure that the new module loads at boot time.

  6. Determine if your system uses predictable network interface names by default. Systems that use systemd or udev versions 197 or greater can rename Ethernet devices and they do not guarantee that a single network interface will be named eth0. This behavior can cause problems connecting to your instance. For more information and to see other configuration options, see Predictable Network Interface Names on the freedesktop.org website.

    1. You can check the systemd or udev versions on RPM-based systems with the following command:

      Copy
      [ec2-user ~]$ rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+' systemd-208-11.el7_0.2.x86_64

      In the above Red Hat 7 example, the systemd version is 208, so predictable network interface names must be disabled.

    2. Disable predictable network interface names by adding the net.ifnames=0 option to the GRUB_CMDLINE_LINUX line in /etc/default/grub.

      Copy
      [ec2-user ~]$ sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
    3. Rebuild the grub configuration file.

      Copy
      [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. From your local computer, stop the instance using the Amazon EC2 console or one of the following commands: stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). If your instance is managed by AWS OpsWorks, you should stop the instance in the AWS OpsWorks console so that the instance state remains in sync.

    重要

    If you are using an instance store-backed instance, you can't stop the instance. Instead, proceed to 拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

  8. From your local computer, enable the enhanced networking attribute using one of the following commands:

    • modify-instance-attribute (AWS CLI)

      Copy
      aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

      Copy
      Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  9. (Optional) Create an AMI from the instance, as described in Amazon EBS-Backed Linux AMI の作成 . The AMI inherits the enhanced networking attribute from the instance. Therefore, you can use this AMI to launch another instance with enhanced networking enabled by default.

    重要

    If your instance operating system contains an /etc/udev/rules.d/70-persistent-net.rules file, you must delete it before creating the AMI. This file contains the MAC address for the Ethernet adapter of the original instance. If another instance boots with this file, the operating system will be unable to find the device and eth0 may fail, causing boot issues. This file is regenerated at the next boot cycle, and any instances launched from the AMI create their own version of the file.

  10. From your local computer, start the instance using the Amazon EC2 console or one of the following commands: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). If your instance is managed by AWS OpsWorks, you should start the instance in the AWS OpsWorks console so that the instance state remains in sync.

  11. (Optional) Connect to your instance and verify that the module is installed.

拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

インスタンスが instance store–backed インスタンスである場合、前の手順の「ステップ 1」から「ステップ 5」までを実行し、「Instance Store-Backed Linux AMI の作成」の説明に従って新しい AMI を作成します。AMI を登録するときに、必ず拡張ネットワーキング属性を有効化してください。

  • register-image (AWS CLI)

    Copy
    aws ec2 register-image --sriov-net-support simple ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Copy
    Register-EC2Image -SriovNetSupport "simple" ...

接続性の問題のトラブルシューティング

拡張ネットワーキングを有効化しているときに接続が失われると、ixgbevf モジュールとカーネルの互換性が保たれない可能性があります。この場合、インスタンスの Linux ディストリビューションに含まれる ixgbevf モジュールのバージョンをインストールしてみます。

PV インスタンスまたは AMI で拡張ネットワーキングを有効にすると、お使いのインスタンスに到達できなくなります。