Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何在執行 RHEL 的 EC2 執行個體上安裝並啟用最新的 ENA 驅動程式以增強網路支援?
我想使用最新的彈性網路介面卡 (ENA) 驅動程式來增強網路支援。我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體在 Red Hat Enterprise Linux (RHEL) 上執行。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
某些較早版本的 RHEL 作業系統 (OS) 不包含 ENA 驅動程式。對於 Nitro 執行個體,如果您變更 EC2 執行個體類型以進行網路連線,則必須更新 ENA 驅動程式。若要在您的 EC2 執行個體上安裝最新的 ENA 驅動程式,請根據您的 RHEL 版本完成下列步驟。
在安裝或更新 ENA 驅動程式之前,最佳做法是建立執行個體的 Amazon Elastic Block Store (Amazon EBS) 磁碟區快照。
如需如何更新 Linux 驅動程式的詳細資訊,請參閱 GitHub 網站上的 ENA Linux 驅動程式最佳做法和效能最佳化指南。
**重要:**當您停止執行個體時,Amazon EC2 會刪除執行個體儲存體磁碟區中的所有資料。若要檢查您的根裝置類型,請參閱確定 AMI 的根裝置類型。如果您想要保留該資料,則必須備份儲存在執行個體儲存體磁碟區上的資料。
RHEL 7.4 版和更新版本
預設情況下,RHEL 7.4 版及更新版本的 Amazon Machine Image (AMI) 已安裝用於增強網路的 ENA 驅動程式。如需詳細資訊,請參閱在 EC2 執行個體上使用 ENA 啟用增強網路。
RHEL 7.4 之前的版本
若要安裝 ENA 驅動程式,請完成以下步驟:
-
執行以下命令將核心升級到最新版本:
sudo yum upgrade kernel -y -
若要更新執行個體,請執行以下 modify-instance-attribute AWS CLI 命令:
aws ec2 modify-instance-attribute --instance-id exampleID --ena-support --region exampleRegion**注意:**將 exampleID 替換為您的執行個體 ID,並將 exampleRegion 替換為您的 AWS 區域。
-
若要驗證您是否在執行個體上正確安裝了 ENA 驅動程式,請執行以下命令:
ethtool -i eth0**注意:**將 eth0 替換為您要檢查的介面的名稱。如果您的作業系統使用可預測的網路名稱,網路名稱可能會有所不同。如需詳細資訊,請參閱 Red Hat 網站上的了解可預測的網路介面裝置名稱。
RHEL 6
**注意:**RHEL 6 不包含 Amazon EC2 生產就緒型 NVMe 驅動程式,且您無法升級至 NVMe 驅動程式。若要使用 Nitro 型執行個體,或使用 NVMe 執行個體儲存體磁碟區的執行個體類型,請升級至 RHEL 7.4 或更新版本。
下載並安裝 ENA 驅動程式
請完成下列步驟:
-
若要更新核心並重新啟動系統以使用最新核心,請執行以下命令:
sudo yum upgrade kernel -y && sudo reboot -
若要安裝開發套件以建立與核心相符的核心模組,請執行以下命令:
sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -ycd /usr/src/ sudo wget https://github.com/amzn/amzn-drivers/archive/master.zip sudo unzip master.zip cd amzn-drivers-master/kernel/linux/ena sudo make -
若要將模組複製到模組目錄,請執行以下命令:
sudo cp ena.ko /lib/modules/$(uname -r)/ -
若要重新產生核心模組相依性對應檔案,請執行下列命令:
sudo depmod -
若要確認 ENA 模組是否存在,請執行下列命令:
modinfo ena當您在系統上編譯並安裝 ENA 驅動程式時,版本可能會晚於 2.2.11g。命令輸出會顯示 ENA 驅動程式資訊。
輸出範例:filename: /lib/modules/2.6.32-754.33.1.el6.x86_64/ena.koversion: 2.2.11g license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates retpoline: Y srcversion: 17C7CD1CEAD3F0ADB3A5E5E 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* alias: pci:v00001D0Fd00000051sv*sd*bc*sc*i* depends: vermagic: 2.6.32-754.33.1.el6.x86_64 SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: rx_queue_size:Rx queue size. The size should be a power of 2. Max value is 8K (int) parm: force_large_llq_header:Increases maximum supported header size in LLQ mode to 224 bytes, while reducing the maximum TX queue size by half. (int) parm: num_io_queues:Sets number of RX/TX queues to allocate to device. The maximum value depends on the device and number of online CPUs. (int) -
若要將 net.ifnames=0 新增至 /boot/grub/grub.conf 並關閉網路介面命名稱,請執行下列命令:
sudo sed -i '/kernel/s/$/ net.ifnames=0/' /boot/grub/grub.conf -
若要在執行個體層級啟用增強網路支援,請執行以下 modify-instance-attribute 命令:
aws ec2 modify-instance-attribute --instance-id exampleID --ena-support --region exampleRegion**注意:**將 exampleID 替換為您的執行個體 ID,並將 exampleRegion 替換為您的區域。
-
使用 SSH 連線到執行個體,然後執行以下命令來驗證您是否正確安裝了 ENA 驅動程式:
ethtool -i eth0
輸出範例:
driver: enaversion: 2.2.11g firmware-version: bus-info: 0000:00:05.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
(可選) 設定 DKMS 程式
如果您的應用程式直接相依於 ENA 版本,請設定動態核心模組支援 (DKMS) 程式。這確保了 Amazon EC2 在未來的核心升級中包含該驅動程式。
**注意:**您可以在 RHEL 執行個體中使用 Extra Packages for Enterprise Linux (EPEL) 儲存庫。
若要設定 DKMS 程式,請完成以下步驟:
-
若要安裝 Red Hat Package Manager (rpm) 檔案,請執行以下命令:
sudo yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm -y**注意:**如需最新 .rpm 套件清單,請參閱 Fedora Project 網站上的 EPEL 中可用的套件。
-
若要安裝 DKMS,請執行以下命令:
sudo yum install dkms -y -
若要刪除現有核心,請執行以下命令:
VER=$( grep ^VERSION /usr/src/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 ) -
若要將來源檔案複製到來源目錄,請執行下列命令:
sudo cp -a /usr/src/amzn-drivers-master /usr/src/amzn-drivers-${VER} -
若要建立 DKMS 設定檔,然後建置並安裝 ENA 模組,請執行以下命令:
sudo cat <<EOM | sudo tee /usr/src/amzn-drivers-${VER}/dkms.confPACKAGE_NAME="ena" PACKAGE_VERSION="$VER" CLEAN="make -C kernel/linux/ena clean" MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=\${kernelver}" BUILT_MODULE_NAME[0]="ena" BUILT_MODULE_LOCATION="kernel/linux/ena" DEST_MODULE_LOCATION[0]="/updates" DEST_MODULE_NAME[0]="ena" AUTOINSTALL="yes" EOM sudo dkms add -m amzn-drivers -v $VER sudo dkms build -m amzn-drivers -v $VER sudo dkms install -m amzn-drivers -v $VER
相關內容
- 已提問 2 年前
- 已提問 2 年前
- 已提問 1 年前
- 已提問 2 年前
