Para HDD , los IOPS generalmente están dominados por el tiempo de acceso del disco, que es la suma de la latencia de búsqueda + retraso rotacional + retraso de transferencia. Como estas variables dependen en gran medida de los patrones de acceso y tienen interacciones no obvias con el diseño RAID específico (es decir, el tamaño de la banda) y el controlador (es decir, sintonización de lectura anticipada), cualquier respuesta simple SERÁ INCORRECTA.
Sin embargo, tratemos de tener una cifra aproximada. En una primera aproximación, las IOPS garantizadas por una matriz de n discos deberían ser n veces las IOPS de un solo disco. Sin embargo, tanto el nivel RAID como el patrón de acceso a datos , al cambiar el peso entre la latencia de búsqueda / rotación / transferencia, cambia drásticamente esta aproximación de primer orden.
Hagamos algunos ejemplos, suponiendo 100 IOPS por cada disco individual (un valor típico para discos de 7200 RPM) y matrices de 4 discos (excepto RAID1, a menudo limitado solo a 2 vías):
- un solo disco es de 100 IOPS, tanto de lectura como de escritura (nota: debido a la fusión de escritura, los IOPS de escritura son generalmente más altos que los IOPS de lectura, pero ignoremos eso por simplicidad)
- RAID0 (trazado de líneas de 4 vías) tiene hasta 4 veces el IOPS aleatorio y hasta 4 veces el IOPS secuencial. La palabra clave aquí es "hasta": debido a la naturaleza de las bandas y la alineación de datos, si los sectores a los que se accede aleatoriamente residen predominantemente en un solo disco, terminará con IOPS mucho más bajos.
- RAID1 (duplicación de 2 vías) es más complejo para el perfil. Como diferentes discos pueden buscar datos diferentes, tiene hasta 2 veces más IOPS de lectura aleatoria, pero los mismos IOPS de escritura aleatoria 1x (o ligeramente más bajo, debido a la sobrecarga). Si todas las cosas se alinean bien (es decir, lecturas secuenciales grandes pero no 100%, un controlador RAID que utiliza el concepto / manejo de fragmentos / franjas incluso en modo espejo, lectura anticipada que funciona correctamente, etc.) las lecturas secuenciales pueden ser hasta 2 veces la única valor de disco, mientras que las escrituras secuenciales permanecen limitadas en 1x el disco único (es decir: sin aceleración)
- RAID10 (duplicación de 4 vías) es, en cuanto al rendimiento, a mitad de camino entre la división RAID0 de 4 vías y la duplicación de 2 vías. Tiene hasta 4 veces más IOPS de lectura aleatoria y hasta 2 veces más IOPS de escritura aleatoria. Para las transferencias secuenciales, se aplica la advertencia RAID1: a veces tiene hasta 4 veces más IOPS de lectura secuencial, pero solo 2 veces más IOPS de escritura secuencial. Tenga en cuenta que algunas implementaciones de RAID10 (es decir, Linux MDRAID) proporcionan diferentes diseños para las matrices RAID10, con diferentes perfiles de rendimiento .
- RAID5 (paridad rayada) tiene hasta 4 veces más IOPS de lectura aleatoria, mientras que IOPS de escritura aleatoria, dependiendo de una serie de factores como qué tan grande es la escritura con respecto al tamaño de banda, la disponibilidad de un caché de banda grande, el algoritmo de reconstrucción de banda en sí (lectura-reconstrucción-escritura vs lectura-modificación-escritura), etc., puede estar entre 0.5x (o menos) y 2x las IOPS de un solo disco. Las cargas de trabajo secuenciales son más predecibles, con 3 veces el IOPS de un solo disco (tanto para lectura como para escritura)
- RAID6 (paridad doble rayada) se comporta de manera muy similar a su hermano RAID5, pero con un rendimiento de escritura más bajo. Tiene hasta 4 veces más IOPS de lectura aleatoria de un solo disco, pero su rendimiento de escritura aleatoria es incluso menor que RAID5, con los mismos valores absolutos (0.5x - 2x) pero con un promedio de palabras reales más bajo. Las lecturas y escrituras secuenciales están limitadas a 2X las IOPS de un solo disco.
Permítanme repetir: lo anterior son aproximaciones simples y casi rotas. De todos modos, si quieres jugar con una calculadora RAID IOPS (muy incompleta), échale un vistazo aquí .
Ahora, vuelve al mundo real. En las cargas de trabajo del mundo real, RAID10 es a menudo la opción más rápida y preferida , manteniendo un alto rendimiento incluso frente a una matriz degradada . RAID5 y RAID6 no deben usarse en cargas de trabajo sensibles al rendimiento, a menos que sean centradas en la lectura o de naturaleza secuencial. Vale la pena señalar que los controladores RAID serios tienen una gran memoria caché de escritura protegida contra pérdida de energía principalmente para superar (mediante el almacenamiento en caché de bandas pesadas) el bajo rendimiento de escritura aleatoria RAID5 / 6. Nunca use RAID5 / 6 con controladores RAID sin caché , a menos que realmente no le importe la velocidad de la matriz.
Las SSD son diferentes bestias, pensó. Como tienen un tiempo de acceso promedio mucho menor, los RAID basados en paridad generan una sobrecarga de rendimiento mucho menor y son una opción mucho más viable que en los HDD. Sin embargo, en una pequeña carga de trabajo centrada en escritura aleatoria, de todos modos usaría una configuración RAID10.