Conexión de una matriz de almacenamiento externo a Azure Local

En este artículo se explica la compatibilidad de Azure Local con el almacenamiento externo, sus ventajas y cómo integrar almacenamiento SAN externo de proveedores admitidos con Azure Local mediante Fibre Channel (FC) o Internet Small Computer Systems Interface (iSCSI). Abarca tanto la configuración del lado del host de Azure Local que se realiza en los nodos del clúster como las tareas de configuración del lado de la matriz del proveedor. Los pasos específicos del proveedor, como la creación de un número de unidad lógica (LUN), el registro de hosts y la configuración de zonas, se tratan en Configuración del lado de la matriz del proveedor.

Overview

Azure Local admite adjuntar almacenamiento SAN externo junto con el almacenamiento local de Espacios de almacenamiento directo o usar el almacenamiento SAN de forma independiente. Puede asociar matrices SAN nuevas o existentes como dispositivos de almacenamiento en bloque para máquinas virtuales (VM), clústeres de Azure Kubernetes Service (AKS) y instancias de Azure Virtual Desktop (AVD).

Esta funcionalidad habilita tanto implementaciones híbridas (Espacios de almacenamiento directo + SAN) como implementaciones desagregadas (solo SAN). Puede reutilizar las inversiones de SAN existentes mientras se ejecutan cargas de trabajo de Azure Local. Proporciona flexibilidad para elegir el modelo de rendimiento y niveles de datos adecuados para cada carga de trabajo.

Puede presentar varios volúmenes de la cabina SAN como Volúmenes compartidos de clúster (CSV) en nodos de Azure Local. Cada CSV aparece como una ruta de carpeta que puede asignar como ruta de almacenamiento para máquinas virtuales.

Benefits

  • Protección de la inversión: Amplíe la infraestructura SAN existente a Azure Local sin necesidad de rediseñar la arquitectura.

  • Coherencia operativa: use prácticas existentes para la administración y las operaciones.

  • Resiliencia y escala: fibras duales, multipath y redundancia nativa de SAN garantizan una alta disponibilidad.

  • Flexibilidad: elija entre espacios de almacenamiento directo o volúmenes SAN externos por requisito de carga de trabajo.

  • Rendimiento empresarial: utiliza ancho de banda y latencia de clase Fibre Channel adecuadas para cargas de trabajo exigentes.

Protocolos compatibles

  • Canal de fibra (FC)
  • iSCSI (a través de TCP/IP)

Arquitectura de almacenamiento de Azure Local (Espacios de almacenamiento directo + SAN)

Incorpore sus matrices san basadas en canal de fibra o iSCSI de proveedores líderes e intégrelas directamente en clústeres de Azure Local para una administración coherente, un alto rendimiento y una E/S de baja latencia. Cada nodo Azure Local se conecta a la SAN mediante tejidos de canal de fibra o rutas de acceso de red iSCSI, lo que garantiza una alta disponibilidad, resistencia y rendimiento. Los adaptadores de bus de host (HBA) para Fibre Channel o los adaptadores de red Ethernet para iSCSI permiten una conectividad fiable con el almacenamiento SAN externo.

Diagrama que muestra Azure Local clúster mediante Espacios de almacenamiento directo o almacenamiento SAN externo para hospedar máquinas virtuales, AVD y cargas de trabajo de AKS.

Una vez conectado, el clúster detecta volúmenes respaldados por SAN y los integra como CSV con formato NTFS, por lo que puede compartir el acceso entre nodos y proporcionar visibilidad sin problemas para las cargas de trabajo. Esta configuración permite el escalado independiente del proceso y el almacenamiento, a la vez que se mantiene la administración unificada de Azure para los servicios locales y habilitados para Arc.

Conexión de SAN con Espacios de almacenamiento directo

Prerequisites

Los siguientes requisitos previos se aplican a FC e iSCSI.

Canal de fibra

  • Azure Local clúster implementado con la versión 2604 o posterior.
  • HBA de Fibre Channel (HBA y controlador certificados para Windows Server 2025) instalados en todos los nodos del clúster y divididos en zonas en el tejido FC.
  • La matriz SAN es accesible en el tejido FC con el acceso de administración configurado.

Importante

Para evitar confusiones en la implementación de los LUN FC, no divida en zonas los nombres universales (WWN) de los HBA FC hasta después de la implementación de Azure Local.

iSCSI

  • Azure Local clúster implementado con la versión 2604 o posterior.
  • Las versiones de firmware y controlador de la tarjeta de interfaz de red (NIC) deben coincidir con los requisitos del catálogo de hardware de Azure Local.
  • Todos los nodos del clúster deben usar configuraciones de NIC idénticas.
  • La configuración de almacenamiento híbrido (Espacios de almacenamiento directo + iSCSI) requiere puertos físicos dedicados para iSCSI. No se admiten las NIC virtuales.

Paso 1: Habilitar características y servicios de Windows

1.1 Comprobar la E/S de múltiples rutas (todas las implementaciones)

Azure Local 2604 y versiones posteriores habilitan de forma predeterminada la E/S de múltiples rutas (MPIO). Compruebe que MPIO está habilitado en todos los nodos. Si MPIO no está habilitado, lo que puede ocurrir en versiones anteriores, debe reiniciarlo después de habilitarlo.

Enable-WindowsOptionalFeature -Online -FeatureName MultipathIO

# Verify
Get-WindowsOptionalFeature -Online -FeatureName MultipathIO |
    Select-Object FeatureName, State, RestartNeeded

1.2 Habilitación del servicio de iniciador iSCSI (solo iSCSI)

En el caso de las implementaciones iSCSI, habilite e inicie el servicio iniciador iSCSI en todos los nodos. Este paso no es necesario para las implementaciones solo de FC.

Set-Service -Name MSiSCSI -StartupType Automatic
Start-Service -Name MSiSCSI
Get-Service -Name MSiSCSI | Select-Object Name, Status, StartType

1.3 Reinicio si es necesario

Si ha habilitado MPIO en compilaciones anteriores a 2604 o si RestartNeeded devuelve True, realice un reinicio gradual de todos los nodos antes de continuar.

1.4 Recopilar identificadores de iniciador

Después de habilitar los servicios necesarios, recopile los identificadores del iniciador de cada nodo. Necesita estos identificadores para configurar el enmascaramiento de LUN en la matriz SAN.

  • FC — recopilar nombres de puertos de todo el mundo (WWPN)

    Get-InitiatorPort | Where-Object ConnectionType -eq 'Fibre Channel' |
    Select-Object NodeAddress, PortAddress, ConnectionType | Format-Table -AutoSize
    
  • iSCSI: recopilar nombres calificados de iSCSI (IQN)

    (Get-InitiatorPort | Where-Object ConnectionType -eq 'iSCSI').NodeAddress
    

Paso 2: Registrar proveedor con MPIO y configurar las opciones

Ejecute todas las configuraciones en cada nodo Azure Local. Los cambios en la directiva MPIO no surten efecto hasta después de un reinicio.

2.1 Valores predeterminados de MPIO

Azure Local 2604 y versiones posteriores incluyen la siguiente configuración predeterminada de MPIO:

Setting Valor predeterminado
PathVerificationState Enabled
PathVerificationPeriod 30
PDORemovePeriod 20
Número de intentos 6
RetryInterval 3
CustomPathRecovery Disabled
CustomPathRecoveryTime 20
DiskTimeoutValue 60
Directiva de equilibrio de carga Round Robin (RR)
NewDiskPolicy OfflineShared

2.2 Registro del dispositivo de proveedor con MSDSM

Registre el proveedor de almacenamiento con el Módulo específico de dispositivo de Microsoft (MSDSM) para que MPIO pueda reclamar los LUN de la matriz. Utilice el comando para su fabricante:

Proveedor VendorId ID de Producto Comando
Dell PowerStore DellEMC PowerStore New-MSDSMSupportedHW -VendorId "DellEMC" -ProductId "PowerStore"
Everpure FlashArray PURE FlashArray New-MSDSMSupportedHW -VendorId "PURE" -ProductId "FlashArray"
Hitachi VSP (usar mpclaim) OPEN-V mpclaim -r -i -d "HITACHI OPEN-V"
HPE Alletra / 3PAR 3PARdata VV New-MSDSMSupportedHW -VendorId "3PARdata" -ProductId "VV"
NetApp ONTAP NETAPP LUN C-Mode New-MSDSMSupportedHW -VendorId "NETAPP" -ProductId "LUN C-Mode"
  • Para NetApp: ONTAP C-Mode muestra LUN C-Mode, noLUN. Usar -ProductId "LUN" no coincide. Registre LUN solo si se conecta a sistemas 7-Mode heredados.

  • Para Everpure: quite la entrada comodín genérica del proveedor para impedir que MSDSM reclame automáticamente dispositivos que no sean Pure:

    Remove-MSDSMSupportedHW -VendorId 'Vendor*' -ProductId 'Product*'
    

2.3 Establecer la directiva de equilibrio de carga

Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy RR

2.4 Configurar temporizadores MPIO (específicos del proveedor)

La mayoría de los proveedores compatibles no requieren un ajuste de MPIO adicional más allá de la configuración predeterminada. Los siguientes proveedores recomiendan anulaciones específicas para cada proveedor.

  • Dell PowerStore

    Set-MPIOSetting -NewRetryCount 3 -CustomPathRecovery Enabled `
    -NewPathRecoveryInterval 10 -NewDiskTimeout 30
    
  • Everpure FlashArray

    Set-MPIOSetting -NewPathRecoveryInterval 20 -CustomPathRecovery Enabled `
    -NewPDORemovePeriod 20 -NewDiskTimeout 60 -NewPathVerificationState Enabled
    
  • HPE Alletra / 3PAR

    No se requiere ajuste de MPIO cuando se establece la personalidad del host en WINDOWS en la matriz.

  • Hitachi VSP

    La configuración predeterminada de MSDSM con la directiva RR funciona bien.

  • NetApp ONTAP

    No se requiere ningún ajuste de MPIO adicional más allá de la configuración predeterminada.

2.5 Habilitar la notificación automática de iSCSI (solo iSCSI)

Enable-MSDSMAutomaticClaim -BusType iSCSI

Este comando registra MPIO para reclamar automáticamente todos los dispositivos iSCSI. Si habilita la notificación automática después de que los LUN ya estén visibles, reinicie el nodo para que MSDSM pueda volver a enumerar los dispositivos.

Paso 3: Configurar la red iSCSI (solo iSCSI)

Importante

Omita este paso para las implementaciones exclusivas de FC.

3.1 Excluir las NIC iSCSI de Network ATC

Network ATC gestiona las intenciones de administración, cómputo y almacenamiento para el tráfico de Espacios de almacenamiento directo y de acceso directo a memoria remota (RDMA). Mantenga las NIC iSCSI fuera de Network ATC y configúrelas manualmente.

Add-NetIntent -Name "Mgmt-Compute" -Management -Compute -AdapterName "NIC1","NIC2"
Add-NetIntent -Name "Storage" -Storage -AdapterName "NIC3","NIC4"

Si agrega una NIC iSCSI a una intención de Network ATC, quítela y vuelva a configurar el adaptador manualmente.

3.2 Configuración de NIC iSCSI dedicadas

Asigne a cada NIC iSCSI una dirección IP estática en su subred de almacenamiento sin una puerta de enlace predeterminada.

Rename-NetAdapter -Name "Ethernet 3" -NewName "iSCSI-NIC-A"
Rename-NetAdapter -Name "Ethernet 4" -NewName "iSCSI-NIC-B"

New-NetIPAddress -InterfaceAlias "iSCSI-NIC-A" -IPAddress 10.30.30.11 -PrefixLength 24
New-NetIPAddress -InterfaceAlias "iSCSI-NIC-B" -IPAddress 10.31.31.11 -PrefixLength 24

Note

No configure una puerta de enlace predeterminada en NIC iSCSI.

3.3 Configurar MTU y VLAN (opcional)

Utilice una configuración uniforme de la unidad de transmisión máxima (MTU) en toda la ruta de red iSCSI. Si los puertos de conmutador están configurados como puertos de acceso, el host envía tráfico sin etiquetar. Configure el etiquetado de VLAN en el host solo cuando los puertos del conmutador estén configurados como puertos de tronco.

Set-NetAdapterAdvancedProperty -Name "iSCSI-NIC-A" -RegistryKeyword "*JumboPacket" -RegistryValue 9014
Set-NetAdapterAdvancedProperty -Name "iSCSI-NIC-B" -RegistryKeyword "*JumboPacket" -RegistryValue 9014

Set-NetAdapter -Name "iSCSI-NIC-A" -VlanID 500
Set-NetAdapter -Name "iSCSI-NIC-B" -VlanID 600

3.4 Configuración de rutas estáticas

Agregue rutas /32 persistentes para cada portal de destino en ambas NIC iSCSI.

New-NetRoute -DestinationPrefix <TargetPortalIP>/32 -InterfaceAlias "iSCSI-NIC-A" -NextHop <GatewayIP> -PolicyStore PersistentStore
New-NetRoute -DestinationPrefix <TargetPortalIP>/32 -InterfaceAlias "iSCSI-NIC-B" -NextHop <GatewayIP> -PolicyStore PersistentStore

3.5 Configuración de la calidad del servicio (QoS) (opcional)

Si el tráfico iSCSI comparte la infraestructura Ethernet con otro tráfico, etiquete iSCSI con prioridad 4 y use la selección de transmisión mejorada (ETS) para reservar ancho de banda.

New-NetQosPolicy -Name "iSCSI" -IPDstPortStart 3260 -IPDstPortEnd 3260 -IPProtocol TCP -PriorityValue8021Action 4
New-NetQosPolicy -Name "CSV-LiveMigration" -Cluster -PriorityValue8021Action 3
New-NetQosPolicy -Name "ClusterHeartbeat" -IPProtocol UDP -IPDstPortStart 3343 -IPDstPortEnd 3343 -PriorityValue8021Action 7

Paso 4: Configurar la matriz de almacenamiento y presentar las LUN

Realice este paso en la matriz de almacenamiento, no en los nodos de Azure Local. Los procedimientos son específicos del proveedor. Para obtener más información, consulte Configuración del lado de la matriz del proveedor.

Antes de continuar con el paso 5, confirme los siguientes elementos con el administrador de almacenamiento:

Item FC iSCSI
Los LUN creados y asignados a todos los nodos del clúster ✓ ✓
Entradas de host creadas utilizando los identificadores de iniciador del paso 1d ✓ ✓
Zonificación FC configurada entre los HBA y los puertos de destino de la matriz ✓ —
Direcciones IP del portal de destino iSCSI e IQN de destino disponibles — ✓
Cada nodo puede llegar a todos los portales de destino en el puerto 3260. — ✓
Identificadores de LUN coherentes presentados a todos los nodos ✓ ✓

Paso 5: Conexión a destinos iSCSI (solo iSCSI)

Los LUN FC aparecen automáticamente después de la zonificación y el enmascaramiento de LUN.

Importante

  • Omita este paso para las implementaciones exclusivas de FC.
  • Para iSCSI, ejecute estos comandos en cada nodo Azure Local.
  1. Detecte cada portal de destino desde ambas NIC iSCSI y, a continuación, conéctese a cada destino con la persistencia y el acceso multirruta habilitados.

    # Discover target portals
    New-IscsiTargetPortal -TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-A>
    New-IscsiTargetPortal -TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-B>
    
    # Connect with multipath and persistence
    Connect-IscsiTarget -NodeAddress "iqn.yyyy-mm.com.vendor:target-name" `-TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-A> `-IsPersistent $true -IsMultipathEnabled $true
    Connect-IscsiTarget -NodeAddress "iqn.yyyy-mm.com.vendor:target-name" `-TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-B> `
    -IsPersistent $true -IsMultipathEnabled $true
    
  2. Para cada dirección IP del portal de destino que proporciona la matriz, ejecute New-IscsiTargetPortal y Connect-IscsiTarget.

Paso 6: Comprobación de la configuración y reinicio

mpclaim -s -d
Get-MSDSMSupportedHw

Reinicie cada nodo de forma gradual para aplicar cambios de MPIO antes de continuar con la configuración de SAN.

Paso 7: Comprobar discos SAN

Importante

Ejecute estos comandos en cada nodo Azure Local.

Compare los UniqueId valores. Todos los nodos deben ver el mismo conjunto de LUNes. Los números de disco pueden variar entre nodos. Use UniqueId como identificador autoritativo.

# Rescan storage
Update-HostStorageCache

# List SAN LUNs — appear with BusType 'Fibre Channel' or 'iSCSI'
Get-Disk | Where-Object { $_.BusType -in 'Fibre Channel','iSCSI' } | Select-Object Number, FriendlyName, Size, OperationalStatus, PartitionStyle, BusType | Format-Table -AutoSize

# Verify MPIO path count per disk
mpclaim -s -d

# Verify disk UniqueId matches across all nodes
Get-Disk | Where-Object { $_.BusType -in 'Fibre Channel','iSCSI' } | Select-Object Number, SerialNumber, UniqueId | Format-Table -AutoSize

Paso 8: Inicialización y formato de discos

Importante

Ejecute estos comandos solo en un solo nodo Azure Local.

Inicialice los volúmenes SAN como tabla de particiones GUID (GPT) y deles formato con NTFS (use una unidad de asignación de 64K para CSV). El clúster administra el acceso a varios nodos después de agregar los discos como volúmenes compartidos de clúster (CSV).

$sanDisks = Get-Disk | Where-Object {
    $_.BusType -in 'Fibre Channel','iSCSI' -and $_.PartitionStyle -eq 'RAW'
}
foreach ($disk in $sanDisks) {
    # Bring disk online — SAN LUNs are Offline by default (OfflineShared policy)
    Set-Disk -Number $disk.Number -IsOffline $false
    Set-Disk -Number $disk.Number -IsReadOnly $false
    Initialize-Disk -Number $disk.Number -PartitionStyle GPT
    New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -AllocationUnitSize 65536 -NewFileSystemLabel "SAN-LUN-$($disk.Number)" -Confirm:$false
}

Paso 9: Agregar discos al clúster y crear CSV

Importante

Después de que todos los discos SAN estén visibles y validados, ejecute estos comandos en cada nodo Azure Local.

Agregue los discos SAN al clúster de conmutación por error y, a continuación, conviértalos en CSV.

# Add SAN disks to cluster
Get-ClusterAvailableDisk | Add-ClusterDisk

# Convert to Cluster Shared Volumes
Get-ClusterResource | Where-Object {$_.ResourceType -eq 'Physical Disk' -and $_.OwnerGroup -eq 'Available Storage'} | Add-ClusterSharedVolume

# Verify CSVs
Get-ClusterSharedVolume | Select-Object Name, State, OwnerNode | Format-Table -AutoSize

# Verify CSV paths
Get-ClusterSharedVolume | Select-Object -ExpandProperty SharedVolumeInfo | Select-Object FriendlyVolumeName

Paso 10: Agregar la ruta de acceso de almacenamiento en el portal de Azure

Registre cada ruta de acceso CSV de SAN en el portal de Azure para habilitar la colocación de máquinas virtuales (VM) en volúmenes SAN. Registre solo las rutas de acceso CSV de SAN. Azure Local administra automáticamente volúmenes de Espacios de almacenamiento directo, como Infrastructure y UserStorage.

  1. Inicie sesión en el portal de Azure y vaya al recurso de clúster de Azure Local.
  2. Vaya a Configuración>Ruta de acceso de almacenamiento.
  3. Seleccione + Añadir ruta de almacenamiento.
  4. Introduzca la ruta del archivo CSV, por ejemplo, C:\ClusterStorage\Volume1.
  5. Confirme y guarde.
  6. Repita para cada CSV de SAN.

Configuración del lado de la matriz del proveedor

Azure Local admite la integración externa de SAN con los siguientes proveedores y plataformas de almacenamiento. Las secciones correspondientes de este artículo incluyen instrucciones de configuración del lado de la matriz específicas del proveedor.

Proveedor Modelos compatibles FC iSCSI
Dell PowerStore T/Q (SO 3.0+) ✓ ✓
Everpure FlashArray X, C, XL, E, RC20 ✓ ✓
Hitachi VSP One Block, VSP 5x00, VSP Exx90, VSP Fxx0, VSP Gxx0 ✓ ✓
HPE Alletra MP 10000 ✓ ✓
NetApp Plataformas AFF, ASA, ONTAP ✓ ✓
Lenovo ThinkSystem DS/DM/DG Series ✓ ✓

Para obtener una lista completa de los modelos admitidos y los requisitos de firmware, consulte Soluciones SAN compatibles en Azure Local.

Qué solicitar del administrador de almacenamiento

Antes de iniciar la configuración del lado host, proporcione al administrador de almacenamiento la siguiente información:

  • Identificadores del iniciador recopilados en paso 1d: Recopilar identificadores de iniciador (WWPN para FC, IQN para iSCSI).
  • El número y el tamaño de LUN requeridos.
  • Nombres de nodo del clúster para el registro de hosts en la matriz.

El administrador de almacenamiento debe proporcionar la siguiente información:

  • Para FC: WWPN de destino para la configuración de zonificación.
  • Para iSCSI: direcciones IP del portal de destino y IQN de destino.
  • Confirmación de que los LUN están asignados a todos los nodos del clúster con identificadores de LUN coherentes.

Troubleshooting

Use las instrucciones siguientes para identificar y resolver problemas comunes al integrar el almacenamiento SAN con Azure Local.

Los discos no están visibles en los nodos del clúster

Si los discos SAN no aparecen en uno o varios nodos de clúster, compruebe que la matriz de almacenamiento asigna los LUN a todos los iniciadores de nodo de clúster. (WWPN para FC, IQN para iSCSI).

Vuelva a examinar el almacenamiento en cada nodo.

Update-HostStorageCache

Compruebe también las siguientes opciones de configuración:

  • Compruebe la zonificación de FC o la conectividad del portal de destino de iSCSI.
  • Compruebe que MPIO está habilitado y se registran los identificadores de proveedor y producto correctos.
Get-MSDSMSupportedHw

MPIO no reclama los discos correctamente

Compruebe que los identificadores de producto y proveedor registrados coincidan con la configuración de la matriz de almacenamiento.

Get-MSDSMSupportedHw

Para implementaciones de iSCSI, compruebe que la reclamación automática de MPIO está habilitada.

Get-MSDSMAutomaticClaimSettings

Si agrega identificadores de hardware después de que los LUN ya estén visibles, reinicie el nodo para que MPIO pueda volver a enumerar los discos.

mpclaim -s -d

Se produce un error en la validación del clúster durante Test-Cluster

Ejecute pruebas de validación de clúster, incluida la validación de almacenamiento, y revise el informe generado.

Test-Cluster -Include Storage

Compruebe que se cumplen los siguientes requisitos:

  • Todos los nodos de clúster detectan el mismo conjunto de discos compartidos.
  • Los identificadores de LUN son coherentes en todos los nodos.
  • La matriz de almacenamiento admite reservas persistentes (PR) SCSI-3.

No se pueden agregar discos como CSV

Antes de poder convertir un disco en CSV, agregue el disco al clúster de conmutación por error como recurso de clúster.

Asegúrese de que los discos están en línea y con el formato del sistema de archivos NTFS.

Get-Disk | Select-Object Number, OperationalStatus, PartitionStyle
Get-Volume

Asegúrese de que el disco está disponible como un recurso de clúster.

Get-ClusterResource | Where-Object ResourceType -eq 'Physical Disk'

Se produce un error en la creación de la ruta de acceso de almacenamiento en el portal de Azure

Si se produce un error en la creación de la ruta de acceso de almacenamiento en el portal de Azure, compruebe las condiciones siguientes:

  • CSV está en línea y es accesible desde todos los nodos de clúster
  • La ruta del archivo CSV tiene el formato correcto, por ejemplo, C:\ClusterStorage\Volume1
  • El clúster de Azure Local está registrado y en buen estado en el portal de Azure

Pasos siguientes