Preguntas más frecuentes sobre el rendimiento de SMB para Azure NetApp Files

Este artículo le ayuda a comprender el rendimiento de SMB y los procedimientos recomendados para Azure NetApp Files.

SMB multicanal

SMB multicanal está habilitado de forma predeterminada en recursos compartidos SMB. Todos los recursos compartidos anteriores de los volúmenes SMB existentes tienen la característica habilitada, y todos los volúmenes recién creados también tendrán la característica habilitada en el momento de la creación.

Cualquier conexión con SMB establecida antes de la habilitación de la característica tendrá que restablecerse para aprovechar las ventajas de la funcionalidad de SMB multicanal. Para restablecerlo, puede desconectar y volver a conectar el recurso compartido de SMB.

Windows admite SMB multicanal desde Windows 2012 para permitir un mejor rendimiento. Consulte Implementación de SMB multicanal y Aspectos básicos de SMB multicanal para más información.

Ventajas de SMB multicanal

La característica SMB multicanal permite a un cliente de SMB3 establecer un grupo de conexiones mediante una sola tarjeta de interfaz de red (NIC) o varias y usarlas para enviar solicitudes para una única sesión de SMB. Por el contrario, por diseño, SMB1 y SMB2 requieren que el cliente establezca una conexión y envíe todo el tráfico de SMB para una sesión determinada por esa conexión. Esta conexión única limita el rendimiento general del protocolo que se puede lograr desde un solo cliente.

Rendimiento de SMB multicanal

Las siguientes pruebas y gráficos muestran la eficacia de SMB multicanal en cargas de trabajo de instancia única.

E/S aleatoria

Con SMB multicanal deshabilitado en el cliente, las pruebas de lectura y escritura de 4 KiB puras se realizaron con FIO y un conjunto de trabajo 40 GiB. El recurso compartido de SMB se desasoció entre cada prueba, con incrementos del recuento de conexiones de cliente SMB por configuración de interfaz de red RSS de 1,4,8,16set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>. Las pruebas muestran que el valor predeterminado de 4 es suficiente para las cargas de trabajo con uso intensivo de E/S; el incremento en 8 y 16 tiene un efecto mínimo.

El comando netstat -na | findstr 445 ha mostrado que se establecieron conexiones adicionales con incrementos de 1 a 4 a 8 y a 16. Se usaron completamente cuatro núcleos de CPU para SMB durante cada prueba, como confirma la estadística Per Processor Network Activity Cycles de Perfmon (no se incluye en este artículo).

Chart that shows random I/O comparison of SMB Multichannel.

La máquina virtual de Azure no afecta a los límites de E/S de almacenamiento SMB (ni a NFS). Como se muestra en el siguiente gráfico, el tipo de instancia D32ds tiene una tasa limitada de 308 000 para IOPS de almacenamiento en caché y 51 200 para IOPS no almacenadas en caché. Sin embargo, el gráfico anterior muestra significativamente más E/S sobre SMB.

Chart that shows random I/O comparison test.

E/S secuencial

Las pruebas similares a las pruebas de E/S aleatorias descritas más arriba se realizaron con la E/S secuencial de 64 KiB. Aunque los aumentos en el recuento de conexiones de cliente por interfaz de red RSS más allá de 4' no tenían ningún efecto apreciable en la E/S aleatoria, no se aplica a la E/S secuencial. Como se muestra en el siguiente gráfico, cada aumento se asocia con un aumento correspondiente en el rendimiento de lectura. El rendimiento de escritura seguía siendo plano debido a las restricciones de ancho de banda de red colocadas por Azure para cada tipo de instancia o tamaño.

Chart that shows throughput test comparison.

Azure coloca los límites de velocidad de red en cada tipo o tamaño de máquina virtual. El límite de velocidad se impone solo en el tráfico de salida. El número de NIC presentes en una máquina virtual no afecta a la cantidad total de ancho de banda disponible para el equipo. Por ejemplo, el tipo de instancia D32ds tiene un límite de red impuesto de 16 000 Mbps (2000 MiB/s). Como se muestra en el gráfico secuencial anterior, el límite afecta al tráfico saliente (escrituras), pero no a las lecturas multicanal.

Chart that shows sequential I/O comparison test.

Firma SMB

El protocolo de SMB ofrece la base para el uso compartido de impresión y archivos, así como de otras muchas operaciones de redes, como la administración de Windows remota. Para evitar los ataques de tipo "Man in the middle" que modifican los paquetes SMB en tránsito, el protocolo de SMB admite la firma digital de los paquetes SMB.

La firma SMB admite todas las versiones del protocolo SMB compatibles con Azure NetApp Files.

Impacto en el rendimiento de la firma SMB

La firma SMB tiene un efecto perjudicial sobre el rendimiento de SMB. Entre otras posibles causas de la degradación del rendimiento, la firma digital de cada paquete consume CPU del cliente adicional como se muestra en la salida de Perfmon siguiente. En este caso, el núcleo 0 aparece como responsable de SMB, incluida la firma SMB. Una comparación con los números de rendimiento de lectura secuencial no multicanal en la sección anterior muestra que la firma SMB reduce el rendimiento general de 875 MiB/s a aproximadamente 250 MiB/s.

Chart that shows SMB Signing performance impact.

Rendimiento de una sola instancia con un conjunto de datos de 1 TB

Para proporcionar conclusiones más detalladas sobre las cargas de trabajo con combinaciones de lectura/escritura, los dos gráficos siguientes muestran el rendimiento de un único volumen en la nube de 50 TB con el nivel de servicio Ultra, un conjunto de resultados de 1 TB y SMB multicanal de 4. Se usó un valor IODepth óptimo de 16 y parámetros de E/S flexible (FIO) para garantizar el uso completo del ancho de banda de red (numjobs=16).

En el siguiente gráfico se muestran los resultados de E/S aleatoria de 4 KiB, con una sola instancia de máquina virtual y una combinación de lectura/escritura en intervalos de 10 %:

Chart that shows Windows 2019 standard _D32ds_v4 4K random IO test.

En el siguiente gráfico se muestran los resultados de E/S secuencial:

Chart that shows Windows 2019 standard _D32ds_v4 64K sequential throughput.

Rendimiento al escalar horizontalmente mediante cinco máquinas virtuales con un conjunto de resultados de 1 TB

Estas pruebas con cinco máquinas virtuales usan el mismo entorno de pruebas que una máquina virtual única, de modo que cada proceso escribe en su propio archivo.

En el siguiente gráfico se muestran los resultados de E/S aleatoria:

Chart that shows Windows 2019 standard _D32ds_v4 4K 5-instance randio IO test.

En el siguiente gráfico se muestran los resultados de E/S secuencial:

Chart that shows Windows 2019 standard _D32ds_v4 64K 5-instance sequential throughput.

Supervisión de adaptadores Ethernet de Hyper-V

Una estrategia que se usa en las pruebas con FIO consiste en establecer numjobs=16. Al hacerlo, cada trabajo se bifurca en 16 instancias específicas para aprovechar al máximo el adaptador de red de Microsoft Hyper-V.

Puede comprobar la actividad en cada uno de los adaptadores en el Monitor de rendimiento de Windows al seleccionar Monitor de rendimiento > Agregar contadores > Interfaz de red > Adaptador de red de Microsoft Hyper-V.

Screenshot that shows Performance Monitor Add Counter interface.

Una vez que el tráfico de datos se ejecute en los volúmenes, puede supervisar los adaptadores desde el Monitor de rendimiento de Windows. Si no usa los 16 adaptadores virtuales, podría no estar aprovechando al máximo la capacidad de ancho de banda de red.

Screenshot that shows Performance Monitor output.

Cifrado de SMB

En esta sección se responden las preguntas más frecuentes sobre el cifrado SMB (SMB 3.0 y SMB 3.1.1).

El cifrado SMB proporciona cifrados de datos SMB de un extremo a otro y protege los datos de los incidentes de interceptación en redes que no son de confianza. El cifrado SMB se admite en SMB 3.0 y versiones mayores.

Al enviar una solicitud al almacenamiento, el cliente cifra la solicitud, que el almacenamiento descifra a continuación. El servidor cifra de forma similar las respuestas y las descifra el cliente.

Windows 10, Windows 2012 y versiones posteriores admiten el cifrado SMB.

Ccifrado SMB y Azure NetApp Files

El cifrado SMB está habilitado en el nivel de recurso compartido para Azure NetApp Files. SMB 3.0 emplea el algoritmo AES-CCM, mientras que SMB 3.1.1 emplea el algoritmo AES-GCM.

El cifrado SMB no es necesario. Por lo tanto, solo se habilita para un recurso compartido determinado si el usuario solicita que Azure NetApp Files lo habilite. Los recursos compartidos de Azure NetApp Files nunca se exponen a Internet. Solo son accesibles desde una red virtual determinada, a través de VPN o Express Route, por lo que los recursos compartidos de Azure NetApp Files son intrínsecamente seguros. La elección de habilitar el cifrado SMB es totalmente del usuario. Tenga en cuenta la penalización de rendimiento prevista antes de habilitar esta característica.

Impacto del cifrado de SMB en las cargas de trabajo de cliente

Aunque el cifrado SMB afecta tanto al cliente (sobrecarga de CPU para cifrar y descifrar los mensajes) como al almacenamiento (reducción del rendimiento), en la tabla siguiente solo se resalta el impacto en el almacenamiento. Debe probar el impacto en el rendimiento del cifrado en sus propias aplicaciones antes de implementar cargas de trabajo en producción.

Perfil de E/S Impacto
Cargas de trabajo de lectura y escritura De 10 % a 15 %
Uso intensivo de metadatos 5 %

Redes aceleradas

Para obtener el máximo rendimiento, se recomienda configurar redes aceleradas en las máquinas virtuales siempre que sea posible. Tenga en cuenta las siguientes consideraciones:

  • Azure Portal habilita Redes aceleradas de forma predeterminada para las máquinas virtuales que admiten esta característica. Sin embargo, es posible que no se puedan aplicar otros métodos de implementación como Ansible y herramientas de configuración similares. Si no se habilita Redes aceleradas, el rendimiento de la máquina puede verse afectado.
  • Si la opción Redes aceleradas no está habilitada en la interfaz de red de una máquina virtual debido a su falta de compatibilidad con un tipo o tamaño de instancia, permanecerá deshabilitada con tipos de instancia mayores. En esos casos, necesitará una intervención manual.
  • No es necesario establecer redes aceleradas para las NIC en la subred dedicada de Azure NetApp Files. Las redes aceleradas son una funcionalidad que solo se aplica a las máquinas virtuales de Azure. Las NIC de Azure NetApp Files están optimizadas por diseño.

RSS

Azure NetApp Files admite el escalado del lado de recepción (RSS).

Con SMB multicanal habilitado, un cliente de SMB3 establece varias conexiones TCP en el servidor SMB de Azure NetApp Files mediante una tarjeta de interfaz de red (NIC) que es compatible con RSS.

Para ver si las NIC de las máquinas virtuales de Azure admiten RSS, ejecute el comando Get-SmbClientNetworkInterface, tal como se indica a continuación, y compruebe el campo RSS Capable:

Screenshot that shows RSS output for Azure virtual machine.

Varias NIC en clientes SMB

No debe configurar varias NIC en el cliente para SMB. El cliente SMB coincidirá con el número de NIC que devuelve el servidor SMB. Cada volumen de almacenamiento es accesible desde un solo punto de conexión de almacenamiento. Esto significa que solo se usará una NIC para cualquier relación SMB determinada.

Como se muestra en la salida de Get-SmbClientNetworkInterace siguiente, la máquina virtual tiene dos interfaces de red: 15 y 12. Como se muestra bajo el comando Get-SmbMultichannelConnection, aunque hay dos adaptadores de red compatibles con RSS, solo se usa la interfaz 12 en relación con el recurso compartido de SMB; la interfaz 15 no está en uso.

Screeshot that shows output for RSS-capable NICS.

Pasos siguientes