Ejercicio 0c - repaso Linux - RAID

% Title: RAID en Linux % Version: 1.2 % Author: Alejandro CastƔn Salinas % Email: acastan@xtec.cat


Este texto trata de resumir el proceso de creación de RAIDs software en Linux (Ubuntu 16.04) des de la línea de comandos, pero al final del documento dedico un apartado a la creación de RAID grÔficamente con un módulo de Webmin.

Donde digo ā€œdiscoā€ se podrĆ­a decir ā€œparticiónā€. En la creación de RAID por software en Linux no estamos obligados a utilizar discos enteros para el RAID. Podemos utilizar particiones para crear el RAID, mientras otras particiones del mismo disco se utilizan para otras cosas.

BibliografĆ­a que deberĆ­as leer:

{toc}


PREVIOS

Muchos de los comandos necesitarƔn permisos de administrador. Para no tener que recurrir a sudo en cada comando, cambiamos de usuario a administrador, pero deberemos tener cuidado con lo que hagamos:

$ sudo su

Necesitamos un nĆŗcleo que soporte RAID. Si hemos utilizado Ubuntu Server seguro que es asĆ­. Comprobemos si tiene los controladores instalados con:

# lsmod | grep raid

Si los controladores no estƔn cargados, instalamos los que necesitemos con:

# modprobe raid0
# modprobe raid1
# modprobe raid10
# modprobe raid456

Instalamos la herramienta de gestión de RAID, si fuera necesario:

El fichero de configuración del RAID estarÔ en /etc/mdadm/mdadm.conf

Y podremos consultar el estado del RAID visualizando el fichero /proc/mdstat

Estudia los diversos modos de operación de mdadm: crear, ensamblar, monitorizar, construir, crecer, manejar, varios.


PARTICIONAR LOS DISPOSITIVOS

Si el disco o partición ya se utilizó en otro RAID, entonces debemos sobreescribir el superbloque:

Se puede llegar a crear el RAID directamente sobre discos ā€œcrudosā€, sin particionar. Eso es poco recomendable, ya que serĆ” mĆ”s difĆ­cil cambiarlos en caso de fallo de disco. Lo mejor es particionar dejando ademĆ”s un pequeƱo espacio libre al final por el siguiente motivo:

ā€œWhen replacing a failed disk of a RAID, the new disk has to be exactly the same size as the failed disk or bigger, otherwise the array recreation process will not work. Even hard drives of the same manufacturer and model can have small size differences. By leaving a little space at the end of the disk unallocated one can compensate for the size differences between drives, which makes choosing a replacement drive model easier. Therefore, it is good practice to leave about 100 MB of unallocated space at the end of the disk.ā€

Crearemos la tabla de partición. Se recomienda GPT. Una vez particionado, como tipo de partición debemos asignarle el código FD00. Pero si habíamos escogido una tabla de particiones MBR, entonces al tipo de partición debemos asignarle el código 0xDA. Podemos crear particiones con

Si queremos comprobar que dispositivos tenemos:


CONSTRUIR EL RAID

He aquĆ­ unos ejemplos.

  • Ejemplo para construir un RAID0 con el segundo y tercer disco:

  • Ejemplo para construir un RAID1 con el segundo y tercer disco:

  • Ejemplo para construir un RAID5 con tres discos activos mĆ”s uno de repuesto:

  • Ejemplo para construir un RAID10 con dos dispositivos (far2arrow-up-right):

El RAID se crea como dispositivo virtual /dev/md0, ya ensamblado y preparado para usar. Podemos esperar a que mdadm sincronice el RAID, o comenzar a usarlo en modo degradado mientras mdadm lo sincroniza en segundo plano. Restaurar la paridad puede llevar mucho rato, pero puedes consultar el progreso con:

Una vez creado el RAID debemos guardar la configuración:

Puedes consultar información breve o detallada del RAID, respectivamente, con:


ENSAMBLAR Y UTILIZAR EL RAID

Para utilizar el RAID, siempre se debe ā€œensamblarā€ antes:

A continuación el RAID se debe formatear como cualquier otro disco:

Pero para el rendimiento óptimo del RAID, se debe crear con el tamaƱo de ā€œchunkā€ correcto, y se debe formatear calculando los tamaƱos de ā€œstripeā€ y ā€œstrideā€ correctos. Por favor, lee:

El tamaƱo del chunk escogido, lo puedes recordar con:

  • Ejemplo RAID0:

    HipotƩtico RAID0 compuesto por 2 discos fƭsicos. El tamaƱo de chunk es 64 KB y el tamaƱo de bloque es 4 KB. stride = tamaƱo chunk / tamaƱo bloque = 64/4 = 16 stripe = # discos fƭsicos de datos * stride = 2*16 = 32

  • Ejemplo RAID5:

    HipotƩtico RAID5 compuesto por 4 discos fƭsicos: 3 discos de datos y 1 disco de paridad 1. El tamaƱo de chunk es 512 KB y el tamaƱo de bloque es 4 KB. stride = tamaƱo chunk / tamaƱo bloque = 512/4 = 128 stripe = # discos fƭsicos de datos * stride = 3*128 = 384.

  • Ejemplo RAID10,far2:

    HipotƩtico RAID10 compuesto por 2 discos fƭsicos. A causa de las propiedades de RAID10 en far2 layout, ambos cuentan como discos de datos. El tamaƱo de chunk es 512 KB y el tamaƱo de bloque es 4 KB. stride = tamaƱo chunk / tamaƱo bloque = 512/4 = 128 stripe = # discos fƭsicos de datos * stride = 2*128 = 256

A continuación lo añadimos al sistema de ficheros, y probamos que monte:


QUITAR DISCOS DEL RAID

Para quitar un disco del RAID primero lo marcamos como defectuoso:

Y a continuación lo quitamos del RAID:

Si queremos quitarlo para siempre, por ejemplo para utilizarlo en otras cosas, ademƔs de los dos comandos anteriores tambiƩn eliminaremos el superbloque:

Para dejar de utilizar todo el RAID debemos:

  • Desmontar el RAID con: # umount /dev/md0

  • Parar el RAID con: # mdadm --stop /dev/md0

  • Repetir los tres comandos descritos al inicio de esta sección, para cada uno de los discos del RAID.

  • Borrar la configuración del RAID del fichero /etc/mdadm.conf

  • Si fuera necesario, borrar tambiĆ©n el punto de montaje del RAID del fichero /etc/fstab


AƑADIR DISCOS AL RAID

Se pueden aƱadir nuevos discos al RAID con mdadm sobre la marcha, sin parar el sistema ni el RAID. Debes particionar el nuevo disco con las mismas caracterƭsticas de los otros dispositivos que ya forman el RAID.

Suponiendo que el RAID ya estaba ensamblado y montado, aƱade el nuevo disco, visualiza el progreso, y compruƩbalo, respactivamente con:


INCREMENTAR EL TAMAƑO DEL RAID

If larger disks are installed in a RAID array or partition size has been increased, it may be desirable to increase the size of the RAID volume to fill the larger available space. This process may be begun by first following the above sections pertaining to replacing disks. Once the RAID volume has been rebuilt onto the larger disks it must be "grown" to fill the space.

Next, partitions present on the RAID volume /dev/md0 may need to be resized. See Partitioning for details. Finally, the filesystem on the above mentioned partition will need to be resized. If partitioning was performed with GParted this will be done automatically. If other tools were used, unmount and then resize the filesystem manually.


HERRAMIENTAS GRƁFICAS

El programa GParted tan sólo nos permite visualizar RAIDs, pero no crearlos.

El gestor de contenidos Webmin tiene un módulo de RAID. Mira como se instala y se utiliza:

Last updated