Convert RAID superblock from 0.9 to 1.0

1 08 2017

The kernel wiki have a section with some documentation about this process, but it’s a bit outdated. If you have mdadm-3.3 or newer (usually yes), is it possible to change the superblock in two steps. First get the devices information:

mdadm --detail /dev/md0

And do it:

mdadm --stop /dev/md0
mdadm --assemble /dev/md0 --update=metadata ...list.of.devices...

http://www.spinics.net/lists/raid/msg48367.html
https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

Advertisements




RAID 1 en Linux

16 04 2011

Para instalar un RAID 1 en un sistema linux, lo primero es que hay que hacer es instalar, al menos, un par de discos duros y crear una parición en cada uno, primaria, y que ocupe toda la capacidad de los mismos, formateando la partición como:
0xDA for non-fs data o Datos sin SF Opción que se puede especificar con la herramienta fdisk (tipo “da”).
Otros dicen que se debe crear como “0xFD for raid autodetect arrays”, pero como dicen en: <a https://raid.wiki.kernel.org/index.php/RAID_Boot

O en la página man de mdadm:
From the mdadm 2.6.8 man-page) When creating partition-based arrays using mdadm and version-1.x superblocks, the partition type should be set to 0xDA (non fs-data). This type selection allows for greater precision since using any other type [RAID auto-detect (0xFD) or a GNU/Linux partition (0x83)], might create problems in the event of array recovery through a live cdrom.

Deberemos instalar el paquete mdadm, en el proceso de instalación, nos pide confirmación para montar los dispositivos raid en el arranque y poder disponer de la partición boot en un raid, es recomendable acpetar los valores por defecto que lo habilitan.

Ahora ya se puede crear el dispositivo Raid:
# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1

Y seguidamente formatear el nuevo dispositivo con un sistema de archivos:
# mkfs.ext3 /dev/md0

Para montar el dispositivo y poder usarlo:
# mount /dev/md0 /mnt/raid

Es recomendable dejar especificado el punto de montaje en /etc/fstab para volver a tenerlo disponible tras reiniciar el equipo así como crear el archivo de configuración, ya que no se crea automáticamente:
# mdadm --detail --scan > /etc/mdadm/mdadm.conf

Si se rompe el sistema que contiene el raid, es posible cambiar los discos a otro equipo, los debería reconocer (que no montar) sin problemas, en el caso de tener dificultades y no se reconoce automáticamente el raid, con el siguiente comando se puede intentar arreglar.
# mdadm --assemble /dev/md0 /dev/hdb1 /dev/hdd1

Es recomendable rellenar el archivo de configuración de mdadm con la nueva información del dispositivo recién reconstruido:
# mdadm --detail --scan > /etc/mdadm/mdadm.conf

Si sólo se puede transferir a otro equipo un disco, no hay problema si lo reconoce automáticamente, después se seguirán los pasos anteriormente descritos para añadir otro disco al equipo y a su vez ampliar al Raid al estado original de dos discos, eso sí, habiéndole preparado con la misma partición en tamaño y el tipo 0xDA for non-fs data, paso que también hay que seguir si se rompe un disco y hay que remplazarlo:
# mdadm --add /dev/md0 /dev/hdc1

En unos minutos se acabará de reconstruir el raid por completo, pudiéndolo comprobar en:
# cat /proc/mdstat
# mdadm --detail /dev/md0
Importante no apagar el ordenador mientras dura el proceso.

Si se llegaría a autoinicializar con otro nombre, es posible cambiarlo:
# mdadm --stop /dev/md123
# mdadm --assemble /dev/md0

Si ocurriera que se pone automáticamente a reconstruir un raid defectuoso y no queremos que lo haga, quizá ya sabemos que esta mal la única manera que he encontrado de parar esa reconstrucción es quitando del grupo el disco defectuoso (quizá además añadiendo un –force):
# mdadm --remove /dev/md0 /dev/hdb1

Para identificar correctamente el disco a retirar, si ha fallado, con hdparm obtenemos su numero de serie que viene grabado en la pegatina de la carcasa, así no habrá dudas en cuál desenchufar:
# hdparm -iI /dev/hdb

Para monitorizar el RAID, es recomendable poner una tarea en el cron de la máquina que nos avise si surge algún problema. Para ello podemos utilizar el siguiente comando para testar si si se reciben bien los mails, ya que solo los enviará en caso de que aparezca algún problema:
# mdadm --monitor --scan --mail=nombre@example.com /dev/md0 -t -1
Ahora toca comprobar el mail y ver que ha llegado el mail, sino, deberemos configurar el envío de mails desde el ordenador. Si todo ha ido bien, añadir la siguiente linea al crontab para finalizar:
*/15 * * * * /sbin/mdadm --monitor --scan --mail=nombre@example.com /dev/md0 -1

Si se van cambiando discos y se quiere es aprovechar el espacio extra, se puede hacer crecer con:
# mdadm --grow /dev/md0 --size=max

Más información en:
https://raid.wiki.kernel.org/
http://www.kriptopolis.com/raid-2
http://www.kriptopolis.com/raid-3