Развертывание виртуальной системы Azure Local

Область применения: гиперконвергентные развертывания Azure Local

В этой статье описывается развертывание виртуализированного экземпляра Azure Local на хост-системе под управлением Windows Server 2022, Windows 11 или более поздней операционной системы (ОС). Узел должен иметь Hyper-V включен для развертывания.

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

Внимание

Виртуальное развертывание Azure Local предназначено только для образовательных и демонстрационных целей.

служба поддержки Майкрософт не поддерживает виртуальные развертывания.

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

Настройка виртуального коммутатора

При развертывании Azure Local в виртуальной среде можно использовать существующие сети и использовать IP-адреса из этой сети, если они доступны. В таком случае необходимо просто создать внешний коммутатор и подключить все виртуальные сетевые адаптеры к виртуальному коммутатору. Виртуальные узлы имеют подключение к физической сети без дополнительной настройки.

Однако если физическая сеть, в которой планируется развернуть виртуальную среду Azure Local, не хватает IP-адресов, можно создать внутренний виртуальный коммутатор с поддержкой NAT, чтобы изолировать виртуальные узлы от физической сети, сохраняя исходящее подключение к Интернету.

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

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

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

В следующем примере сценария создается сеть NAT с префиксом HCINAT, при этом IP-адрес 192.168.44.0/24 определяется как шлюз по умолчанию для сети через интерфейс на хосте.

#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

Создание виртуального узла

Создайте виртуальную машину для обслуживания виртуального узла со следующей конфигурацией. Эту виртуальную машину можно создать с помощью диспетчера Hyper-V или PowerShell:

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

  1. Создайте виртуальную машину:

    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"
    
  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).
    • NetworkATC объединяет виртуальные сетевые интерфейсы (vNICs) для задач управления и вычисления, а также, в зависимости от конфигурации, для vNICs хранения.
    Get-VmNetworkAdapter -VmName "Node1" | Set-VmNetworkAdapter -MacAddressSpoofing On -AllowTeaming On
    
  8. Включите порт магистрали (только для развертываний с несколькими узлами) для всех сетевых адаптеров на виртуальной машине Node1. Этот скрипт настраивает сетевой адаптер определенной виртуальной машины для работы в режиме магистрали. Эта конфигурация обычно используется в развертываниях с несколькими узлами, в которых требуется разрешить взаимодействие нескольких виртуальных сетей локальных сетей (VLA) через один сетевой адаптер:

    Get-VmNetworkAdapter -VmName "Node1" | Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
    
  9. Создайте новый предохранитель ключа и назначьте его 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
    
  10. Включите vTPM для Node1. Включив vTPM на виртуальной машине, вы сможете использовать BitLocker и другие функции, требующие наличия доверенного платформенного модуля. После выполнения этой команды Node1 будет включен vTPM, если оборудование хост-компьютера и конфигурация виртуальной машины поддерживают эту функцию.

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

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

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

    После этого у виртуальной машины Node1 подключены два виртуальных жестких диска. Эти 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"
    
  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. Скачайте версию 23H2 для развертывания в локальной среде Azure и Установите операционную систему Azure Stack HCI.

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

    1. Пароль составляет не менее 14 символов.
    2. Пароль включает по крайней мере следующее:
      1. Один прописный символ.
      2. Один символ нижнего регистра.
      3. Одно число.
      4. Один специальный символ.
  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 Local из Azure.

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

Следующие шаги