Usando RAID 1 (por software) en OpenBSD
Introducción
Siempre que instalamos un servidor que va a estar en producción y va a tener información importante/vital es necesario o mejor dicho seria practicamente ideal tener un backup de estos archivos o bien bajar un nivel mas y espejar 2 discos para resguardar esta informacion, si bien no voy a entrar en detalles de lo que es el RAID 1, basicamente es eso, poder espejar 2 (o mas) discos para que funcionen en paralelo ingresando/leyendo información en los mismos.
Comenzando
Para poder usar eso solo necesitaremos un OpenBSD 3.8 en adelante, softraid(4), bioctl(8) y un par de discos, en este caso lo haremos con 2 de 1GB c/u (al ser IDE seran 'wd' en caso de ser SCSI serian 'sd').
Supongamos que el 'wd0' es mi disco '/' los dos nuevos agregados serian 'wd1' y 'wd2', lo iniciaremos asi:
# fdisk -iy wd1 # fdisk -iy wd2
Creamos las particiones para el RAID, esto lo haremos todo en una linea (usando 'printf') para no entrar en el modo interactivo, ya que sabemos que poner en cada opción de disklabel(8):
# printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E wd1 # printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E wd2
Lo anterior seria, crear la particion 'a' (a), damos 4 'enters' (\n\n\n\\n), le damos un nombre 'RAID' (RAID) y damos 'enter' (\n) para aceptarlo, luego escribimos los cambios (w) y damos 'enter' (\n), por último ponemos 'quit' y un par de 'enters' (q\n\n).
Ahora uniremos los discos para crear el volumen del RAID;
# bioctl -c 1 -l /dev/wd1a,/dev/wd2a softraid0
Lo que significa, '-c' el tipo de RAID, en nuestro caso '1', luego la opcion '-l' de unidades especiales seguida de nuestros discos, para terminar seteamos que es un RAID por software usando la unidad emuladora de HBA.
Lo cual al terminar el kernel devolvera algo asi:
sd0 at scsibus3 targ 0 lun 0: <OPENBSD, SR RAID 1, 004> SCSI2 0/direct fixed sd0: 1023MB, 512 bytes/sec, 2096050 sec total
Noten que ahora devuelve que la unidad de RAID 1 es un 'sd0' esto es porque el softraid(4) emula un dispositivo SCSI.
Ahora haremos un borrado de todo el RAID para estar seguros y empezar desde 0 propiamente dicho:
dd if=/dev/zero of=/dev/rsd0c bs=1m count=1
Iniciaremos nuevamente esta nueva particion y crearemos el filesystem:
# fdisk -iy sd0 # printf "a\n\n\n\n4.2BSD\nw\nq\n\n" | disklabel -E sd0 # newfs /dev/rsd0a
Falta muy poco!
Ahora solo tendremos que montar el volumen de RAID en un directorio:
# mount_ffs /dev/sd0a /raid/
Y por último vemos la información de nuestro softraid(4):
# bioctl -i softraid0
Volume Status Size Device
softraid0 0 Online 1073177088 sd1 RAID1
0 Online 1073177088 0:0.0 noencl <wd1a>
1 Online 1073177088 0:1.0 noencl <wd2a>
Listo! Ya tienen su volumen de RAID 1 creado en muy pocos pasos.
Recuerden que para borrar el volumen deberian hacer un:
# bioctl -d sd1
Conclusiones
Como ven, no es muy dificil generar un volumen RAID en nuestro OpenBSD y con todo el software que viene por defecto. Cualquier consulta, duda o errata, ya saben.