Поделиться через


Развертывание виртуальной системы 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-адресов, можно создать внутренний виртуальный коммутатор с включенным сетевым сетевым подключением, чтобы изолировать виртуальные узлы от физической сети, сохраняя при этом исходящие подключения к Интернету.

Ниже перечислены шаги для двух вариантов.

Развертывание с помощью внешнего виртуального коммутатора

На физическом хост-компьютере выполните следующую команду 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-адрес контроль доступа (Media контроль доступа). Это необходимо в сценариях, в которых планируется использовать вложенную виртуализацию:

    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 и другие функции, требующие TPM на виртуальной машине. После выполнения Node1 этой команды будет включен vTPM при условии, что оборудование главного компьютера и конфигурация виртуальной машины поддерживают эту функцию.

    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. Подключите диски к вновь созданным 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-адреса управления уникальны и находятся в одной подсети:

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