Implementación de un sistema virtual de Azure Stack HCI, versión 23H2

Se aplica a: Azure Stack HCI, versión 23H2

En este artículo se describe cómo implementar un servidor único virtualizado o una instancia de Azure Stack HCI de varios nodos, versión 23H2, en un sistema host que ejecuta Hyper-V en Windows Server 2022, Windows 11 o sistema operativo posterior.

Necesita privilegios de administrador para la implementación virtual de Azure Stack HCI y debe estar familiarizado con la solución de Azure Stack HCI existente. La implementación puede tardar aproximadamente 2,5 horas en completarse.

Importante

Una implementación virtual de Azure Stack HCI, versión 23H2, está pensada solo para fines educativos y de demostración. Soporte técnico de Microsoft no admite implementaciones virtuales.

Requisitos previos

Estos son los requisitos previos de hardware, redes y otros requisitos previos para la implementación virtual:

Requisitos de host físico

A continuación se muestran los requisitos mínimos para implementar correctamente Azure Stack HCI, versión 23H2.

Antes de comenzar, asegúrese de que:

  • Tiene acceso a un sistema host físico que ejecuta Hyper-V en Windows Server 2022, Windows 11 o posterior. Este host se usa para aprovisionar una implementación virtual de Azure Stack HCI.

  • Tiene suficiente capacidad. Se requiere más capacidad para ejecutar cargas de trabajo reales, como máquinas virtuales o contenedores.

  • El hardware físico usado para la implementación virtual cumple los siguientes requisitos:

    Componente Mínima
    Procesador Intel VT-x o AMD-V, compatible con la virtualización anidada. Para obtener más información, consulte ¿Mi procesador admite la tecnología de virtualización Intel®?.
    Memoria El host físico debe tener un mínimo de 32 GB de RAM para las implementaciones de un solo nodo virtual. La máquina virtual del host virtual debe tener al menos 24 GB de RAM.

    El host físico debe tener un mínimo de 64 GB de RAM para dos implementaciones de nodo virtual. Cada máquina virtual de host virtual debe tener al menos 24 GB de RAM.
    Adaptadores de red de host Un único adaptador de red.
    Storage Unidad de estado sólido (SSD) de 1 TB.

Requisitos de host virtual

Antes de empezar, asegúrese de que cada sistema host virtual pueda dedicar los siguientes recursos para aprovisionar el sistema virtualizado de Azure Stack HCI:

Componente Requisito
Tipo de máquina virtual (VM) Arranque seguro y módulo de plataforma segura (TPM) habilitado.
vCPU Cuatro núcleos.
Memoria Un mínimo de 24 GB.
Redes Al menos dos adaptadores de red conectados a la red interna. La suplantación mac debe estar habilitada.
Disco de arranque Un disco para instalar el sistema operativo de Azure Stack HCI desde ISO.
Discos duros para Espacios de almacenamiento directo Seis discos de expansión dinámica. El tamaño máximo del disco es de 1024 GB.
Disco de datos Al menos 127 GB.
Sincronización de hora en la integración Deshabilitado.

Nota

Estos son los requisitos mínimos para implementar correctamente Azure Stack HCI, versión 23H2. Aumente la capacidad, como núcleos virtuales y memoria, al ejecutar cargas de trabajo reales, como máquinas virtuales o contenedores.

Configuración del conmutador virtual

Al implementar Azure Stack HCI en un entorno virtual, puede usar las redes existentes y usar direcciones IP de esa red si están disponibles. En tal caso, solo tiene que crear un conmutador externo y conectar todos los adaptadores de red virtual a ese conmutador virtual. Los hosts virtuales tendrán conectividad con la red física sin ninguna configuración adicional.

Sin embargo, si la red física en la que planea implementar el entorno virtual de Azure Stack HCI es escasa en las direcciones IP, puede crear un conmutador virtual interno con NAT habilitado, para aislar los hosts virtuales de la red física y mantener la conectividad saliente a Internet.

A continuación se enumeran los pasos para las dos opciones:

Implementación con conmutador virtual externo

En el equipo host físico, ejecute el siguiente comando de PowerShell para crear un conmutador virtual externo:

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

Implementación con el conmutador virtual interno y NAT habilitado

En el equipo host físico, ejecute el siguiente comando de PowerShell para crear un conmutador virtual interno. El uso de este modificador garantiza que la implementación de Azure Stack HCI esté aislada.

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

Una vez creado el conmutador virtual interno, se crea un nuevo adaptador de red en el host. Debe asignar una dirección IP a este adaptador de red para convertirse en la puerta de enlace predeterminada de los hosts virtuales una vez conectada a esta red de conmutadores interna. También debe definir la subred de red NAT donde están conectados los hosts virtuales.

El siguiente script de ejemplo crea una red HCINAT NAT con el prefijo 192.168.44.0/24 y define la 192.168.44.1 dirección IP como puerta de enlace predeterminada para la red mediante la interfaz en el host:

#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 el host virtual

Create una máquina virtual para que actúe como host virtual con la siguiente configuración. Puede crear esta máquina virtual mediante el Administrador de Hyper-V o PowerShell:

Siga estos pasos para crear una máquina virtual de ejemplo denominada Node1 mediante cmdlets de PowerShell:

  1. Cree la máquina virtual:

    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. Deshabilitar la memoria dinámica:

    Set-VMMemory -VMName "Node1" -DynamicMemoryEnabled $false
    
  3. Deshabilite los puntos de control de máquina virtual:

    Set-VM -VMName "Node1" -CheckpointType Disabled
    
  4. Quite el adaptador de red predeterminado creado durante la creación de la máquina virtual en el paso anterior:

    Get-VMNetworkAdapter -VMName "Node1" | Remove-VMNetworkAdapter
    
  5. Agregue nuevos adaptadores de red a la máquina virtual mediante nombres personalizados. En este ejemplo se agregan cuatro NIC, pero puede agregar solo dos si es necesario. Tener cuatro NIC le permite probar dos intenciones de red (Mgmt_Compute y Storage por ejemplo) con dos NIC cada una:

    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. Conecte todos los adaptadores de red al conmutador virtual. Especifique el nombre del conmutador virtual que ha creado, ya sea externo sin NAT o interno con NAT:

    Get-VmNetworkAdapter -VmName "Node1" |Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"
    
  7. Habilite la suplantación mac en todos los adaptadores de red de la máquina virtual Node1. La suplantación de direcciones MAC es una técnica que permite a un adaptador de red enmascararse como otro cambiando su dirección de Access Control multimedia (MAC). Esto es necesario en escenarios en los que planea usar la virtualización anidada:

    Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
    
  8. Habilite el puerto de tronco (solo para implementaciones de varios nodos) para todos los adaptadores de red de la máquina virtual Node1. Este script configura el adaptador de red de una máquina virtual específica para funcionar en modo tronco. Esto se usa normalmente en implementaciones de varios nodos en las que desea permitir que varias redes de área local virtual (VLAN) se comuniquen a través de un único adaptador de red:

    Get-VmNetworkAdapter -VmName "Node1" |Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
    
  9. Create un nuevo protector de clave y asígnelo a Node1. Normalmente, esto se hace en el contexto de la configuración de un tejido protegido en Hyper-V, una característica de seguridad que protege las máquinas virtuales contra el acceso no autorizado o la manipulación.

    Una vez ejecutado el siguiente script, Node1 tendrá asignado un nuevo protector de clave. Este protector de claves protege las claves de la máquina virtual, lo que ayuda a proteger la máquina virtual contra el acceso no autorizado o la manipulación:

    $owner = Get-HgsGuardian UntrustedGuardian
    $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot
    Set-VMKeyProtector -VMName "Node1" -KeyProtector $kp.RawData
    
  10. Habilite vTPM para Node1. Al habilitar vTPM en una máquina virtual, puede usar BitLocker y otras características que requieren TPM en la máquina virtual. Una vez ejecutado este comando, Node1 tendrá habilitado un vTPM, suponiendo que el hardware de la máquina host y la configuración de la máquina virtual admitan esta característica.

    Enable-VmTpm -VMName "Node1"
    
  11. Cambie los procesadores virtuales a 8:

     Set-VmProcessor -VMName "Node1" -Count 8
    
  12. Create unidades adicionales que se usarán como disco de arranque y discos duros para Espacios de almacenamiento directo. Una vez ejecutados estos comandos, se crearán seis VHDX nuevos en el C:\vms\Node1 directorio, como se muestra en este ejemplo:

     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. Conecte unidades a los VHDX recién creados para la máquina virtual. En estos comandos, se agregan seis discos duros virtuales ubicados en el C:\vms\Node1 directorio y denominados s2d1.vhdx a través s2d6.vhdx de .Node1 Cada Add-VMHardDiskDrive comando agrega un VHD a la máquina virtual, por lo que el comando se repite seis veces con valores de parámetro diferentes -Path .

    Después, la Node1 máquina virtual tiene seis VHD conectados. Estos VHDX se usan para habilitar Espacios de almacenamiento directo en la máquina virtual, que son necesarias para las implementaciones de 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. Deshabilitar la sincronización de hora:

    Get-VMIntegrationService -VMName "Node1" |Where-Object {$_.name -like "T*"}|Disable-VMIntegrationService
    
  15. Habilitar la virtualización anidada:

    Set-VMProcessor -VMName "Node1" -ExposeVirtualizationExtensions $true
    
  16. Inicie la máquina virtual:

    Start-VM "Node1"
    

Instalación del sistema operativo en las máquinas virtuales del host virtual

Complete los pasos siguientes para instalar y configurar el sistema operativo de Azure Stack HCI en las máquinas virtuales del host virtual:

  1. Descargue ISO de Azure Stack HCI 23H2 e instale el sistema operativo Azure Stack HCI.

  2. Actualice la contraseña, ya que se trata del primer inicio de la máquina virtual. Asegúrese de que la contraseña cumple los requisitos de complejidad de Azure. La contraseña tiene al menos 12 caracteres e incluye 1 carácter en mayúsculas, 1 carácter en minúsculas, 1 número y 1 carácter especial.

  3. Después de cambiar la contraseña, la Herramienta de configuración del servidor (SConfig) se carga automáticamente. Seleccione la opción 15 para salir de la línea de comandos y ejecutar los pasos siguientes desde allí.

  4. Inicie SConfig mediante la ejecución del siguiente comando:

      SConfig
    

    Para obtener información sobre cómo usar SConfig, vea Configurar con la herramienta de configuración del servidor (SConfig).

  5. Cambie el nombre de host a Node1. Use la opción 2 para Computer name en SConfig para hacerlo.

    El cambio de nombre de host da como resultado un reinicio. Cuando se le solicite un reinicio, escriba Yes y espere a que se complete el reinicio. SConfig se inicia de nuevo automáticamente.

  6. Desde el host físico, ejecute los Get-VMNetworkAdapter cmdlets y ForEach-Object para configurar los cuatro nombres de adaptador de red para la máquina virtual Node1 asignando las direcciones MAC asignadas a los adaptadores de red correspondientes en el sistema operativo invitado.

    1. El Get-VMNetworkAdapter cmdlet se usa para recuperar el objeto de adaptador de red para cada NIC de la máquina virtual, donde el -VMName parámetro especifica el nombre de la máquina virtual y el -Name parámetro especifica el nombre del adaptador de red. A MacAddress continuación, se obtiene acceso a la propiedad del objeto de adaptador de red para obtener la dirección MAC:
    Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"
    
    1. La dirección MAC es una cadena de números hexadecimales. El ForEach-Object cmdlet se usa para dar formato a esta cadena mediante la inserción de guiones a intervalos específicos. En concreto, el Insert método del objeto de cadena se usa para insertar un guión en las posiciones 2, 5, 8, 11 y 14 en la cadena. A join continuación, el operador se usa para concatenar la matriz resultante de cadenas en una sola cadena con espacios entre cada elemento.

    2. Los comandos se repiten para cada una de las cuatro NIC de la máquina virtual y la dirección MAC con formato final para cada NIC se almacena en una variable independiente:

    ($Node1finalmacNIC1, $Node1finalmacNIC2, $Node1finalmacNIC3, $Node1finalmacNIC4).
    
    1. El script siguiente genera la dirección MAC con formato final para cada NIC:
    $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. Obtenga las credenciales de administrador local de la Node1 máquina virtual y, a continuación, cambie el nombre Node1de :

    $cred = get-credential
    
  8. Cambie el nombre y asigne las NIC en Node1. El cambio de nombre se basa en las direcciones MAC de las NIC asignadas por Hyper-V cuando la máquina virtual se inicia por primera vez. Estos comandos se deben ejecutar directamente desde el host:

    Use el Get-NetAdapter comando para recuperar los adaptadores de red físicos en la máquina virtual, filtrarlos en función de su dirección MAC y, a continuación, cambiarles el nombre al adaptador coincidente mediante el Rename-NetAdapter cmdlet .

    Esto se repite para cada una de las cuatro NIC de la máquina virtual, con la dirección MAC y el nuevo nombre de cada NIC especificada por separado. Esto establece una asignación entre el nombre de las NIC en el Administrador de Hyper-V y el nombre de las NIC en el sistema operativo de la máquina virtual:

    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. Deshabilite el Protocolo de configuración dinámica de host (DHCP) en las cuatro NIC para la máquina virtual Node1 mediante la ejecución de los siguientes comandos.

    Nota

    Las interfaces no obtendrán automáticamente direcciones IP de un servidor DHCP y, en su lugar, deben tener asignadas manualmente direcciones 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. Establezca ip de administración, puerta de enlace y DNS. Una vez ejecutados los siguientes comandos, Node1 tendrá configurada la interfaz de red con la dirección IP especificada, la máscara de subred, la puerta de enlace predeterminada y la NIC1 dirección del servidor DNS. Asegúrese de que la dirección IP de administración puede resolver Active Directory y tiene conectividad saliente a Internet:

    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. Habilite el rol de Hyper-V. Este comando reinicia la máquina virtual Node1:

    Invoke-Command -VMName "Node1"
    -Credential $cred -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All }
    
  12. Una vez Node1 reiniciado y se instala el rol de Hyper-V, instale las Herramientas de administración de Hyper-V:

    Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools}
    
  13. Una vez que el servidor host virtual esté listo, debe registrarlo y asignar permisos en Azure como un recurso de Arc.

  14. Una vez que el servidor se registra en Azure como un recurso de Arc y se instalan todas las extensiones obligatorias, elija uno de los métodos siguientes para implementar Azure Stack HCI desde Azure.

Repita el proceso anterior para nodos adicionales si planea probar las implementaciones de varios nodos. Asegúrese de que los nombres de host virtuales y las direcciones IP de administración son únicos y en la misma subred:

Pasos siguientes