VMware 嵌套虛擬化詳解:使用情境與教學指南

最新版本的虛擬化平台(包括 VMware 虛擬化平台)均支援嵌套虛擬化,作為硬體虛擬化的額外特點。何謂嵌套虛擬化?如何在 VMware 環境中啟用嵌套虛擬化?請閱讀這篇部落格文章,了解 VMware 嵌套虛擬化,以及如何設定 VMware 虛擬化平台以使用此特點。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

何謂嵌套虛擬化

嵌套虛擬化是指在實體虛擬化平台內,將虛擬化平台作為虛擬機器(VM)來運行。此特點讓您能夠在虛擬化平台上運行虛擬機器。簡單來說,嵌套虛擬化就是將虛擬機器運行在另一個虛擬機器之內。運行於虛擬化平台上的虛擬機器稱為嵌套虛擬機器。虛擬化平台運行在虛擬機器的虛擬硬體之上,並將此虛擬硬體視為真實的主機硬體。感到困惑嗎? 讓我們來仔細看看這些術語。

  • A 主機虛擬管理程式 是一款在實體硬體上運行的虛擬化程式。
  • A 來賓虛擬機器管理程式 是一種在虛擬硬體(虛擬機器上)運行的虛擬化程式。
  • 一個 外部訪客 是指在實體硬體上運行的虛擬機器。客體作業系統則是運行於虛擬機器上的作業系統。
  • 一個 內在的訪客 這是 VMware 對"在另一台虛擬機器(於虛擬硬體上)內運行之虛擬機器"的稱謂。

下圖顯示了 VMware 虛擬化的不同層級。位於第 2 層的 ESXi 虛擬機器是外層客機,而位於第 3 層的嵌套虛擬機器則是內層客機。從技術上來說,如果您的電腦具備支援此高階效能所需的資源,您可以使用更深層次的嵌套(第 4 層、第 5 層等)。圖中未顯示更深層次的嵌套。

VMware nested virtualization

硬體輔助虛擬化 (亦稱為硬體虛擬化、HV 或原生虛擬化)利用底層的 電腦的實體硬體 透過軟體來執行虛擬機器。相較於先前使用的二進位轉換和半虛擬化技術,硬體特點在此情況下有助於高效地實現虛擬化。英特爾和 AMD 透過其 Intel VT-X 以及 AMD-V 特點。若要執行 64 位元來賓系統,必須啟用硬體虛擬化。請注意, Intel VT-XAMD-V 必須在 UEFI/BIOS.

支援的虛擬化平台

第 1 類和第 2 類虛擬機器管理程式皆可執行嵌套虛擬機器。第 1 類虛擬機器管理程式直接運行於實體硬體之上,亦稱為裸機虛擬機器管理程式。第 2 類虛擬機器管理程式則安裝於實體硬體上已安裝的底層作業系統之中(亦稱為託管式虛擬機器管理程式)。在 VMware 環境中,ESXi 屬於第 1 類虛擬機器管理程式。第 2 類虛擬機器管理程式則是 VMware 工作站、VMware Player,以及 VMware Fusion.

需求:

  • 虛擬化硬體輔助虛擬化(virtualized HV)必須由超管理程式支援,才能啟用嵌套虛擬化並執行嵌套虛擬機器。若已為外層來賓系統啟用虛擬化硬體輔助虛擬化,您便可在虛擬機器內執行任何支援硬體虛擬化的超管理程式。
  • 自 VMware Workstation 8、VMware Player 4 及 VMware Fusion 4 起,VMware 類型 2 虛擬化平台便支援硬體輔助虛擬化與虛擬化 HV。至於 ESXi,則自 ESXi 5.0 起支援虛擬化 HV。
  • 虛擬機器(外層來賓系統)必須使用虛擬硬體 9 或更高版本。

可用的部署配置:

  • 在 VMware Workstation、VMware Player 或 VMware Fusion 上作為虛擬機器執行的 VMware ESXi
  • VMware ESXi 作為虛擬機器在 VMware ESXi 上運行
  • VMware ESXi 作為虛擬機器在其他第三方虛擬化平台(例如 Microsoft Hyper-V 或 VirtualBox)上運行
  • 在 VMware ESXi、VMware 工作站、VMware Player 或 VMware Fusion 上,將非 VMware 虛擬機器管理程式作為虛擬機器執行

VMware 技術支援

從技術層面來看,嵌套虛擬化可在上述的 VMware 超管理程式上運作。然而,VMware 不支援在生產環境中運行嵌套虛擬機器。這意味著,若您使用虛擬化超管理程式及嵌套虛擬機器,將無法向 VMware 申請官方技術支援。VMware 僅針對在 VMware vSphere 中使用嵌套虛擬機器核准一項例外情況,即使用 vSAN Witness Appliance,這是一種嵌套式 ESXi 安裝。

VMware 支援在虛擬機器上啟用 Hyper-V,以實現基於虛擬化的安全性(VBS). Microsoft 虛擬化基礎架構安全是一項新特點,具備 Windows 10 以及 Windows Server 2016. VMware 支援使用 VBS 在運行 Windows 的虛擬機器上,自 VMware vSphere 6.7 起。瞭解如何在新版 Windows 10 版本上運行 VMware 工作站,其中 VBS 預設為啟用狀態 以及如何解決相關錯誤。

授權選項

若您將 ESXi 及其他 vSphere 元件作為虛擬機器安裝於嵌套環境中,必須如同在實體伺服器上使用這些元件一般為其取得授權。此規則適用於在任何虛擬化平台(hypervisor)上安裝嵌套的 VMware 虛擬化平台。您可以使用 ESXi、vCenter 及其他 VMware 元件的試用版,或安裝 免費 ESXi. 進一步了解 VMware vSphere 授權 以及 vCenter 授權.

只要符合授權規則,您可以將一個具備多個 CPU 核心的 CPU 分配給執行虛擬 ESXi 的虛擬機器,而非分別分配多個各具一個 CPU 核心的 CPU。建議您調整 cpuid.coresPerSocket 參數。

VMware 嵌套虛擬化的使用情境

嵌套虛擬化的優勢在於,您可以在安裝於實體機器上的單一真實虛擬化平台(hypervisor)上,運行多個搭載嵌套虛擬機的虛擬化平台。節省成本是另一項優勢。嵌套虛擬化可應用於多種情境,以下我們來看看最常見的幾種。

教育. 您可以在虛擬機器上安裝 VMware ESXi,藉此了解 VMware vSphere 的功能性。您可以透過部署用於共用儲存的虛擬機器以及多個 ESXi 虛擬機器來建立叢集。接著配置叢集、建立嵌套虛擬機器、執行虛擬機器即時遷移,並探索高可用性 (HA)、動態資源調度 (DRS)、儲存 DRS 及其他 vSphere 特點的運作方式。 此方法的優勢在於,在您充分了解並能決定部署 VMware vSphere 所需的硬體配置之前,無需購買 SAS 控制器、SAS 硬碟、交換器或其他設備。若您的個人電腦符合需求,即可利用它來建置一個 VMware 家庭實驗室.

此方法亦可用於培訓貴組織內的員工。若他們誤觸設定導致虛擬 ESXi 主機及嵌套虛擬機器發生故障,您可以透過虛擬機器備份來恢復虛擬 ESXi 主機。您可以備份虛擬 ESXi 主機及嵌套虛擬機器。試試看 NAKIVO Backup & Replication,這是一套功能性完備的備份與快速還原解決方案,可保護您的 VMware vSphere 虛擬機器。

您可以 下載 VMware 叢集電子書 了解更多。

發展. 如果您或您的團隊正在開發適用於 VMware vSphere 的應用程式,您可以使用在虛擬 ESXi 伺服器上運行的嵌套虛擬機器。

測試. 您可以針對在具有嵌套虛擬機的虛擬 ESXi 伺服器上運行的 VMware vSphere 測試您的應用程式。不過,請在真實環境中的 vSphere 上進行最終測試,以找出可能取決於實體硬體的問題。 另一種使用情境是在虛擬環境中測試 VMware 虛擬化平台的新版本,以便在決定是否將此版本安裝於實體硬體,或升級硬體上現有的版本之前,先進行評估。若您從未升級過 VMware vSphere 元件,建議先在虛擬環境中進行測試。您可以測試各種情境並驗證新特點。

建議您執行 VMware 虛擬機器備份 在升級您的 vSphere 環境之前,請務必採取以下措施,以避免資料遺失,並在發生問題時防止系統停機。

示範銷售經理可以利用虛擬 ESXi 主機和虛擬 vSphere 環境進行演示,並詳細說明所需軟體的功能性。

在公有雲中執行 VMware 虛擬機器. 嵌套虛擬化的另一個使用情境是 託管服務供應商 在其公有雲中部署不同虛擬化平台的虛擬機器。

您可透過備份執行虛擬機器管理程式的虛擬機器(外層虛擬機器),或備份嵌套虛擬機器(內層虛擬機器),來備份嵌套環境。請參閱此處,進一步了解 VMware 虛擬機器備份與災難還原 白皮書.

嵌套虛擬機的效能

當您在 VMware 虛擬化平台(hypervisor)上執行虛擬機器時,該虛擬化平台上會存在一個與該虛擬機器運作相關的程序。此程序會根據虛擬機器所使用的虛擬記憶體,消耗主機的實體記憶體(Random Access Memory)。 若您執行五台虛擬機器,便會有五個程序,以此類推。主機上執行的程序越多,上下文切換與實體處理器調度所需的時間就越長。結果導致就緒時間增加,效能水準隨之下降。

在使用 VMware 嵌套虛擬化時,實體 ESXi 主機上的某個程序會包含一個 ESXi 虛擬機的程序,而該虛擬機上運行的 ESXi 又包含多個嵌套虛擬機的程序(這些程序運行於作為外層客機的虛擬 ESXi 主機程序之中)。因此,嵌套虛擬機的運作速度會比一般虛擬機慢。效能下降的程度取決於您的硬體效能以及嵌套層級。

適用於嵌套式 VMware Hypervisor 的 VMware Tools

安裝於虛擬機器內的 ESXi 需要 VMware Tools。VMware Tools 是一組安裝在客體作業系統上的驅動程式和公用程式。這些工具可提升虛擬機器的效能與使用者體驗。在虛擬 ESXi(外層客體)上執行的 VMware Tools 提供以下功能:

  • 關於嵌套式 ESXi 的資訊,這些資訊會顯示在 VMware vSphere Client 中:IP 位址、主機名稱等。
  • 能夠透過 vSphere API 及 vSphere Client(點擊介面中的相應按鈕時)正確地關閉並重新啟動虛擬 ESXi
  • 當 ESXi 主機的電源狀態發生變更(例如開機、關機等)時,能夠執行腳本
  • 支援虛擬機器內部的操作 API(即原 VIX API)(此處指虛擬 ESXi 的控制台)

在 VMware 虛擬機器上執行的 ESXi 所用的 VMware Tools,最初是針對 vSphere 5.0、5.1 和 5.5 版本所發布。供手動安裝的 VMware Tools 是以 VIB 套件的形式提供給 ESXi 5.x 版本。自 VMware vSphere 6.0 起,VMware Tools 已內建於 ESXi 中,因此現在無需在作為 VMware 虛擬機器執行的 ESXi 上手動安裝 VMware Tools。

您可以使用以下指令檢查虛擬 ESXi 上的 VMware Tools 狀態:

/etc/init.d/vmtoolsd status

人脈建立

在設定 ESXi 嵌套虛擬化時,網路配置可能會是一項挑戰。然而,若能了解 L2 和 L3 網路以及虛擬交換器的運作原理,便能簡化 VMware 嵌套虛擬化的網路配置。

若要在 ESXi 上安裝嵌套式超管理程式,您需要啟用 Promiscuous mode 以及 Forged transmits 在配置一個 vSwitch. 您也可以選擇啟用 MAC address change. 基於安全考量,這三項選項預設為停用狀態(顯示為"拒絕"狀態)。

隨機模式

Promiscuous mode 這是一項虛擬交換機的安全政策,可於 vSwitch 層級或埠組層級進行設定。VMkernel 及其他連接到該埠組的網路介面 Promiscuous mode 若啟用此功能,所有透過此 vSwitch 的網路裝置所產生的 L2 網路流量皆可被檢視(即使幀中定義了目的地 MAC 位址,網路介面卡仍會接收所有 IEEE 802.3 以太網幀)。預設情況下,網路介面卡僅會接收寄送至該介面卡的幀,而具有其他目的地 MAC 位址的幀則會被丟棄。 Promiscuous mode 也可用於網路監控及流量嗅探/分析,以進行診斷。當 Promiscuous mode 若已啟用,虛擬交換機便會像一個 樞紐. 埠組層級的設定可覆寫虛擬交換機層級的設定。

硬體(實體)交換機會學習連接至該交換機的網路裝置的 MAC 位址。與傳統實體交換機不同,虛擬交換機不會學習連接的網路介面控制器的 MAC 位址。這是因為 VMware vSphere(ESXi 和 vCenter)已經知道那些透過虛擬網路介面卡連接至虛擬交換機的虛擬機器的 MAC 位址。 在此情況下,虛擬交換機僅會在目的 MAC 位址與 ESXi 實體或虛擬網路介面控制器 (NIC) 的 MAC 位址相同時,才會將幀轉發至虛擬機器。

使用 ESXi 嵌套虛擬化時,虛擬機器 NIC(針對嵌套虛擬機器)的目的 MAC 位址會與執行嵌套虛擬機器的虛擬 ESXi 主機的 MAC 位址不同。 因此,實體 ESXi 主機上的虛擬交換機會丟棄這些幀(如果混雜模式已停用)。

混用模式與效能

當在虛擬交換機或埠組上啟用"隨意模式"時,網路效能會下降。若您使用 ESXi 嵌套虛擬化來處理會產生大量網路流量的網路密集型工作負載,便會注意到此變化。

MAC 位址變更與安全性

MAC 位址偽造是指在 ARP 中毒攻擊中使用虛假的 MAC 位址。因此,由客體作業系統變更 MAC 位址是關鍵所在。 將虛擬機器網路介面卡的 MAC 位址綁定至虛擬機器 VMX 設定檔中設定的 MAC 位址,能提升安全性並降低遭受 ARP 中毒攻擊的風險。此 VMware 功能性讓您能達到傳統實體環境無法實現的安全等級。正因如此,MAC 位址變更功能性預設為停用狀態。

: 虛擬交換器(vSwitch)是透過通知機制來識別連接至該虛擬交換器的網路介面卡的 MAC 位址,而非像傳統實體交換器那樣透過學習通過的流量來識別。

鍛造傳動系統

"偽造傳輸"是一項影響虛擬機器(VM)所產生出站流量(來自連接至虛擬交換器的 VM 之虛擬網路介面卡)的安全政策。此政策與"MAC 位址變更"政策類似,但適用於入站流量而非出站流量。

一旦啟用偽造傳輸, 已接受, 在 ESXi 主機上,若有效 MAC 位址與幀標頭中定義的來源 MAC 位址不同,虛擬機器仍可發送幀(此現象亦稱為 MAC 偽裝)。有效位址即為客體作業系統所設定的 MAC 位址。在偽造的傳輸中 Reject 在此模式下,若虛擬機器所使用的有效 MAC 位址與標頭中定義的來源 MAC 位址不符,主機便不會將封包傳送至該虛擬機器。在此情況下,客體作業系統將無法辨識出網路問題是由 MAC 位址偽造所引起。預設情況下,偽造傳輸的設定為 Reject 模式。

讓我們來看一個範例。在一個虛擬 ESXi 主機上,有三個嵌套的虛擬機器正在運行。每台機器都有一個唯一的 MAC 位址.

ESXi – 00:50:56:DD:DD:DD

Nested VM 1 - 00:50:56:AA:AA:AA

Nested VM 2 - 00:50:56:BB:BB:BB

Nested VM 3 - 00:50:56:CC:CC:CC

當任何一台虛擬機器嘗試透過虛擬 ESXi 主機的網路介面卡,連接到該虛擬 ESXi 主機虛擬交換機之外的網路時,連接至該虛擬 ESXi 主機網路介面卡的虛擬交換機會檢查虛擬機器傳送的乙太網路幀中所定義的來源 MAC 位址。該來源 MAC 位址與虛擬 ESXi 主機的有效 MAC 位址不符。來自該虛擬機器的幀將被視為 Forged Transmits 並掉落。該 Forged Transmits 該政策設定為 拒絕 在此情況下。

ESXi nested virtualization networking and forged transmit

在 VMware vSphere 6.7 中,分散式虛擬交換器支援 MAC 位址學習功能性。這表示從 vSphere 6.7 開始,您可以使用一個 分散式虛擬交換器 (VDS) 請使用 v6.6 或更高版本,而非在標準虛擬交換機上啟用混雜模式和偽造傳輸,以配置 VMware 嵌套虛擬化及其網路功能。該 macManagementPolicy 必須在 VDS 設定中啟用。

如何設定 VMware 嵌套虛擬化

在講解完理論部分後,我們現在可以進入實作階段,並設定 VMware 嵌套虛擬化。在這篇操作指南中,我將部署一台執行 ESXi 7.0.3 並在該 ESXi 虛擬機器上執行一個嵌套的 Windows 虛擬機器。我使用 vSphere 6.7(包含實體伺服器上的 ESXi 6.7)以及 vCenter 6.7。這是一個在現有 vSphere 環境中需要測試 VMware vSphere 最新版本時,運用 ESXi 嵌套虛擬化的範例。

我使用的機器如下:

  • 192.168.101.205 – 一台運行 ESXi 6.7 的實體主機。此主機已連接多個 VMFS 資料存放區。
  • 192.168.101.103 – 運行於另一台主機上的 VMware vCenter Server。其主機名為 vCenter 6-7 (vcenter6-7.localdomain)。此 vCenter Server 用於管理 ESXi 主機 (192.168.101.205)。
  • 192.168.101.131 – 一台執行 ESXi 7.0 Update 3(ESXi 7.0.3)的虛擬機器。該虛擬機器的名稱是 ESXi7-VM.
  • 192.168.101.0/24 – 這是用於連接實體與虛擬機器的網路位址。

您可以使用相同的設定,或採用自訂設定,透過 VMware 嵌套虛擬化技術在您的實驗室中部署虛擬環境。

The nested virtualization VMware scheme used in this tutorial

上傳 ISO 映像檔

我需要將 ESXi 7.0.3 的安裝 ISO 映像檔上傳至 ESXi 6.7 上的資料存放區,該主機即為我的實體 ESXi 主機。

  1. 開啟 VMware vSphere Client,然後前往 Datastores.
  2. 請選擇要上傳檔案的資料存放區。我選擇 datastore 11 位置位於 ESXi 6.7 主機上 (192.168.101.205).
  3. 請選擇 Files 分頁。
  4. 點擊 Upload Files.

Uploading the ESXi ISO image to the datastore of the VMware hypervisor (ESXi)

  1. 在您的電腦上選取 ESXi 7.0.3 安裝 ISO 映像檔,然後按下 Open.

Selecting the ESXi ISO image

請等待檔案上傳至資料存放區。

建立 VMware 虛擬機器管理程式虛擬機器

現在請建立一台新的虛擬機器,並在該虛擬機器上安裝 ESXI 7.0.3。

  1. 前往 Hosts and Clusters.
  2. 選擇所需的 ESXi 主機 (192.168.101.205 (在此情況下)。
  3. 點擊 Actions > New Virtual Machine.

VMware nested virtualization – creating a new ESXi VM on an ESXi server

A New Virtual Machine 精靈視窗隨即開啟。請依照步驟建立該機器。

1) 選擇創作類型

  1. 點擊 Create a new virtual machine.
  2. 點擊 Next 在精靈的每個步驟中,請點擊"繼續"。

Creating a new VM for ESXi nested virtualization

2) 選擇名稱和資料夾

接著請指定以下參數:

  • 虛擬機器名稱: ESXi7-VM
  • 虛擬機器位置: Datacenter1

在您的基礎架構中,這些參數可能有所不同。

Entering a name for a VM to install a VMware hypervisor

3) 選擇運算資源

請選擇您要部署 ESXi 7 虛擬機的主機。我選擇 192.168.101.205.

Selecting an ESXi host to run an ESXi 7 VM

4) 選擇儲存空間

請選擇一個虛擬機器檔案的位置。請確保該資料存放區有足夠的可用空間。我選擇 datastore42 在此範例中。

Selecting a datastore attached to a VMware hypervisor (ESXi 6.7)

5) 選擇相容性

所選的相容性會決定虛擬機器(VM)的硬體版本。較高的版本提供更多特點,但較低的版本則允許您在舊版 VMware ESXi 和 VMware 工作站上執行虛擬機器。如果您計劃將虛擬機器遷移至執行舊版虛擬化程式的主機,可能需要選擇較低的相容性版本。我正在 ESX 6.7 上建立一個虛擬機器,並選擇 ESXi 6.5 and later 以確保相容性(虛擬機器版本 13)。請注意,嵌套虛擬化功能自虛擬機器硬體版本 9 起才開始支援。

Selecting virtual hardware compatibility for a new VM

6) 選擇客體作業系統

請選取以下參數。

  • 客體作業系統家族: Other
  • 來賓作業系統版本: VMware ESXi 6.5 or later

選取 ESXi 版本後,系統會顯示以下警告訊息: This operating system is not supported. 這是 VMware 發出的提醒:若您在虛擬機器上使用 ESXi 時發生問題,將無法請求技術支援。請忽略此訊息並繼續安裝。

Selecting a guest OS version for an ESXi VM to be used for running nested VMs

7) 自訂硬體

此步驟對於正確設定 ESXi 嵌套虛擬化至關重要。您需要為新虛擬機器設定虛擬硬體。

CPU. 請至少選取 2 顆 CPU。每顆 CPU 可選取多個核心。請勾選此核取方塊 啟用硬體輔助虛擬化 在客體作業系統中啟用此虛擬機器的 VMware 嵌套虛擬化功能。

註: 若未啟用硬體輔助虛擬化,在虛擬機器上安裝 ESXi 時將會出現以下錯誤。 <Hardware virtualization warning: Hardware virtualization is not a feature of the CPU, or is not enabled in the BIOS>. 若出現此錯誤,您將無法在虛擬 ESXi 主機上啟動嵌套虛擬機器。

記憶. 請選擇 8 GB 或以上的記憶體。請注意,ESXi 本身運行時的需求為 4 GB 的記憶體。若要執行嵌套虛擬機器,您需要增加超過 4 GB 的記憶體。

Selecting the Expose HV is required to enable nested virtualization on ESXi

硬碟. 設定虛擬硬碟選項。設定新的虛擬硬碟大小,其必須符合 ESXi 7.0.3 的儲存需求(至少 32 GB 的磁碟空間)。在此,我為一臺虛擬機器建立一個 40 GB 的虛擬硬碟,用以安裝 ESXi 7.0.3。

磁碟配置. 選擇 精簡配置. 此選項可讓您節省虛擬機器位置的資料存放區儲存空間。

Configuring virtual hardware for a new ESXi VM

  1. 網路. 選取所需的虛擬機器網路。我使用 VMXNET3 作為網路介面卡,以獲得最佳效能。
  2. 新款 CD/DVD 光碟機. 展開 New CD/DVD Drive 章節。
  3. 選擇 Datastore ISO file 在下拉式選單中。
  4. CD/DVD Media 行,點擊 Browse 並在資料存放區中選取 ISO 檔案。

Selecting an ISO file to mount in a virtual DVD drive of the VM

  1. 請在資料存放區中選取您先前上傳的 ESXi 7.0.3 安裝 ISO 映像檔。

Selecting the ISO file in the datastore

8) 準備完成

檢查虛擬機器配置摘要,若一切無誤,請按下 Finish.

Checking configuration of the new ESXi VM created for testing VMware nested virtualization

啟動 ESXi 虛擬機器

建立虛擬機器後,請啟動此虛擬機器。我選擇 ESXi7-VM 在 VMware vSphere Client 中,右鍵點擊虛擬機器,然後在 Actions 選單,點擊 Power > Power On.
Starting a new ESXi 7 VM

虛擬機器啟動後,請在網頁瀏覽器或 VMware 客戶端(例如 VMware 工作站或 VMware Remote Console 應用程式)中開啟虛擬機器主控台,並依照慣常步驟安裝 ESXi 7.0.3 安裝 ESXi. 在 ESXi 上設定 IP 位址和主機名稱 (192.168.101.131 (此為本教學中 ESXi 7 虛擬機器所使用的 IP 位址)。

在虛擬機器上完成 ESXi 7.0.3 的安裝後,您可以在 VMware vSphere Client 中點擊虛擬機器名稱,並查看虛擬機器資訊。如下方截圖所示,VMware Tools 已自動安裝在 ESXi 7.0.3 虛擬機器上。

A new ESXi VM is ready to configure VMware nested virtualization

設定虛擬交換器

在外部 ESXi 虛擬機器上建立嵌套虛擬機器之前(192.168.101.131),我們需要在實體 ESXi 主機上設定一個虛擬交換器 (192.168.101.205). 如本篇部落格文章前文的理論部分所述, Promiscuous mode 以及 Forged transmits 必須在實體 ESXi 主機的虛擬交換機上啟用此功能,才能讓嵌套虛擬機器在虛擬 ESXi 主機外部建立網路連線。

    1. 前往 Hosts and Clusters 在 VMware vSphere Client 中
    2. 在您已安裝 ESXi 虛擬機的主機上,以滑鼠右鍵點擊該 ESXi 主機,然後點擊 Settings 以開啟 ESXi 設定。該 Configure 分頁開啟。
    3. 點擊 Virtual switchesNetwork 類別。
    4. 接著選取所需的虛擬交換器(vSwitch0 (就我們的情況而言)並按下 Edit.

Configuring a virtual switch on a physical ESXi host to enable nested virtualization networking

  1. 設定虛擬交換器的安全性政策。請選取 Accept 因為 Promiscuous mode, MAC address changes,以及 Forged transmits. 點擊 OK 以儲存設定並關閉視窗。

Enabling security features on a virtual switch for ESXi nested virtualization networking

虛擬交換器現已針對 ESXi 嵌套虛擬化完成設定。

在 ESXi 虛擬機器上建立資料存放區

在建立 ESXi 7.0.3 虛擬機器時,我為 ESX 安裝建立了一個 40 GB 的虛擬磁碟。由於新的 磁碟分割佈局 在 ESXi 7 中,系統會預先建立 VMFSL 分區,導致在容量較小的磁碟(小於 128 GB)上,無法為建立資料存放區所需的 VMFS 分區預留空間。 因此,我無法將虛擬機器儲存於用於安裝 ESXi 7.0.3 的該虛擬機器所使用的虛擬磁碟上,必須為我的 ESX7 虛擬機器建立第二個虛擬磁碟。

VMFSL 分割區用於儲存 ESXi 作業系統資料、核心轉儲檔案、工具及暫存資料。若磁碟容量大於 128 GB,系統會於系統磁碟的額外分割區中建立 VMFS 資料存放區。

Checking the disk partition layout on ESXi 7.0.3

現在我們來為 ESXi7-VM 建立第二個虛擬磁碟。我將把這個虛擬磁碟用於虛擬 ESXi 主機上的 VMFS 資料存放區。要執行此操作,請在新增虛擬磁碟之前先關閉 ESXi7-VM。

  1. 前往 VMware vSphere Client 並選取 ESXi7-VM.
  2. 右鍵點擊虛擬機器名稱,然後在彈出的選單中點擊 Edit Settings.

Editing VM settings

  1.  在 Edit Settings 視窗,點擊 Add new device 並選擇 Hard disk. 接著設定新硬碟的選項。

我選擇以下設定:

  • 磁碟大小: 30 GB
  • 類型: Thin provision

點擊 OK 儲存虛擬機器設定並關閉視窗。

Adding a new virtual disk to create a datastore and store nested VMs

在 ESXi7-VM 上建立第二個虛擬磁碟後,請啟動該虛擬機器。接著連線至該虛擬機器上執行的 ESXi 7.0.3(192.168.101.131) 在網頁瀏覽器中輸入此網址並登入 VMware Host Client。

前往 StorageNavigator 滑動並點擊 New datastore.

Adding a new datastore

1) 資料存放區名稱

選擇 Create a new VMFS datastore 並為新的資料存放區指定一個名稱,例如, ds-nested01. 點擊 Next 在每個步驟中繼續。

Entering a new datastore name

2) 選擇分割選項

由於只有一個可用的虛擬磁碟,因此選取了這個 30 GB 的磁碟。選取 Use full disk 以及 VMFS 6 在相應的下拉式清單中。

Selecting datastore partitioning options

3) 準備完成

檢查資料存放區的配置摘要,然後按下 Finish.

Finishing creating a new datastore

已建立一個資料存放區。您可以使用此資料存放區,在 VMware 虛擬化平台(例如,我的情況下是 ESXi 7.0.3)中儲存一個嵌套虛擬機器(例如,運行 Windows 的虛擬機器)。

上傳嵌套虛擬機的 ISO 映像檔

我們幾乎已經完成在虛擬 ESXi 主機上建立嵌套虛擬機的準備工作,以便說明如何實際配置 VMware 嵌套虛擬化。我們將在嵌套虛擬機上安裝 Windows XP,因為這個作業系統體積輕巧,在嵌套環境中的效能應足以應付需求。 請務必留意安全性考量,並使用最新版本的 Windows。您亦可安裝任何其他受支援的客體作業系統(即 VMware Tools 提供支援的客體作業系統)。要安裝 Windows 客體作業系統,我們需要使用 Windows 安裝 ISO 映像檔。其原理是啟動作業系統安裝程式,並在嵌套虛擬機器上安裝客體作業系統。

上傳 Windows 安裝 ISO 映像檔主要有兩種途徑。

  1. 將 ISO 映像檔上傳至虛擬 ESXi 主機上的資料存放區(即 IP 位址為 192.168.101.131 (以我的情況為例)。在嵌套的 Windows 虛擬機器中的 CD/DVD 光碟機設定中,選擇使用資料存放區中的 ISO 映像檔。
  2. 將 ISO 映像檔上傳至實體 ESXi 主機的資料存放區。在 ESXi7-VM 的虛擬機器設定中,將此 ISO 映像檔掛載至 ESXi7 虛擬機器的 CD/DVD 光碟機。選擇 Host Device 在建立新的嵌套虛擬機器時,請於嵌套的 Windows XP 虛擬機器設定中進行設定。虛擬機器所使用的 CD/DVD 光碟機若選取"主機裝置"選項,將啟用直通模式,並將虛擬機器連接到實體 ESXi 主機的實體 CD/DVD 光碟機。由於我們的 ESXi 主機 7.0.3 是在 VMware 嵌套虛擬化環境中運作的虛擬主機,因此 Host device 此選項會將 ESXi 7 虛擬機的虛擬 CD/DVD 光碟機連接到嵌套虛擬機的虛擬 CD/DVD 光碟機。

第二種方法的優點在於,您無需佔用虛擬 ESXi 虛擬機上的資料存放區空間,可將所有 ISO 映像檔集中儲存於單一位置,且整體效能應會略為提升。本教學將採用第二種方法,說明 ESXi 嵌套虛擬化的設定。

將 Windows XP 安裝 ISO 映像檔上傳至資料存放區 (datastore11 (在我們的情況下)就像您在 vSphere Client 中對 ESXi 7.0.3 ISO 映像檔所做的那樣。

  1. 前往 Datastores.
  2. 請選擇所需的資料存放區。
  3. 點擊 Files 分頁。
  4. 點擊 Upload files.
  5. 選取所需的 ISO 檔案,按下 Open,並等待 ISO 檔案上傳至資料存放區。

VMware nested virtualization - uploading an ISO image to install an OS on a nested VM

編輯 ESXi7 虛擬機的設定(我們使用 VMware vSphere Client 來執行此操作)。

  1. 選擇 CD/DVD drive 1.
  2. 請選擇 Datastore ISO file 選項。
  3. 點擊 Browse 在"CD/DVD 媒體"區段中,選取位於資料存放區中的 Windows ISO 映像檔的位置。
  4. 請確保已勾選以下核取方塊: Connected, Connect At Power On.

Selecting an ISO file to install a guest OS on a nested VM

建立嵌套虛擬機器

登入虛擬 ESXi 7 主機的 VMware Host Client 網頁介面(192.168.101.131 (以我為例)。
前往 Virtual MachinesNavigator 滑動並點擊 Create / Register VM.

VMware nested virtualization – creating a nested VM on a virtual ESXi host

VMware Host Client 中會開啟一個新的虛擬機器精靈。

1) 選擇建立類型

選擇 Create a new virtual machine. 點擊 Next 在精靈的每個步驟中,請點擊"繼續"。

VMware nested virtualization – creating a new nested VM

2) 選擇名稱和來賓作業系統

請為虛擬機器和作業系統指定一個唯一的名稱。我選擇以下參數。

  • 虛擬機器名稱: WindowsXP
  • 相容性: ESXi 7.0 U2 virtual machine
  • 客體作業系統家族: Windows
  • 來賓作業系統版本: Microsoft Windows XP Professional (32 位元)

若要在虛擬機器上安裝另一個客體作業系統,請在選項中選擇適當的作業系統。

Entering a name for a nested VM and selecting VM options

3) 選擇儲存空間

請選擇您先前在虛擬 ESXi 主機上建立的資料存放區。我選擇 ds-nested01 用於儲存虛擬機器檔案。

VMware nested virtualization – selecting a datastore to store files of the nested VM

4) 自訂設定

設定虛擬機器硬體及額外的虛擬機器選項。

我選擇:

  • CPU: 1 顆 CPU
  • 記憶體: 512 MB RAM(Windows XP 32 位元版最多可選配 3.3 GB RAM)
  • 硬碟: 8 GB
  • 磁碟配置: Thin provisioned

Configuring virtual hardware for a nested VM on ESXi

光碟機 1: 主機裝置

其餘設定可保留預設值。

Selecting a DVD device with the OS installation image

5) 準備完成

請檢查嵌套虛擬機的設定,若一切無誤,請按下 Finish.

Checking the configuration summary for the new nested VM

在 ESXi 7.0.3 上啟動嵌套虛擬機器。該虛擬機器應從掛載至虛擬 ESXi 7.0.3 虛擬機器的 ISO 映像檔啟動。在嵌套虛擬機器上安裝客體作業系統。您可以點擊虛擬機器畫面預覽,以開啟虛擬機器主控台,並透過網頁介面與客體作業系統進行互動。

VMware nested virtualization - installing an OS on a nested VM

在嵌套虛擬機器上安裝完客體作業系統後,請安裝 VMware Tools。若您的 ESXi 發行版未包含附有 VMware Tools 的 ISO 映像檔,您可以從 VMware 官方網站下載 VMware Tools 安裝映像檔。請參閱這篇文章以獲取詳細資訊 安裝 VMware Tools.

VMware nested virtualization – deploying a nested VM on ESXi is finished

安裝 VMware Tools 後,您的嵌套虛擬機器網路應可正常運作。請嘗試從實體 ESXi 主機對嵌套虛擬機器執行 ping 指令,反之亦然。

複製 ESXi 虛擬機器

在其中一台虛擬機器上完成 ESXi 的設定後,您可能需要在實體 ESXi 伺服器上部署更多 ESXi 虛擬機器。您也可以部署一個嵌套的 vCenter Server 裝置以及一個具備共用儲存空間的虛擬機器(例如, FreeNAS) 來測試各種 vSphere 特點,包括叢集特點。

您隨時可以從頭開始在新虛擬機器上安裝 ESXi,但若需部署多台相同的 ESXi 虛擬機器,您可能需要定期執行此操作。因此,更好的解決方案是先設定一台 ESXi 虛擬機器,然後克隆這台虛擬機器。不過,您需要採取一些額外步驟,才能建立運作正常的虛擬機器克隆。

  1. 透過以下方式變更 VMkernel MAC 位址: 在 ESXCLI 中執行該指令.
    esxcli system settings advanced set -o /Net/FollowHardwareMac -i 1
  2. 從中刪除 UUID 記錄 esx.conf 因為 UUID 值在各主機上必須是唯一的。
    系統 UUID 記錄儲存於 /etc/vmware/esx.conf
  3. 開啟此檔案,並刪除以 /system/uuid
  4. 關閉原始的 ESXi 虛擬機器。現在您可以克隆該 ESXi 虛擬機器。下次啟動虛擬機器(包括虛擬機器克隆)時,系統會生成一個新的 UUID。在啟動 ESXi 虛擬機器克隆後,請變更其網路設定(IP 位址、主機名稱等)。

現在您已經了解如何實際運用 VMware 的嵌套虛擬化技術,以及如何透過 ESXi 嵌套虛擬化來建置虛擬環境。您也可以運用相同的概念,透過其他虛擬化平台來建置嵌套環境。

關於 VMware 工作站中的嵌套虛擬化,請參閱相關部落格文章以獲取進一步說明 VMware 家庭實驗室 6.7 以及 VMware 家庭實驗室 7.0.

您也可以閱讀關於 Hyper-V 的嵌套虛擬化 以及 如何在 Hyper-V 虛擬機器上安裝 ESXi.

進一步了解基於 Hyper-V 虛擬化的安全性,以及如何解決 VMware 不支援在此主機上執行嵌套虛擬化 錯誤。您可以在運行於 ESXi 上的虛擬機器上部署 Hyper-V,並在虛擬 Hyper-V 伺服器上執行嵌套虛擬機器。

結論

嵌套虛擬化是一項特點,可讓您在虛擬機器內部運行虛擬機器。這篇部落格文章探討了 VMware 的嵌套虛擬化,並說明了如何部署一個內含嵌套 Windows 虛擬機器的虛擬 ESXi 主機。設定 ESXi 嵌套虛擬化的最重要步驟,在於向客體虛擬化平台開放硬體輔助虛擬化功能,並在虛擬交換機上設定安全性政策,以確保網路運作正常。 您可以照常備份在 ESXi 虛擬機器上運行的超管理程式虛擬機器及嵌套虛擬機器。如果您正在尋找可靠的 VMware 虛擬機器備份解決方案,請嘗試 NAKIVO Backup & Replication.

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read