部署虛擬 Azure Stack HCI 版本 23H2 系統

適用於:Azure Stack HCI 版本 23H2

本文說明如何在 Windows Server 2022、Windows 11 或更新版本的作業系統上部署虛擬單一伺服器或多節點 Azure Stack HCI 版本 23H2,在 Windows Server 2022、Windows 11 或更新版本的操作系統上 (部署 hyper-V) 。

您需要 Azure Stack HCI 虛擬部署的系統管理員許可權,而且應該熟悉現有的 Azure Stack HCI 解決方案。 部署可能需要大約 2.5 小時才能完成。

重要

Azure Stack HCI 版本 23H2 的虛擬部署僅供教育與示範之用。 Microsoft 支援服務 不支援虛擬部署。

必要條件

以下是虛擬部署的硬體、網路和其他必要條件:

實體主機需求

以下是成功部署 Azure Stack HCI 版本 23H2 的最低需求。

在您開始前,請確定:

  • 您可以存取在 Windows Server 2022、Windows 11 或更新版本上執行 Hyper-V 的實體主機系統。 此主機用來布建虛擬 Azure Stack HCI 部署。

  • 您有足夠的容量。 執行虛擬機或容器等實際工作負載需要更多容量。

  • 用於虛擬部署的實體硬體符合下列需求:

    元件 最小值
    處理器 Intel VT-x 或 AMD-V,支援巢狀虛擬化。 如需詳細資訊,請參閱 我的處理器是否支援 Intel® 虛擬化技術?
    Memory 實體主機對於單一虛擬節點部署,至少必須有 32 GB RAM。 虛擬主機 VM 至少應有 24 GB RAM。

    實體主機至少必須有 64 GB 的 RAM,才能進行兩個虛擬節點部署。 每個虛擬主機 VM 至少應有 24 GB RAM。
    主機網路適配器 單一網路適配器。
    儲存體 (SSD) 1 TB 固態硬碟。

虛擬主機需求

開始之前,請確定每個虛擬主機系統都可以專用下列資源,以布建虛擬化的 Azure Stack HCI 系統:

元件 需求
虛擬機 (VM) 類型 已啟用安全開機和信賴平臺模組 (TPM) 。
vCPU 四個核心。
Memory 至少 24 GB。
網路 至少兩張連線到內部網路的網路適配器。 必須啟用 MAC 詐騙。
開機磁碟 從 ISO 安裝 Azure Stack HCI 作業系統的磁碟。
儲存空間直接存取的硬碟 六個動態擴充磁碟。 磁碟大小上限為 1024 GB。
資料磁碟 至少 127 GB。
整合中的時間同步處理 已停用。

注意

以下是成功部署 Azure Stack HCI 版本 23H2 的最低需求。 在執行虛擬機或容器等實際工作負載時,增加虛擬核心和記憶體等容量。

設定虛擬交換器

在虛擬環境中部署 Azure Stack HCI 時,您可以使用現有的網路,並在可用時使用來自該網路的 IP 位址。 在這種情況下,您只需要建立外部交換器,並將所有虛擬網路適配器連線到該虛擬交換器。 虛擬主機會連線到您的實體網路,而不需要任何額外的設定。

不過,如果您打算部署 Azure Stack HCI 虛擬環境的實體網路在 IP 上很罕見,您可以建立已啟用 NAT 的內部虛擬交換器,以隔離虛擬主機與實體網路,同時保持對因特網的輸出連線。

下列列出兩個選項的步驟:

使用外部虛擬交換器進行部署

在您的實體主計算機上,執行下列 PowerShell 命令來建立外部虛擬交換器:

New-VMSwitch -Name "external_switch_name" -SwitchType External -NetAdapterName "network_adapter_name" -AllowManagementOS $true

使用內部虛擬交換器和已啟用 NAT 進行部署

在您的實體主計算機上,執行下列 PowerShell 命令來建立內部虛擬交換器。 使用此參數可確保 Azure Stack HCI 部署已隔離。

New-VMSwitch -Name "internal_switch_name" -SwitchType Internal -NetAdapterName "network_adapter_name" 

建立內部虛擬交換器之後,主機上就會建立新的網路適配器。 您必須將IP位址指派給此網路適配器,才能在連線到此內部交換器網路後成為虛擬主機的預設閘道。 您也需要定義虛擬主機連線所在的 NAT 網路子網。

下列範例腳本會建立具有前置詞192.168.44.0/24的 NAT 網路HCINAT,並使用主機上的 介面,將 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

Create 虛擬主機

Create VM,以作為具有下列設定的虛擬主機。 您可以使用 Hyper-V 管理員或 PowerShell 來建立此 VM:

請遵循下列步驟,使用 PowerShell Cmdlet 建立名為 Node1 的範例 VM:

  1. 建立虛擬機器:

    New-VHD -Path "your_VHDX_path" -SizeBytes 127GB
    New-VM -Name Node1 -MemoryStartupBytes 20GB -VHDPath "your_VHDX_path" -Generation 2 -Path "VM_config_files_path"
    
  2. 停用易失記憶體:

    Set-VMMemory -VMName "Node1" -DynamicMemoryEnabled $false
    
  3. 停用 VM 檢查點:

    Set-VM -VMName "Node1" -CheckpointType Disabled
    
  4. 移除在上一個步驟中於 VM 建立期間建立的預設網路適配器:

    Get-VMNetworkAdapter -VMName "Node1" | Remove-VMNetworkAdapter
    
  5. 使用自定義名稱將新的網路適配器新增至 VM。 此範例會新增四個 NIC,但您可以視需要只新增兩個 NIC。 擁有四個 NIC 可讓您測試兩個網路意圖 (Mgmt_ComputeStorage 例如,每個 NIC) 兩個 NIC:

    Add-VmNetworkAdapter -VmName "Node1" -Name "NIC1"
    Add-VmNetworkAdapter -VmName "Node1" -Name "NIC2"
    Add-VmNetworkAdapter -VmName "Node1" -Name "NIC3"
    Add-VmNetworkAdapter -VmName "Node1" -Name "NIC4"
    
  6. 將所有網路配接器連結至虛擬交換器。 指定您建立的虛擬交換器名稱,無論是外部沒有 NAT,還是使用 NAT 內部:

    Get-VmNetworkAdapter -VmName "Node1" |Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"
    
  7. 在 VM Node1上啟用所有網路適配器上的 MAC 詐騙。 MAC 地址詐騙是一種技術,可藉由變更其 Media 存取控制 (MAC) 位址,讓網路適配器偽裝成另一張網路適配器。 在打算使用巢狀虛擬化的案例中,這是必要的:

    Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
    
  8. 只針對 VM Node1上的所有網路適配器啟用多節點部署的主幹埠 () 。 此腳本會設定特定 VM 的網路適配器,以主幹模式運作。 這通常用於您想要允許多個虛擬局域網路 (VLAN 的多節點部署,) 透過單一網路適配器進行通訊:

    Get-VmNetworkAdapter -VmName "Node1" |Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
    
  9. Create 新的金鑰保護裝置,並將它指派給 Node1。 這通常是在 Hyper-V 中設定受防護網狀架構的內容中完成,這是一項安全性功能,可保護 VM 免於未經授權的存取或竄改。

    執行下列腳本之後, Node1 會將新的密鑰保護裝置指派給它。 此金鑰保護裝置可保護 VM 的金鑰,協助保護 VM 免於未經授權的存取或竄改:

    $owner = Get-HgsGuardian UntrustedGuardian
    $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
    Set-VMKeyProtector -VMName "Node1" -KeyProtector $kp.RawData
    
  10. 啟用的 Node1vTPM。 藉由在 VM 上啟用 vTPM,您就可以在 VM 上使用 BitLocker 和其他需要 TPM 的功能。 執行此命令之後, Node1 將會啟用 vTPM,假設主計算機的硬體和 VM 的組態支援此功能。

    Enable-VmTpm -VMName "Node1"
    
  11. 將虛擬處理器變更為 8

     Set-VmProcessor -VMName "Node1" -Count 8
    
  12. Create 額外的磁碟驅動器,作為 儲存空間直接存取 的開機磁碟和硬碟。 執行這些命令之後,將會在 C:\vms\Node1 目錄中建立六個新的 VHDX,如下列範例所示:

     new-VHD -Path "C:\vms\Node1\s2d1.vhdx" -SizeBytes 1024GB
     new-VHD -Path "C:\vms\Node1\s2d2.vhdx" -SizeBytes 1024GB
     new-VHD -Path "C:\vms\Node1\s2d3.vhdx" -SizeBytes 1024GB
     new-VHD -Path "C:\vms\Node1\s2d4.vhdx" -SizeBytes 1024GB
     new-VHD -Path "C:\vms\Node1\s2d5.vhdx" -SizeBytes 1024GB
     new-VHD -Path "C:\vms\Node1\s2d6.vhdx" -SizeBytes 1024GB
    
  13. 將磁碟驅動器連結至新建立的 VMHDX。 在這些指令中 C:\vms\Node1 ,位於目錄中且名為 s2d1.vhdxs2d6.vhdx 六個 VHD 會新增至 Node1。 每個 Add-VMHardDiskDrive 命令都會將一個 VHD 新增至 VM,因此命令會以不同的 -Path 參數值重複六次。

    之後, Node1 VM 會連結六個 VHD。 這些 VHDX 可用來在 VM 上啟用 儲存空間直接存取,這是 Azure Stack HCI 部署的必要專案:

     Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d1.vhdx"
     Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d2.vhdx"
     Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d3.vhdx"
     Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d4.vhdx"
     Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d5.vhdx"
     Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d6.vhdx"
    
  14. 停用時間同步處理:

    Get-VMIntegrationService -VMName "Node1" |Where-Object {$_.name -like "T*"}|Disable-VMIntegrationService
    
  15. 開啟巢狀虛擬化:

    Set-VMProcessor -VMName "Node1" -ExposeVirtualizationExtensions $true
    
  16. 啟動 VM:

    Start-VM "Node1"
    

在虛擬主機 VM 上安裝 OS

完成下列步驟,以在虛擬主機 VM 上安裝及設定 Azure Stack HCI OS:

  1. 下載 Azure Stack HCI 23H2 ISO安裝 Azure Stack HCI 操作系統

  2. 更新密碼,因為這是第一個 VM 啟動。 請確定密碼符合 Azure 複雜度需求。 密碼至少為 12 個字元,且包含 1 大寫字元、1 個小寫字元、1 個數位和 1 個特殊字元。

  3. 變更密碼之後,系統會自動載入伺服器組態工具 (SConfig) 。 選取選項 15 以結束命令行,然後從該處執行後續步驟。

  4. 執行下列命令來啟動 SConfig:

      SConfig
    

    如需如何使用 SConfig 的詳細資訊,請參閱 使用伺服器組態工具來設定 (SConfig)

  5. 將主機名稱變更為 Node1。 在 SConfig 中使用 選項2Computer name來執行此動作。

    主機名變更會導致重新啟動。 當系統提示您重新啟動時,請輸入 Yes 並等候重新啟動完成。 SConfig 會自動啟動。

  6. 從實體主機執行 Get-VMNetworkAdapterForEach-Object Cmdlet,將指派的 MAC 位址對應至客體 OS 上的對應網路適配器,以設定 VM Node1 的四個網路適配器名稱。

    1. Cmdlet Get-VMNetworkAdapter 可用來擷取 VM 上每個 NIC 的網路適配器物件,其中 -VMName 參數會指定 VM 的名稱,而 -Name 參數會指定網路適配器的名稱。 MacAddress接著會存取網路適配器物件的 屬性,以取得 MAC 位址:
    Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"
    
    1. MAC 位址是十六進位數位的字串。 Cmdlet ForEach-Object 是用來藉由在特定間隔插入連字元來格式化此字串。 具體而言, Insert 字串物件的 方法會用來在字串中的第 2 個、第 5 個、第 8 個、第 11 個和第 14 個位置插入連字元。 接著會 join 使用 運算符,將產生的字串陣列串連至每個元素之間具有空格的單一字串。

    2. 每個 NIC 都會針對 VM 上的四個 NIC 重複執行命令,而每個 NIC 的最終格式化 MAC 位址會儲存在不同的變數中:

    ($Node1finalmacNIC1, $Node1finalmacNIC2, $Node1finalmacNIC3, $Node1finalmacNIC4).
    
    1. 下列文稿會輸出每個 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
    
    
  7. Node1取得 VM 本機系統管理員認證,然後重新命名 Node1

    $cred = get-credential
    
  8. 重新命名並對應 上的 Node1NIC。 重新命名是以第一次啟動 VM 時,Hyper-V 所指派 NIC 的 MAC 位址為基礎。 這些命令應該直接從主機執行:

    Get-NetAdapter使用 命令來擷取 VM 上的實體網路適配器、根據其 MAC 位址進行篩選,然後使用 Cmdlet 將它們重新命名為相符的Rename-NetAdapter適配卡。

    這會針對 VM 上四個 NIC 的每一個重複執行,並分別指定每個 NIC 的 MAC 位址和新名稱。 這會建立 Hyper-V 管理員中 NIC 名稱與 VM OS 中 NIC 名稱之間的對應:

    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
    
  9. 執行下列命令,在 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}
    
  10. 設定管理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"}
    
  11. 啟用 Hyper-V 角色。 這個指令會重新啟動 VM Node1

    Invoke-Command -VMName "Node1"
    -Credential $cred -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All }
    
  12. 重新啟動並安裝 Hyper-V 角色之後 Node1 ,請安裝 Hyper-V 管理工具:

    Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools}
    
  13. 一旦虛擬主機伺服器準備就緒,您必須 註冊它,並將 Azure 中的許可權指派 為 Arc 資源。

  14. 在 Azure 中將伺服器註冊為 Arc 資源,並安裝所有必要擴充功能之後,請選擇下列其中一種方法,從 Azure 部署 Azure Stack HCI。

如果您打算測試多節點部署,請針對上述節點重複上述程式。 確定虛擬主機名和管理IP是唯一的,且位於相同的子網上:

下一步