Aplicaciones OpenBSD General

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.


Personal Tools