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


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

Область применения: Azure Local 2311.2 и более поздних версий

Внимание

Azure Stack HCI теперь является частью Azure Local. Дополнительные сведения.

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

Однако если физическая сеть, в которой планируется развернуть локальную виртуальную среду Azure, не хватает 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.

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 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-адреса — это метод, позволяющий сетевому адаптеру маскироваться под другой, изменяя его адрес Media Access Control (MAC). Это необходимо в сценариях, когда планируется использовать вложенную виртуализацию:

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

    Get-VmNetworkAdapter -VmName "Node1" |Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
    
  9. Создайте новый предохранитель ключа и назначьте его 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. Создайте дополнительные диски, которые будут использоваться в качестве загрузочного диска и жестких дисков для Storage Spaces Direct. После выполнения этих команд в каталоге 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.vhdx и именованных от s2d6.vhdx до Node1. Каждая Add-VMHardDiskDrive команда добавляет один виртуальный жесткий диск к виртуальной машине, поэтому команда повторяется шесть раз с разными -Path значениями параметров.

    После этого к виртуальной машине Node1 подсоединены четыре виртуальных жестких диска. Эти VHDXs используются для включения функции Storage Spaces Direct на виртуальной машине, что необходимо для развертываний 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"
    
  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. Пароль составляет не менее 14 символов и содержит 1 верхний регистр, 1 строчные буквы, 1 номер и 1 специальный символ.

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

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

      SConfig
    

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

  5. Измените имя узла на Node1. Используйте параметр 2Computer 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-адреса управления уникальны и находятся в одной подсети:

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