IIC 2332 -- Sistemas Operativos
Apuntes 22
1er Semestre 1996
- RAID = redundant arrays of inexpensive disks (grupos redundantes
de discos de bajo costo)
- La velocidad de CPU y el tamaño de memoria han aumentado
rápidamente en los años recientes (40% por año). A la vez el ancho
de banda (bandwidth) de I/O ha cambiado poco. Se han usado
memorias más y más grandes con cachés sofisticados para contrarrestar
esto, pero no es suficiente para las aplicaciones con poca localidad
(e.g, el procesamiento de transacciones en bases de datos) o pocas
solicitudes para muchos datos (e.g., simulaciones en
supercomputadores).
- La ley de Amdahl determina el speedup (mejoramiento de
velocidad) de un sistema según la siguiente fórmula:
donde es el speedup efectivo del sistema, es la fraccíon del
trabajo en el modo más rápido, y es el speedup en el modo más
rápido.
- Supone que las aplicaciones pasan 10% de su tiempo en I/O. Cuando
los computadores sean 10 veces más rápidos (en tres a cinco años), el
speedup será solamente 5 veces más. Cuando los computadores sean
100 veces más rápidos, las aplicaciones serán menos de 10 veces más
rápidos, malgastando 90% del potencial.
- Una solución posible es reemplazar los discos grandes de los
mainframes con los discos de más bajo rendimiento que se han
desarrollado para el mercado de PCs. De 1991:
|
Características | IBM 3380 | Conners CP3100 |
|
Capacidad (MB) | 7500 | 100 |
|
Precio/MB | US$18 | US$10 |
|
MTTF (horas) | 30,000 | 30,000
|
MTTF (mean time to failure) es el tiempo promedio hasta el fracaso.
- Un grupo de 75 discos pequeños puede tener potencialmente un ancho
de banda de I/O que es 12 veces más que el de un 3380, con menor
demanda de electricidad y menor costo. El principio es la
intercalación de los discos.
- Pero la confiabilidad es una nueva pregunta. Si el grupo tiene
100 discos, esperamos un fracaso en 30000/100 = 300 horas, o menos de
dos semanas. ¡Con 1000 discos la tasa es casi uno por día!
- La tolerancia de fallas es crucial. ¿Cómo la podemos proveer?
- Se pueden usar discos extras conteniendo información redundante
para recuperar la información original cuando un disco falle.
- En RAID 1 usamos el espejo de disco. Con cada escritura a
un disco de datos escribimos también a un disco duplicado. Esto
soluciona el problema de confiabilidad: MTTF, cuando tengamos un
tiempo promedio hasta la reparación (MTTR) de una hora, es más de
500 años. Empero, el costo es usar solamente la mitad de la capacidad
disponible; el costo es muy alto. A los fabricantes de discos les
gusta este esquema.
- En RAID 2 reducimos el número de discos de verificación por el uso
de códigos de Hamming. Un solo disco de paridad puede detectar un
error, pero para corregirlo necesitamos bastantes discos para
identificar el disco con el error. Por ejemplo, considera el Thinking
Machines Data Vault, con 32 discos de datos, 8 discos de verificación,
y 1 disco de reserva listo.
- Ahora el overhead se ha reducido de 100% a solamente 20%-40%.
El MTTF es más de 12 años. Pero se puede mejorar.
- En RAID 3 reconecemos el hecho que los controladores de disco
pueden detectar que un disco ha fallado; no necesitamos guardar datos
para determinar esto. Ahora necesitamos solamente un disco de
verificación por grupo, donde guardamos la paridad.
- Si un disco falla, calculamos la paridad de los discos que
quedan y la comparamos con la paridad del disco de verificación. Si
son iguales, el bit perdido era 0, de otro modo 1.
- Si el disco de verificación falla, calculamos la paridad de
todos los discos de datos.
- El costo de overhead es ahora alrededor de 5% o menos, mientras
que el MTTF es mayor que la vida útil del producto. Aún podemos mejorar
el rendimiento.
- Observamos con RAID 3:
- El gran tiempo de transferencia es reducido porque se puede usar
todo el ancho de banda del grupo.
- Pero la lectura y escritura requiere la lectura y escritura a
todo el grupo; hay solamente un I/O a la vez por grupo.
- Si los discos no están sincronizados, podemos tener tiempos de
búsqueda del caso peor.
En el procesamiento de transacciones hay muchas tranferencias
pequeñas.
- En RAID 4 no esparcimos una unidad pequeña de transferencia entre
todos los discos en el grupo. En vez de esto, colocamos toda la
unidad en un sector de un disco de dato. Pero ahora se deben
actualizar todos los bits de paridad en el disco de verificación.
¿Cómo?
- Calculamos la paridad nueva usando la paridad anterior y los
datos anteriores y nuevos.
- ¡No necesitamos otros discos!
La intercalación de datos está ahora en el nivel de sectores en vez del
nivel de bits. Pero con I/Os múltiples, el disco de verificación se
convierte en un embotellamiento.
- En RAID 5 eliminamos el embotellamiento. Ahora no hay un solo
disco de verificación; en lugar de eso, encontramos el disco de
verificación para un sector por el número del sector modulo el número
de discos.
- El RAID 5 de 100 discos en 10 grupos ofrece un mejoramiento de
10 veces en el rendimiento, confiabilidad y consumo de electricidad (y
por lo tanto aire acondicionado) sobre un IBM 3380. Además, el tamaño
se reduce por un factor de tres, y el aumento del sistema es modular
(en vez de US$100,000 para un aumento de 7500 MB).
- 1996: IBM RAMAC 2, 180 GB, 64 discos, 12.6 MB/s, latency 4.2 ms.
IBM 3390 Model 9, 102 GB, un disco, 3.9 MB/s, latency 22.8 ms.
Last edited June 5, 1996, by knabe@ing.puc.cl