RAID 1: penalización de escritura IOPS 1 o 2

RAID 1: penalización de escritura IOPS 1 o 2

Sigo viendo artículos que describen la penalización de escritura RAID IOPS para RAID 1 (y RAID 10) como 2. RAID 0 tendría una penalización de 1, por supuesto, ya que cada escritura simplemente se escribe en el disco. RAID 1 se describe como "que requiere dos escrituras", por lo tanto, una penalización de 2.

¿Pero no debería ser 1, ya que los datos se escriben simultáneamente?

Desde el punto de vista de la aplicación o servidor que utiliza el disco, una matriz RAID 1 debería aparecer como una sola unidad que escribe en ambos discos simultáneamente. Un disco puede ir por detrás del otro, pero un controlador RAID de hardware real debería ser capaz de comenzar la escritura al mismo tiempo e informar que la operación de escritura se ha completado cuando el disco más lento se haya completado, lo que debería ser sólo marginalmente mayor que en un RAID. -0, en todo caso. Por lo tanto, la penalización de IOPS debería ser 1 para RAID 1 o 1,2 como máximo.

Entiendo que hay dos operaciones de escritura, por lo que hay 2 "IOPS", pero están internamente en el controlador RAID.

¿Me estoy perdiendo de algo?

Respuesta1

Si RAID 1 simplemente conectara un cable, el impacto en el rendimiento sería nulo (un factor de 1,0), pero la duplicación de RAID 1 es más que simplemente conectar un cable.Trabajo actualEs necesario hacer algo para escribir datos en dos unidades y manejar los resultados de esa escritura desde cada unidad.

Ese trabajo extra es el factor del que hablan en el impacto en el rendimiento. Ya sea que la operación de E/S ocurra en algún lugar del sistema operativo (RAID de software) o en un coprocesador/controlador dedicado (RAID de hardware), todavía es necesario realizar dos escrituras para cada dato, y los resultados de esa escritura (éxito, falla, o on_fire) deben ser "manejados".


En el peor de los casos, es probable que encuentre (software RAID-1 implementado en el sistema operativo), lo que significa que el kernel está realizando dos escrituras y manteniendo dos conversaciones con el controlador de disco.
Esa es una penalización de escritura de 2x ya que estamos haciendo el doble de trabajo en casi toda la pila.
(En realidad, probablemente esté más cerca de 1.9; después de todo, no estamos emitiendo dos llamadas write() al sistema de archivos, pero redondeémoslo en aras del pesimismo).

En el mejor de los casos (hardware RAID 1, implementado con un controlador dedicado), el kernel mantiene una conversación con el controlador, pero el controlador aún mantiene 2 conversaciones (una con cada disco), ya que necesita garantizar que ambas unidades reciban el comando. escriba los datos y reconozca que se escribieron (o maneje cualquier condición de error que informen las unidades).
Probablemente se trate de una penalización de 1,2 veces por el trabajo adicional del controlador, como supuso en su pregunta: simplemente se está ahorrando el trabajo adicional en el kernel (que es mucho más costoso que lo que hace el controlador).

Ahora bien, como somos administradores de sistemas y nos pagan por ser pesimistas, obviamente vamos a tomar el peor de los casos de rendimiento, tal como cuando redondeamos el factor de rendimiento para RAID de software, así que si alguien pregunta, se lo diremos. Para ellos, hay una penalización de escritura de 2x, incluso para su elegante controlador de hardware, y déjelos estar contentos cuando el sistema funcione con solo una penalización de 1,5x en promedio :-)

Respuesta2

un controlador RAID de hardware real debería ser capaz de comenzar la escritura al mismo tiempo e informar que la operación de escritura se ha completado cuando el disco más lento se haya completado, lo que debería ser sólo marginalmente mayor que en un RAID-0, en todo caso.

Sin embargo, cada escritura tiene la mitad del rendimiento total disponible. En su ejemplo, cada disco del RAID 0 solo necesita escribir la mitad de lo que se envió al controlador RAID. En RAID 1, cada disco tiene que escribirlo todo.

Esto coloca a RAID 0 en el estadio de dos veces más rápido que RAID 1 para escrituras (en un grupo RAID de 2 discos), mientras que son iguales en velocidad de lectura teórica.

información relacionada