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

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

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

要件

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

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

    警告

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

  • インスタンスがインターネットに接続されていることを確認します。

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

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

拡張ネットワーキングが有効になっているかどうかのテスト

ixgbevf モジュールがインスタンスにインストールされており、sriovNetSupport 属性が設定されている場合は、Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが既に有効になっています。

インスタンス属性 (sriovNetSupport)

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

  • describe-instance-attribute (AWS CLI)

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

    Get-EC2InstanceAttribute -InstanceId instance-id -Attribute sriovNetSupport

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

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

イメージ属性 (sriovNetSupport)

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

  • describe-image-attribute (AWS CLI)

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

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

  • Get-EC2ImageAttribute (AWS Tools for Windows PowerShell)

    Get-EC2ImageAttribute -ImageId ami-id -Attribute sriovNetSupport

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

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

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

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

[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

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

[ec2-user ~]$ ethtool -i eth0 driver: ixgbevf version: 4.0.3 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 での拡張ネットワーキングの有効化

最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要な ixgbevf モジュールがインストールされており、必要な sriovNetSupport 属性も設定されています。したがって、最新の Amazon Linux HVM AMI を使用してインスタンスタイプを起動した場合は、拡張ネットワーキングが既にインスタンスに対して有効になっています。詳細については、「拡張ネットワーキングが有効になっているかどうかのテスト」を参照してください。

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

警告

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

拡張ネットワーキングを有効にするには

  1. インスタンスに接続します。

  2. インスタンスから、次のコマンドを実行して、ixgbevf を含む最新のカーネルとカーネルモジュールでインスタンスを更新します。

    [ec2-user ~]$ sudo yum update
  3. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用してインスタンスを再起動します。reboot-instances (AWS CLI)、Restart-EC2Instance (AWS Tools for Windows PowerShell)。

  4. インスタンスに再接続し、「拡張ネットワーキングが有効になっているかどうかのテスト」の modinfo ixgbevf コマンドを使用して、ixgbevf モジュールがインストールされ、最小推奨バージョンであることを確認します。

  5. [EBS-backed インスタンス] ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用してインスタンスを停止します。stop-instances (AWS CLI)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、この手順に進んでください: 拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

  6. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。

    • modify-instance-attribute (AWS CLI)

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

      Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  7. (オプション) 「Amazon EBS-Backed Linux AMI の作成」の説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。

  8. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用してインスタンスを起動します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

  9. インスタンスに接続し、拡張ネットワーキングが有効になっているかどうかのテストethtool -i ethn コマンドを使用して、ixgbevf モジュールがインストールされ、ネットワークインターフェイスにロードされていることを確認します。

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

インスタンスを停止するステップまで、前の手順に従います。「Instance Store-Backed Linux AMI の作成」に記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。

  • register-image (AWS CLI)

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

    Register-EC2Image -SriovNetSupport "simple" ...

Ubuntu での拡張ネットワーキングの有効化

開始する前に、インスタンスで拡張ネットワーキングがすでに有効になっているかどうかを確認します。

クイックスタート Ubuntu HVM AMI には、拡張ネットワーキングに必要なドライバが搭載されています。ixgbevf 2.16.4 より前のバージョンを使用している場合は、linux-aws カーネルパッケージをインストールして最新の拡張ネットワーキングドライバーを取得できます。

以下の手順は、Ubuntu インスタンスで ixgbevf モジュールをコンパイルするための一般的なステップを示しています。

linux-aws カーネルパッケージをインストールするには

  1. インスタンスに接続します。

  2. パッケージキャッシュおよびパッケージを更新します。

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

    重要

    更新プロセス中に grub をインストールするよう求められた場合は、/dev/xvda のインストール先として grub を使用し、現在のバージョンの /boot/grub/menu.lst を保持することを選択します。

他の Linux ディストリビューションでの拡張ネットワーキングの有効化

開始する前に、インスタンスで拡張ネットワーキングがすでに有効になっているかどうかを確認します。最新のクイックスタート HVM AMI には、拡張ネットワーキングに必要なドライバが含まれているため、追加ステップを実行する必要はありません。

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

Linux で拡張ネットワーキングを有効化するには

  1. インスタンスに接続します。

  2. Sourceforge (https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/) からインスタンスに ixgbevf モジュールのソースをダウンロードします。

    ixgbevf の 2.16.4 より前のバージョン (バージョン 2.14.2 を含む) は、一部の Linux ディストリビューション (特定のバージョンの Ubuntu など) では適切にビルドされません。

  3. インスタンスで ixgbevf モジュールをコンパイルし、インストールします。

    警告

    現在のカーネル用に ixgbevf モジュールをコンパイルし、新しいカーネル用のドライバを再ビルドしないでカーネルをアップグレードすると、次回再起動したときに、システムがディストリビューション固有の ixgbevf モジュールに戻る場合があります。ディストリビューション固有のバージョンと拡張ネットワーキングに互換性がない場合、システムにアクセスできなくなる可能性があります。

  4. sudo depmod コマンドを実行して、モジュールの依存関係を更新します。

  5. 起動時に新しいモジュールがロードされるように、インスタンスの initramfs を更新します。

  6. システムがデフォルトで予測可能なネットワークインターフェイス名を使用するかどうかを確認します。systemd または udev のバージョン 197 以上を使用するシステムの場合、イーサネットデバイスの名前を変更でき、単一ネットワークインターフェイスの名前が eth0 になることは保証されません。この動作は、インスタンスに接続する際に問題の原因となる可能性があります。詳細と他の設定オプションについては、freedesktop.org ウェブサイトで「Predictable Network Interface Names/」を参照してください。

    1. 次のコマンドを使用して、RPM ベースのシステムで systemd または udev のバージョンを確認できます。

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

      上記の Red Hat Enterprise Linux 7 の例では、systemd のバージョンは 208 であるため、予測可能なネットワークインターフェイス名は無効になっている必要があります。

    2. net.ifnames=0 オプションを GRUB_CMDLINE_LINUX/etc/default/grub 行に追加することによって、予測可能なネットワークインターフェイス名を無効にします。

      [ec2-user ~]$ sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
    3. grub の設定ファイルを再ビルドします。

      [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. [EBS-backed インスタンス] ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用してインスタンスを停止します。stop-instances (AWS CLI)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、この手順に進んでください: 拡張ネットワーキングを有効にするには (Instance store-backed– インスタンス)

  8. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。

    • modify-instance-attribute (AWS CLI)

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

      Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  9. (オプション) 「Amazon EBS-Backed Linux AMI の作成」の説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。

    重要

    インスタンスオペレーティングシステムに /etc/udev/rules.d/70-persistent-net.rules が含まれている場合には、AMI を作成する前にそれを削除する必要があります。このファイルには、元のインスタンスのイーサネットアダプターの MAC アドレスが保存されています。別のインスタンスがこのファイルを使用して起動した場合、オペレーティングシステムがそのデバイスを検出できなくなり、eth0 が失敗して、起動に関する問題が発生することがあります。このファイルは次の起動サイクルで再び生成され、AMI から起動されるインスタンスごとに独自のバージョンが作成されます。

  10. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用してインスタンスを起動します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

  11. (オプション) インスタンスに接続し、モジュールがインストールされていることを確認します。

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

インスタンスを停止するステップまで、前の手順に従います。「Instance Store-Backed Linux AMI の作成」に記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。

  • register-image (AWS CLI)

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

    Register-EC2Image -SriovNetSupport "simple" ...

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

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

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