aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

[HPC] C3.8xlarge のRHEL6.4 HVMで SR-IOVを有効にする

CC2 (Sandy Bridge) の後継 C3 (Ivy Bridge)が追加された。

詳しくはこちらを参考のこと。

Amazon Web Services ブログ: 【AWS発表】 新世代の数値計算向けEC2インスタンス

 

HPCの観点から見ると、CC2.8xlarge の後継に当たるのは C3.8xlarge となる。

スベック比較は以下の通り

 

  c3.8xlarge cc2.8xlarge cc1.4xlarge
vCPU数  32  32  16
総ECU 108 88  33.5
RAM(GiB) 60  60.5  23
インスタンス
ストレージ
 2 x 320(SSD)  4 x 840  2 x 840
CPU Xeon E5-2680v2
(Ivy Bridge)
 Xeon E5-2670
(Sandy Bridge)
Xeon X5570
(Nehalem) 
NIC High 10GbE  10GbE

その中でも特に注目すべき点は、ネットワークI/Oの改善( Enhanced Networking)で、C3はSR-IOVをサポートしている。

※SR-IOVについてはこちら。(PCI-SIG SR-IOV Primer: An Introduction to SR-IOV Technology )

SR-IOVを使うには、3つの条件が必要

  1. VPC内でHVM AMIをC3.8xlargeで起動する 
  2. ・OS側で ixvgevf ドライバを有効にする
  3. インスタンスの属性 sriovNetSupport を有効にする(もしくは sriovNetSupportが有効になったHVM AMIで起動する)

1については割愛。2については、Amazon Linux 2013.9 では有効になっているので、気にしなくて良い。

以下、RHEL 6.4 HVM AMIで、SR-IOVを有効にする手順。

1. VPCで起動
$ ec2-run-instances ami-18a23f28 -t c3.8xlarge -s subnet-xxxxx \
  -k id_rsa -g sg-xxxxxx --region us-west-2 --private-ip-address 172.16.11.204
2. OSでixvgevfドライバを入れる

ixvgevfドライバのビルドに必要な前処理

# sudo yum -y update
# sudo yum -y install gcc make kernel-devel kernel-headers
$sudo reboot
3.ドライバダウンロード、ビルド、インストール
$ wget "http://downloads.sourceforge.net/project/e1000/ixgbevf stable/2.11.3/ixgbevf-2.11.3.tar.gz"
$ tar zxvf ixgbevf-2.11.3.tar.gz
$ cd ixgbevf-2.11.3/src
$ sudo make install
$ sudo su -
# echo "options ixgbevf InterruptThrottleRate=1,1,1,1,1,1,1,1" > /etc/modprobe.d/ixgbevf.conf
# reboot
4.インスタンス停止,属性sriov変更,起動
$ ec2-stop-instances i-xxxxxx --region us-west-2
$ ec2-modify-instance-attribute --region us-west-2 --sriov simple i-xxxxxx
$ ec2-start-instances i-xxxxxx --region us-west-2
5.確認
$ /sbin/ethtool -i eth0 | grep driver
driver: ixgbevf

注意

ixgbevf をセットアップする前に、 sriovNetSupportを有効にして起動してしまうと、NICが有効にならずにOSが起動してしまい、リモートからアクセスできなくなる。必ず、 上記3の手順をした後に 4をすること

参考

Enabling Enhanced Networking on Linux Instances in a VPC - Amazon Elastic Compute Cloud