Los platos giratorios son más lentos que la RAM. Usamos el almacenamiento en caché de lecturas / escrituras para 'ocultar' este hecho.
Lo útil de escribir IO es que no requiere que IO de disco ocurra de inmediato, a diferencia de una lectura, donde no puede devolver datos al usuario hasta que la lectura se complete en el disco.
Por lo tanto, las escrituras operan bajo una restricción de tiempo flexible: siempre que nuestro rendimiento sostenido no exceda el de nuestro disco, podemos ocultar muchas de las penalizaciones de rendimiento en un caché de escritura.
Y necesitamos escribir caché: los discos giratorios son muy lentos comparativamente. Pero para hacerlo, los tipos RAID modernos tienen una penalización significativa para la operación.
Un RAID 6, por ejemplo, para completar una escritura, IO debe:
- Leer bloque de actualización
- leer paridad1
- leer paridad 2
- escribir nuevo bloque
- escribir paridad 1
- escribir paridad 2
Por lo tanto, cada escritura es en realidad 6 operaciones de E / S, y particularmente cuando tiene discos lentos como grandes unidades SATA, esto se vuelve extremadamente costoso.
Pero hay una buena solución fácil: escribir en combinación. Si puede construir una escritura de 'franja completa' en un búfer, no necesita leer la paridad de su disco; puede calcularla en función de lo que tiene en la memoria.
Es muy deseable hacer esto, porque entonces ya no tienes amplificación de escritura. De hecho, puede terminar con una penalización de escritura menor que RAID 1 + 0.
Considerar:
RAID 6, 8 + 2 - 10 husillos.
8 bloques de datos consecutivos para escribir: calcule la paridad en la memoria caché y escriba un bloque en cada disco. 10 escrituras por 8, significa una penalización de escritura de 1.25. 10 discos de RAID 1 + 0 todavía tienen una penalización de escritura de 2 (porque tiene que escribir en cada submirror). Entonces, en este escenario, puede hacer que RAID 6 funcione mejor que RAID1 + 0. Sin embargo, en el uso en el mundo real, obtienes un poco más de un perfil IO mixto.
Por lo tanto, el almacenamiento en caché de escritura hace una gran diferencia en el rendimiento percibido de los conjuntos RAID: puede escribir a velocidad de RAM y tener una baja penalización de escritura, lo que mejora su rendimiento sostenido si lo hace.
Y si no lo hace, sufre el rendimiento lento de SATA, pero multiplíquelo por 6 y agregue cierta contención allí. Su SATA RAID-6 de 10 vías sin almacenamiento en caché de escritura sería un poco más rápido que una sola unidad sin RAID ... pero no mucho.
Sin embargo, se arriesga, como observa, la pérdida de energía significa la pérdida de datos. Puede mitigar esto mediante ciclos de descarga de caché, batería que respalde su caché o utilizando SSD u otros cachés no volátiles.