使用巢狀虛擬化在 Amazon EC2 執行個體中執行 Hypervisor - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用巢狀虛擬化在 Amazon EC2 執行個體中執行 Hypervisor

巢狀虛擬化可讓您在虛擬 Amazon EC2 執行個體內執行 Hyper-V 和 KVM 等 Hypervisor。虛擬 EC2 執行個體是非裸機執行個體。此功能透過將處理器層級虛擬化支援新增至虛擬 EC2 執行個體來擴展虛擬化彈性,讓執行個體中執行的 Hypervisor 能夠建立和管理虛擬機器。

當您在開發工作流程中執行 Docker Desktop、適用於 Linux 2 的 Windows 子系統 (WSL2)、Android Studio 模擬器或 QEMU 等開發工具時,巢狀虛擬化可以提供協助,因為它可讓您從滿足特定效能和價格需求的各種標準虛擬 Amazon EC2 執行個體類型中進行選擇。

使用巢狀虛擬化無需額外費用。

運作方式

虛擬 EC2 執行個體會在具有 Nitro Hypervisor 的實體主機上執行。為了支援巢狀虛擬化,Nitro 系統會將 Intel VT-x 等處理器延伸模組傳遞至執行個體,以利執行巢狀虛擬機器。巢狀虛擬化架構包含三層:實體 AWS 基礎設施和 Nitro Hypervisor (L0)、執行 Hypervisor (L1) 的 EC2 執行個體,以及在該執行個體 (L2) 內建立的一或多個虛擬機器。

考量事項

開始使用巢狀虛擬化之前,請考慮下列事項:

  • 支援的執行個體類型 – C8i, M8i 和 R8i 執行個體目前支援巢狀虛擬化。

  • 支援的 Hypervisor – 目前,KVM 和 Hyper-V 是支援的 L1 Hypervisor。

  • Windows 執行個體 – 在 Windows 執行個體上啟用巢狀虛擬化時:

    • Credential Guard – 虛擬安全模式 (VSM) 會自動停用。

    • 休眠 – 不支援執行個體休眠和繼續。

    • CPU 限制 – 不支援超過 192 個 CPUs Windows 執行個體,例如 m8i.96xl

  • 安全責任 – 在 EC2 執行個體上使用巢狀虛擬化時, AWS 負責保護基礎基礎設施「雲端安全性」,並維護 AWS Nitro 系統提供的 EC2 執行個體之間的強隔離界限。客戶負責「雲端安全」,其中包括保護 EC2 執行個體內的作業系統、Hypervisor、巢狀虛擬機器、訪客作業系統、應用程式和資料。

  • 效能 – AWS 建議想要執行需要存取硬體虛擬化延伸模組的工作負載,並且對效能敏感或具有嚴格延遲要求的客戶評估裸機執行個體。

在啟用巢狀虛擬化的情況下啟動新的執行個體

當您啟動新的執行個體時,您可以開啟巢狀虛擬化,在其上執行 Hypervisor 和虛擬機器。

先決條件

您必須具備必要的 IAM 許可才能啟動 Amazon EC2 執行個體。

Console
在執行個體啟動期間啟用巢狀虛擬化
  1. 遵照 使用主控台中的啟動執行個體精靈,啟動 EC2 執行個體 程序並視需要設定執行個體。

  2. 確定已選取支援的執行個體類型。

  3. 展開進階詳細資訊,針對巢狀虛擬化,選擇啟用

  4. Summary (摘要) 面板中,檢閱您的執行個體組態,然後選擇 Launch instance (啟動執行個體)。

AWS CLI
在啟用巢狀虛擬化的情況下啟動執行個體

使用 run-instances 命令。

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type r8i.4xlarge \ --cpu-options "NestedVirtualization=enabled" \ --key-name my-key-pair \ --placement "Tenancy=host"
PowerShell
在啟用巢狀虛擬化的情況下啟動執行個體

使用 New-EC2Instance 命令。

New-EC2Instance `     -ImageId ami-0abcdef1234567890 `     -InstanceType r8i.4xlarge `     -CpuOption @{NestedVirtualization='enabled'} `     -KeyName my-key-pair `     -Placement_Tenancy host

設定現有執行個體以使用巢狀虛擬化

您可以在現有的 Amazon EC2 執行個體上開啟巢狀虛擬化。

先決條件
  • 執行個體必須處於 stopped 狀態。

  • 執行個體類型必須支援巢狀虛擬化。

Console
在現有執行個體上啟用巢狀虛擬化
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇執行個體

  3. 從執行個體資料表中選取您要修改的執行個體。

  4. 選擇動作執行個體設定變更 CPU 選項

  5. 變更 CPU 選項頁面上,針對巢狀虛擬化,選擇下列其中一個選項:

    • 啟用 – 開啟執行個體的巢狀虛擬化

    • 停用 – 關閉執行個體的巢狀虛擬化

  6. 檢閱您的變更,然後選擇變更以套用新的 CPU 選項。

AWS CLI
在現有執行個體上啟用巢狀虛擬化

首先停止執行個體,然後使用 modify-instance-cpu-options 命令。

aws ec2 modify-instance-cpu-options \ --instance-id i-1234567890abcdef0 \ --core-count 4 \ --threads-per-core 2 \ --nested-virtualization enabled
PowerShell
在現有執行個體上啟用巢狀虛擬化

首先停止執行個體,然後使用 Edit-EC2InstanceCpuOption 命令。

Edit-EC2InstanceCpuOption `     -InstanceId i-1234567890abcdef0 `     -CoreCount 4 `     -ThreadsPerCore 2 `     -NestedVirtualization enabled