かべぎわブログ

技術的なことについてかけたらいいな…

Ubuntu16.04で拡張ネットワーキングをONにする【AWS】

EC2で拡張ネットワーキングを有効化する設定方法をご紹介します。

そもそも拡張ネットワーキングとは?

拡張ネットワーキングは、高い帯域幅、1 秒あたりのパケット (PPS) の高いパフォーマンス、常に低いインスタンス間レイテンシーを実現します。拡張ネットワーキングは追加料金なしで使用できます。

Linux の拡張ネットワーキング - Amazon Elastic Compute Cloud

ということです。
つまり有効にするだけで通信が早くなるというすぐれものです。

設定方法

Ubuntuでネットワーキングを有効にする方法を記載します。

環境

  • Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-15872773

ネットワークインターフェイスドライバーを確認する

ethtoolコマンドでネットワークインターフェースで利用されているドライバーを確認します。

driverの箇所がixgbevfとなっていたらOKです。「拡張ネットワーキングの設定を行う」まで読み飛ばしてもらって構いません。
以下の場合はvifとなっているのでネットワークインターフェースの設定を実施する必要があります。

$ ethtool -i ens3
driver: vif
version:
firmware-version:
expansion-rom-version:
bus-info: vif-0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

ixgbevfモジュールをインストールする

まずixdbevfのモジュールのソースをwgetでダウンロードします。

wget "sourceforge.net/projects/e1000/files/ixgbevf stable/2.16.4/ixgbevf-2.16.4.tar.gz"

ダウンロードしてきたファイルを解凍します。

tar -zxvf ixgbevf-2.16.4.tar.gz

パッケージを/usr/srcの移動させます。
dkmsがこのパッケージをビルドできるようにするためです。

sudo mv ixgbevf-2.16.4 /usr/src/.

dkms.confを作成して以下のように値を設定します。
そのままコピーで大丈夫です。

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"

dkmsを利用してモジュールを追加します。

sudo dkms add -m ixgbevf -v 2.16.4

モジュールをビルドします。

sudo dkms build -m ixgbevf -v 2.16.4

モジュールをインストールします。

sudo dkms install -m ixgbevf -v 2.16.4

拡張ネットワーキングの設定を行う

インスタンスに拡張ネットワーキングの設定を行うには、AWSCLIで以下のコマンドを実行します。

$ aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --sriov-net-support simple

以下のAWSCLIを実行し、SriovNetSupportValuesimpleとなっていればOKです。

$ aws ec2 describe-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --attribute sriovNetSupport
{
    "SriovNetSupport": {
        "Value": "simple"
    },
    "InstanceId": "i-xxxxxxxxxxxxxxxxx"
}

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版