Comprensión de RAID: cómo aumenta el rendimiento de un disco a ocho

Nota: 96 TB de almacenamiento apilados en un banco en una pesada espiral de ocho alturas.  No hagan esto en casa, niños;  la fotografía y la gestión del sistema no van muy bien.

Jim Salter

Fundamentos de almacenamiento

Ver más historias

Uno de los primeros desafíos importantes que enfrentan los administradores de sistemas neófitos y los entusiastas del almacenamiento de datos es cómo almacenar más de un disco de datos. La respuesta corta, y tradicional, aquí es RAID (una matriz redundante de discos económicos), pero todavía hay muchas topologías RAID diferentes para elegir.

La mayoría de las personas que implementan RAID esperan obtener un rendimiento adicional, así como almacenamiento adicional, de todos estos discos. Desafortunadamente, estas expectativas no siempre están firmemente arraigadas en el mundo real. Pero como estamos todos en casa con tiempo para algunos proyectos técnicos, esperamos arrojar algo de luz sobre cómo planificar el rendimiento del almacenamiento, no solo la cantidad total de gibibytes (GB) que puede apilar en una matriz.

Una nota rápida aquí: aunque los lectores están interesados ​​en los números brutos, recomendamos un enfoque más fuerte en cómo se relacionan entre sí. Todos nuestros gráficos relacionan el rendimiento de las matrices RAID en tamaños de dos a ocho discos con el rendimiento de un solo disco. Si cambia el modelo del disco, sus números sin procesar cambiarán en consecuencia, pero la relación con el rendimiento de un solo disco no cambiará en su mayor parte.

Equipo probado

Anuncio Usamos las ocho bahías vacías en nuestro hot rod de almacenamiento de verano de 2019 para esta prueba. Tiene mucha RAM y potencia de CPU más que suficiente para examinar estas pruebas de almacenamiento sin sudar.

El hot rod de almacenamiento también tiene un adaptador de bus de host (HBA) LSI-9300-8i dedicado que no se usa para nada más que los discos bajo prueba. Los primeros cuatro compartimentos de la carcasa tienen nuestros propios datos de respaldo, pero estuvieron inactivos durante todas las pruebas aquí, y están conectados al controlador SATA de la placa base, completamente aislado de nuestras matrices de prueba.

Como probamos

Como siempre, utilizamos hilo para realizar todas nuestras pruebas de almacenamiento. Los ejecutamos localmente en el Hot Rod y utilizamos tres tipos básicos de pruebas de acceso aleatorio: sincronización de lectura, escritura y grabación. Cada una de las pruebas se ejecutó con tamaños de bloque de 4K y 1M, y ejecuté las pruebas con un solo proceso y iodepth = 1 y ocho procesos con iodepth = 8.

Para todas las pruebas, usamos el kernel RAID de Linux, implementado en la versión 4.15 del kernel de Linux, junto con el sistema de archivos ext4. Usamos el --assume-clean parámetro al crear nuestras matrices RAID, para evitar sobrescribir cada bloque en la matriz, y usamos -E lazy_itable_init=0,lazy_journal_init=0 creando el sistema de archivos ext4 para evitar contaminar nuestras pruebas con grabaciones de fondo continuas, inicializando el sistema de archivos de fondo.

Kernel RAID vs hardware RAID

No tenemos pruebas en paralelo con un adaptador RAID de hardware aquí, por lo que deberá confiar en nuestra palabra cuando decimos que el RAID de hardware no es mágico. Hemos probado de forma privada el kernel RAID de Linux con las tarjetas RAID de hardware de ocho puertos profesionales, dedicadas y populares varias veces a lo largo de los años.

En su mayor parte, el kernel RAID supera significativamente al RAID por hardware. Esto se debe en parte al desarrollo y mantenimiento mucho más activos en el kernel de Linux de lo que encontrará en el firmware de las tarjetas. También es importante tener en cuenta que un servidor moderno típico tiene una CPU tremendamente más rápida y más RAM disponible que un controlador RAID de hardware.

Publicidad

La única excepción a esta regla es que algunos controladores RAID de hardware tienen un caché de batería. Estas tarjetas confirman las solicitudes de escritura de sincronización para el caché integrado en la batería en lugar del disco, y mienten al sistema operativo al respecto. Las grabaciones síncronas almacenadas en caché se agregan y salen de la caché del controlador al disco. Esto funciona, y funciona, como las grabaciones asincrónicas que son agregadas y confirmadas por el propio sistema operativo.

Las grabaciones asincrónicas superan a las grabaciones sincrónicas y, por lo tanto, esto representa un aumento significativo en el rendimiento de dicho controlador. La tarjeta depende de la batería para garantizar la supervivencia de los datos almacenados en caché durante cortes de energía. Esto es, en su mayor parte, como poner todo el servidor en un UPS y usar la diversión, pero apropiadamente llamada libeatmydata, que hace que el sistema operativo se mienta a sí mismo sobre el resultado de fsync llamadas.

Una advertencia: si la batería falla en un controlador RAID y el controlador no lo detecta, la corrupción puede resultar y se producirá después de cortes de energía, ya que la tarjeta todavía está mintiendo al sistema operativo y a las aplicaciones cuando solicitan garantías. que los datos se han confirmado de forma segura en el disco. Si el controlador detecta proactivamente una falla en la batería, simplemente deshabilita la agregación de grabación en la tarjeta por completo, lo que devuelve el rendimiento de la grabación de sincronización a su nivel real, mucho más bajo.

En nuestra experiencia, es muy probable que los administradores no se den cuenta cuando fallan las baterías de caché de un controlador de hardware. A menudo, estos administradores seguirán operando sus sistemas con niveles reducidos de rendimiento y confiabilidad durante muchos años.

Una advertencia final sobre los controladores RAID de hardware: es difícil predecir si una matriz RAID de hardware creada bajo un controlador se importará con éxito a un modelo de controlador diferente más adelante. Incluso si el modelo del controlador sigue siendo el mismo, las interfaces de usuario de las aplicaciones de administración o las rutinas BIOS / UEFI utilizadas para importar arreglos a menudo se escriben en un lenguaje increíblemente poco claro.

Descubrimos que con RAID de hardware, a menudo es difícil saber si está destruyendo su matriz o importándola de forma segura. Por lo tanto, en caso de falla y reemplazo del controlador, puede terminar sudando, haciendo YOLO y esperando. Advertencia de imperador.