Bueno, pues el otro día me tocó montar esto en una maquina y la verdad es que lo que había leido por ahí era bastante lioso de hacer, pero me puse a buscar y encontré unos consejos muy buenos y practicos para montar un par de discos duros de las mismas caracteristicas en raid1 bajo FreeBSD, yo lo he hecho en una 6.2, pero es válido para versiones superiores a la 5.3. En mi caso tengo dos distos duros, uno es ad0 y el otro ad2, están en canales IDE separados para tener una máxima velocidad de acceso a ellos.

Estos son los pasos:

Arrancando con un cd de instalación o liveCD
Lo Primero, arrancamos la maquina con el cd de instalación y seleccionamos el modo fixit, una vez que estamos con la shell, entramos en un chroot y montamos los dispositivos dev, con:

# chroot /dist
# mount_devfs devfs /dev

Preparación de el Raid
Una vez que tenemos hecho esto, vamos a iniciar el raid, para lo cual lo primero que vamos a hacer es que los discos duros no tengan ninguna información de Raid, para lo cual haremos:

# gmirror clear /dev/ad0
# gmirror clear /dev/ad2

Una vez que tenemos borrada la información de Raid de los discos, nos cercioramos que tenemos el módulo GEOM mirror cargado con:

# gmirror load

Creando e iniciando el Raid
En este paso tendremos que tomar la decisión de seleccionar que tipo de escritura y acceso queremos usar, tenemos 3 disponibles, round-robin, load balancing y split, a nosotros ahora mismo nos interesan los dos primeros, el split se puede ver exactamente como montarlo y lo que hace en el man de gmirror

Round-Robin funciona escribiendo y leyendo sucesivamente los discos, y el primer acceso fue al disco 1 el siguente irá al 2, el siguiente al 1 y así sucesivamente. Load Balancing funciona de una manera más inteligente y siempre accede al disco que menos carga tiene en el momento de el acceso, esto nos vale para poder tener unos tiempos de acceso al raid más rápidos.

Yo elegí usar Load-Balancing y empezé por iniciar el raid en el disco 1 y montandolo para preparar el sistema:
# gmirror label -v -b load gm0 /dev/ad0
# mount /dev/mirror/gm0s1a /mnt

Reconfigurando el sistema
Lo primero que necesitamos es que el módulo geom_mirror esté cargado desde el principio de el arranque de el sistema, si no, no podremos leer el Raid y nuestro sistema no arrancará. También necesitamos decirle al sistema que no arranque la swap desde el principio, ya que esta ya no se va a encontrar en un dispositivo tipo raw, si no en el Raid, para lo cual ejecutamos las ordenes:

# echo geom_mirror_load=”YES” >> /mnt/boot/loader.conf
# echo swapoff=”YES” >> /mnt/etc/rc.conf

Ahora necesitamos modificar el fichero de particiones para que nuestro sistema de ficheros pueda ser montado y nuestro sistema arranque ya que ahora ya no se encuentran las particiones en /dev/ad0 si no en /dev/mirror/gm0, para lo cual puedes editar a mano el fichero /etc/fstab o usar los siguientes comando que ya te modifica esto:

# sed “s%ad0%mirror/gm0%g” /mnt/etc/fstab > /mnt/etc/fstab.new
# mv /mnt/etc/fstab /mnt/etc/fstab.old
# mv /mnt/etc/fstab.new /mnt/etc/fstab

Una vez que tenemos esto, reiniciamos la maquina con shutdown -r now y veremos que nuestro sistema arranca perfectamente arrancando el Raid, pero si nos fijamos bien, solo hemos puesto un disco al raid, por lo cual no tenemos el Raid completo…

Añadiendo un nuevo disco al Raid

Ahora solo nos queda añadir el segundo disco que teníamos (ad2) al Raid, y lo hacemos con:
# gmirror insert gm0 /dev/ad2

Esto nos añade el segundo disco al Raid y empieza a sincronizarlo, en unos momentos habrá terminado y estará nuestro Raid en funcionamiento.
Si quereis ver si hay algún error, podeis mirar en /var/log/messages, si quereis ver el estado de el Raid, podeis usar gmirror status y si quereis ver la configuración de el Raid, podeis usar gmirror list.

Con esto tenemos nuestro Raid1 montado en FreeBSD, espero que os sea de ayuda.

Un saludo.