適用於:Azure Local 的超融合部署
本文說明如何在運行 Windows Server 2022、Windows 11 或更新作業系統(OS)的主機系統上部署虛擬化的 Azure Local 實例。 主機必須啟用 Hyper-V 才能部署。
你需要管理員權限才能使用 Azure Local 虛擬部署,並且熟悉現有的 Azure Local 解決方案。 部署可能需要大約 2.5 小時才能完成。
重要
Azure Local 的虛擬部署僅用於教育與示範目的。
Microsoft 支援服務 不支援虛擬部署。
必要條件
虛擬部署所需的硬體、網路及其他前置條件如下:
實體主機需求
以下是成功部署 Azure Local 的最低要求。
在您開始前,請確定:
你可以存取一個實體主機系統,該系統在Windows Server 2022、Windows 11或更新版本上運行 Hyper-V。 此主機用於配置虛擬 Azure Local 部署。
您有足夠的容量。 執行虛擬機或容器等實際工作負載需要更多容量。
用於虛擬部署的實體硬體符合下列需求:
元件 最小值 處理器 Intel VT-x 或 AMD-V 支援巢狀虛擬化。 如需詳細資訊,請參閱 我的處理器是否支援 Intel® 虛擬化技術? 記憶體 實體主機必須至少配備 48 GB 記憶體,以支援單一虛擬節點部署。 虛擬主機虛擬機至少應該有 32GB 記憶體。
實體主機必須至少有 72 GB 記憶體,以支援兩個虛擬節點部署。 每個虛擬主機虛擬機應至少配備 32 GB 記憶體,用於部署及更新應用。主機網路適配器 單一網路適配器。 儲存體 1 TB 固態硬碟(SSD)。
虛擬主機需求
在開始之前,請確保每個虛擬主機系統都能分配以下資源來配置你的虛擬化 Azure Local 實例:
| 元件 | 要求 |
|---|---|
| 虛擬機 (VM) 類型 | 已啟用安全啟動和受信任的平台模組(TPM)。 |
| 虛擬中央處理器 (vCPU)們 | 四個核心。 |
| 記憶體 | 至少需要 32 GB。 |
| 網路 | 至少有兩張網路適配器連線到內部網路。 必須啟用 MAC 仿冒。 |
| 開機磁碟 | 一顆磁碟用來安裝 Azure Stack HCI 作業系統,從 ISO 安裝。 至少有 127 GB。 |
| 儲存空間直接存取 的硬碟 | 兩個動態膨脹盤。 磁碟大小上限為 1024 GB。 |
| Hyper-V 整合工具中的時間同步 | 已停用 |
注意
這些要求是成功部署 Azure Local 的最低標準。 在執行虛擬機或容器等實際工作負載時,增加虛擬核心和記憶體等容量。
設定虛擬交換器
在虛擬環境中部署 Azure Local 時,你可以使用現有網路,並使用該網路的 IP 位址(如果有的話)。 在這種情況下,您只需要建立外部交換器,並將所有虛擬網路適配器連線到該虛擬交換器。 虛擬主機可以直接連接到你的實體網路,不需要額外設定。
不過,如果你計畫部署 Azure Local 虛擬環境的實體網路 IP 稀少,你可以建立一個啟用 NAT 的內部虛擬交換器,將虛擬主機與實體網路隔離,同時保持對網際網路的外接連線。
下列列出兩個選項的步驟:
使用外部虛擬交換器進行部署
cmdlet new-vmswitch 的參數可能會根據你Windows的作業系統而有所不同。 如需詳細資訊,請參閱 New-VMSwitch。
在您的實體主計算機上,執行下列 PowerShell 命令來建立外部虛擬交換器:
New-VMSwitch -Name "external_switch_name" -SwitchType External -NetAdapterName "network_adapter_name" -AllowManagementOS $true
使用已啟用內部虛擬交換器和 NAT 進行部署
在您的實體主計算機上,執行下列 PowerShell 命令來建立內部虛擬交換器。 使用此交換器確保 Azure Local 部署被隔離。
New-VMSwitch -Name "internal_switch_name" -SwitchType Internal -NetAdapterName "network_adapter_name"
建立內部虛擬交換器之後,就會在主機上建立新的網路適配器。 您必須將IP位址指派給此網路適配器,才能在連線到此內部交換器網路之後成為虛擬主機的預設閘道。 您也需要定義虛擬主機連線所在的 NAT 網路子網。
下列範例腳本會建立具有前置詞HCINAT的 NAT 網路192.168.44.0/24,並使用主機上的介面,將 IP 定義為192.168.44.1網路的預設閘道:
#Check interface index of the new network adapter on the host connected to InternalSwitch:
Get-NetAdapter -Name "vEthernet (InternalSwitch)"
#Create the NAT default gateway IP on top of the InternalSwitch network adapter:
New-NetIPAddress -IPAddress 192.168.44.1 -PrefixLength 24 -InterfaceAlias "vEthernet (InternalSwitch)"
#Create the NAT network:
New-NetNat -Name "HCINAT"-InternalIPInterfaceAddressPrefix 192.168.44.0/24
建立虛擬主機
建立 VM 以作為具有下列組態的虛擬主機。 你可以使用 Hyper-V Manager 或 PowerShell 來建立這個虛擬機:
Hyper-V 管理員。 欲了解更多資訊,請參見 使用 Hyper-V Manager 建立虛擬機器以鏡像您的實體管理網路。
PowerShell Cmdlets。 執行 PowerShell Cmdlet 之前,請務必先調整 虛擬主機需求 中所參考的 VM 組態參數。
請遵循下列步驟,使用 PowerShell Cmdlet 建立名為 Node1 的範例 VM:
建立虛擬機器:
New-VHD -Path "your_VHDX_path" -SizeBytes 127GB New-VM -Name Node1 -MemoryStartupBytes 32GB -VHDPath "your_VHDX_path" -Generation 2 -Path "VM_config_files_path"停用易失記憶體:
Set-VMMemory -VMName "Node1" -DynamicMemoryEnabled $false停用 VM 檢查點:
Set-VM -VMName "Node1" -CheckpointType Disabled移除在上一個步驟中建立 VM 期間建立的預設網路適配器:
Get-VMNetworkAdapter -VMName "Node1" | Remove-VMNetworkAdapter使用自定義名稱將新的網路適配器新增至 VM。 此範例會新增四個 NIC,但您可以視需要只新增兩個 NIC。 擁有四個 NIC 可讓您測試兩個網路意圖,例如使用每個兩個 NIC 來測試
Mgmt_Compute和Storage。Add-VmNetworkAdapter -VmName "Node1" -Name "NIC1" Add-VmNetworkAdapter -VmName "Node1" -Name "NIC2" Add-VmNetworkAdapter -VmName "Node1" -Name "NIC3" Add-VmNetworkAdapter -VmName "Node1" -Name "NIC4"將所有網路配接器連結至虛擬交換器。 指定您建立的虛擬交換器名稱,無論是外部沒有 NAT,還是使用 NAT 的內部:
Get-VmNetworkAdapter -VmName "Node1" | Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"如果你打算使用巢狀虛擬化,請在 VM Node1 上的所有網路介面卡啟用 MAC 位址偽造和網路介面卡組合功能。
- MAC 位址偽造讓網路適配器透過更改其媒體存取控制 (MAC) 位址,看起來像另一個網路介面卡。
- NetworkATC 團隊負責管理與計算意圖,並依配置提供儲存虛擬網卡。
Get-VmNetworkAdapter -VmName "Node1" | Set-VmNetworkAdapter -MacAddressSpoofing On -AllowTeaming On針對 VM
Node1上的所有網路適配器啟用主幹埠(僅適用於多節點部署)。 此腳本會設定特定 VM 的網路適配器,以主幹模式運作。 此配置通常用於多節點部署,允許您允許多個虛擬區域網路(VLAN)透過單一網路卡進行通訊:Get-VmNetworkAdapter -VmName "Node1" | Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000建立一個新的金鑰保護器並指派給 Node1。 此步驟使用本地「不可信」守護者,適用於實驗室與測試環境。
# Create a local guardian for lab/testing if one doesn't already exist New-HgsGuardian -Name "UntrustedGuardian" -GenerateCertificates $owner = Get-HgsGuardian -Name "UntrustedGuardian" $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot Set-VMKeyProtector -VMName "Node1" -KeyProtector $kp.RawData啟用
Node1的 vTPM。 藉由在 VM 上啟用 vTPM,您可以使用 BitLocker 和 VM 上需要 TPM 的其他功能。 執行此命令之後,Node1會啟用 vTPM,假設主計算機的硬體和 VM 的組態支援此功能。Enable-VmTpm -VMName "Node1"將虛擬處理器變更為
4:Set-VmProcessor -VMName "Node1" -Count 4建立額外的磁碟,分別作為開機磁碟和兩顆硬碟用於 儲存空間直接存取。 執行這些指令後,如本範例所示,會在
C:\vms\Node1目錄中建立三個新的 VHDX。new-VHD -Path "C:\vms\Node1\OS.vhdx" -SizeBytes 127GB new-VHD -Path "C:\vms\Node1\s2d1.vhdx" -SizeBytes 1024GB new-VHD -Path "C:\vms\Node1\s2d2.vhdx" -SizeBytes 1024GB將磁碟驅動器連結至新建立的 VHDX 以供 VM 使用。 在這些指令中,兩個位於
C:\vms\Node1目錄中且已命名s2d1.vhdx的s2d2.vhdxVHD 會被Node1加入 。 每個Add-VMHardDiskDrive命令都會將一個 VHD 新增至 VM,因此命令會以不同的-Path參數值重複六次。之後,
Node1虛擬機會接上兩台 VHD。 這些 VHDX 用於在虛擬機上啟用 儲存空間直接存取,這是 Azure Local 部署所必需的:Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\OS.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d1.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d2.vhdx"停用時間同步:
Get-VMIntegrationService -VMName "Node1" |Where-Object {$_.name -like "T*"}|Disable-VMIntegrationService開啟巢狀虛擬化:
Set-VMProcessor -VMName "Node1" -ExposeVirtualizationExtensions $true啟動 VM:
Start-VM "Node1"
在虛擬主機 VM 上安裝 OS
請完成以下步驟,在虛擬主機虛擬機上安裝並設定 Azure Stack HCI 作業系統:
因為這是虛擬機第一次啟動,請更新密碼。 確保密碼符合 Azure 的複雜度要求:
- 密碼至少有14個字元。
- 密碼至少包含:
- 一個大寫字母。
- 一個小寫字母。
- 一個數字。
- 一個特別的角色。
變更密碼之後,系統會自動載入伺服器組態工具 (SConfig)。 選取選項
15以結束命令行,然後從該處執行後續步驟。執行下列命令來啟動 SConfig:
SConfig如需如何使用 SConfig 的資訊,請參閱 使用伺服器組態工具設定 (SConfig) 。
將主機名稱變更為
Node1。 請在 SConfig 中使用選項2以用於Computer name。主機名變更會導致重新啟動。 當系統提示您重新啟動時,請輸入
Yes並等候重新啟動完成。 SConfig 會自動再次啟動。從實體主機上,執行
Get-VMNetworkAdapter和ForEach-ObjectCmdlet,將指派的 MAC 位址對應至客體作業系統上的相應網路介面卡,以設定 VMNode1的四個網路介面卡名稱。-
Get-VMNetworkAdapterCmdlet 可用來擷取 VM 上每個 NIC 的網路適配器物件,其中-VMName參數會指定 VM 的名稱,而-Name參數會指定網路適配器的名稱。 接著MacAddress會存取網路適配器物件的 屬性,以取得 MAC 位址:
Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"MAC 位址是十六進位數位的字串。
ForEach-ObjectCmdlet 是透過在特定間隔插入連字元來格式化此字串。 具體而言,Insert字串物件的 方法可用來在字串中的第 2 個、第 5 個、第 8 個、第 11 個和第 14 個位置插入連字元。 然後,運算符join會用來將產生的字串陣列串連成單一字串,其中每個元素之間都有空格。VM 上四個 NIC 中的每一個都會重複這些命令,而每個 NIC 的最終格式化 MAC 位址會儲存在個別變數中:
($Node1finalmacNIC1, $Node1finalmacNIC2, $Node1finalmacNIC3, $Node1finalmacNIC4).- 下列文稿會輸出每個 NIC 的最終格式化 MAC 位址:
$Node1macNIC1 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1" $Node1macNIC1.MacAddress $Node1finalmacNIC1=$Node1macNIC1.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC1 $Node1macNIC2 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC2" $Node1macNIC2.MacAddress $Node1finalmacNIC2=$Node1macNIC2.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC2 $Node1macNIC3 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC3" $Node1macNIC3.MacAddress $Node1finalmacNIC3=$Node1macNIC3.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC3 $Node1macNIC4 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC4" $Node1macNIC4.MacAddress $Node1finalmacNIC4=$Node1macNIC4.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC4-
Node1取得 VM 本機系統管理員認證,然後重新命名Node1:$cred = get-credential將
Node1上的網路介面卡重新命名和映射。 重新命名是根據虛擬機首次啟動時 Hyper-V 分配的網卡的 MAC 位址。 這些命令應該直接從主機執行:使用
Get-NetAdapter命令來擷取 VM 上的實體網路適配器,根據其 MAC 位址進行篩選,然後使用Rename-NetAdapterCmdlet 將其重新命名為相對應的適配卡。對虛擬機上的四個網卡重複此程序,分別指定 MAC 位址與新名稱。 這建立了 Hyper-V Manager 中網卡名稱與虛擬機作業系統中網卡名稱之間的對應關係:
Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC1) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC1} | Rename-NetAdapter -NewName "NIC1"} -ArgumentList $Node1finalmacNIC1 Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC2) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC2} | Rename-NetAdapter -NewName "NIC2"} -ArgumentList $Node1finalmacNIC2 Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC3) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC3} | Rename-NetAdapter -NewName "NIC3"} -ArgumentList $Node1finalmacNIC3 Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC4) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC4} | Rename-NetAdapter -NewName "NIC4"} -ArgumentList $Node1finalmacNIC4執行下列命令,以停用 VM
Node1四個 NIC 上的動態主機設定通訊協定 (DHCP)。注意
這些介面不會自動從 DHCP 伺服器取得 IP 位址,而是必須手動分配 IP 位址:
Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC1" -Dhcp Disabled} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC2" -Dhcp Disabled} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC3" -Dhcp Disabled} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC4" -Dhcp Disabled}設定管理IP、閘道和 DNS。 執行下列命令之後,
Node1將會NIC1使用指定的IP位址、子網掩碼、預設閘道和 DNS 伺服器位址來設定網路介面。 確保管理 IP 位址能解析及連接 Active Directory,且及對外連接到網際網路:Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {New-NetIPAddress -InterfaceAlias "NIC1" -IPAddress "192.168.44.201" -PrefixLength 24 -AddressFamily IPv4 -DefaultGateway "192.168.44.1"} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-DnsClientServerAddress -InterfaceAlias "NIC1" -ServerAddresses "192.168.1.254"}啟用 Hyper-V 角色。 這個指令會重新啟動 VM
Node1:Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All }當
Node1重新啟動並安裝 Hyper-V 角色後,安裝 Hyper-V 管理工具:Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools}虛擬主機準備好後,您必須在 Azure 中註冊並指派權限,作為 Arc 資源。
當機器在 Azure 註冊為 Arc 資源並安裝所有強制擴充功能後,請選擇以下方法之一從 Azure 部署 Azure Local。
如果你打算測試多節點部署,請重複前述的流程來增加節點。 確定虛擬主機名和管理IP是唯一的,且位於相同的子網上: