En este artículo, exploraremos cómo utilizar RAID en combinación con FreeNAS y Windows Server para potenciar la seguridad y el rendimiento de tu almacenamiento de datos. Además, aprenderemos sobre los diferentes tipos de RAID.
¿Qué es RAID?
RAID, cuyas siglas significan Redundant Array of Independent Disks (Conjunto Redundante de Discos Independientes), es una tecnología que surgió con el objetivo de mejorar la confiabilidad, el rendimiento y la capacidad de almacenamiento de los discos duros. A medida que la cantidad de datos y la demanda de acceso a ellos aumentaban, se hizo evidente la necesidad de encontrar soluciones que pudieran hacer frente a estos desafíos.
El concepto de RAID fue propuesto por primera vez por David Patterson, Garth Gibson y Randy Katz en un artículo publicado en 1987. Su idea era utilizar varios discos duros en conjunto para lograr mejoras tanto en el rendimiento como en la tolerancia a fallos. A lo largo de los años, RAID ha evolucionado y se han desarrollado diferentes niveles o configuraciones para adaptarse a diversas necesidades.
Existen varias razones por las cuales necesitamos RAID en nuestros sistemas de almacenamiento:
- Confiabilidad: si un disco duro falla, los datos todavía están disponibles en otros discos del conjunto.
- Rendimiento: al distribuir los datos en varios discos y permitir el acceso simultáneo a ellos, RAID puede acelerar el acceso a los archivos y mejorar la eficiencia en aplicaciones que requieren un alto rendimiento.
- Capacidad: al combinar varios discos en un conjunto RAID, se puede aumentar la capacidad de almacenamiento total.
- Tolerancia a fallos: dependiendo del nivel de RAID utilizado, el sistema puede soportar la falla de uno o incluso varios discos sin perder datos. Esta capacidad de recuperación y protección de datos es esencial en entornos donde la disponibilidad y la integridad de la información son fundamentales.
Tipos o configuraciones o niveles RAID
RAID 0 o data striping
RAID 0 es uno de los tipos de RAID más conocidos y utilizados. También se le conoce como «striping» debido a su técnica de distribuir los datos en bloques a través de varios discos duros. Este tipo de configuración RAID se enfoca en mejorar el rendimiento y la velocidad de lectura/escritura, aprovechando la capacidad de varios discos para trabajar de manera simultánea.
En RAID 0, los datos se dividen en bloques y se distribuyen de manera secuencial entre los discos del conjunto. Esto significa que cada bloque de datos se almacena en un disco diferente. Como resultado, la carga de trabajo se distribuye entre los discos, lo que permite un acceso más rápido a los datos y una mayor velocidad de transferencia.
Una de las ventajas principales de RAID 0 es su notable mejora en el rendimiento. Al tener los datos divididos y distribuidos en varios discos, se pueden realizar operaciones de lectura y escritura de manera paralela, lo que acelera significativamente los tiempos de acceso a los archivos. Esto es especialmente beneficioso en tareas que requieren un alto rendimiento, como la edición de video, el renderizado de gráficos 3D o la manipulación de grandes cantidades de datos.
Sin embargo, es importante tener en cuenta que RAID 0 no ofrece redundancia ni tolerancia a fallos. Al no haber duplicación ni información de paridad, si uno de los discos falla, se pierden todos los datos almacenados en el conjunto RAID. Esta falta de redundancia es un riesgo importante a considerar al utilizar RAID 0, ya que la pérdida de un solo disco puede ser catastrófica en términos de la integridad de los datos.
Además, es esencial destacar que RAID 0 no aumenta la capacidad total de almacenamiento. A diferencia de otros tipos de RAID que duplican o calculan información de paridad, RAID 0 se enfoca únicamente en el rendimiento, distribuyendo los datos sin ofrecer ninguna redundancia. Por lo tanto, la capacidad del conjunto RAID 0 es igual a la suma de las capacidades de los discos individuales.
RAID 1 o data mirroring
RAID 1 es uno de los niveles de RAID más simples y comunes. También se conoce como «espejo» (mirroring) debido a su técnica de duplicación de datos. En esta configuración, dos discos duros idénticos se utilizan para almacenar los mismos datos de manera simultánea.
La principal característica de RAID 1 es la redundancia de datos. Cada dato se escribe en ambos discos del conjunto, lo que significa que si uno de los discos falla, los datos todavía estarán disponibles en el otro disco. Esta duplicación de datos brinda una mayor protección contra la pérdida de información debido a fallas de hardware.
La principal ventaja de RAID 1 es su alta tolerancia a fallos. Si uno de los discos se avería, el sistema seguirá funcionando normalmente utilizando el otro disco sin pérdida de datos. Esto es especialmente importante en entornos donde la disponibilidad y la integridad de los datos son críticas, como servidores de archivos o bases de datos.
Además de la tolerancia a fallos, RAID 1 también ofrece ciertos beneficios en términos de rendimiento de lectura. Como los datos se almacenan en ambos discos, el sistema puede leerlos simultáneamente desde ambos discos, lo que aumenta la velocidad de acceso a los datos y mejora el rendimiento general de lectura.
Sin embargo, es importante tener en cuenta que RAID 1 no mejora el rendimiento de escritura y no aumenta la capacidad total de almacenamiento. La duplicación de datos implica que la capacidad de almacenamiento efectiva será igual a la capacidad de uno de los discos. Por ejemplo, si utilizas dos discos de 500 GB en RAID 1, solo podrás aprovechar 500 GB de capacidad total.
RAID 5 (conjunto dividido con paridad distribuida)
RAID 5 es otro nivel popular de RAID que combina tanto rendimiento como redundancia de datos. A diferencia de RAID 1, donde los datos se duplican completamente en varios discos, RAID 5 utiliza una técnica llamada «paridad distribuida» para lograr la redundancia de datos de manera más eficiente.
En RAID 5, los datos se distribuyen en bloques a través de al menos tres discos, y se calcula y se almacena la información de paridad correspondiente a esos bloques. La información de paridad se utiliza para reconstruir los datos en caso de que uno de los discos falle. La paridad distribuida significa que cada bloque de datos tiene su información de paridad distribuida entre los diferentes discos del conjunto.
La principal ventaja de RAID 5 es su alta capacidad de tolerancia a fallos y su rendimiento equilibrado. Si un disco falla, los datos se pueden reconstruir utilizando la información de paridad almacenada en los otros discos. Esta redundancia garantiza que no se pierdan datos y que el sistema siga funcionando normalmente incluso durante la reconstrucción del disco fallido.
En cuanto al rendimiento, RAID 5 ofrece una buena velocidad de lectura y escritura, ya que los datos se distribuyen y se pueden acceder simultáneamente desde varios discos. La información de paridad también se distribuye entre los discos, lo que ayuda a equilibrar la carga y mejorar la eficiencia en las operaciones de lectura y escritura.
Es importante tener en cuenta que RAID 5 requiere al menos tres discos para funcionar correctamente. La capacidad total del conjunto RAID será igual a la capacidad de todos los discos menos uno, ya que se utiliza para almacenar la información de paridad. Por ejemplo, en un conjunto RAID 5 con cuatro discos de 1 TB cada uno, la capacidad efectiva será de 3 TB.
Otros: RAID 2,3,4 y 6
Además de los niveles de RAID más comunes, como RAID 0, RAID 1 y RAID 5, existen otros tipos menos utilizados pero que aún tienen aplicaciones específicas. A continuación, te presentaré una descripción de los niveles RAID 2, RAID 3, RAID 4 y RAID 6:
RAID 2: utiliza un esquema de corrección de errores por bit para proporcionar redundancia de datos. Cada bit de datos se divide y se distribuye en varios discos, y se agrega un disco adicional llamado disco de paridad de corrección de errores. Aunque RAID 2 puede detectar y corregir errores, es un nivel de RAID poco común debido a la disponibilidad de tecnologías más eficientes y rápidas.
RAID 3: se basa en un esquema de paridad dedicada, donde los datos se dividen en bloques y se distribuyen en varios discos, al igual que en RAID 5. Sin embargo, a diferencia de RAID 5, RAID 3 utiliza un solo disco dedicado para almacenar la información de paridad. Esto significa que la información de paridad se encuentra en un disco separado, lo que puede limitar la eficiencia y el rendimiento de escritura, ya que todos los discos deben estar involucrados en las operaciones de escritura.
RAID 4: es similar a RAID 3, pero en lugar de distribuir la información de paridad en un solo disco, utiliza un disco dedicado para almacenar la paridad de todos los datos. Esto permite un mejor rendimiento en operaciones de lectura secuencial, ya que no se requiere acceder a múltiples discos para reconstruir los datos. Sin embargo, el rendimiento de escritura puede verse limitado debido a la necesidad de acceder al disco de paridad para cualquier operación de escritura en el conjunto RAID.
RAID 6: es una extensión de RAID 5 que ofrece una mayor capacidad de tolerancia a fallos. En RAID 6, se utiliza una técnica de paridad doble, lo que significa que se almacena información de paridad adicional en el conjunto. Esto permite que el sistema siga funcionando correctamente incluso si dos discos fallan simultáneamente. RAID 6 ofrece una mayor protección de datos en comparación con RAID 5, pero puede requerir una mayor cantidad de discos debido a la duplicación de información de paridad.
Cabe destacar que los niveles RAID mencionados anteriormente, como RAID 2, RAID 3, RAID 4 y RAID 6, son menos comunes en comparación con los niveles RAID más ampliamente utilizados. La elección del nivel de RAID dependerá de las necesidades y requisitos específicos de cada entorno de almacenamiento.
Anidación de niveles RAID
La anidación de niveles RAID, también conocida como RAID por niveles o RAID híbrido, es una técnica que combina múltiples niveles de RAID para aprovechar las ventajas individuales de cada uno de ellos. Esta combinación permite obtener un mayor rendimiento, una mayor capacidad de almacenamiento y una mayor tolerancia a fallos.
Existen diferentes configuraciones de anidación de niveles RAID, siendo las más comunes RAID 0+1 y RAID 1+0 (también conocido como RAID 10). A continuación, te explicaré brevemente cada una de estas configuraciones:
- RAID 0+1: se combina RAID 0 y RAID 1. En primer lugar, los discos se dividen en conjuntos RAID 0 para obtener un mayor rendimiento, ya que los datos se distribuyen entre varios discos. Luego, estos conjuntos RAID 0 se duplican mediante RAID 1 para lograr la redundancia de datos. Esto significa que cada disco de un conjunto RAID 0 tiene un espejo en otro conjunto RAID 0. RAID 0+1 ofrece una alta velocidad de lectura y escritura, así como una tolerancia a fallos mejorada al tener discos duplicados.
- RAID 1+0 (RAID 10): se combina RAID 1 y RAID 0. Primero, los discos se dividen en conjuntos RAID 1 para proporcionar redundancia de datos, ya que cada disco tiene un espejo en otro disco. Luego, se realiza una configuración RAID 0 utilizando los conjuntos RAID 1. Esto permite obtener un alto rendimiento al distribuir los datos entre los discos y una alta tolerancia a fallos al tener discos duplicados. RAID 10 es considerado uno de los niveles RAID más robustos y ampliamente utilizados para aplicaciones críticas que requieren alta disponibilidad y rendimiento.
La anidación de niveles RAID ofrece una combinación de las ventajas de los niveles RAID individuales, pero también presenta algunas consideraciones importantes. Requiere una mayor cantidad de discos en comparación con los niveles RAID individuales, lo que puede aumentar los costos y la complejidad de la configuración. Además, si un disco falla en un conjunto RAID, la reconstrucción del conjunto es más compleja debido a la presencia de múltiples niveles RAID.
Sin embargo, a pesar de estas consideraciones, la anidación de niveles RAID puede proporcionar una solución eficiente y confiable para entornos que requieren tanto rendimiento como redundancia de datos. Es importante evaluar cuidadosamente las necesidades y requisitos específicos del sistema antes de implementar una configuración de anidación de niveles RAID, para garantizar que se satisfagan de manera óptima las demandas de rendimiento, capacidad y tolerancia a fallos.
RAID por Software
El RAID por software es una alternativa al RAID por hardware, en la cual la funcionalidad del RAID se implementa a través de software en lugar de requerir controladoras RAID dedicadas. En esta configuración, el sistema operativo se encarga de administrar y controlar las operaciones RAID sin la necesidad de hardware adicional.
Una de las ventajas del RAID por software es su accesibilidad y facilidad de implementación. La mayoría de los sistemas operativos modernos, como Windows, macOS y Linux, incluyen funciones y utilidades nativas para configurar y administrar el RAID por software. Esto significa que no es necesario adquirir hardware adicional ni depender de controladoras RAID específicas, lo que puede resultar en un ahorro económico.
Otra ventaja importante del RAID por software es su flexibilidad. Permite la configuración de diferentes niveles de RAID, como RAID 0, RAID 1, RAID 5, entre otros, según las necesidades del usuario. Además, también es posible combinar varios discos en conjuntos RAID para obtener un mayor rendimiento o una mayor redundancia de datos.
El RAID por software también ofrece un buen rendimiento, especialmente en sistemas modernos con potentes procesadores y suficiente memoria RAM. A medida que los sistemas operativos y los controladores RAID por software han evolucionado, se ha mejorado el rendimiento y la eficiencia de las operaciones RAID, permitiendo un desempeño competitivo en comparación con el RAID por hardware.
Sin embargo, es importante mencionar que el RAID por software puede tener algunas limitaciones. En primer lugar, el rendimiento del RAID por software puede depender del rendimiento general del sistema, especialmente de la potencia de procesamiento y la cantidad de memoria RAM disponible. Además, la capacidad de recuperación en caso de fallo de disco puede ser más lenta que en el RAID por hardware, ya que depende de la capacidad de procesamiento del sistema operativo.
RAID 5 en FreeNAS
En la siguiente práctica vamos a realizar un estudio pormenorizado de FreeNAS. FreeNAS es un sistema operativo basado en FreeBSD que proporciona servicios de almacenamiento en red. NAS son las siglas en inglés de Almacenamiento Conectado en Red (Network Attached Storage).
¿Qué vamos a aprender con la siguiente práctica?
Aprenderemos a descargarnos la versión correcta de FreeNAS, a instalarlo en una máquina virtual y a configurarlo adecuadamente con un RAID5. También aprenderemos a compartir recursos vía Samba con usuario y clave para comprobar que la conectividad funciona correctamente.
Instalación
Lo primero que tenemos que hacer es descargar este sistema operativo así que nos vamos a la web de FreeNas y nos lo descargamos. Debemos destacar que esta descarga es totalmente libre, legal y gratuita. Lo descargamos teniendo en cuenta los requerimientos:
Ahora mediante VirtualBox creamos la máquina virtual con la ISO descargada.
Y tras esto, añadiremos una controladora SATA y varios discos duros:
En mi han sido 3 discos (1GB cada uno), ya que haremos un RAID5 o también llamado, RAID de paridad. La parte positiva de este raid es que si uno de los discos falla, no hay pérdida de datos. La parte negativa es que se pierde el tamaño útil de un disco.
Al lanzar la instalación, veremos esto (Seleccionamos la 1º opción):
Y tras esto nos indica que la instalación ha terminado, debemos sacar el CD y darle a «OK» para que reinicie.
Tras pinchar en «OK» nos muestra de nuevo la pantalla inicial de la instalación, lugar donde bajamos hasta la 4º opción donde indica «Shutdown System», para apagar la máquina virtual, extraemos el CD y arrancamos de nuevo la MV hasta que llega a esta pantalla:
Hay que tener en cuenta que yo tengo mi red en modo BRIDGE:
Ahora con la IP que nos muestra en la imagen, desde la web del Anfitrión accedemos al modo de administración NAS en modo gráfico:
Accedemos como root y la contraseña que hemos puesto antes en la instalación:
Creación de NAS en la interfaz web
Ahora nos vamos al apartado de Storage -> Pools para hacer el RAID:
Compartir la carpeta con Windows
En el apartado de Sharing la compartimos:
Y para acceder al recurso compartido lo hacemos desde el anfitrión de Windows:
Eliminación de disco
Eliminamos un disco para ver si falla nuestro RAID:
Ahora solo tenemos 2 discos, iniciamos el SO. Aparece que se ha degradado el RAID pero sigue funcionando:
RAID 5 y RAID 1 en Windows Server
El objetivo de la siguiente práctica es montar un RAID-5 y RAID-1 en Windows Server, para, a continuación, hacerlo fallar (mediante la extracción de uno de los discos que forman el RAID) y finalmente repararlo (incorporando un disco sustitutorio).
Nomenclatura entre Windows Server y RAID
Tipo Agrupamiento Disco | Disco Básico (particiones) | Disco Dinámico (volúmenes simples) | En Windows | Tipo REDUNDANCIA |
RAID 0 | NO | SÍ | Volumen seleccionado | NO |
RAID 1 | NO | SÍ | Volumen reflejado | SÍ |
RAID 5 | NO | SÍ | RAID 5 | SÍ |
Creación volúmenes
Añadimos 3 discos de 3 GB a la máquina de Windows Server:
Creamos un volumen RAID-4, le asignamos la letra «R» al mismo. Para ello vamos a Administración de discos -> botón derecho -> Nuevo volumen RAID-5.
Y el resultado es el siguiente:
Eliminación de disco
Ahora procederemos a eliminar un disco para comprobar que seguimos teniendo acceso a los archivos:
Nos dice que hay error de redundancia porque falta el disco 3. No obstante, los ficheros
siguen existiendo. Lo que podemos hacer es cerrar la máquina virtual y volver a crear el disco, y luego le damos a Reparar el volumen.
Mediante RAID-1
También lo podemos hacer con RAID 1 pero en este caso sería Nuevo volumen reflejado:
Pero en este caso si falla un disco, la unidad sigue existiendo en el segundo: