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

En este artículo se describe cómo integrar almacenamiento SAN externo de proveedores admitidos con Azure Local mediante Fibre Channel (FC) o iSCSI. Abarca tanto la configuración del lado del host de Azure Local realizada en los nodos del clúster como las tareas de configuración del lado de la cabina 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. Esta funcionalidad permite tanto implementaciones de hybrid (Espacios de almacenamiento directo + SAN) como disaggregated implementaciones (solo SAN), lo que permite reutilizar las inversiones existentes en SAN mientras se ejecutan cargas de trabajo de Azure Local.

Protocolos admitidos:

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

Importante

La integración de SAN con FC está disponible con carácter general. Sin embargo, la integración de SAN con iSCSI se encuentra actualmente en versión preliminar. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

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 zonificados en la red de Fibre Channel.
  • La matriz SAN es accesible en el tejido FC con el acceso de administración configurado.

Importante

Para evitar confusiones durante la implementación de las LUN de FC, no configure zonas con los WWN de las HBA de FC hasta después de implementar 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 su proveedor de almacenamiento en Microsoft Device Specific Module (MSDSM) para que MPIO pueda administrar las LUN de la cabina. 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 (use 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. El uso -ProductId "LUN" no coincide. Registre LUN solo si se conecta a sistemas 7-Mode heredados.

  • Para Everpure: Quite la entrada comodín del proveedor genérico para evitar que MSDSM reclame automáticamente dispositivos que no son puros:

    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 es necesario ajustar MPIO cuando se configura el tipo de host como WINDOWS en la cabina.

  • 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 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 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 cabina
Direcciones IP del portal de destino iSCSI y 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 LUNs 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 volúmenes SAN como tabla de particiones GUID (GPT) y formateelos 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, convierta los discos 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 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 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 de clúster para el registro de host 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 las LUN están asignadas a todos los nodos del clúster con ID de LUN uniformes.

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

Para poder convertir un disco en un CSV, agregue el disco al clúster de conmutación por error como un 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