Linux インスタンスで Intel 82599 VF インターフェイスを使用した拡張ネットワーキングの有効化
Amazon EC2 は Intel 82599 VF インターフェイスを通じて拡張ネットワーキング機能を提供しますが、この機能では Intel ixgbevf
ドライバーを使用します。
コンテンツ
要件
Intel 82599 VF インターフェイスを使用した拡張ネットワーキングを準備するには、次のようにインスタンスをセットアップします。
-
サポートされているインスタンスタイプ C3、C4、D2、I2、M4 (
m4.16xlarge
を除く)、R3 から選択します。 -
Linux カーネルバージョン 2.6.32 以降を使用して、HVM AMI からインスタンスを起動します。最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要なモジュールがインストールされており、必要な属性も設定されています。したがって、最新の Amazon Linux HVM AMI を使用して、拡張ネットワーキングがサポートされている Amazon EBS–backed インスタンスを起動した場合は、インスタンスで拡張ネットワーキングが既に有効化されています。
警告
拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなります。また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定すると、インスタンスにアクセスできなくなる場合があります。
-
インスタンスがインターネットに接続されていることを確認します。
-
選択した任意のコンピュータ、できればローカルのデスクトップまたはノートパソコンで、AWS Management Console から AWS CloudShell
を使用するか、AWS CLI もしくは AWS Tools for Windows PowerShell をインストールし設定します。詳細については、Amazon EC2 へのアクセスもしくは AWS CloudShell ユーザーガイドを参照してください。拡張ネットワーキングは、Amazon EC2 コンソールから管理することはできません。 -
保持する必要がある重要なデータがインスタンスにある場合、インスタンスから AMI を作成してそのデータをバックアップする必要があります。
sriovNetSupport
属性を有効にするとともに、カーネルおよびカーネルモジュールを更新すると、互換性のないインスタンスがレンダリングされたり、オペレーティングシステムに接続できなくなったりする可能性があります。最近のバックアップがある場合は、これが発生してもデータは保持されます。
拡張ネットワーキングが有効化されているかどうかのテスト
ixgbevf
モジュールがインスタンスにインストールされており、sriovNetSupport
属性が設定されている場合は、Intel 82599 VF インターフェイスを使用した拡張ネットワーキングが既に有効になっています。
インスタンス属性 (sriovNetSupport)
インスタンスに拡張ネットワーキングの sriovNetSupport
属性が設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。
属性が設定されていない場合、SriovNetSupport
は空です。属性が設定されている場合、以下の出力例に示すように、値は simple です。
"SriovNetSupport": {
"Value": "simple"
},
イメージ属性 (sriovNetSupport)
AMI に拡張ネットワーキングの sriovNetSupport
属性がすでに設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。
属性が設定されていない場合、SriovNetSupport
は空です。属性が設定されている場合、値は simple です。
ネットワークインターフェイスドライバー
次のコマンドを使用して、モジュールが特定のインターフェイスで使用されていることを確認し、確認するインターフェイス名に置き換えます。単一のインターフェイス (デフォルト) を使用している場合は、eth0
です。オペレーティングシステムで予測可能なネットワーク名がサポートされている場合は、ens5
のような名前にすることができます。
次の例で、リストされているドライバーは vif
であるため、ixgbevf
モジュールはロードされていません。
[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
モジュールがロードされます。このインスタンスでは、拡張ネットワーキングが適切に設定されています。
[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
Amazon Linux での拡張ネットワーキングの有効化
最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要な ixgbevf
モジュールがインストールされており、必要な sriovNetSupport
属性も設定されています。したがって、最新の Amazon Linux HVM AMI を使用してインスタンスタイプを起動した場合は、拡張ネットワーキングが既にインスタンスに対して有効になっています。詳細については、拡張ネットワーキングが有効化されているかどうかのテストを参照してください。
以前の Amazon Linux AMI を使用してインスタンスを起動し、まだ拡張ネットワーキングが有効になっていない場合、拡張ネットワーキングを有効にするには次の手順を実行します。
警告
拡張ネットワーキング属性は、いったん有効にすると無効にする方法はありません。
拡張ネットワーキングを有効にするには
-
インスタンスに接続します。
-
インスタンスから、次のコマンドを実行して、
ixgbevf
を含む最新のカーネルとカーネルモジュールでインスタンスを更新します。[ec2-user ~]$
sudo yum update
-
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを再起動します。reboot-instances (AWS CLI)、Restart-EC2Instance (AWS Tools for Windows PowerShell)。
-
インスタンスに再接続し、
ixgbevf
の modinfo ixgbevf コマンドを使用して、拡張ネットワーキングが有効化されているかどうかのテスト モジュールがインストールされ、最小推奨バージョンであることを確認します。 -
[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 インスタンス)。
-
ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。
-
(オプション) Amazon EBS-backed Linux AMI を作成するの説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。
-
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを開始します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
-
インスタンスに接続し、拡張ネットワーキングが有効化されているかどうかのテスト の ethtool -i eth
n
コマンドを使用して、ixgbevf
モジュールがインストールされ、ネットワークインターフェイスにロードされていることを確認します。
拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)
インスタンスを停止するステップまで、前の手順に従います。instance store-backed Linux AMI を作成するに記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。
Ubuntu での拡張ネットワーキングの有効化
開始する前に、インスタンスで拡張ネットワーキングがすでに有効になっているかどうかを確認します。
クイックスタート Ubuntu HVM AMI には、拡張ネットワーキングに必要なドライバーが搭載されています。ixgbevf
2.16.4 より前のバージョンを使用している場合は、linux-aws
カーネルパッケージをインストールして最新の拡張ネットワーキングドライバーを取得できます。
以下の手順は、Ubuntu インスタンスで ixgbevf
モジュールをコンパイルするための一般的なステップを示しています。
linux-aws
カーネルパッケージをインストールするには
-
インスタンスに接続します。
-
パッケージキャッシュおよびパッケージを更新します。
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 で拡張ネットワーキングを有効化するには
-
インスタンスに接続します。
-
Sourceforge (https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/
) からインスタンスに ixgbevf
モジュールのソースをダウンロードします。ixgbevf
の 2.16.4 より前のバージョン (バージョン 2.14.2 を含む) は、一部の Linux ディストリビューション (特定のバージョンの Ubuntu など) では適切にビルドされません。 -
インスタンスで
ixgbevf
モジュールをコンパイルし、インストールします。警告
現在のカーネルに
ixgbevf
モジュールをコンパイルし、新しいカーネルをドライバを再構築しないで更新すると、システムは次回の再起動の際にディストリビューション固有のixgbevf
モジュールに戻る場合があります。これにより、ディストリビューション固有のバージョンが拡張ネットワーキングと互換性がない場合に、システムに接続できなくなります。 -
sudo depmod コマンドを実行して、モジュールの依存関係を更新します。
-
起動時に新しいモジュールがロードされるように、インスタンスの
initramfs
を更新します。 -
システムがデフォルトで予測可能なネットワークインターフェイス名を使用するかどうかを確認します。systemd または udev のバージョン 197 以上を使用するシステムの場合、イーサネットデバイスの名前を変更でき、単一ネットワークインターフェイスの名前が
eth0
になることは保証されません。この動作は、インスタンスに接続する際に問題の原因となる可能性があります。詳細と他の設定オプションについては、freedesktop.org ウェブサイトでPredictable Network Interface Names/を参照してください。 -
次のコマンドを使用して、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 であるため、予測可能なネットワークインターフェイス名は無効になっている必要があります。
-
net.ifnames=0
オプションをGRUB_CMDLINE_LINUX
の/etc/default/grub
行に追加することによって、予測可能なネットワークインターフェイス名を無効にします。[ec2-user ~]$
sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
-
grub の設定ファイルを再ビルドします。
[ec2-user ~]$
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
-
[EBS-backed インスタンス] ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用してインスタンスを停止します。stop-instances (AWS CLI/AWS CloudShell)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
[Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、この手順に進んでください: 拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)。
-
ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。
-
(オプション) Amazon EBS-backed Linux AMI を作成するの説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。
重要
インスタンスオペレーティングシステムに
/etc/udev/rules.d/70-persistent-net.rules
が含まれている場合には、AMI を作成する前にそれを削除する必要があります。このファイルには、元のインスタンスのイーサネットアダプターの MAC アドレスが保存されています。別のインスタンスがこのファイルを使用して起動した場合、オペレーティングシステムがそのデバイスを検出できなくなり、eth0
が失敗して、起動に関する問題が発生することがあります。このファイルは次の起動サイクルで再び生成され、AMI から起動されるインスタンスごとに独自のバージョンが作成されます。 -
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを開始します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
-
(オプション) インスタンスに接続し、モジュールがインストールされていることを確認します。
拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)
インスタンスを停止するステップまで、前の手順に従います。instance store-backed Linux AMI を作成するに記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。
接続に関する問題のトラブルシューティング
拡張ネットワーキングを有効化しているときに接続が失われると、ixgbevf
モジュールとカーネルの互換性が保たれない可能性があります。この場合、インスタンスの Linux ディストリビューションに含まれる ixgbevf
モジュールのバージョンをインストールしてみます。
PV インスタンスまたは AMI で拡張ネットワーキングを有効にすると、お使いのインスタンスに到達できなくなります。
詳細については、EC2 で拡張ネットワーキングを有効化および設定する方法