RAID (arrays redundantes de discos independientes) – Part 1

RAID, o «arrays redundantes de discos independientes» es una técnica que utiliza una combinación de varios discos en lugar de utilizar un solo disco para aumentar el rendimiento, la redundancia de datos o ambos. El término fue acuñado por David Patterson, Garth A. Gibson y Randy Katz en la Universidad de California, Berkeley en 1987. 

¿Por qué redundancia de datos? 

La redundancia de datos, aunque ocupa espacio adicional, aumenta la confiabilidad del disco. Esto significa que, en caso de falla del disco, si los mismos datos también se respaldan en otro disco, podemos recuperar los datos y continuar con la operación. Por otro lado, si los datos se distribuyen en varios discos sin la técnica RAID, la pérdida de un solo disco puede afectar a todos los datos. 

Puntos clave de evaluación para un sistema RAID 

  • Confiabilidad: ¿Cuántas fallas de disco puede tolerar el sistema? 
  • Disponibilidad: ¿ Qué fracción del tiempo total de la sesión es un sistema en modo de tiempo de actividad, es decir, qué tan disponible está el sistema para el uso real? 
  • Rendimiento: ¿Qué tan bueno es el tiempo de respuesta? ¿Qué tan alto es el rendimiento (tasa de trabajo de procesamiento)? Tenga en cuenta que el rendimiento contiene muchos parámetros y no solo los dos. 
  • Capacidad: dado un conjunto de N discos, cada uno con B bloques, ¿cuánta capacidad útil hay disponible para el usuario? 

RAID es muy transparente para el sistema subyacente. Esto significa que, para el sistema host, aparece como un solo disco grande que se presenta como una array lineal de bloques. Esto permite reemplazar las tecnologías más antiguas por RAID sin realizar demasiados cambios en el código existente. 

Diferentes niveles de RAID

RAID-0 (desmontaje)  

  • Los bloques se «despojan» de los discos. 

raid0

  • En la figura, los bloques «0,1,2,3» forman una franja. 
  • En lugar de colocar solo un bloque en un disco a la vez, podemos trabajar con dos (o más) bloques colocados en un disco antes de pasar al siguiente. 

raid0_chunk

Evaluación: 

  • Confiabilidad: 0 
    No hay duplicidad de datos. Por lo tanto, un bloque una vez perdido no se puede recuperar. 
  • Capacidad: N*B 
    Todo el espacio se utiliza para almacenar datos. Dado que no hay duplicación, N discos, cada uno con B bloques, se utilizan por completo. 

RAID-1 (duplicación) 

  • Más de una copia de cada bloque se almacena en un disco separado. Por lo tanto, cada bloque tiene dos (o más) copias, que se encuentran en discos diferentes. 

raid1

  • La figura anterior muestra un sistema RAID-1 con nivel de duplicación 2. 
  • RAID 0 no pudo tolerar ninguna falla de disco. Pero RAID 1 es capaz de confiabilidad. 

Evaluación: 

Suponga un sistema RAID con nivel de duplicación 2.  

  • Confiabilidad: 1 a N/2 
    1 falla de disco se puede manejar con certeza, porque los bloques de ese disco tendrían duplicados en algún otro disco. Si tenemos la suerte y los discos 0 y 2 fallan, nuevamente esto se puede manejar ya que los bloques de estos discos tienen duplicados en los discos 1 y 3. Entonces, en el mejor de los casos, se pueden manejar N/2 fallas de disco. 
  • Capacidad: N*B/2 
    Solo la mitad del espacio se utiliza para almacenar datos. La otra mitad es solo un espejo de los datos ya almacenados. 

RAID-4 (eliminación de nivel de bloque con paridad dedicada) 

  • En lugar de duplicar datos, adopta un enfoque basado en la paridad. 

raid4

  • En la figura, podemos observar una columna (disco) dedicada a la paridad. 
  • La paridad se calcula usando una función XOR simple. Si los bits de datos son 0,0,0,1, el bit de paridad es XOR(0,0,0,1) = 1. Si los bits de datos son 0,1,1,0, el bit de paridad es XOR(0,1 ,1,0) = 0. Un enfoque simple es que un número par de unos da como resultado la paridad 0, y un número impar de unos da como resultado la paridad 1. 

parityy

  • Suponga que en la figura anterior, C3 se pierde debido a alguna falla en el disco. Luego, podemos volver a calcular el bit de datos almacenado en C3 observando los valores de todas las demás columnas y el bit de paridad. Esto nos permite recuperar datos perdidos. 

Evaluación: 

  • Fiabilidad: 1 
    RAID-4 permite recuperar como máximo 1 fallo de disco (debido a la forma en que funciona la paridad). Si falla más de un disco, no hay forma de recuperar los datos. 
  • Capacidad: (N-1)*B 
    Se reserva un disco en el sistema para almacenar la paridad. Por lo tanto, (N-1) discos están disponibles para el almacenamiento de datos, cada disco tiene B bloques. 

RAID-5 (eliminación de nivel de bloque con paridad distribuida) 

  • Esta es una ligera modificación del sistema RAID-4 donde la única diferencia es que la paridad rota entre las unidades. 

raid5

  • En la figura, podemos notar como el bit de paridad “rota”. 
  • Esto se introdujo para mejorar el rendimiento de escritura aleatoria. 

Evaluación: 

  • Fiabilidad: 1 
    RAID-5 permite recuperar como máximo 1 fallo de disco (debido a la forma en que funciona la paridad). Si falla más de un disco, no hay forma de recuperar los datos. Esto es idéntico a RAID-4. 
  • Capacidad: (N-1)*B 
    En general, se utiliza el espacio equivalente a un disco para almacenar la paridad. Por lo tanto, (N-1) discos están disponibles para el almacenamiento de datos, cada disco tiene B bloques. 

¿Qué pasa con los otros niveles de RAID? 

RAID-2 consiste en una eliminación a nivel de bits utilizando una paridad de Código Hamming. RAID-3 consta de bandas a nivel de byte con paridad dedicada. Estos dos se usan con menos frecuencia. 
RAID-6 es un avance reciente que contiene una doble paridad distribuida, lo que implica la eliminación de nivel de bloque con 2 bits de paridad en lugar de solo 1 distribuido en todos los discos. También existen RAID híbridos, que hacen uso de más de un nivel de RAID anidado uno tras otro, para cumplir requisitos específicos. 

Referencias:  

  • https://en.wikipedia.org/wiki/RAID 
  • Sistemas operativos en tres piezas sencillas por Remzi H. Arpaci-Dusseau. 

Este artículo es una contribución de Anannya Uberoi . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *