什么eno?
aws官方介绍:
增强联网使用单个根 I/O 虚拟化 (SR-IOV) 在支持的实例类型上提供高性能的联网功能。SR-IOV 是一种设备虚拟化方法,与传统虚拟化网络接口相比,它不仅能提高 I/O 性能,还能降低 CPU 使用率。增强联网可以提高带宽,提高每秒数据包数 (PPS) 性能,并不断降低实例间的延迟。使用
增强联网不收取任何额外费用。
简单来说就是让你的ec2带宽吞吐上限达到一个可怕的高度。有多高?
以全新一代ec2 类型C5为例(新一代类型必须使用开启eno的AMI才可启动)
高达10Gps!!!
嗯,确实比以前的小水管快多了!!
废话少说,进入正题!
如何开启eno增强网络并制作支持eno AMI镜像
1.新建一台ec2作为制作ami镜像的机器(本实例以centos7.4为基础镜像)
2.初始化机器并下载安装eno安装包
1.yum update
2.下载安装epel源
3.yum install dkms (dkms必须 >= 2.5)
4.git clone https://github.com/amzn/amzn-drivers
5.cd amzn-drivers && depmod
6.dracut -f -v
执行完以上命令后再执行 modinfo 如出现以下提示则为安装成功
filename: /lib/modules/4.4.11-23.53.amzn1.x86_64/kernel/drivers/amazon/net/ena/ena.ko
version: 0.6.6
license: GPL
description: Elastic Network Adapter (ENA)
author: Amazon.com, Inc. or its affiliates
srcversion: 3141E47566402C79D6B8284
alias: pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
alias: pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
alias: pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
alias: pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
depends:
intree: Y
vermagic: 4.4.11-23.53.amzn1.x86_64 SMP mod_unload modversions
parm: debug:Debug level (0=none,...,16=all) (int)
parm: push_mode:Descriptor / header push mode (0=automatic,1=disable,3=enable)
0 - Automatically choose according to device capability (default)
1 - Don't push anything to device memory
3 - Push descriptors and header buffer to device memory (int)
parm: enable_wd:Enable keepalive watchdog (0=disable,1=enable,default=1) (int)
parm: enable_missing_tx_detection:Enable missing Tx completions. (default=1) (int)
parm: numa_node_override_array:Numa node override map
(array of int)
parm: numa_node_override:Enable/Disable numa node override (0=disable)
(int)
4.stop ec2
3.在另外一台机器上下载安装awscli在命令行中开启eno(可以是已经有的ec2 也可以新建)
yum install python-pip
pip install awscli
aws configure (根据提示输入AK,SK,region)
aws ec2 modify-instance-attribute --instance-id instance_id(在aws控制台上找到刚才新建的用来制作eno镜像的ec2机器的instance_id并填入) --ena-support
aws ec2 describe-instances --instance-ids instance_id(在aws控制台上找到刚才新建的用来制作eno镜像的ec2机器的instance_id并填入) --query 'Reservations[].Instances[].EnaSupport' 确认实例是否开启eno
接着就可以直接在aws控制台上选择我们刚才已经开启eno的EC2来制作AMI镜像啦。
制作好的镜像可以通过以下命令查看是否支持eno
aws ec2 describe-images --image-id ami_id(ami的id) --query 'Images[].EnaSupport'
返回为true则为成功。至此你就可以用这个新建的支持eno的ami去创建c5,m5这些原生支持eno的ec2啦~