Cambiar disco dañado de espejo RAID 1 en FreeBSD

Cuando falla una unidad de un RAID 1 en FreeBSD primero hay que detectar qué unidad está fallando. Se puede saber con el comando:

root@wasge-virt-freebsd:~ # gmirror status
      Name    Status  Components
mirror/gm0  DEGRADED  ada1 (ACTIVE)

Aquí se indica que mirror/gm0 está funcionando en modo degradado, porque ha fallado un disco. Su único componente que sigue funcionando es el disco ada1, que sigue activo.

Una vez identificado el disco que ha dejado de funcionar (en mi caso ha sido ada2, que ya no está en la lista) se puede apagar el sistema, quitar el disco dañado y sustituirlo por uno que funcione correctamente.

Destruir la nueva unidad

Para crear un espejo es necesario preparar las unidades se van a utilizar. Antes de empezar con ellas, conviene "destruirlas" para que no haya ningún dato que pueda causar problemas. Para ello se puede usar éste comando:

root@wasge-virt-freebsd:~ # gpart destroy -F ada2
ada2 destroyed

Olvidar las unidades que ya no están activas

Para olvidar las unidades que han fallado o se han eliminado del sistema simplemente hay que escribir el siguiente comando.

root@wasge-virt-freebsd:~ # gmirror forget gm0

Añadir la nueva unidad al espejo

Para añadir una unidad a un espejo primero debe estar iniciado el espejo. Suponiendo que la unidad sea ada2:

root@wasge-virt-freebsd:~ # gmirror insert gm0 /dev/ada2

En este caso gm0 es el nombre del espejo y /dev/ada2 es la unidad que se insertará en el espejo.

Comprobar el estado del espejo

Para comprobarlo se utiliza el comando:

root@wasge-virt-freebsd:~ # gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada1 (ACTIVE)
                      ada2 (ACTIVE)

La información es que en el espejo llamado mirror/gm0 la copia entre ambos discos está completa, y que tanto ada1 como ada2 están activos.

Fecha de creación: 11/8/2017 14:24:13 | Última modificación: 11/8/2017 14:24:13 | Hora del servidor: 20/9/2017 23:52:33