Optimizar el rendimiento de Elastic SAN

En este artículo se proporcionan algunas instrucciones generales sobre cómo obtener un rendimiento óptimo con un entorno que usa una instancia de Azure Elastic SAN.

Optimizaciones del lado cliente

Recomendaciones generales (Máquinas virtuales de Linux y Windows)

  • Para obtener el mejor rendimiento, implemente las máquinas virtuales y Elastic SAN en la misma zona y en la misma región.

  • La E/S de almacenamiento de máquinas virtuales en volúmenes de Elastic SAN usa el ancho de banda de red de la máquina virtual, por lo que los límites de rendimiento de disco tradicionales en una máquina virtual no se aplican a los volúmenes de Elastic SAN. Elija una máquina virtual que pueda proporcionar suficiente ancho de banda para la E/S de producción o la E/S de máquina virtual a máquina virtual e iSCSI a los volúmenes de Elastic SAN conectados. Por lo general, debe usar máquinas virtuales gen 5 (serie D / E / M) para obtener el mejor rendimiento.

  • Habilite "Redes aceleradas" en la máquina virtual durante la creación de la máquina virtual. Para hacerlo a través de Azure PowerShell o la CLI de Azure o para habilitar Redes aceleradas en máquinas virtuales existentes, consulte Uso de Azure PowerShell para crear una máquina virtual con Redes aceleradas

Captura de pantalla del flujo de creación de máquinas virtuales, con la opción Habilitación de las redes aceleradas resaltada.

  • Debe usar 32 sesiones por volumen de destino para cada volumen para lograr sus límites máximos de IOPS o rendimiento. Use E/S de múltiples rutas (MPIO) en el cliente para administrar estas sesiones múltiples en cada volumen para el equilibrio de carga. Los scripts están disponibles para Windows, Linuxo en la página Conectarse al volumen de los volúmenes en Azure Portal, que usa 32 sesiones de forma predeterminada. El iniciador iSCSI de software de Windows tiene un límite máximo de 256 sesiones. Si necesita conectar más de ocho volúmenes a una máquina virtual Windows, reduzca el número de sesiones a cada volumen según sea necesario.

MPIO

Windows

Use los siguientes comandos para actualizar la configuración:

# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI

# Set the default load balancing policy based on your requirements. In this example, we set it to round robin which should be optimal for most workloads.
mpclaim -L -M 2

# Set disk time out to 30 seconds
Set-MPIOSetting -NewDiskTimeout 30

Para obtener más información sobre los cmdlets de MPIO, consulte Referencia de MPIO.

Linux

Actualice el archivo /etc/multipath.conf con lo siguiente:

defaults {
    user_friendly_names yes		# To create ‘mpathn’ names for multipath devices
    path_grouping_policy multibus	# To place all the paths in one priority group
    path_selector "round-robin 0"	# To use round robin algorithm to determine path for next I/O operation
    failback immediate			# For immediate failback to highest priority path group with active paths
    no_path_retry 1			# To disable I/O queueing after retrying once when all paths are down
}
devices {
  device {
    vendor "MSFT"
    product "Virtual HD"
  }
}

iSCSI

Windows

Actualice la siguiente configuración del Registro para el iniciador iSCSI en Windows.

  1. Abra el Editor del Registro:
  2. Seleccione Inicio, escriba regedit en el cuadro de búsqueda y presione Entrar.
  3. Vaya a la siguiente ubicación: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Microsoft iSCSI Initiator)\Parameters]
  4. Actualice la siguiente configuración. Haga clic con el botón derecho en cada configuración y seleccione Modificar. Cambie Base a Decimal, actualice el valor y seleccione Aceptar.
Descripción Parámetro y valor
Establece el máximo de datos que el iniciador envía en una PDU iSCSI al destino a 256 KB. MaxTransferLength=262144
Establece la carga SCSI máxima que negocia el iniciador con el destino en 256 KB. MaxBurstLength=262144
Establece el máximo de datos no solicitados que el iniciador puede enviar en una PDU iSCSI a un destino a 256 KB. FirstBurstLength=262144
Establece el máximo de datos que el iniciador puede recibir en una PDU iSCSI del destino a 256 KB. MaxRecvDataSegmentLength=262144
Deshabilita el control de flujo de R2T InitialR2T=0
Habilita los datos inmediatos ImmediateData=1
Establece el valor de tiempo de espera de las solicitudes WMI en 30 segundos WMIRequestTimeout = 30 segundos
Establece el valor de tiempo de espera del vínculo en un tiempo de inactividad de 30 segundos LinkDownTime = 30 segundos

En las configuraciones de clúster, asegúrese de que los nombres del iniciador iSCSI sean únicos en todos los nodos que comparten volúmenes. En Windows, puede actualizarlos a través de la aplicación iniciador iSCSI.

  1. Seleccione Iniciar, busque iniciador iSCSI en el cuadro de búsqueda. Se abrirá el iniciador iSCSI.

  2. Seleccione Configuración para ver el nombre del iniciador actual.

    Captura de pantalla de la configuración del iniciador iSCSI en Windows.

  3. Para modificarlo, seleccione Cambiar, escriba el nuevo nombre del iniciador y seleccione Aceptar.

    Captura de pantalla de la actualización del nombre del iniciador iSCSI en Windows.

Linux

Actualice la siguiente configuración con valores recomendados en el archivo de configuración global iSCSI (iscsid.conf, que se encuentra generalmente en el directorio /etc/iscsi) en el cliente antes de conectar los volúmenes a él. Cuando se conecta un volumen, se crea un nodo junto con un archivo de configuración específico de ese nodo (por ejemplo, en Ubuntu, se puede encontrar en el directorio /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port) heredando la configuración del archivo de configuración global. Si ya ha conectado uno o varios volúmenes al cliente antes de actualizar el archivo de configuración global, actualice el archivo de configuración específico del nodo para cada volumen directamente o use el siguiente comando:

sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n $iscsi_setting_name -v $setting_value

Where

  • $volume_iqn: IQN del volumen de Elastic SAN
  • $portal_hostname: nombre de host del portal de volúmenes de Elastic SAN
  • $port: 3260
  • $iscsi_setting_name: parámetro para cada valor que se muestra a continuación
  • $setting_value: valor recomendado para cada valor a continuación
Descripción Parámetro y valor
# Establecer el máximo de datos que el iniciador envía en una PDU iSCSI al destino a 256 KB node.conn[0].iscsi.MaxXmitDataSegmentLength = 262144
# Establezca la carga SCSI máxima que negocia el iniciador con el destino en 256 KB. node.session.iscsi.MaxBurstLength = 262144
# Establecer el número máximo de datos no solicitados que el iniciador puede enviar en una PDU iSCSI a un destino a 256 KB node.session.iscsi.FirstBurstLength = 262144
# Establecer el máximo de datos que el iniciador puede recibir en una PDU iSCSI del destino a 256 KB node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
# Deshabilitar el control de flujo de R2T node.session.iscsi.InitialR2T = No
# Habilitar datos inmediatos node.session.iscsi.ImmediateData = Yes
# Establezca el valor de tiempo de espera de las solicitudes WMI node.conn[0].timeo.login_timeout = 30

node.conn[0].timeo.logout_timeout = 15
# Habilitación de la comprobación de hash de CRC para los datos y encabezados node.conn[0].iscsi.HeaderDigest = CRC32C

node.conn[0].iscsi.DataDigest = CRC32C

En las configuraciones de clúster, asegúrese de que los nombres del iniciador iSCSI son únicos en todos los nodos que comparten volúmenes. En Linux, puede modificar /etc/iscsi/initiatorname.iscsi para actualizar el nombre del iniciador. Captura de pantalla en la que se actualiza el nombre del iniciador iSCSI en Linux.

Optimizaciones de Elastic SAN

Antes de implementar una SAN instancia de Elastic SAN, es necesario determinar el tamaño óptimo de la instancia de Elastic SAN que implemente para lograr el equilibrio adecuado del rendimiento de las cargas de trabajo y el costo. Siga estos pasos para determinar el mejor ajuste de tamaño para usted:

Con la solución de almacenamiento existente, seleccione un intervalo de tiempo (día,semana/trimestre) para realizar un seguimiento del rendimiento. El mejor intervalo de tiempo es uno que sea una buena instantánea de las aplicaciones o cargas de trabajo. Durante ese período de tiempo, registre la IOPS y el rendimiento máximo combinados para todas las cargas de trabajo. Si usa un intervalo superior a un minuto o si alguna de las cargas de trabajo tiene cuellos de botella con la configuración actual, considere la posibilidad de agregar más capacidad base a la implementación de Elastic SAN. Debe dejar un espacio para la capacidad de aumento al determinar la capacidad base, para tener en cuenta el crecimiento. El resto del almacenamiento de Elastic SAN debe usar capacidad adicional para ahorrar costos.

Para obtener más información sobre el rendimiento, consulte Elastic SAN y rendimiento de máquinas virtuales.