Развертывание виртуальной системы Azure Stack HCI версии 23H2

Применимо к: Azure Stack HCI версии 23H2

В этой статье описывается, как развернуть виртуализированный отдельный сервер или многоузловую службу Azure Stack HCI версии 23H2 в хост-системе под управлением Hyper-V в операционной системе Windows Server 2022, Windows 11 или более поздней версии.

Для виртуального развертывания Azure Stack HCI требуются права администратора, и вы должны быть знакомы с существующим решением Azure Stack HCI. Развертывание может занять около 2,5 часов.

Важно!

Виртуальное развертывание Azure Stack HCI версии 23H2 предназначено только для образовательных и демонстрационных целей. служба поддержки Майкрософт не поддерживает виртуальные развертывания.

Предварительные требования

Ниже приведены аппаратные, сетевые компоненты и другие предварительные требования для виртуального развертывания.

Требования к физическому узлу

Ниже приведены минимальные требования для успешного развертывания Azure Stack HCI версии 23H2.

Перед тем как начать, убедитесь в следующем.

  • У вас есть доступ к физической системе узла под управлением Hyper-V в Windows Server 2022, Windows 11 или более поздней версии. Этот узел используется для подготовки виртуального развертывания Azure Stack HCI.

  • У вас достаточно емкости. Для выполнения фактических рабочих нагрузок, таких как виртуальные машины или контейнеры, требуется больше емкости.

  • Физическое оборудование, используемое для виртуального развертывания, соответствует следующим требованиям:

    Компонент Минимальные
    Процессор Intel VT-x или AMD-V с поддержкой вложенной виртуализации. Дополнительные сведения см. в статье Поддерживает ли мой процессор технологию виртуализации Intel®?.
    Память Физический узел должен иметь не менее 32 ГБ ОЗУ для развертываний с одним виртуальным узлом. Виртуальная машина виртуального узла должна иметь не менее 24 ГБ ОЗУ.

    Физический узел должен иметь не менее 64 ГБ ОЗУ для двух развертываний виртуальных узлов. Каждая виртуальная машина виртуального узла должна иметь не менее 24 ГБ ОЗУ.
    Сетевые адаптеры узла Один сетевой адаптер.
    Память Твердотельный накопитель (SSD) емкостью 1 ТБ.

Требования к виртуальному узлу

Прежде чем начать, убедитесь, что каждая виртуальная хост-система может выделить следующие ресурсы для подготовки виртуализированной системы Azure Stack HCI:

Компонент Требование
Тип виртуальной машины Безопасная загрузка и доверенный платформенный модуль (TPM) включены.
Число виртуальных ЦП Четыре ядра.
Память Не менее 24 ГБ.
Сеть По крайней мере два сетевых адаптера, подключенных к внутренней сети. Необходимо включить спуфингов MAC.
Загрузочный диск Один диск для установки операционной системы Azure Stack HCI из ISO.
Жесткие диски для Локальные дисковые пространства Шесть динамически расширяющихся дисков. Максимальный размер диска — 1024 ГБ.
Диск данных Не менее 127 ГБ.
Синхронизация времени в интеграции Отключено.

Примечание

Ниже приведены минимальные требования для успешного развертывания 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, в которой подключены виртуальные узлы.

Следующий пример скрипта создает сеть HCINAT NAT с префиксом 192.168.44.0/24 и определяет 192.168.44.1 IP-адрес в качестве шлюза по умолчанию для сети с помощью интерфейса на узле:

#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 виртуальную машину в качестве виртуального узла со следующей конфигурацией. Эту виртуальную машину можно создать с помощью диспетчера Hyper-V или PowerShell:

Выполните следующие действия, чтобы создать пример виртуальной машины с именем с помощью Node1 командлетов PowerShell.

  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. Отключение контрольных точек виртуальной машины.

    Set-VM -VMName "Node1" -CheckpointType Disabled
    
  4. Удалите сетевой адаптер по умолчанию, созданный во время создания виртуальной машины на предыдущем шаге:

    Get-VMNetworkAdapter -VMName "Node1" | Remove-VMNetworkAdapter
    
  5. Добавьте новые сетевые адаптеры на виртуальную машину, используя пользовательские имена. В этом примере добавляется четыре сетевых адаптера, но при необходимости можно добавить только два сетевых адаптера. Наличие четырех сетевых адаптеров позволяет протестировать два сетевых намерения (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"
    
  6. Подключите все сетевые адаптеры к виртуальному коммутатору. Укажите имя созданного виртуального коммутатора, будь то внешний без NAT или внутренний с NAT:

    Get-VmNetworkAdapter -VmName "Node1" |Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"
    
  7. Включите спуфингов MAC на всех сетевых адаптерах на виртуальной машине Node1. Спуфинг MAC-адресов — это метод, который позволяет сетевому адаптеру замаскироваться под другим, изменив свой mac-адрес контроль доступа мультимедиа. Это необходимо в сценариях, в которых вы планируете использовать вложенную виртуализацию:

    Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
    
  8. Включите магистральный порт (только для развертываний с несколькими узлами) для всех сетевых адаптеров на виртуальной машине Node1. Этот скрипт настраивает сетевой адаптер конкретной виртуальной машины для работы в магистральном режиме. Обычно используется в развертываниях с несколькими узлами, где требуется разрешить нескольким виртуальным локальным сетям (VLAN) обмениваться данными через один сетевой адаптер:

    Get-VmNetworkAdapter -VmName "Node1" |Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
    
  9. Create новый предохранитель ключа и назначьте его Node1. Обычно это делается в контексте настройки защищенной структуры в Hyper-V, функции безопасности, которая защищает виртуальные машины от несанкционированного доступа или незаконного изменения.

    После выполнения следующего скрипта Node1 ему будет назначен новый предохранитель ключа. Этот предохранитель ключа защищает ключи виртуальной машины, помогая защитить виртуальную машину от несанкционированного доступа или незаконного изменения:

    $owner = Get-HgsGuardian UntrustedGuardian
    $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
    Set-VMKeyProtector -VMName "Node1" -KeyProtector $kp.RawData
    
  10. Включите vTPM для Node1. Включив vTPM на виртуальной машине, вы можете использовать BitLocker и другие функции, которым требуется доверенный платформенный модуль на виртуальной машине. После выполнения Node1 этой команды будет включен vTPM при условии, что оборудование главного компьютера и конфигурация виртуальной машины поддерживают эту функцию.

    Enable-VmTpm -VMName "Node1"
    
  11. Измените виртуальные процессоры на 8:

     Set-VmProcessor -VMName "Node1" -Count 8
    
  12. Create дополнительные диски, которые будут использоваться в качестве загрузочного диска и жестких дисков для Локальные дисковые пространства. После выполнения этих команд в C:\vms\Node1 каталоге будут созданы шесть виртуальных жестких дисков, как показано в этом примере:

     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. Подключите диски к вновь созданным VHDX-файлам для виртуальной машины. В этих командах в добавляются шесть виртуальных жестких диска, расположенных в каталоге C:\vms\Node1 и именованные s2d1.vhdxNode1с помощью s2d6.vhdx . Каждая Add-VMHardDiskDrive команда добавляет один виртуальный жесткий диск к виртуальной машине, поэтому команда повторяется шесть раз с разными -Path значениями параметров.

    После этого к виртуальной Node1 машине подключено шесть виртуальных жестких дисков. Эти VHDX-диски используются для включения Локальные дисковые пространства на виртуальной машине, которые необходимы для развертываний 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. Запустите виртуальную машину:

    Start-VM "Node1"
    

Установка ОС на виртуальных машинах виртуальных узлов

Выполните следующие действия, чтобы установить и настроить ОС Azure Stack HCI на виртуальных машинах виртуальных узлов.

  1. Скачайте ISO-файл Azure Stack HCI 23H2 и установите операционную систему Azure Stack HCI.

  2. Обновите пароль, так как это первый запуск виртуальной машины. Убедитесь, что пароль соответствует требованиям к сложности Azure. Пароль содержит не менее 12 символов и содержит 1 прописную букву, 1 строчную букву, 1 цифру и 1 специальный символ.

  3. После изменения пароля автоматически загружается средство настройки сервера (SConfig). Выберите параметр 15 , чтобы выйти в командную строку и выполнить следующие шаги.

  4. Запустите SConfig, выполнив следующую команду:

      SConfig
    

    Сведения об использовании SConfig см. в разделе Настройка с помощью средства настройки сервера (SConfig).

  5. Измените имя узла на Node1. Для этого используйте параметр 2 для Computer name в SConfig.

    Изменение имени узла приводит к перезапуску. При появлении запроса на перезагрузку введите Yes и дождитесь завершения перезагрузки. SConfig снова запускается автоматически.

  6. На физическом узле выполните Get-VMNetworkAdapter командлеты и ForEach-Object , чтобы настроить четыре имена сетевых адаптеров для виртуальной машины Node1 , сопоставив назначенные MAC-адреса с соответствующими сетевыми адаптерами в гостевой ОС.

    1. Командлет Get-VMNetworkAdapter используется для получения объекта сетевого адаптера для каждой сетевой карты на виртуальной машине, где -VMName параметр указывает имя виртуальной машины, а -Name параметр — имя сетевого адаптера. Затем MacAddress осуществляется доступ к свойству объекта сетевого адаптера для получения MAC-адреса:
    Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"
    
    1. MAC-адрес представляет собой строку шестнадцатеричных чисел. Командлет ForEach-Object используется для форматирования этой строки путем вставки дефисов через определенные интервалы времени. В частности, Insert метод строкового объекта используется для вставки дефиса во 2-й, 5-й, 8-й, 11-й и 14-й позициях строки. Затем join оператор используется для объединения результирующего массива строк в одну строку с пробелами между каждым элементом.

    2. Команды повторяются для каждого из четырех сетевых адаптеров на виртуальной машине, а окончательный отформатированный MAC-адрес для каждой сетевой карты хранится в отдельной переменной:

    ($Node1finalmacNIC1, $Node1finalmacNIC2, $Node1finalmacNIC3, $Node1finalmacNIC4).
    
    1. Следующий скрипт выводит окончательный отформатированный 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 администратора виртуальной машины, а затем переименуйте :Node1

    $cred = get-credential
    
  8. Переименуйте и сопоставьте сетевые адаптеры в Node1. Переименование основано на MAC-адресах сетевых карт, назначенных Hyper-V при первом запуске виртуальной машины. Эти команды следует выполнять непосредственно с узла:

    Get-NetAdapter Используйте команду , чтобы получить физические сетевые адаптеры на виртуальной машине, отфильтровать их по MAC-адресу, а затем переименуйте их в соответствующий адаптер с помощью командлета Rename-NetAdapter .

    Это повторяется для каждого из четырех сетевых адаптеров на виртуальной машине с MAC-адресом и новым именем каждой сетевой карты, указанными отдельно. Это устанавливает сопоставление между именами сетевых карт в диспетчере Hyper-V и именами сетевых адаптеров в ОС виртуальной машины:

    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. Отключите протокол DHCP на четырех сетевых картах для виртуальной машины Node1 , выполнив следующие команды.

    Примечание

    Интерфейсы не будут автоматически получать IP-адреса с DHCP-сервера и вместо этого им потребуется назначить 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. Эта команда перезапускает виртуальную машину Node1:

    Invoke-Command -VMName "Node1"
    -Credential $cred -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All }
    
  12. После Node1 перезапуска и установки роли Hyper-V установите средства управления Hyper-V:

    Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools}
    
  13. Когда виртуальный сервер узла будет готов, его необходимо зарегистрировать и назначить разрешения в Azure в качестве ресурса Arc.

  14. После регистрации сервера в Azure в качестве ресурса Arc и установки всех обязательных расширений выберите один из следующих методов для развертывания Azure Stack HCI из Azure.

Повторите описанную выше процедуру для дополнительных узлов, если вы планируете протестировать развертывания с несколькими узлами. Убедитесь, что имена виртуальных узлов и IP-адреса управления уникальны и находятся в одной подсети:

Дальнейшие действия