Crear un volumen RAID-5 con tres discos en Ubuntu 18.04 LTS

Publicado por P. Ruiz en

En otros artículos nuestros, ya te hemos hablado de RAID (Redundant Array of Independent Disks), un método de administración del almacenamiento en disco, que puede usar diferentes dispositivos de almacenamiento (normalmente discos duros, aunque también pueden ser dispositivos SSD) y manejarlos como si se tratara de un volumen único.

De hecho, ya hemos publicado dos artículos donde te explicamos cómo obtener implementaciones RAID-0 y RAID-1:

  • Crear un volumen RAID-0 con dos discos en Ubuntu 18.04 LTS te permite optimizar la capacidad de almacenamiento, utilizando todo el espacio disponible para el almacenamiento de información. El inconveniente es que, si falla un dispositivo, habremos perdido la información contenida en todo el volumen.

  • Por el contrario, en Crear un volumen RAID-1 con dos discos en Ubuntu 18.04 LTS se prima la fiabilidad, porque la información se almacena por duplicado en ambos discos. De ese modo, un disco actúa como espejo del otro y la información se mantiene a salvo aunque falle uno de los dispositivos.

RAID-5 puede suponer un termino medio entre los dos métodos anteriores. A diferencia de estos, para implementarlo necesitaremos un mínimo de tres discos. El tercero actuaría como disco de paridad, donde almacenar información que verifique la integridad de los datos contenidos en los otros dos.

Sin embargo, para evitar que este disco se convierta en un cuello de botella en los accesos a los datos, esta información de control se almacena de forma rotativa entre los discos que forman el conjunto. Algo parecido a lo que muestra esta imagen:

Esquema de RAID 5

Si comparas este artículo con los anteriores, verás que son muy parecidos. Probablemente, podríamos haber hecho referencia a ellos, e incluir aquí únicamente las diferencias. No obstante, creo que es más didáctico, y más fácil de seguir, si incluimos de nuevo el proceso de implementación completo.

Las ventajas que obtenemos con respecto a RAID-0 son:

  • Una mayor fiabilidad, porque tenemos información que nos permitirá recuperar los datos.

  • Una mayor velocidad de lectura, porque podemos obtener los datos del disco que ofrezca la mayor velocidad en cada momento. También podremos realizar lecturas en paralelo de ambos discos.

  • Se puede seguir accediendo a los datos aunque uno de los discos haya dejado de estar disponible.

Con respecto a RAID-1, la ventaja evidente es su menor coste. Además, esta ventaja se incrementa cuando aumentamos el número de discos implicados.

El inconveniente es, precisamente, que son necesarios más discos (como mínimo 3).

Aunque en el artículo no vamos a tocar el disco principal, y suponemos que los discos nuevos no tienen información importante, siempre debes asegurarte de tener los datos a salvo, para evitar que un error te haga perderlos. Es por esto que te recomiendo hacer una copia de seguridad de tus datos antes de comenzar.

Para comenzar, supondremos que la parte hardware está resuelta. Es decir, que ya has abierto el ordenador y has conectado físicamente los dispositivos al equipo.

Comprobar que los discos están accesibles

Después de resolver la parte física, iniciaremos el sistema y nos aseguraremos de que los discos se han detectado correctamente. Algo tan sencillo como abrir una ventana de terminal y ejecutar el siguiente comando, que nos aporta información sobre los dispositivos de almacenamiento de bloques disponibles:

lsblk -fm

El argumento f nos ofrece información sobre los sistemas de archivos instalados y el argumento m nos informa de quién es su propietario, su tamaño, etc.

La forma más rápida de abrir la ventana de terminal consiste en pulsar la combinación de teclas Alt + Control + T.

Comprobamos que, además del disco principal (sda), disponemos de tres discos más (sdb, sdc y sdd) con el mismo tamaño.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-001

Lo normal es que, una vez conectado físicamente el disco al ordenador, al arrancarlo por primera vez, la BIOS lo detecte automáticamente. Si no ha sido así, deberás recurrir a la documentación de tu ordenador para habilitar la detección automática de dispositivos.

Instalar la herramienta de administración de RAID

Si la detección ha sido correcta, estaremos listos para comenzar, aunque deberemos instalar mdadm (multiple device administrator), que es la herramienta que nos permitirá configurar y administrar dispositivos RAID en Ubuntu.

El paquete mdadm tiene algunas dependencias, pero las resolveremos todas escribiendo la siguiente orden en la terminal:

sudo apt install mdadm rsync initramfs-tools -y

Con el argumento y le decimos al comando apt que, para todas las preguntas que nos realice, la respuesta será afirmativa. Así, evitamos que nos pregunte más adelante.

Al ejecutar el comando, Ubuntu nos solicita la contraseña de administración.

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-002

Poco después, la instalación habrá terminado.

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-003

Crear particiones para los discos

El siguiente paso consistirá en crear una partición para cada uno de los discos implicados. En cada disco, la partición ocupará todo el espacio disponible.

Para lograrlo, usaremos el comando fdisk con privilegios de administración:

sudo fdisk /dev/sdb

Solo tendremos que volver a autenticarnos si han pasado más de 15 minutos desde el paso anterior, o si hemos abierto una ventana de terminal diferente:

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-004

El comando fdisk actúa de forma interactiva, por lo que nos irá pidiendo información y nosotros deberemos ir completándola. Vayamos paso a paso:

  1. La primera vez que nos pide una orden, pulsamos la tecla n, que significa que queremos crear una nueva partición.

  2. A continuación, deberemos indicar que la partición es primaria. Por lo tanto, siguiendo las indicaciones del propio comando, pulsaremos la tecla p.

  3. Indicaremos que se trata de la primera partición del dispositivo, para lo que pulsaremos la tecla 1.

  4. Después, deberemos indicar dónde comienza la partición (primer sector) y dónde termina (último sector). Como queremos ocupar todo el dispositivo, dejamos los valores predeterminados. Es decir, nos limitamos a pulsar la tecla Intro dos veces.

Con esto habremos definido la partición, pero, antes de dar por concluido el trabajo de fdisk, debemos indicar el tipo de partición del que se trata:

  1. Como respuesta a la siguiente solicitud de una orden, pulsamos la tecla t, para indicar que queremos establecer el tipo de partición.

  2. A continuación, deberíamos indicar el número de la partición sobre la que actuaremos, pero como solo existe una, el comando asume automáticamente el valor 1.

  3. Por último, escribimos las letras fd, que indican que se trata de una partición RAID.

    Aunque no esté relacionado directamente con este artículo, estos son algunos de los tipos de partición más utilizados en fdisk:

    Tipos de partición

A continuación, usamos la orden p, para conseguir que fdisk nos muestre un resumen de lo que acabamos de hacer y, si todo es correcto, escribimos la orden w, para guardar los cambios.

Si hubiesen existido particiones previas, podríamos haberlas eliminado con la orden d, seguida del número de partición. De forma parecida a como las hemos creado más arriba.

Si seguimos los pasos anteriores, el aspecto de tu pantalla deberá ser parecido a este:

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-005

Para continuar, aplicaremos los mismos cambios sobre la segunda unidad de disco, por lo que escribiremos una nueva orden como esta:

sudo fdisk /dev/sdc

… Y seguiremos los mismos pasos del apartado anterior

De nuevo, el aspecto de tu pantalla deberá ser parecido al de la imagen:

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-006

Y, finalmente, volveremos a aplicar los mismos cambios sobre la segunda unidad de disco, por lo que escribiremos una nueva orden como esta:

sudo fdisk /dev/sdd

Cambios aplicados sobre el tercer disco

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-002

Una característica de RAID-5 es que utiliza particiones del mismo tamaño. Si tus discos no son iguales, asegúrate de que las particiones sí lo sean.

De esta forma, podrás utilizar el espacio sobrante en la unidad de mayor tamaño, creando una partición independiente del volumen RAID.

Después de esto, puedes volver a utilizar lsblk para comprobar la nueva estructura:

lsblk -fm

Así, comprobamos que ya existen las particiones

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-003

Crear el nuevo volumen RAID 5

Si todo lo anterior es correcto, estaremos listos para crear el nuevo volumen RAID-5. Lo conseguiremos usando el siguiente comando:

sudo mdadm -C /dev/md0 -l raid5 -n 3 /dev/sd[b-d]1

Donde el argumento -C significa crear y va seguido del archivo de dispositivo que utilizará. El argumento -l indica el nivel, que en este caso debe ser raid5 (o striping with distributed parity), pero para otros niveles RAID usaremos raid0, raid1, raid4, etc. El argumento -n indica el número de dispositivos implicados. Y al final de la línea, debemos identificar dichos dispositivos.

Escribimos la orden y pulsamos la tecla Intro.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-004

Poco después, el comando habrá terminado su trabajo.

… y el array de discos habrá sido iniciado.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-005

Para asegurarnos de que todo es correcto, escribimos el siguiente comando.

sudo mdadm --detail /dev/md0

Escribimos, o copiamos, el comando en la ventana de Terminal.

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-010

Con esto nos aseguramos de que el nivel RAID creado es correcto y obtenemos el tamaño completo del volumen, su nuevo UUID, etc.

Información sobre el array de discos.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-006

Formatear el nuevo volumen

Aunque ya casi hemos terminado, aún falta un detalle importante: darle formato al volumen.

Como pretendemos utilizar el sistema de archivos ext4, usaremos el comando mkfs.ext4:

sudo mkfs.ext4 /dev/md0

De nuevo, escribimos, o copiamos, el comando en la ventana de Terminal.

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-012

Poco después, el formateo habrá concluido…

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-007

Reiniciar el equipo

Para comprobar que todo es correcto, solo tenemos que reiniciar el equipo. Algo tan sencillo como recurrir a la siguiente orden:

sudo reboot

Aunque si prefieres la interfaz gráfica, también puedes hacer clic en el área de notificaciones.

… Y hacer clic sobre el botón Apagar (Apagar).

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-014

Cuando haya terminado el reinicio, solo tendrás que abrir el explorador de archivos y, en el panel izquierdo, elegir Otras ubicaciones. Verás que, en el panel derecho, aparece ya el nuevo volumen, con una capacidad equivalente a dos de los discos implicados. No olvides que un tercio de la capacidad se utilizará para la información de paridad..

Para que el siguiente apartado funcione, debes hacer doble clic sobre él. Así te aseguras de que el volumen se monta.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-008

Cambiar los permisos del nuevo volumen

Con el paso anterior, podemos pensar que ya hemos terminado la tarea, pero aún queda un pequeño problema que debemos solventar: el propietario actual del dispositivo es root y solo él puede crear nuevos archivos en su interior.

Para solucionarlo, solo tenemos que cambiar los permisos sobre su carpeta de montaje. Algo que podríamos hacer desde la terminal, pero que resultará más sencillo si utilizamos la interfaz gráfica. Por ello, comenzaremos por abrir el explorador de archivos, con privilegios de administrador, en la carpeta donde se habrá montado el dispositivo:

sudo nautilus /media/usuario

Recuerda cambiar la palabra usuario por el nombre de la cuenta que estés usando en tu equipo.

Escribimos el comando y la contraseña de administración.

Crear-un-volumen-RAID-0-con-dos-discos-en-Ubuntu-18-04-LTS-016

Cuando se abra la ventana del explorador de archivos, comprobaremos que en su interior aparece la carpeta que el sistema ha utilizado para montar el nuevo volumen.

Hacemos clic sobre ella, con el botón derecho del ratón.

… Y en el menú de contexto que aparece, elegimos Propiedades.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-009

Una vez que se abra la ventana Propiedades de la carpeta, hacemos clic sobre la solapa Permisos.

En ella, nos aseguramos de que las listas de Acceso del Propietario, del Grupo y de Otros, contengan el valor Crear y eliminar archivos.

Crear-un-volumen-RAID-5-con-tres-discos-en-Ubuntu-18-04-LTS-010

Una vez conseguido, estaremos listos para cerrar todas las ventanas y utilizar el nuevo volumen con normalidad.

Una última observación

Una vez que tenemos el volumen completamente funcional, podremos montarlo de forma definitiva en cualquier punto del árbol de directorios principal. Por ejemplo, podrías destinarlo a contener toda la información de los perfiles de usuario, tal y como te explicábamos en el artículo Mover la carpeta /home a un disco nuevo en Ubuntu 18.04 LTS.

Y esto es todo por el momento. Espero que te resulte útil.