¿Cómo analizar y optimizar varios cuellos de botella en el rendimiento del almacenamiento?

[Resumen] Este artículo combina la práctica para analizar la arquitectura y los principios operativos del sistema de almacenamiento, un análisis en profundidad de varios escenarios de cuellos de botella en el rendimiento del almacenamiento y propone los métodos de optimización del rendimiento correspondientes, con la esperanza de tener un cierto valor de referencia para sus pares.

[Autor] Chen Pingchun, que actualmente trabaja en la industria de seguros, tiene muchos años de experiencia en operación y mantenimiento de sistemas, almacenamiento y respaldo de datos.

Prefacio

La confiabilidad, la seguridad y el desempeño son las tres dimensiones de evaluación más importantes de los sistemas de TI. Para los sistemas de TI, la confiabilidad y la seguridad son la base, y los efectos destructivos causados ​​por fallas del sistema o fugas de datos son obvios, mientras que el rendimiento es la capacidad central, que representa el nivel de servicio del sistema de TI. Los cuellos de botella en el rendimiento restringirán el desarrollo del negocio empresarial. .desarrollo, afectando seriamente la experiencia del usuario.

Los sistemas de almacenamiento son una parte importante de la infraestructura de TI empresarial y brindan servicios de almacenamiento de datos para numerosos sistemas de TI dentro de la empresa. Con la profundización de la transformación digital, la construcción de sistemas de TI empresariales se ha acelerado aún más, lo que ha provocado, por un lado, un fuerte aumento en la cantidad de datos y, por otro, también ha aumentado la frecuencia de acceso a ellos. El impacto de los cuellos de botella en el rendimiento del almacenamiento también se amplificará aún más. Este artículo combinará la práctica personal de operación y mantenimiento para analizar la arquitectura y los principios operativos del sistema de almacenamiento, realizar un análisis en profundidad de varios escenarios de cuellos de botella en el rendimiento del almacenamiento y proponer los métodos de optimización del rendimiento correspondientes. Espero que tenga cierto valor de referencia. a sus compañeros.

1. Descripción general del sistema de almacenamiento

Comprender la arquitectura y los principios operativos del sistema de almacenamiento es un curso introductorio al análisis y optimización del rendimiento, para que pueda analizar y resolver problemas de rendimiento del almacenamiento de manera global. Después de años de evolución tecnológica y cambios arquitectónicos, los sistemas de almacenamiento se pueden dividir a grandes rasgos en tres categorías: almacenamiento SAN, almacenamiento NAS y almacenamiento distribuido. Tienen similitudes pero también tienen sus propias características. A continuación se analizarán en detalle estos tres tipos de arquitecturas de almacenamiento y sus principios operativos.

1.1 almacenamiento SAN

SAN (Storage Area Network) en sí es una red de almacenamiento responsable de las tareas de almacenamiento de datos y está aislada de la red LAN empresarial. El almacenamiento SAN es un sistema de almacenamiento basado en bloques que generalmente utiliza protocolos de comunicación como FC, ISCSI y NVMe.

Desde una perspectiva arquitectónica, el almacenamiento SAN generalmente monta una matriz de discos en la parte posterior del controlador de almacenamiento. Los datos finalmente se almacenan en la matriz de discos, y la matriz de discos incluye múltiples grupos RAID. N discos forman un grupo RAID, y las unidades de almacenamiento lógico LUN se dividirán encima del grupo RAID, que son discos lógicos del grupo de almacenamiento compartido. Estos LUN se conectarán a la tarjeta HBA del servidor a través de la red SAN, y será utilizado por el servidor. El sistema operativo reconoce el disco como un disco y lo particiona y formatea para su uso. Su arquitectura se muestra en la Figura 1.

imagen


Figura 1. Diagrama de arquitectura de almacenamiento SAN

Desde la perspectiva del flujo de E/S de datos de almacenamiento, tomando como ejemplo el almacenamiento FC-SAN de uso común, el sistema operativo del servidor generalmente utiliza un sistema de archivos para administrar archivos, que se basa en el LUN de almacenamiento y la lectura y escritura de archivos. corresponderá al almacenamiento. Operación IO; el archivo se dividirá en múltiples bloques y el tamaño del bloque es fijo, generalmente 4 KB-16 KB; el bloque de datos se enviará a la tarjeta HBA del servidor y la tarjeta HBA conviértalo en un marco de datos (Marco de datos) del protocolo FC y lo transmite al puerto frontal del sistema de almacenamiento a través de la red SAN; el puerto frontal del almacenamiento continúa reempaquetando estos marcos de datos en bloques de datos. Generalmente es de 4 KB y transmite estos bloques de datos al controlador de almacenamiento; el controlador de almacenamiento tendrá un caché de almacenamiento (caché), que se divide en caché de lectura y caché de escritura. De acuerdo con las reglas del algoritmo de caché, algunos flujos de datos IO Al ingresar al caché, se devolverá inmediatamente la confirmación de E/S, y los flujos de datos de E/S que no lleguen al caché deberán continuar accediendo a la matriz de discos. ; Dado que varios discos forman un grupo RAID, un flujo de E/S de datos en realidad corresponde a la lectura y escritura simultáneas de varios discos. . Todo el proceso se muestra en la Figura 2:

imagen


Figura 2. Diagrama de flujo de E/S de datos del almacenamiento FC-SAN

1.2 almacenamiento NAS

El almacenamiento NAS (Network Attached Storage) generalmente se puede considerar como un almacenamiento de archivos en red. La mayoría de los datos del usuario existen en forma de archivos. Adopta el protocolo NFS/CIFS a través del modo de acceso Ethernet, lo que proporciona una amplia compatibilidad y facilidad de uso para compartir capacidades. En comparación con el almacenamiento SAN, el almacenamiento NAS no proporciona servicios de almacenamiento en forma de discos, no requiere particionamiento ni formateo y puede proporcionar directamente sistemas de archivos de red que se pueden montar directamente.

Desde una perspectiva arquitectónica, el almacenamiento NAS generalmente se implementa en base a matrices de discos (también hay implementaciones basadas en sistemas de archivos en clúster o almacenamiento distribuido). Habrá un cabezal NAS en la matriz de discos para crear y administrar el sistema de archivos; el cabezal NAS es NAS El componente lógico central del almacenamiento es un estilo de arquitectura C/S típico, que es el lado del servidor que proporciona servicios de archivos de red al mundo exterior; otros clientes, después de obtener autorización, pueden montar sistemas de archivos, mapear discos de red o usar HTTP, FTP, etc. Se pueden compartir y acceder a los archivos en el sistema de archivos NAS. La arquitectura se muestra en la Figura 3:

imagen


Figura 3.Diagrama de arquitectura de almacenamiento NAS

Desde la perspectiva del flujo de E/S de datos de almacenamiento, tomando NFS como ejemplo, el almacenamiento NAS tiene características que son obviamente diferentes del almacenamiento SAN, como el almacenamiento en caché del cliente y la falta de estado del servidor. En primer lugar, el cliente no accede directamente al sistema de archivos NAS, sino al caché del cliente. El árbol de directorios del sistema de archivos del servidor se asigna al cliente. De hecho, al leer y escribir archivos, es necesario leer y escribir de forma fija. -páginas de tamaño en un bucle, como 64 KB, while Server La falta de estado del cliente se refleja en el hecho de que no es necesario mantener la información de estado del protocolo del cliente. El cliente opera los datos del sistema de archivos del servidor a través de RPC llama, pero no puede obtener el estado del servidor, cuando se interrumpe la conexión, puede continuar conectándose y volver a intentarlo. Como se muestra en la Figura 4, el flujo de E/S de datos de almacenamiento NAS basado en el protocolo de capa de aplicación TCP será más flexible y adaptable, pero la ruta de E/S de datos será más larga, la coherencia de los datos será deficiente y habrá problemas de seguridad, como los datos. fuga La eficiencia de la transmisión de datos tampoco es alta.

imagen


Figura 4. Diagrama de flujo de E/S de datos de almacenamiento NAS bajo el protocolo nfs

1.3 Almacenamiento distribuido

El sistema de almacenamiento distribuido adopta una arquitectura de clúster escalable y utiliza un algoritmo de copia de datos para dispersar y almacenar datos en múltiples dispositivos independientes. Los clústeres distribuidos generalmente están conectados a través de una red TCP/IP universal. En comparación con su matriz de almacenamiento centralizada tradicional, el sistema de almacenamiento distribuido puede compartir la carga de almacenamiento a través de múltiples servidores de almacenamiento, lo que puede satisfacer las necesidades de aplicaciones de almacenamiento a gran escala. Las formas comunes de sistemas de almacenamiento distribuido incluyen sistemas de archivos distribuidos (como HDFS) y almacenamiento de objetos (como Ceph).

Desde una perspectiva arquitectónica, en comparación con los sistemas de almacenamiento centralizados, la arquitectura de implementación de los sistemas de almacenamiento distribuido es relativamente simple y generalmente utiliza un método común de interconexión de red de servidores, pero su arquitectura lógica es más compleja. La idea central de diseño del sistema de almacenamiento distribuido es la descentralización. La dificultad de la descentralización radica principalmente en la descentralización del nodo de control principal. La idea de diseño de arquitectura de una arquitectura con un nodo de control principal, como HDFS, es mapa -reducir, que reduce lo grande a lo pequeño, dividir y conquistar, y luego fusionar el procesamiento, la arquitectura requiere que los nodos de control maestros se coordinen, pero la carga de los nodos de control maestros se distribuye a los nodos de datos y las copias de datos se almacenan en el Nodos de datos, y cada copia de datos se distribuye en tres diferentes En el nodo de datos, como se muestra en la Figura 5, la mayor ventaja de la descentralización es resolver el cuello de botella del nodo maestro en sí, y su idea de diseño arquitectónico es un diseño equilibrado. La arquitectura solo tiene nodos de datos, pero necesita abstraer más lógica. Los componentes funcionales se distribuyen uniformemente en diferentes nodos. Tomemos como ejemplo el uso del almacenamiento en bloque de Ceph. Además de los componentes de administración y monitoreo de clústeres como Mon, el componente OSD en Ceph se usa para administrar discos físicos. PG está construido en base a OSD. Los objetos de datos se almacenan en PG y los objetos de datos corresponden a Ceph. Dispositivo de bloque, el dispositivo de bloque Ceph se puede formatear y particionar para que pueda ser utilizado por aplicaciones. El diagrama de arquitectura se muestra en la Figura 6.


Figura 5. Arquitectura de almacenamiento distribuido con nodo maestro

imagen

Figura 6. Arquitectura de almacenamiento Ceph sin nodo maestro

        Desde la perspectiva del flujo de datos de E/S del almacenamiento, a diferencia del almacenamiento centralizado con menos canales de datos, el almacenamiento distribuido puede tener entradas de datos más amplias, pero también hay más flujos de datos dentro del clúster. Tomando el almacenamiento en bloque de Ceph como ejemplo, el sistema de archivos al que accede la aplicación cliente corresponde al dispositivo de bloque Ceph. Los datos del bloque acceden al servicio RBD del clúster Ceph a través de la red, que en última instancia corresponde a la lectura y escritura en disco del OSD de tres copias. El proceso se muestra en la Figura 7. Para un sistema de almacenamiento distribuido de tres copias, para garantizar una fuerte coherencia de los datos, una IO de escritura generalmente requiere que la copia maestra y las otras dos copias esclavas se hayan escrito antes de que finalmente se pueda confirmar la finalización de la escritura.


Figura 7. Diagrama de flujo de datos de E/S de almacenamiento Ceph

2. Análisis del rendimiento del almacenamiento

El análisis del rendimiento del almacenamiento es la base para la optimización del rendimiento. Aunque existen muchos tipos de sistemas de almacenamiento con diversas soluciones de diseño, los métodos de análisis del rendimiento tienen cierta universalidad. Los métodos de análisis del rendimiento del almacenamiento se pueden dividir en métodos cualitativos y cuantitativos. Por lo general, en las primeras etapas de comprensión del contacto y selección de tecnología, las condiciones para el análisis cuantitativo pueden no estar disponibles, por lo que los métodos de análisis cualitativo se utilizan principalmente para evaluar el rendimiento del sistema de almacenamiento. y una vez que se ingresa al POC Durante las pruebas, la operación y el mantenimiento del sistema, etc., el análisis cuantitativo debe ser el enfoque principal y los cuellos de botella en el rendimiento del almacenamiento deben determinarse a través de los datos del índice de rendimiento real.

2.1 Análisis cualitativo

El análisis cualitativo se basa en la experiencia personal en operación y mantenimiento para analizar si el rendimiento del sistema de almacenamiento puede satisfacer las necesidades del sistema de aplicaciones y si existen cuellos de botella en el rendimiento del sistema de almacenamiento, y todo esto depende de la familiaridad con el tipo de datos de la aplicación. y sistema de almacenamiento.

2.1.1 Análisis IO de datos de la aplicación

Comprender los tipos de E/S de datos de aplicaciones es la base para el análisis del rendimiento del almacenamiento. Existen diferencias en el acceso de IO de diferentes datos de aplicaciones, que se reflejan principalmente en el tamaño de IO, lectura y escritura secuencial o aleatoria, relación de lectura y escritura, etc., como se muestra en la Tabla 1.

Tipos de aplicaciones

tamaño de E/S

Proporción de lectura y escritura

Lectura y escritura aleatoria o secuencial.

Documentos generales

Pequeño

Gran proporción de lectura.

Principalmente lectura y escritura aleatorias.

archivo de registro

Pequeño

Escribe en gran proporción

Lectura y escritura secuencial

vídeo transmitido en vivo

grande

Gran proporción de lectura.

Lectura y escritura principalmente secuencial.

Sistema operativo

Pequeño

Gran proporción de lectura.

La mayoría lee y escribe secuencialmente.

copias de seguridad

grande

Escribe en gran proporción

Lectura y escritura secuencial

base de datos OLTP

Pequeño

Alrededor del 70% lee/30% escribe

Principalmente lectura y escritura aleatorias.

base de datos OLAP

grande

Gran proporción de lectura.

Lectura y escritura principalmente secuencial.

Tabla 1. Tipos de E/S de datos para aplicaciones

tamaño de E/S

Las diferencias en los tipos de datos de la aplicación darán como resultado archivos de datos de diferentes tamaños, que también corresponden a diferentes tamaños de E/S de datos. Suponiendo que la capacidad de procesamiento de IO del sistema de almacenamiento es fija, es obvio que las IO grandes procesan más datos por unidad de tiempo, por lo que fusionar las IO pequeñas será más eficiente; y suponiendo que el sistema de almacenamiento tiene un límite superior en el tamaño de los datos IO se procesa cada vez, luego se procesa IO grande cada vez. Es necesario dividirlo antes, obviamente la eficiencia del procesamiento de IO disminuirá. Por ejemplo, el almacenamiento SAN tiene una alta capacidad de procesamiento de IO, pero el IO procesado a la vez es relativamente pequeño, por lo que es más adecuado para sistemas de aplicaciones de IO pequeños con requisitos de alto rendimiento, pero cuando se procesan datos de aplicaciones de IO grandes, la eficiencia disminuirá. .

Proporción de lectura y escritura

La relación de lectura y escritura es una de las características importantes de los datos de la aplicación y existe una gran diferencia entre las operaciones de lectura y escritura de IO. En términos generales, las operaciones de escritura consumen más rendimiento de almacenamiento, tienen mayores retrasos y capacidades de procesamiento de E/S de escritura y tienen mayores diferencias en los requisitos de caché. Para el almacenamiento distribuido, el mecanismo de copia múltiple puede optimizar las operaciones de lectura, pero no favorece las operaciones de escritura. La ruta de confirmación de escritura es larga, por lo que es necesario optimizar la ruta de transmisión de datos y configurar más cachés de escritura, lo cual es más adecuado. para aplicaciones con un alto ratio de lectura.

Lectura y escritura secuencial o aleatoria

La diferencia entre lectura y escritura secuencial o aleatoria se refleja principalmente en las características de los medios del disco, el mecanismo de lectura previa, la tasa de aciertos de la caché, etc. Para discos duros mecánicos, la E/S de lectura y escritura secuencial puede reducir el tiempo de búsqueda del disco, mientras que la E/S de lectura y escritura aleatoria alargará el tiempo de respuesta. Al mejorar la tasa de aciertos de la caché, los datos de la caché se pueden convertir en lectura y escritura secuenciales en el disco. ; Los discos duros SSD no tienen búsqueda mecánica y sus capacidades de lectura y escritura aleatorias son mucho mejores que las de los discos duros mecánicos.

2.1.2 Análisis de cuellos de botella en el rendimiento

La clave para el análisis del rendimiento del almacenamiento es analizar los cuellos de botella en el rendimiento, que incluyen dos aspectos: uno son los factores que desencadenan los cuellos de botella en el rendimiento; el otro es la ubicación de los cuellos de botella en el rendimiento y la ubicación de la congestión de E/S del almacenamiento.

1) Factores que desencadenan cuellos de botella en el rendimiento

Puntos de acceso de almacenamiento: los puntos de acceso de almacenamiento son defectos en la planificación y el diseño. Los escenarios típicos incluyen que la carga de E/S de datos esté demasiado concentrada en un determinado nodo de almacenamiento, puerto, disco, etc., contención de recursos de almacenamiento, competencia de bloqueo, limitaciones de parámetros de software y hardware, etc.

Picos de rendimiento: común en escenarios donde la concurrencia de E/S de datos es alta y los requisitos de rendimiento se publican en un corto período de tiempo. Los picos de rendimiento expondrán por completo los problemas candentes existentes y desencadenarán cuellos de botella en el rendimiento del almacenamiento. Los escenarios típicos incluyen tormentas de inicio de escritorios virtuales, servicios de venta flash, etc.

Degradación de la capacidad del servicio: comúnmente vista en escenarios de fallas, la degradación de la capacidad del servicio de almacenamiento combinada con fases de E/S de datos ocupadas desencadenará cuellos de botella en el rendimiento del almacenamiento. Los escenarios de falla típicos incluyen falla del controlador de almacenamiento único de almacenamiento SAN, reconstrucción de disco, etc. El almacenamiento distribuido es más propenso a fluctuaciones en el rendimiento, principalmente debido a que un nodo o disco se desconecta o reconstruye una copia de datos o una copia de datos responde lentamente; los clientes La CPU y los recursos de memoria del servidor final son insuficientes, etc.

2) Posicionamiento de cuellos de botella en el desempeño

La ubicación de los cuellos de botella en el rendimiento del almacenamiento debe analizarse junto con la arquitectura del sistema de almacenamiento. Según la composición del sistema de almacenamiento, se puede dividir aproximadamente en las siguientes categorías de ubicaciones de cuellos de botella en el rendimiento:

Red de transmisión de datos: almacenamiento de ancho de banda de la red de transmisión de datos interna y externa, velocidad de puerto, protocolo de transmisión y equilibrio de carga de la ruta de transmisión.

Controlador de almacenamiento: potencia de procesamiento de CPU del controlador

Caché: dividido principalmente en caché de cliente y caché de almacenamiento, incluido el tamaño de la caché, la tasa de aciertos de la caché y la proporción de asignación de cachés de lectura y escritura.

Disco: dividido principalmente en disco duro mecánico, disco flash y otros medios de disco, incluida la velocidad del disco, IOPS de lectura y escritura de un solo disco, capacidad del disco, número de discos, algoritmo de redundancia de disco (RAID, codificación de copia o borrado).

Cliente: se refleja en el uso de CPU, memoria y otros recursos del cliente, la ocupación de recursos de almacenamiento por parte de otras aplicaciones y otros impactos del entorno externo.

2.2 Análisis cuantitativo

El análisis cuantitativo analiza y resuelve problemas desde la perspectiva de los indicadores de datos: no solo puede medir las capacidades de servicio del sistema de almacenamiento desde el lado del almacenamiento, sino también medir la experiencia de IO del almacenamiento desde el lado de la aplicación del usuario. En términos generales, el análisis cuantitativo en el lado del almacenamiento excluye el impacto de la red de almacenamiento y los clientes. Los datos de rendimiento pueden indicar si existen cuellos de botella en el rendimiento en el propio sistema de almacenamiento y pueden usarse para monitorear el rendimiento del sistema de almacenamiento; mientras que el análisis cuantitativo en el lado del almacenamiento excluye el impacto de la red de almacenamiento y los clientes. El lado de la aplicación del usuario se utiliza principalmente para algunos escenarios de prueba de rendimiento y, a través de herramientas de evaluación comparativa, puede formar una línea de base de rendimiento para el entorno del sistema actual.

2.2.1 Tres indicadores principales de desempeño

Ya sea que se trate de un análisis cuantitativo en el lado del almacenamiento o en el lado de la aplicación del usuario, es inseparable de tres indicadores principales de datos de rendimiento del almacenamiento: IOPS, rendimiento (rendimiento) y latencia (latencia). Por lo tanto, es necesario aclarar el significado y la correlación de los tres indicadores de datos de desempeño.

IOPS: representa la cantidad de operaciones IO procesadas por el almacenamiento por segundo. Para los sistemas de almacenamiento, al realizar análisis de rendimiento, no solo debemos prestar atención a las IOPS generales, sino que a veces también necesitamos analizar las IOPS de un solo controlador, un solo LUN o un solo disco, e incluso es posible que debamos distinguir. entre lectura o escritura de IOPS.

Rendimiento: representa la cantidad de datos IO procesados ​​por el almacenamiento por segundo, que es el ancho de banda ocupado por la transmisión de datos del almacenamiento. Al igual que IOPS, también se puede dividir en lectura o escritura y se puede analizar por componentes individuales.

Latencia: representa el tiempo necesario para que el sistema de almacenamiento procese las operaciones de IO. Por lo general, es el indicador de rendimiento de almacenamiento más importante. Al igual que IOPS, también se puede dividir en lectura o escritura y se puede analizar por componentes individuales.

En el análisis de los tres principales indicadores de rendimiento, es más científico utilizar el rendimiento para evaluar el rendimiento de aplicaciones IO grandes, mientras que para aplicaciones IO pequeñas, como bases de datos, es necesario evaluar el rendimiento a través de IOPS y indicadores de latencia. La baja latencia se puede medir simultáneamente y solo cuando se cumplan estos requisitos se podrá manejar el acceso rápido y de alta concurrencia a la base de datos.

2.2.2 Análisis de pruebas de rendimiento

Las pruebas de rendimiento del almacenamiento pueden comprender mejor los indicadores de rendimiento del almacenamiento. Tome una prueba de rendimiento del almacenamiento como ejemplo. La herramienta de prueba de estrés del almacenamiento vdbench (se puede utilizar para realizar pruebas de estrés tanto en el disco desnudo como en los métodos de acceso a archivos). El fondo de la prueba es que el almacenamiento Se asignan 5 LUN al host. El host realiza pruebas aleatorias de lectura y escritura en estos cinco discos desnudos. El 80 % de ellos se leen y el 20 se escriben. El tamaño de E/S se ajusta gradualmente para las pruebas. Los tres principales indicadores de datos de rendimiento son como sigue:

tamaño de E/S

IOPS

Rendimiento (MB/s)

Retraso (ms)

4 KB

89288

348,78

0.411

16KB

75209

1175.15

0,488

32KB

59415

1856.72

0,617

64KB

36612

2288.30

1.005

128KB

20686

2585.82

1.833

Tabla 2. Datos de prueba de rendimiento del almacenamiento

Las conclusiones de esta prueba de rendimiento del almacenamiento son las siguientes:

1) El uso de la CPU del controlador de almacenamiento alcanza un máximo del 20% al 45%, lo que indica que el controlador de almacenamiento también puede soportar una mayor carga de E/S, como se muestra en la Figura 8.

imagen


Figura 8. Uso de CPU del controlador de almacenamiento

2) Esta prueba no alcanzó el cuello de botella en el rendimiento del sistema del host y el uso de la CPU fue inferior al 20%, lo que también es importante en el análisis del rendimiento del almacenamiento.

imagen


Figura 9. Uso de CPU del sistema host

3) Línea base de rendimiento del almacenamiento: los datos de prueba en la Tabla 2 son los datos de la línea base de rendimiento de un host específico que utiliza el almacenamiento de 5 lun bajo diferentes cargas de IO. Durante la operación real, los tamaños de IO y de lectura y escritura de IO de otras aplicaciones se tienen en cuenta. Debido a factores desiguales, el pico general de IOPS es el 50 % del valor de referencia.

4) Rendimiento e IOPS: Rendimiento = IOPS * tamaño de IO. En el mismo escenario empresarial, el tamaño de IO general no cambiará significativamente. Entonces, el rendimiento bajo la prueba de límite será directamente proporcional a los IOPS, pero el rendimiento está limitado por el Red. El ancho de banda y las IOPS están limitados por las capacidades de procesamiento del lun de almacenamiento;

5) Latencia e IOPS: se puede ver que existe una relación inversa entre la latencia y las IOPS en los datos de prueba, es decir, cuanto menor es la IOPS, mayor es la latencia, esto se debe a que la presión de carga de almacenamiento es diferente bajo diferentes IO. Escenarios de prueba de tamaño Lo mismo, es decir, en el caso de IO grandes, la carga de almacenamiento aumenta, los IOPS disminuyen y el retraso aumenta. La relación entre IOPS y latencia en condiciones operativas normales del sistema de almacenamiento se muestra en la Figura 10. En la mayoría de los casos, la presión de carga sobre el almacenamiento aumenta, los IOPS aumentan y la latencia comienza a crecer. , afectará el rendimiento del sistema empresarial. Por lo tanto, en la mayoría de los casos, la latencia es el indicador de rendimiento del almacenamiento más importante. Generalmente, para sistemas empresariales con mayores requisitos de rendimiento, la latencia del almacenamiento debe ser inferior a 5 ms.

imagen


Figura 10. IOPS de almacenamiento y latencia en condiciones operativas normales

3. Optimización del rendimiento del almacenamiento

El análisis y la optimización del rendimiento del almacenamiento es una tarea importante, compleja y a largo plazo. Es necesario aclarar los objetivos de optimización del rendimiento del almacenamiento, realizar un análisis detallado del rendimiento y formular planes de optimización y verificación por fases para garantizar el desarrollo continuo del trabajo de optimización del rendimiento del almacenamiento. .

3.1 Estrategia de optimización

El trabajo de optimización del rendimiento del almacenamiento tiene un cierto carácter estratégico: sólo las estrategias de optimización científicas pueden guiar la formulación de planes de optimización del rendimiento del almacenamiento más razonables.

1) Consideración integral: el rendimiento del almacenamiento es un problema global. Es necesario considerar de manera integral los cuellos de botella de rendimiento en la ruta de IO y analizar posibles reacciones en cadena en la solución de optimización del rendimiento para mejorar la exactitud de las decisiones de optimización del rendimiento.

2) Rentabilidad de la optimización: establezca objetivos razonables de optimización del rendimiento. Al seleccionar múltiples soluciones de optimización del rendimiento, debe considerar de manera integral el costo de la solución, la complejidad de la implementación, los beneficios, etc.

3) La planificación es más importante: en comparación con el costo de optimización y transformación causado por la optimización del rendimiento del almacenamiento, es más importante realizar una planificación razonable con anticipación. Por ejemplo, la selección de almacenamiento que tiene en cuenta los requisitos de rendimiento empresarial, los datos de referencia y la gestión de la capacidad de rendimiento de las pruebas de rendimiento del almacenamiento antes de que el sistema se conecte, la expansión del almacenamiento debe prestar atención a los indicadores de capacidad de rendimiento (evaluar si hay un cambio importante en las IOPS/ GB después de la expansión) y Distribución equilibrada de las cargas de rendimiento del almacenamiento, etc.

4) Mejorar el monitoreo del rendimiento: el rendimiento del almacenamiento de un extremo a otro también es muy importante. Supervise toda la ruta de E/S de los datos y analice los datos de rendimiento de ejecución reales en función de la línea base de rendimiento del almacenamiento, para descubrir cuellos de botella en el rendimiento del almacenamiento de manera oportuna y verificar. optimización del almacenamiento Resultados.

3.2 Plan de optimización

Las soluciones de optimización del rendimiento del almacenamiento se pueden dividir aproximadamente en las siguientes categorías:

1) Actualización de hardware

El IOPS de un solo disco duro mecánico es de alrededor de 100 y la latencia es de más de 5 ms, mientras que el IOPS de un solo SSD es de más de 10 000 y la latencia es inferior a 1 ms. Cuando los discos duros mecánicos tradicionales se reemplazan por discos duros totalmente almacenamiento flash, el rendimiento se puede mejorar enormemente; NVMe La aplicación de tecnologías como RDMA y RDMA optimiza el marco de comunicación subyacente, lo que puede mejorar en gran medida la eficiencia de la transmisión de datos y reducir la latencia del almacenamiento; la expansión horizontal o vertical de los nodos de control de almacenamiento puede aumentar efectivamente la carga de almacenamiento capacidad; las actualizaciones de hardware del cliente también pueden eliminar la necesidad de cuellos de botella en el rendimiento causados ​​por la CPU, la memoria, la red, etc.

La actualización de hardware es un medio muy eficaz para optimizar el rendimiento del almacenamiento, pero en muchos casos requiere costos de hardware relativamente altos y la relación entrada-salida debe evaluarse cuidadosamente.

2) Optimización de aplicaciones de capa superior

Los métodos de optimización de aplicaciones de la capa superior también son relativamente ricos. El objetivo principal es reducir la carga de IO que las aplicaciones de la capa superior llevan al almacenamiento, como permitir la deduplicación o la compresión de datos antes de la transmisión de datos, optimizar la concurrencia de IO y agregar una gran cantidad de pequeños IO en IO grandes, optimización de indexación de bases de datos, optimización de declaraciones SQL.

3) Ajustar la carga de rendimiento

El ajuste de la carga de rendimiento se dirige principalmente a los problemas de rendimiento del almacenamiento activo. Las soluciones incluyen optimizar la distribución del disco y ajustar la carga del disco; ajustar la carga del puerto de la red de almacenamiento; ajustar la carga del controlador de almacenamiento; agregar almacenamiento y ajustar parte de la carga al nuevo almacenamiento.

4) Optimización de la caché de datos

La caché de datos es un módulo de rendimiento muy importante en el sistema de almacenamiento. Generalmente, la caché utiliza medios de almacenamiento más rápidos, como la memoria o la memoria flash, que es mucho más rápida que los discos normales. Muchos problemas de rendimiento del almacenamiento se originan en el almacenamiento en caché y se resuelven mediante la optimización del almacenamiento en caché. La caché de datos se divide en caché local del cliente y caché de almacenamiento. Por ejemplo, el caché local del cliente es muy importante para algunos sistemas de archivos distribuidos. Aumentar el tamaño del caché puede mejorar efectivamente la tasa de aciertos del caché; el caché de almacenamiento también es extremadamente importante. La tecnología de almacenamiento en caché de datos multinivel puede almacenar datos calientes en medios de almacenamiento más rápidos. ., reduce la latencia de almacenamiento.

Supongo que te gusta

Origin blog.csdn.net/iamonlyme/article/details/133012061
Recomendado
Clasificación