Subsistemas RAID para MVS en aplicaciones de misión crítica
El repaso de un consultor a la situación actual
Las definiciones RAID fueron realizadas por Berkeley alrededor de 1987, cuando la memoria caché era aún muy cara y de reducida implantación. Este artículo intenta aclarar una serie de conceptos y resaltar los aspectos más importantes para dar una serie de recomendaciones a la hora de analizar un subsistema RAID para aplicaciones de misión crítica en entornos MVS.
La característica básica de los sistemas RAID es que su disco lógico (o virtual) no tiene correspondencia con un sólo disco físico, sino con varios. Pero hay características que determinan el nivel, y que son las siguientes:
Disk Array: Varios discos gestionados por uno o varios controladores comunes. Casi siempre, la gestión la realiza la Unidad de Control del subsistema, para producción normal como en recuperación de errores. Están apareciendo subsistemas que disponen de gestores a nivel de array
Disk Striping: Se trata de la separación de un disco lógico (o virtual) en varios discos físicos, mejorando con ello el tiempo de respuesta de las transferencias masivas.
Disk Mirroring: Consiste en mantener los datos en 2 discos duplicados, uno imagen del otro.
Acceso paralelo al array: Los discos están sincronizados para mejorar las transferencias masivas, las secuenciales y las de bloques grandes de datos. Por ello, si el disco de paridad se encuentra en el mismo array que el de datos, el acceso será simultáneo y no conlleva penalización en la escritura de la paridad.
Acceso independiente a los discos: Los discos operan de forma independiente, lo que mejora los procesos random de lectura/escritura, pero implica penalización y una contención en el disco que la contiene.
Penalización en escritura: Se produce al recibir datos en escritura: se escribe el dato, pero hay que recalcular la paridad y volver a escribirla. Esto implica varias operaciones por proceso de escritura y, por consiguiente, un retraso o penalización.
Evaluación de productos
Podemos afirmar que las definiciones RAID no fueron realizadas con el propósito de proporcionar una disponibilidad instantánea del dato tras el fallo de algún componente, sino con el simple propósito de evitar la pérdida de dicho dato. De hecho, no hay especificaciones acerca de cuántos arrays deben ser gestionados por un mismo componente, ni tampoco si un grupo de discos debe o no tener componentes redundantes para realizar la gestión , ni el máximo número de discos por array.
Por ello el cliente debe tener en cuenta una serie de consideraciones adicionales a los simples niveles RAID definidos, de cara a satisfacer los requisitos de las aplicaciones.
En primer lugar, si el microcódigo no opera de acuerdo al bypass cache y almacena en caché el dato para una posterior descarga asíncrona hacia los discos. Entonces hay que asegurarse de que las escrituras se guardan en áreas duplicadas de la caché. De lo contrario, su fallo produciría pérdida de datos.
La funciónDASD Fast-Write permite efectuar las escrituras en un área del controlador llamada NVS (Non-Volatile Storage) o en áreas de caché duplicadas y protegidas por batería, subsistemas más modernos. Acelera el proceso de la aplicación, pues la escritura termina en cuanto el dato es almacenado en la NVS. Con referencia a esto último, es importante que existan realmente 2 áreas separadas, pues de lo contrario el fallo de la caché repercutiría en una pérdida de los datos escritos, que muy probablemente no podrían ser recuperados sino que habría que reconstruirlos desde el punto de vista de la aplicación.
El tamaño del buffer de los dispositivos interviene porque, al recibir una petición de lectura de un disco, la unidad de control la envía al controlador del disco e "interrumpe" el diálogo para atender otras peticiones hasta que el disco obtenga el dato. Cuanto mayor sea el tamaño del buffer será mayor el procentaje de grandes bloques que caben en él, con lo que se necesitará solamente una lectura del disco, en vez de varias. También es relevante el tamaño de la caché y la utilización que se haga de ésta. El usuario debería valorar este aspecto para no dejarse mediatizar por la cantidad de caché que se le está proporcionando a cambio de la otra carencia.
Por último, si falla alguno de los componentes, se debe poder reemplazar sin interrupción en el servicio.
Niveles definidos
Los niveles definidos en la primera fase fueron los RAID tipos 1 a 5, mientras que el tipo RAID-6 data de 1989.
RAID 1: No hay disco de paridad. Se basa en disk mirroring. No requiere acceso paralelo a los discos (aunque puede llevarlo) y suele conllevar una pequeña penalización debida a la gestión de lecturas/escrituras duplicadas, y necesita de memoria caché para realizar dicha gestión. Hay implantaciones comerciales.
RAID 2: El disco de paridad es fijo, y requiere acceso paralelo a los discos. Apenas tiene implantaciones comerciales por los fuertes requerimientos de disco que necesita.
RAID 3: El disco de paridad es fijo. Requiere acceso paralelo a los discos y no tiene penalización en escritura. El software utiliza la técnica XOR. Tiene un excelente rendimiento para trabajos con altos ratios de transferencia de datos, así como para trabajos de tipo científico.
RAID 4: Igual que el anterior, pero el acceso a los discos es independiente, habiendo contención en el disco de paridad. Implica una penalización en escritura, por lo que resulta apropiado para tipos de trabajo con un bajo porcentaje en modificaciones y que además no utilicen el mismo disco de forma continua. Apenas está implantada en el mercado.
RAID 5: Es similar al RAID 4 pero el disco de paridad es rotativo para minimizar la contención. El software utiliza la técnica XOR, el acceso a los discos es independiente y hay contención en el disco de paridad (aunque menor que en RAID 4). Además, implica una penalización en escritura. Hay implantaciones comerciales.
RAID 6: Hay 2 discos de paridad, que son rotativos de cara a reducir la contención. El software es más complejo y conlleva cierta penalización. El acceso a los discos es independiente. Además, implica una penalización en escritura a la que se ha venido llamando small write penalty y que, realmente, es mayor que la del RAID 5. Por ello, resulta prácticamente impracticable a nivel comercial.