Hoy vamos a hablarte sobre uno de los sistemas informáticos más utilizados por las empresas de cualquier tamaño y, cada vez más, por usuarios particulares.
RAID.
Puede que alguna vez hayas oído hablar de este sistema o que sea algo totalmente desconocido para ti.
Sea como sea, vamos a explicarte qué es y en qué puede ayudarte a ti de la forma más sencilla posible, evitando palabros raros y explicaciones muy técnicas que te dejarían igual que al principio.
Nuestro objetivo es que, después de este post, puedas determinar por ti mismo si necesitas un RAID, y en caso afirmativo cual se adaptaría a tus necesidades.
¡Vamos allá!
RAID: ¿Qué es en realidad un RAID? ¿Y su significado?
RAID es un acrónimo del inglés (como casi todo en esta vida 🙄):
Redundant Array of Independent Disks
Esto significa: Matriz de discos independientes redundantes.
RAID es un conjunto de discos duros (a lo que se le denomina matriz) convertidas en una sola unidad lógica de gran volumen.
Para aclarar conceptos, una unidad lógica es una división “virtual” del disco físico.
Puede que esa unidad lógica ocupe todo el espacio del disco físico (un disco duro físico de 500 GB puede tener una unidad lógica de 500 GB).
También podemos dividirlo en tres unidades lógicas, una unidad de 300 GB y dos unidades de 100 GB cada una, por ejemplo.
El sistema RAID permite que varios discos duros físicos puedan unirse en una única unidad lógica, haciendo que el sistema operativo piense que solo tiene un disco duro (como norma general).
Conceptos del RAID
Como hemos indicado, el sistema RAID almacena la información en varios discos (mínimo dos).
Dependiendo del tipo de RAID existen conceptos que son importantes a saber:
Tamaño del sector: El tamaño del sector o block size, es la fracción mínima en la que un fichero se irá descomponiendo para ir guardándolo repartidamente entre los discos.
¿Cómo se reparte la información?
Ya sea por software o hardware (una placa específica para llevar a cabo el RAID) en todos ellos, la información se troceará en función del block size o tamaño del sector mínimo. Un tamaño típico de block size es 64 KB.
Esto significa que la información se troceará en una unidad mínima de 64 KB entre discos.
Si un fichero PDF ocupa 1 MB exacto (mucho suponer que fuera así) serían 1.024 KB.
El ejemplo anterior era la representación del fichero “ideal”.
Prácticamente, NUNCA se dará esa condición.
¿Entonces, que pasa si el fichero ocupa 1024 KB en vez de 1024 KB?
En este caso, tendríamos nueve divisiones. Cinco al primer disco y cuatro al segundo disco:
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
64 KB disco 1 | Espacio real ocupado = 64 KB | ||
64 KB disco 2 | Espacio real ocupado = 64 KB | ||
Espacio total fichero | 1088 KB | – | – |
Espacio total usado | – | 1088 KB | – |
Espacio perdido | – | – | 63 KB |
Con la tabla anterior, podemos ver de forma rápida que en este caso (también un poco extremo) con un tamaño de 64 KB de sector, para un fichero que no aprovechase la totalidad del sector, estaríamos perdiendo capacidad de almacenamiento, ya que ese sector queda “reservado” para ese fichero y no se puede compartir.
Por tanto, si de los 64 KB por sector solo ocupamos uno o veinte de los sesenta y cuatro disponibles, el resto de espacio se “perderá” ya que no se podrá usar para otro fichero.
Otro ejemplo más real: Un archivo de texto (del Notepad) donde simplemente añadiéramos cuatro líneas de texto como el siguiente ejemplo ocuparía 0,1 KB (110 bytes)
Pero en el RAID 0, este fichero iría dentro de un disco ocupando 32 KB por lo que estaríamos desaprovechando mucho espacio.
La gente más avispada, pensará… “La solución entonces es hacer un block size muy pequeño (por ejemplo, de 1 KB) y así nos aseguramos que prácticamente no se perderá ningún fichero suelto.”
Esta afirmación es válida, pero nos encontraremos con un problema: el rendimiento del RAID.
Un tamaño de bloque muy pequeño, optimizará el espacio al máximo a costa de un rendimiento muy pobre, ya que todos los ficheros deberán fraccionarse en trozos muy pequeños para poder escribir, y a su vez, para poder leerlos.
Un fichero de 1.024 KB en un block size de 64 KB hace un total de 16 divisiones, mientras que el mismo fichero con un block size de 1 KB haría 1.000 divisiones.
Este proceso afectaría drásticamente al rendimiento del sistema de ficheros.
Si en un fichero de 1.024 KB usáramos un block size de 512 KB, solo haríamos dos divisiones e iría muy rápido. Pero si tuviéramos que guardar ficheros de texto creados con el Notepad, pese a una velocidad muy rápida, la pérdida de capacidad sería muy notable y conforme se fuera llenando el disco, con muy pocos ficheros el espacio se agotaría (un fichero de 1 KB del Notepad, realmente ocuparía 512 KB).
Llegados a este punto, ¿Qué block size debo escoger?
Aunque en los ejemplos anteriores siempre hemos hablado de RAID 0, esta respuesta sirve para cualquier RAID.
El block size debe ir en consonancia con la información que preveamos que se guardará en el RAID.
Ejemplos:
- Si el uso que se va a dar al RAID es ofimática (Word, Excel, PDF) un RAID con un block size de 64 KB es un formato adecuado.
- Si el uso que se va a dar al RAID es repositorio de ficheros pequeños (como block de notas, ficheros de programación tipo C o Visual Basic, etc) un RAID con un block size de 4 KB sería un formato adecuado.
- Si el uso que se va a dar al RAID es multimedia a nivel de usuario (fotografías y videos realizados por cámaras y/o móviles sin una calidad extrema) un RAID con un block size de 128 KB o incluso 256 KB es un formato adecuado. Hoy en día las fotografías (y ya no digamos los videos) realizados por un móvil o cámara superan con creces los 4 o 5 MB de capacidad.
- Si el uso que se va a dar al RAID es íntegramente para trabajar en formato de alta definición (Ficheros RAW y 4K en adelante) un RAID con un block size de 512 o 1024 KB es un formato adecuado, dado que los ficheros serán grandes (por ejemplo, 2 o 3 GB).
Paridad, ¿Qué es y para qué sirve?
OPERACIÓN | A=2 | B=5 | C=9 | D=4 | RESULTADO |
A + B + C + D = PARIDAD | PARIDAD = 20 | ||||
A = PARIDAD – D – B – C | A = 2 | ||||
B = PARIDAD – D – A – C | B = 5 | ||||
C = PARIDAD – D – A – B | C = 9 | ||||
D = PARIDAD – A – B – C | D = 4 |
El ejemplo anterior es una forma muy simple de entender la paridad.
Imaginemos que tenemos 4 discos en total formando un RAID. En este ejemplo será un RAID 5.
Supongamos que hacemos una suma de todo el contenido del disco A obteniendo como resultado el número 2. Realizando la misma operación para el B obtenemos 5.
Con C obtenemos 9 y con D obtenemos 4.
Siguiendo la fórmula matemática anteriormente descrita obtendremos que la suma de A + B + C + D = 20.
Si fallase el disco B (rotura de la unidad lectora, desincronización, superficie degradada,etc.), podemos sustituir el disco dañado y gracias a la operación matemática, volveríamos a tener el contenido perdido del disco B.
Exactamente igual, pasaría con el disco A, C o D.
Además, mientras se reconstruye de nuevo el disco, el RAID seguiría funcionando de cara al usuario final con un cierto retraso en la entrega y grabación de datos.
Esto es posible gracias a que tanto el software como las controladoras de hardware que realizan los RAID pueden realizar la operación matemática para obtener el resultado de B y poder mostrar los datos.
¿Realmente como cómo funciona la paridad en un RAID?
Como hemos hablado anteriormente, la información se escribe en bloques dentro de los discos.
Si cada bloque (A1 A2 A3…) es de 64 KB formaría un conjunto de 256 KB. denominadostripe.
Imaginando que cada bloque que se escribe en los discos tiene una numeración como la tabla de abajo que permita identificar a que colectivo pertenece (stripe) en todo momento podremos recuperar la información perdida del disco.
DISCO 1 | DISCO 2 | DISCO 3 | DISCO 4 |
A1 | A2 | A3 | AP |
B1 | B2 | BP | B3 |
C1 | CP | C3 | 4C |
DP | D2 | D3 | D4 |
DISCO 1 | DISCO 2 | DISCO 3 | DISCO 4 |
A1 | A2 | A3 | AP |
B1 | B2 | B3 | BP |
C1 | C2 | C3 | CP |
D1 | D2 | D3 | DP |
En este caso, el cálculo de la paridad solo se escribe en un disco. En vez de estar repartida en varios discos, se escribe el resultado en uno.
Aclarado el funcionamiento, es importante saber que la paridad en un RAID 5 realmente se calcula mediante XOR.
XOR es una operación matemática que determina si el resultado es verdadero o falso.
ENTRADA | SALIDA | |
A | B | A XOR B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Ejemplo de cálculo de paridad para un RAID 5 de 5 discos:
DISCO | STRIPE |
Disco 1:__(Datos) | 00101010 |
Disco 2:__(Datos) | 10001110 |
Disco 3:__(Datos) | 11110111 |
Disco 4:__(Datos) | 10110101 |
Disco 5:__(Paridad) | xxxxxx |
00101010 XOR 10001110 XOR 11110111 XOR 10110101 = 11100110
El disco 5 daría como resultado 11100110
Si ahora fallase el disco 1 haríamos la siguiente operación:
10001110 XOR 11110111 XOR 10110101 XOR 11100110 = 00101010
Y esta operación nos devuelve el trozo dentro del stripe que pertenece al disco 1.
No obstante, en un RAID 6, por ejemplo, se usa otro tipo: Reed-Solomon.
¿Qué tipos de RAID existen y cómo funcionan?
Para responder a esta pregunta, debemos tener en cuenta cual será el uso de ese RAID, de la misma manera que hay que tener presente lo comentado anteriormente (el block size).
El sistema RAID puede configurarse de diversas formas según el número de discos que lo conformen y las necesidades como usuarios que necesitemos.
¿Cómo clasificaríamos las necesidades?
Capacidad del conjunto, rendimiento, tolerancia a fallos y coste económico.
Obviaremos RAIDS obsoletos hoy en día ya que su uso o implementación es muy baja o prácticamente inexistente, de la misma manera que los muy complejos ya que aquí buscamos dar una visión global del funcionamiento del RAID.
Para la realización de un RAID 0 se necesita mínimamente dos discos.
RAID 0
Este tipo de RAID suma la totalidad de los tamaños de los discos formando una sola unidad.
El RAID 0 usa el formato de striping y realiza un reparto equitativo de datos entre los discos. De forma genérica podríamos decir que, si hay dos discos formando un RAID 0, el 50% de la información iría a un disco y el otro 50% al otro disco. Si hubiera 3 discos, sería un 33,33% a cada uno de ellos.
El RAID 0 ofrece un el mejor rendimiento en cuanto a capacidad de almacenamiento al sumar el espacio disponible de las unidades.
El rendimiento de lectura y escritura de datos es alto (puede leer secuencial y aleatoriamente)
Inconvenientes: No hay redundancia ni tolerancia a fallos, por lo que cualquier fallo o avería en uno de los discos conlleva una pérdida total de los datos.
Recomendado: Si priorizamos el rendimiento del sistema y el acceso a la información (diseño gráfico, en 3D y edición de video). Ofrece un alto rendimiento, especialmente para archivos grandes.
En caso de pérdida de uno o varios disco(s), solo será posible recuperar los ficheros que ocupen el tamaño del block size (o menos) en los discos que sigan operativos.
RAID 1
Para la realización de un RAID 1 se necesita mínimamente dos discos.
Este tipo de RAID suma la totalidad de los tamaños de los discos formando una sola unidad, independientemente del número de discos que lo formen.
Es decir 10 discos de 2 TB en formato RAID 1 mostrará una única unidad de 2 TB. En el supuesto caso de tener 9 discos de 2 TB y uno de 1,5 TB, la unidad lógica que se mostrará será de 1,5 TB perdiendo el 0,5 TB en el resto de discos.
Almacena todos los datos por duplicado. No tiene striping, ni block size, ya que el RAID trabaja con el fichero entero duplicando la información en todas las unidades del conjunto del RAID.
Ventajas: El RAID 1 ofrece redundancia completa. La información se duplica a lo largo de todos los discos. Permite una lectura rápida de la información, pero dependiendo del hardware usado y del número de discos, la velocidad de escritura puede ser baja.
Desventajas: El coste es elevado, ya que se desperdicia capacidad de almacenamiento.
RAID 5
Para la realización de un RAID 5 se necesita mínimamente tres discos.
Este tipo de RAID suma la totalidad de los tamaños de los discos menos uno ( N-1, donde N es el número total de discos).
En caso de disponer discos de diferentes tamaños, siempre se tomará como referencia el más pequeño, desechando el resto de espacio del conjunto del RAID. Teóricamente un RAID 5 no tiene límite de discos, pero lo más habitual, es limitar el uso de unidades.
Como se ha comentado anteriormente, el RAID 5 utiliza block size y paridad.
La información se guarda en stripes siguiendo el tamaño del block size y se realiza un cálculo de paridad. La paridad puede ser distribuida entre todos los discos, o bien almacenarse únicamente en un disco. En cualquier caso, permite siempre la tolerancia a fallo de una unidad.
Cuando se realiza la lectura del stripe, no se lee el CRC para evitar cargas innecesarias. Solo se realizará la lectura del CRC y su modificación en el caso que haya algún bloque dentro del stripe que se haya modificado.
Por otro lado, cuando un disco falla, los bloques de paridad de los discos funcionales se combinan con los datos mediante las operaciones matemáticas antes descritas (típicamente XOR) para recrear los datos al vuelo.
Ventajas: Raid 5 permite almacenar a la vez que proporciona tolerancia a fallos con un rendimiento adecuado. Equilibrio entre seguridad, tolerancia a fallos y rendimiento.
Permite el fallo de una unidad.
En el momento que sea reemplazada, se “reconstruirá” automáticamente con la información del resto de discos.
Como sistema de almacenamiento de datos, es uno de los más rentables y eficientes.
Desventajas: Pérdida de rendimiento en escritura cuando los bloques sean muy pequeños, ya que se debe realizar el cálculo de paridad constantemente.
En el caso de fallo de un disco y substitución puede llevar mucho tiempo reconstruir los datos debido a la paridad.
Durante la reconstrucción del disco que ha fallado, puede ser que otras unidades también fallen, debido a la carga de trabajo que supone la reconstrucción del disco sustituido.
RAID 6
Para la realización de un RAID 6 se necesitan como mínimo 4 discos.
La principal diferencia es la tolerancia a fallos. Pueden fallar simultáneamente dos unidades, aunque penaliza el espacio disponible, ya que el número total de espacio disponible será el equivalente al número de unidades menos dos (N-2).
A diferencia de RAID 5, se necesita hardware específico para la gestión del RAID.
Proporciona una elevada redundancia de datos y rendimiento de lectura.
El rendimiento en tareas de lectura es óptimo, pero el de escritura es menor que el de Raid 5 debido a los dos cálculos de paridad.
La paridad se calcula en base al código Reed-Solomon.
Ventajas: Las mismas que un RAID 5 añadiendo un disco más para tolerancia a fallos.
Desventajas: Velocidad de escritura más lenta en según qué casos. Mayor coste económico (Hardware).
RAID 10 (RAID 1+0)
Para la realización de un RAID 10 se necesitan un mínimo de cuatro discos.
La estructura de un RAID 1+0 o RAID 10 es la siguiente: Dos discos forman un RAID 1 y los otros dos discos forman otro RAID 1. De los dos volúmenes resultantes, se realiza un RAID 0.
Ofrece un alto rendimiento de lectura (gracias al Raid 0).
A su vez, los dos conjuntos de RAID 1 proporcionan seguridad y tolerancia a fallos. Permite que se puedan romper dos unidades siempre que no sean del mismo grupo (es decir, que las dos unidades que forman el RAID 1 se rompan simultáneamente)
Ventajas: Rendimiento.
Desventajas: Coste por hardware.
RAID 0+1
Para la realización de un RAID 0+1 se necesitan un mínimo de cuatro discos.
A diferencia del RAID 1+0, dos discos forman un RAID 0 y los otros dos discos forman otro RAID 0. Los dos volúmenes resultantes, forman un RAID 1. Es una configuración menos segura que el RAID 1+0 ya que no permite dos fallos simultáneos.
RAID 50 (RAID 5+0)
Para la realización de un RAID 50 se necesitan un mínimo de seis discos.
La estructura del RAID 50 es la siguiente:
Se realiza un RAID 5 sobre tres unidades y otro RAID 5 sobre las otras tres unidades restantes (y así con el resto de conjuntos, aunque puede haber agrupaciones de 4 y 4 o 5 y 5, etc.). De los dos o más volúmenes resultantes se forma un RAID 0.
Permite tolerancia a fallos de 1 disco simultáneo por cada RAID 5 que haya en el conjunto.
Ventajas:Sistema robusto y buen rendimiento de lectura en comparación a un RAID 5
Desventajas: Tiempo de reconstrucción en caso de fallo elevado. Coste de hardware.
RAID 60 (RAID 6+0)
Para la realización de un RAID 60 se necesitan un mínimo de ocho discos.
La estructura del RAID 60 es la siguiente:
Se realiza un RAID 6 sobre cuatro unidades y otro RAID 6 sobre las otras cuatro unidades restantes (Y así con el resto de conjuntos, aunque puede haber agrupaciones de 4 y 4 o 5 y 5, etc.). De los dos o más volúmenes resultantes se forma un RAID 0.
Ventajas: Sistema robusto a pérdida de datos (tolerancia a 4 fallos de discos)
Desventajas: Rendimiento bajo en escritura y coste de hardware.
¿Un sistema RAID sustituye a las copias de seguridad?
No, encarecidamente te pedimos que sigas haciendo copias de seguridad o backups.
Un RAID te ayudará a tener acceso constante a tus datos en tiempo real en caso de que uno de los discos duros falle (siempre que no sea un RAID 0), cosa que una copia de seguridad externa no puede hacer.
Pero un RAID no puede protegerte frente a otras situaciones que pueden poner en peligro tus datos.
Por ejemplo: los datos estarán almacenados en un disco duro físico conectado a tu servidor o dispositivo. En caso de quedarte sin luz, no podrás acceder a los mismos, mientras que, si tienes una copia en la nube, podrás acceder a ellos desde cualquier dispositivo en otro lugar.
Por no hablar de que haya un incendio o algo similar que acabe irremediablemente con tus datos si no tienes una copia externa bien lejos de los discos duros.
Además, hay ciertos ataques cibernéticos (lo que llamamos virus) que pueden llegar a poner en peligro los datos del RAID, esto hará que tengas que recurrir a la copia de seguridad que tendrás en otro sitio, desconectado de tu dispositivo.
¿Qué necesito para utilizar un RAID?
Este sistema se utiliza sobre todo en empresas que utilizan grandes servidores de datos.
Pero también puedes utilizarlo sin tener acceso a un servidor.
Necesitarás una controladora de RAID que puede ser de hardware o de software.
Es muy probable que tu ordenador (a menos que tenga como 10 años) cuente con una controladora de RAID (tanto por software como hardware), yun número determinado de discos duros (dependiendo de la tipología del RAID).
Hay personas que prefieren mezclar las marcas de discos en el RAID para minimizar los posibles fallos simultáneos en los discos. Esto ya es un tema un tanto personal o de percepción de cada uno.
Para casa o pequeñas empresas disponemos también de dispositivos NAS tipo QNAP o SYNOLOGY sistemas basados en sistemas RAID 0, RAID 1 o RAID 5, fáciles de configurar y conectividad de RED.
Nos despedimos por hoy, no sin antes recordarte que somos una empresa de recuperación de datos con laboratorio propio.
Por si ni el RAID ni la copia de seguridad ha evitado que pierdas algunos de los datos tan valiosos para tu empresa o tu familia.
Cuenta con nosotros.