Implementación de un sistema virtual de Azure Local, versión 23H2
Se aplica a: Azure Local, versión 23H2
Importante
Azure Stack HCI ahora forma parte de Azure Local. El cambio de nombre de la documentación del producto está en curso. Los cambios textuales se completan y las actualizaciones visuales se finalizarán pronto. Más información.
En este artículo se describe cómo implementar una instancia local de Azure virtualizada que ejecuta la versión 23H2 en un sistema host que ejecuta Hyper-V en Windows Server 2022, Windows 11 o un sistema operativo (SO) posterior.
Necesita privilegios de administrador para la implementación virtual local de Azure y debe estar familiarizado con la solución local de Azure existente. La implementación puede tardar aproximadamente 2,5 horas en completarse.
Importante
Una implementación virtual de Azure Local, 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 el hardware, las 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 Local, 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 Local.
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ínimo Procesador Intel VT-x o AMD-V, con compatibilidad con la virtualización anidada. Para obtener más información, consulte ¿Admite mi procesador la tecnología de virtualización Intel®?. Memoria El host físico debe tener un mínimo de 32 GB de RAM para implementaciones de nodo virtual único. 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 del host virtual
Antes de empezar, asegúrese de que cada sistema host virtual pueda dedicar los siguientes recursos para aprovisionar la instancia local de Azure virtualizada:
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 de 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 Local, 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 Local 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 local de Azure es escasa en direcciones IP, puede crear un conmutador virtual interno con NAT habilitado, para aislar los hosts virtuales de la red física mientras mantiene 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 local de Azure 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 conmutador interna. También debe definir la subred de red NAT donde están conectados los hosts virtuales.
El script de ejemplo siguiente crea una red HCINAT
NAT con 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
Creación del host virtual
Cree 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:
Administrador de Hyper-V. Para obtener más información, consulte Creación de una máquina virtual mediante el Administrador de Hyper-V para reflejar la red de administración física.
Cmdlets de PowerShell. Asegúrese de ajustar los parámetros de configuración de máquina virtual a los que se hace referencia en los requisitos del host virtual antes de ejecutar los cmdlets de PowerShell.
Siga estos pasos para crear una máquina virtual de ejemplo denominada Node1
mediante cmdlets de PowerShell:
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"
Deshabilitar la memoria dinámica:
Set-VMMemory -VMName "Node1" -DynamicMemoryEnabled $false
Deshabilitación de puntos de control de máquina virtual:
Set-VM -VMName "Node1" -CheckpointType Disabled
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
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 permite probar dos intenciones de red (
Mgmt_Compute
yStorage
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"
Conecte todos los adaptadores de red al conmutador virtual. Especifique el nombre del conmutador virtual que creó, ya sea externo sin NAT o interno con NAT:
Get-VmNetworkAdapter -VmName "Node1" |Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"
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 enmascarar como otro cambiando su dirección de Control de acceso multimedia (MAC). Esto es necesario en escenarios en los que planea usar la virtualización anidada:Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
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 que funcione en modo tronco. Normalmente se usa 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
Cree un nuevo protector de claves 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
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"
Cambie los procesadores virtuales a
8
:Set-VmProcessor -VMName "Node1" -Count 8
Cree 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
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 denominadoss2d1.vhdx
a travéss2d6.vhdx
deNode1
. CadaAdd-VMHardDiskDrive
comando agrega un disco duro virtual 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 necesarios para las implementaciones locales de Azure: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"
Deshabilitar la sincronización de hora:
Get-VMIntegrationService -VMName "Node1" |Where-Object {$_.name -like "T*"}|Disable-VMIntegrationService
Habilite la virtualización anidada:
Set-VMProcessor -VMName "Node1" -ExposeVirtualizationExtensions $true
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:
Descargue el software Azure Local 23H2 e instale el sistema operativo Azure Stack HCI.
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.
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 ejecute los pasos siguientes desde allí.Inicie SConfig mediante la ejecución del comando siguiente:
SConfig
Para obtener información sobre cómo usar SConfig, vea Configurar con la herramienta de configuración del servidor (SConfig).
Cambie el nombre de host a
Node1
. Use la opción2
paraComputer 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.Desde el host físico, ejecute los
Get-VMNetworkAdapter
cmdlets yForEach-Object
para configurar los cuatro nombres de adaptador de red para la máquina virtualNode1
asignando las direcciones MAC asignadas a los adaptadores de red correspondientes en el sistema operativo invitado.- 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. AMacAddress
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"
La dirección MAC es una cadena de números hexadecimales. El
ForEach-Object
cmdlet se usa para dar formato a esta cadena insertando guiones a intervalos específicos. En concreto, elInsert
método del objeto de cadena se usa para insertar un guión en las 2ª, 5, 8, 11 y 14ª posición de la cadena. A continuación, eljoin
operador se usa para concatenar la matriz resultante de cadenas en una sola cadena con espacios entre cada elemento.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).
- El siguiente script 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
- El
Obtenga las credenciales de administrador local de la máquina virtual y, a continuación, cambie el
Node1
nombreNode1
de :$cred = get-credential
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 elRename-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
Deshabilite el Protocolo de configuración dinámica de host (DHCP) en las cuatro NIC para vm
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, tendrán que tener direcciones IP asignadas manualmente:
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}
Establezca ip de administración, puerta de enlace y DNS. Una vez ejecutados los comandos siguientes,
Node1
tendrá configurada laNIC1
interfaz de red con la dirección IP especificada, la máscara de subred, la puerta de enlace predeterminada y la dirección del servidor DNS. Asegúrese de que la dirección IP de administración pueda resolver Active Directory y que tenga 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"}
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 }
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}
Una vez que la máquina host virtual esté lista, debe registrarla y asignar permisos en Azure como un recurso de Arc.
Una vez que la máquina está registrada en Azure como un recurso de Arc y todas las extensiones obligatorias están instaladas, elija uno de los métodos siguientes para implementar Azure Local desde Azure.
Implemente Azure Local mediante una plantilla de Azure Resource Manager.
Repita el proceso anterior para nodos adicionales si planea probar implementaciones de varios nodos. Asegúrese de que los nombres de host virtual y las direcciones IP de administración son únicos y en la misma subred: