Diseño de RAID NVMe para aplicaciones con alta carga de escritura
Niveles de RAID, resistencia (endurance) y rendimiento para cargas de trabajo intensivas en escritura.
Las aplicaciones con alta carga de escritura exigen más al almacenamiento que la mayoría de las cargas de trabajo. Los sistemas de registro (logging), las bases de datos de series temporales, la ingesta de video y las plataformas transaccionales generan tráfico de escritura constante. Los SSD NVMe ofrecen el rendimiento bruto que estas cargas de trabajo necesitan, pero la capa de RAID subyacente determina cuánta de esa velocidad se aprovecha realmente y con qué eficacia se sobrevive a un fallo.
Este artículo cubre la selección del nivel de RAID, la planificación de la resistencia y el diseño del rendimiento para arreglos NVMe intensivos en escritura.
Compensaciones de los niveles de RAID para escrituras
No todos los niveles de RAID manejan bien las escrituras intensivas. El RAID basado en paridad introduce amplificación de escritura y penalizaciones de latencia que pueden anular el beneficio de la velocidad de NVMe.
RAID 1 y RAID 10
El espejado (mirroring) y la distribución con espejado ofrecen el mejor rendimiento de escritura y la recuperación más sencilla. RAID 10 es la opción predeterminada para OLTP de alta escritura, colas de mensajes y cachés, porque no tiene penalización por cálculo de paridad.
RAID 5 y RAID 6
Estos niveles sacrifican rendimiento de escritura a cambio de eficiencia de capacidad. Cada escritura requiere leer los datos y la paridad antiguos, calcular la nueva paridad y luego escribir ambos. Para cargas de trabajo NVMe intensivas en escritura, la latencia y la amplificación de escritura suelen superar el ahorro de capacidad.
RAID 0
La distribución (striping) sin redundancia maximiza la velocidad y la capacidad, pero no ofrece protección. Úselo solo para datos efímeros cuya pérdida sea aceptable, como espacio temporal de trabajo o cachés que puedan reconstruirse.
Resistencia y amplificación de escritura
Los SSD NVMe están clasificados para un número finito de ciclos de programación/borrado, expresado como escrituras de disco por día (DWPD) o terabytes totales escritos (TBW). Las cargas de trabajo intensivas en escritura consumen este presupuesto rápidamente si no se tiene cuidado.
- Estime las escrituras diarias y ajuste la resistencia del SSD a la carga de trabajo
- Reserve capacidad libre (overprovisioning) para reducir la amplificación de escritura provocada por la recolección de basura
- Supervise los indicadores de nivelación de desgaste (wear-leveling) y planifique el reemplazo antes de alcanzar los umbrales
- Evite la utilización completa del disco; tanto el rendimiento como la resistencia se degradan cerca de la capacidad máxima
Para cargas sostenidas intensivas en escritura, las unidades de clase empresarial con clasificaciones de resistencia más altas suelen ser más económicas a lo largo del ciclo de vida que las unidades de consumo reemplazadas prematuramente.
Comparación de niveles de RAID para cargas de trabajo de alta escritura
| Nivel de RAID | Rendimiento de escritura | Tolerancia a fallos | Ideal para |
|---|---|---|---|
| RAID 1 | Bueno | Un disco | Volúmenes críticos pequeños |
| RAID 10 | Excelente | Uno por espejo | OLTP, cachés, colas |
| RAID 5 | Penalización moderada | Un disco | Cargas intensivas en lectura o de escritura ligera |
| RAID 6 | Penalización más severa | Dos discos | Arreglos de archivo o de gran capacidad |
| RAID 0 | Máximo | Ninguna | Solo datos temporales efímeros |
Rendimiento y profundidad de cola
Las unidades NVMe exponen muchas colas paralelas, lo que les permite manejar miles de operaciones concurrentes. Para aprovechar este rendimiento, el controlador RAID, el controlador (driver) y la aplicación deben soportar colas profundas. Los cuellos de botella pueden ocultarse en:
- Firmware del controlador RAID que serializa las operaciones de E/S
- Sistemas de archivos con la configuración de colas predeterminada
- Hilos de aplicación que envían escrituras de una en una
- Núcleos de CPU incapaces de seguir el ritmo de las interrupciones
Realice pruebas con cargas de trabajo y profundidades de cola realistas. Las pruebas sintéticas con colas poco profundas rara vez reflejan el comportamiento en producción.
¿Necesita almacenamiento optimizado para escrituras intensivas?
SmashByte Servers diseña arreglos de almacenamiento NVMe con el nivel de RAID, la resistencia y el perfil de rendimiento adecuados para aplicaciones intensivas en escritura.
Solicitar ayuda con el diseño de almacenamiento