El punto de inflexión del RAID por software

En junio de 2001 ocurrió algo asombroso en el mundo de la TI: Intel lanzó el procesador Pentium IIIS de 1,0 GHz basado en Tualatin. Este fue uno de los primeros procesadores de Intel (arquitectura IA32) en superar la barrera de 1 GHz de frecuencia de reloj y el primero de verdadera relevancia. También era especial por contar con soporte para doble procesador y una caché del doble de tamaño en comparación con sus predecesores basados en Coppermine o con su sucesor Tualatin no-“S” (que llegó apenas un mes después). Las placas base PIIIS fueron tremendamente populares en su época y constituyeron la columna vertebral de los servidores de alto rendimiento de gama estándar, como Proliant y PowerEdge, en 2001 y durante los años siguientes, culminando en los sistemas de doble procesador Pentium IIIS de 1,4 GHz que fueron tan importantes que dieron origen a la ahora famosa convención de nomenclatura “G” de HP Proliant. Las máquinas Pentium III eran las “G1”.
¿Qué tiene que ver todo esto con el RAID? Pues bien, debemos dar un paso atrás y observar dónde se encontraba el RAID hasta mayo de 2001. Desde la década de 1990 y hasta mayo de 2001, el RAID por hardware era el estándar en el mundo de los servidores IA32, que incluía principalmente sistemas como Novell Netware, Windows NT 4, Windows 2000 y algo de Linux. El RAID por software sí existía para algunos de estos sistemas (no para Netware), pero los servidores siempre andaban escasos de recursos de CPU y memoria, y dedicar estos preciados recursos a las funciones de RAID resultaba costoso y provocaba que las aplicaciones compitieran con el RAID por el acceso, de modo que los sistemas solían ahogarse ante el conflicto. El RAID por hardware resolvió esto al añadir CPU y RAM dedicadas exclusivamente a estas funciones.
El RAID de finales de los años noventa y principios de los dos mil también se basaba en gran medida en el striping con paridad RAID 5 y, en menor medida, RAID 6, porque los discos eran diminutos y extremadamente caros en cuanto a capacidad, y exprimir la máxima capacidad de los discos disponibles era de la más alta prioridad; además, riesgos como el URE eran tan insignificantes debido a los pequeños tamaños de capacidad que el RAID con paridad resultaba muy fiable, considerándolo todo. Los factores eran completamente distintos de lo que serían en 2009. ¡En 2001 todavía era habitual ver discos duros de 2,1 GB, 4,3 GB y 9 GB en servidores empresariales!
Dado que el RAID con paridad era lo habitual, y que normalmente se utilizaban muchos discos en cada servidor, ¡el RAID tenía en promedio más sobrecarga de CPU en el año 2000 que en 2010! Así que el impacto del RAID sobre los recursos del sistema era muy significativo.
Y ese es el trasfondo. Pero en junio de 2001, de repente, quienes habían estado comprando sistemas IA32 de muy baja potencia tuvieron acceso a los procesadores Pentium IIIS basados en Tualatin, con frecuencias de reloj enormemente mejoradas, soporte eficiente para doble procesador y cachés en chip del doble de tamaño que supusieron un asombroso salto en el rendimiento de los sistemas, literalmente de la noche a la mañana. Con toda esta nueva potencia y sin un cambio correspondiente en las exigencias del software, los sistemas que tradicionalmente estaban hambrientos de CPU y RAM tuvieron de pronto más de lo que sabían aprovechar, especialmente porque había hilos adicionales disponibles y la mayoría de las aplicaciones de la época eran de un solo hilo.
Las CPU de los sistemas, incluso en la era del Pentium III, eran muchísimo más potentes que las pequeñas CPU, que a menudo eran chips PowerPC o MIPS de gama de entrada, de las controladoras RAID por hardware, y la memoria del sistema disponible solía ser mucho mayor que las cachés de RAM por hardware; además, invertir en memoria de sistema adicional resultaba a menudo mucho más eficaz y, en general, ventajoso. Así, con la disponibilidad de capacidad libre en el sistema principal, las funciones de RAID podían, en promedio, trasladarse de las tarjetas RAID por hardware al sistema central y ganar rendimiento, incluso renunciando a la CPU y la RAM adicionales de las tarjetas RAID por hardware. Esto no era cierto en sistemas sobrecargados, aquellos escasos de recursos, y resultaba más relevante para los sistemas de RAID con paridad, siendo RAID 6 el que más se beneficiaba y los sistemas sin paridad como RAID 1 y 0 los que menos.
Pero junio de 2001 fue el famoso punto de inflexión: antes de esa fecha, el sistema IA32 promedio era más rápido usando RAID por hardware. Y después de junio de 2001, los nuevos sistemas que se adquirieran serían, en promedio, más rápidos con RAID por software. Con cada año que pasaba, las ventajas se inclinaban cada vez más hacia el RAID por software, con la abundancia de núcleos de CPU infrautilizados, hilos ociosos y RAM sobrante creciendo de forma explosiva, siendo la única ventaja a favor del RAID por hardware la caída en el uso del RAID con paridad a medida que el RAID en espejo se imponía como estándar, conforme los tamaños de los discos aumentaban drásticamente mientras los costes de capacidad se desplomaban.
Hoy han pasado más de quince años desde que se jubiló la idea de que el RAID por hardware sería más rápido. La creencia persiste debido principalmente al curioso efecto de la “Promoción de 1998”. Pero esto lleva mucho tiempo siendo un mito repetido de forma incorrecta por quienes no se tomaron el tiempo de comprender el material original. El RAID por hardware sigue teniendo ventajas, pero el rendimiento no ha sido una de ellas durante la mayor parte del tiempo que hemos tenido RAID, y no se espera que vuelva a serlo jamás.