本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在執行個體上啟用增強型網路
您使用的程序會依執行個體的作業系統而定。
Amazon Linux 的 AMI 包含已安裝 ENA 之增強型聯網所需的核心驅動程式,並且已啟用 ENA 支援。因此,如果您在支援的執行個體類型上使用 Amazon Linux HVM 版本啟動執行個體,則您的執行個體已啟用增強型聯網。如需詳細資訊,請參閱測試是否已啟用增強型網路。
最新的 Ubuntu HVM AMI 包含已安裝 ENA 之增強型聯網所需的核心驅動程式,並且已啟用 ENA 支援。因此,如果您在支援的執行個體類型上使用最新的 Ubuntu HVM AMI 來啟動執行個體,則您的執行個體已啟用增強型聯網。如需詳細資訊,請參閱 測試是否已啟用增強型網路。
如果您使用較舊的 AMI 啟動執行個體,且其尚未啟用增強型聯網,您可以安裝 linux-aws 核心套件以取得最新的增強型聯網驅動程式,並更新必要的屬性。
安裝 linux-aws 核心套件 (Ubuntu 16.04 或更新版本)
Ubuntu 16.04 和 18.04 隨附 Ubuntu 自訂核心 (linux-aws 核心套件)。若要使用不同的核心,請聯絡 支援
安裝 linux-aws 核心套件 (Ubuntu Trusty 14.04)
-
連線到您的 執行個體。
-
更新套件快取和套件。
ubuntu:~$sudo apt-get update && sudo apt-get upgrade -y linux-aws重要
如果更新程序期間提示您安裝
grub,請用/dev/xvda安裝grub,然後選擇保留目前版本的/boot/grub/menu.lst。 -
[EBS 支援的執行個體] 從本機電腦中,使用 Amazon EC2 主控台或下列其中一個命令來停止執行個體:stop-instances (AWS CLI) 或 Stop-EC2Instance (AWS Tools for Windows PowerShell)。
[執行個體存放區後端執行個體] 您無法停止執行個體來修改屬性。請改為執行此程序:在 Ubuntu 上啟用增強型聯網 (執行個體後端執行個體)。
-
在本機電腦上使用下列其中一個命令啟用增強型聯網屬性。
-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-idi-1234567890abcdef0--ena-support -
Edit-EC2InstanceAttribute (Tools for Windows PowerShell)
Edit-EC2InstanceAttribute -InstanceIdi-1234567890abcdef0-EnaSupport $true
-
-
(選擇性) 從執行個體建立 AMI,如 建立 Amazon EBS 支援的 AMI 所述。AMI 將從執行個體繼承增強型聯網的
enaSupport屬性。因此,您預設可用此 AMI 啟動其他啟用增強型聯網的執行個體。 -
從本機電腦中,使用 Amazon EC2 主控台或下列其中一個命令來啟動執行個體:start-instances (AWS CLI) 或 Start-EC2Instance (AWS Tools for Windows PowerShell)。
在 Ubuntu 上啟用增強型聯網 (執行個體後端執行個體)
遵循先前的程序,一直進行到您停止執行個體的那個步驟。如 建立 Amazon S3 支援的 AMI 中所述建立新的 AMI,且務必在註冊 AMI 時啟用增強型聯網屬性。
-
register-image (AWS CLI)
aws ec2 register-image --ena-support... -
Register-EC2Image (AWS Tools for Windows PowerShell)
Register-EC2Image -EnaSupport $true...
適用於 Red Hat Enterprise Linux 、SUSE Linux Enterprise Server 以及 CentOS 最新 AMI 包含使用 ENA 之增強型聯網所需的核心驅動程式,並且已啟用 ENA 支援。因此,如果您在支援的執行個體類型上使用最新的 AMI 來啟動執行個體,則您的執行個體已啟用增強型聯網。如需詳細資訊,請參閱 測試是否已啟用增強型網路。
以下程序提供在 Amazon Linux AMI 或 Ubuntu 以外的其他 Linux 發行版本上啟用增強型聯網的一般步驟。如需像是詳細命令語法、檔案位置或套件和工具支援等詳細資訊,請參閱 Linux 發行版本的文件。
在 Linux 上啟用增強型聯網
-
連線到您的執行個體。
-
在您的執行個體上從 GitHub (網址為 https://github.com/amzn/amzn-drivers
) 中複製 ena核心驅動程式的原始程式碼。(SUSE Linux Enterprise Server 12 SP2 和更新版本預設包含 ENA 2.02,因此您不需要下載和編譯 ENA 驅動程式。若為 SUSE Linux Enterprise Server 12 SP2 和更新版本,您應該提出請求,將您想要的驅動程式版本新增至庫存核心)。git clone https://github.com/amzn/amzn-drivers -
在您的執行個體上編譯及安裝
ena核心驅動程式。這些步驟視 Linux 發行版本而定。如需在 Red Hat Enterprise Linux 上編譯核心驅動程式的詳細資訊,請參閱如何在執行 RHEL 的 Amazon EC2 執行個體上安裝最新的 ENS 驅動程式,以取得增強型網路支援? -
執行 sudo depmod 命令更新核心驅動程式相依性。
-
在執行個體上更新
initramfs,確定開機時載入新核心驅動程式。例如,如果您的發行版本支援 dracut,您可以使用下列命令。dracut -f -v -
判斷系統是否依預設使用可預測的網路介面名稱。使用 systemd 或 udev 197 或以上版本的系統可重新命名乙太網路裝置,但不保證單一網路介面會命名為
eth0。該行為會造成連線至執行個體時發生問題。如需詳細資訊及查看其他的組態選項,請參閱 freedesktop.org 網站上的可預測的網路介面名稱。 -
您可用下列命令在 RPM 系統上檢查 systemd 或 udev 的版本。
rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+'systemd-208-11.el7_0.2.x86_64在上述的 Red Hat Enterprise Linux 7 範例中,systemd 版本為 208,因此可預測的網路介面名稱已停用。
-
若要停用可預測網路介面名稱,請將
net.ifnames=0選項新增至GRUB_CMDLINE_LINUX的/etc/default/grub行中。sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub -
重建 grub 組態檔案。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
-
[EBS 支援的執行個體] 從本機電腦中,使用 Amazon EC2 主控台或下列其中一個命令來停止執行個體:stop-instances (AWS CLI)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。
[執行個體存放區後端執行個體] 您無法停止執行個體來修改屬性。請改為執行此程序:在 Linux 上啟用增強型聯網 (執行個體存放區後端執行個體)。
-
在本機電腦上使用下列其中一個命令啟用增強型聯網的
enaSupport屬性:-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-idi-1234567890abcdef0--ena-support -
Edit-EC2InstanceAttribute (Tools for Windows PowerShell)
Edit-EC2InstanceAttribute -InstanceIdi-1234567890abcdef0-EnaSupport $true
-
-
(選擇性) 從執行個體建立 AMI,如 建立 Amazon EBS 支援的 AMI 所述。AMI 將從執行個體繼承增強型聯網的
enaSupport屬性。因此,您預設可用此 AMI 啟動其他啟用增強型聯網的執行個體。如果您執行個體的作業系統包含
/etc/udev/rules.d/70-persistent-net.rules檔案,您必須先刪除檔案,然後再建立 AMI。此檔案包含原始執行個體乙太網路卡的 MAC 地址。如果其他執行個體使用此檔案開機,作業系統將無法找到設備,且eth0可能會失敗,因而造成開機問題。此檔案會在下次開機週期時重新產生,且從 AMI 啟動的任何執行個體將會建立自己的檔案版本。 -
從本機電腦中,使用 Amazon EC2 主控台或下列其中一個命令來啟動執行個體:start-instances (AWS CLI) 或 Start-EC2Instance (AWS Tools for Windows PowerShell)。
-
(選擇性) 連線到執行個體,並確認核心驅動程式已安裝。
如果啟用增強型聯網後無法連接至您的執行個體,請參閱 對 Linux 上的 ENA 核心驅動程式進行疑難排解。
在 Linux 上啟用增強型聯網 (執行個體存放區後端執行個體)
遵循先前的程序,一直進行到您停止執行個體的那個步驟。如 建立 Amazon S3 支援的 AMI 中所述建立新的 AMI,且務必在註冊 AMI 時啟用增強型聯網屬性。
-
register-image (AWS CLI)
aws ec2 register-image --ena-support... -
Register-EC2Image (AWS Tools for Windows PowerShell)
Register-EC2Image -EnaSupport...
此方法僅用於測試和意見回饋用途。不適用於生產部署。如需生產部署,請參閱Ubuntu。
重要
使用 DKMS 會使訂閱的支持協議無效。它不應該用於生產部署。
在 Ubuntu 上使用 ENA 啟用增強型聯網 (EBS 後端執行個體)
-
請遵循Ubuntu中的步驟 1 和 2。
-
安裝
build-essential套件,以編譯核心驅動程式和dkms套件,使ena核心驅動程式在每次核心更新時重建。ubuntu:~$sudo apt-get install -y build-essential dkms -
在您的執行個體上從 GitHub (網址為 https://github.com/amzn/amzn-drivers
) 中複製 ena核心驅動程式的原始碼。ubuntu:~$git clone https://github.com/amzn/amzn-drivers -
將
amzn-drivers套件移至/usr/src/目錄,讓 DKMS 可以找到套件並在每次核心更新時建置。附加原始碼版本編號 (目前的版本編號可在版本備註中找到) 到目錄名稱。例如,下列範例顯示1.0.0版本。ubuntu:~$sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0 -
建立包含下列值的 DKMS 組態檔案,並換成您的
ena版本。建立檔案。
ubuntu:~$sudo touch /usr/src/amzn-drivers-1.0.0/dkms.conf編輯檔案並新增下列值。
ubuntu:~$sudo vim /usr/src/amzn-drivers-1.0.0/dkms.conf PACKAGE_NAME="ena" PACKAGE_VERSION="1.0.0" 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" -
使用 DKMS 在您的執行個體上新增、建置及安裝
ena核心驅動程式。將核心驅動程式新增至 DKMS。
ubuntu:~$sudo dkms add -m amzn-drivers -v 1.0.0使用 dkms 命令建置核心驅動程式。
ubuntu:~$sudo dkms build -m amzn-drivers -v 1.0.0使用 dkms 安裝核心驅動程式。
ubuntu:~$sudo dkms install -m amzn-drivers -v 1.0.0 -
重建
initramfs,以在開機時載入正確的核心驅動程式。ubuntu:~$sudo update-initramfs -u -k all -
使用 測試是否已啟用增強型網路 中的 modinfo ena 命令確認
ena核心驅動程式已安裝。ubuntu:~$modinfo ena filename: /lib/modules/3.13.0-74-generic/updates/dkms/ena.ko version: 1.0.0 license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates srcversion: 9693C876C54CA64AE48F0CA 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: vermagic: 3.13.0-74-generic 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) -
繼續執行Ubuntu中的步驟 3。
如果您啟動執行個體,且其尚未啟用增強型聯網,您必須在執行個體上下載並安裝必要的網路轉接器驅動程式,然後設定 enaSupport 執行個體屬性,以啟動增強型聯網。
啟用增強型聯網
-
連線到您的執行個體,並以本機管理員登入。
-
[僅限 Windows Server 2016 和 2019 版] 安裝驅動程式後,執行下列 EC2Launch PowerShell 指令碼,以設定執行個體。
PS C:\>C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule -
在執行個體上,安裝驅動程式,如下所示:
-
將最新的驅動程式下載
到執行個體。 -
將 zip 封存檔解壓縮。
-
執行
install.ps1PowerShell script 來安裝驅動程式。注意
如果您收到執行政策錯誤,請將政策設定為
Unrestricted(預設設定為Restricted或RemoteSigned)。在命令列中,執行Set-ExecutionPolicy -ExecutionPolicy Unrestricted,然後再次執行install.ps1PowerShell 指令碼。
-
-
從本機電腦中,使用 Amazon EC2 主控台或下列其中一個命令來停止執行個體:stop-instances (AWS CLI) 或 Stop-EC2Instance) (AWS Tools for Windows PowerShell)。
-
在執行個體上啟用 ENA 支援,如下所示:
-
在本機電腦上,執行下列其中一個命令,查看執行個體上的 EC2 執行個體 ENA 支援屬性。如果此屬性未啟用,輸出會是「[]」或空白。
EnaSupport預設會設定為false。-
describe-instances (AWS CLI)
aws ec2 describe-instances --instance-idsi-1234567890abcdef0--query "Reservations[].Instances[].EnaSupport" -
Get-EC2Instance (Tools for Windows PowerShell)
(Get-EC2Instance -InstanceIdi-1234567890abcdef0).Instances.EnaSupport
-
-
若要啟用 ENA 支援,請執行下列其中一項命令:
-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-idi-1234567890abcdef0--ena-support -
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Edit-EC2InstanceAttribute -InstanceIdi-1234567890abcdef0-EnaSupport $true
若重新啟動執行個體時發生問題,您也可使用下列其中一項命令來停用 ENA 支援。
-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-idi-1234567890abcdef0--no-ena-support -
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Edit-EC2InstanceAttribute -InstanceIdi-1234567890abcdef0-EnaSupport $false
-
-
如先前所示,使用
true或 describe-instances,確認屬性已設定為 Get-EC2Instance。您現在應該會看到下列輸出:[ true ]
-
-
從本機電腦中,使用 Amazon EC2 主控台或下列其中一個命令來啟動執行個體:start-instances (AWS CLI) 或 Start-EC2Instance (AWS Tools for Windows PowerShell)。
-
在執行個體上,確認 ENA 驅動程式已安裝並啟用,如下所示:
-
用滑鼠右鍵按一下網路圖示,然後選擇 Open Network and Sharing Center (開啟網路和共用中心)。
-
選擇乙太網路卡 (例如,Ethernet 2)。
-
請選擇 Details (詳細資訊)。針對 Network Connection Details (網路連線詳細資料),檢查 Description (描述) 是否為 Amazon Elastic Network Adapter (Amazon 彈性網路介面卡)。
-
-
(選擇性) 從執行個體建立 AMI。AMI 將從執行個體繼承
enaSupport屬性。因此,您預設可用此 AMI 啟動其他啟用 ENA 的執行個體。