The ixgbevf network-driver source-code can be found on SourceForge. It should be noted that not every AWS-compatible version will successfully compile on EL 6. Version 3.2.2 is known to successfully compile, without intervention, on EL6.
Notes:
>>>CRITICAL ITEM<<<
It is necessary to recompile the ixgbevf driver and inject it into the kernel each time the kernel version changes. This needs to be done between changing the kernel version and rebooting into the new kernel version. Failure to update the driver each time the kernel changes will result in the instance failing to return to the network after a reboot event.
Step #10 from the implementation procedure:
rpm -qa kernel | sed 's/^kernel-//' | xargs -I {} dracut -v -f /boot/initramfs-{}.img {}Is the easiest way to ensure any available kernels are properly linked against the ixgbevf driver.
>>>CRITICAL ITEM<<<
It is possible that the above process can be avoided by installing DKMS and letting it coordinate the insertion of the ixgbevf driver modules into updated kernels.
Procedure:
The following assumes the instance-owner has privileged access to the instance OS and can make AWS-level configuration changes to the instance-configuration:
- Login to the instance
- Escalate privileges to root
- Install the up-to-date ixgbevf driver. This can be installed either by compiling from source or using pre-compiled binaries.
- Delete any `*persistent-net*.rules` files found in the /etc/udev/rules.d directory (one or both of 70-persistent-net.rules and 75-persistent-net-generator.rules may be present)
- Ensure that an `/etc/modprobe.d` file with the following minimum contents exists:
alias eth0 ixgbevf
Recommend creating/placing in /etc/modprobe.d/ifaliases.conf - Unload any ixgbevf drivers that may be in the running kernel:
modprobe -rv ixgbevf
- Load the updated ixgbevf driver into the running kernel:
modprobe -v ixgbevf
- Ensure that the /etc/modprobe.d/ixgbevf.conf file exists. Its contents should resemble:
options ixgbevf InterruptThrottleRate=1
- Update the /etc/dracut.conf. Ensure that the add_drivers+="" directive is uncommented and contains reference to the ixgbevf modules (i.e., `add_drivers+="ixgbevf"`)
- Recompile all installed kernels:
rpm -qa kernel | sed 's/^kernel-//' | xargs -I {} dracut -v -f /boot/initramfs-{}.img {}
- Shut down the instance
- When the instance has stopped, use the AWS CLI tool to enable optimized networking support:
aws ec2 --region
modify-instance-attribute --instance-id --sriov-net-support simple - Power the instance back on
- Verify that 10Gbps capability is available:
- Check that the ixgbevf module is loaded
$ sudo lsmod Module Size Used by ipv6 336282 46 ixgbevf 63414 0 i2c_piix4 11232 0 i2c_core 29132 1 i2c_piix4 ext4 379559 6 jbd2 93252 1 ext4 mbcache 8193 1 ext4 xen_blkfront 21998 3 pata_acpi 3701 0 ata_generic 3837 0 ata_piix 24409 0 dm_mirror 14864 0 dm_region_hash 12085 1 dm_mirror dm_log 9930 2 dm_mirror,dm_region_hash dm_mod 102467 20 dm_mirror,dm_log
- Check that `ethtool` is showing that the default interface (typicall "`eth0`") is using the ixgbevf driver:
$ sudo ethtool -i eth0 driver: ixgbevf version: 3.2.2 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
- Verify that the interface is listed as supporting a link mode of `10000baseT/Full` and a speed of `10000Mb/s`:
$ sudo ethtool eth0 Settings for eth0: Supported ports: [ ] Supported link modes: 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Speed: 10000Mb/s Duplex: Full Port: Other PHYAD: 0 Transceiver: Unknown! Auto-negotiation: off Current message level: 0x00000007 (7) drv probe link Link detected: yes
- Check that the ixgbevf module is loaded
Really your article are very nice thanks for sharing for more updates AWS Online Training Hyderabad
ReplyDeleteYou there, this is really good post here. Thanks for taking the time to post such valuable information. Quality content is what always gets the visitors coming. 10gbps
ReplyDelete