Configurando RAID 0 en FreeBSD

Me encanta el software libre, por muchas razones. Una de ellas es que tengo plena libertad para arreglar los problemas que genera el software libre :)

He optado por migrar mi NAS doméstico a FreeBSD. He experimentado demasiados problemas para resolver simultáneamente dos problemas que para mí eran acuciantes:

  1. El Kernel Linux 2.4 no soporta de serie el SATA de Chipsets VIA (atapci0: via 8251 SATA300 controller)
  2. El Kernel 2.6 sí soporta de serie SATA VIA, pero me obliga a alejarme del Kernel 2.4
  3. Ubuntu/Debian con 2.6 me reconoce SATA VIA y Ethernet integrada en placa, también VIA, pero no me reconoce mis tarjetas de red PCI (misterios de la vida, una 3COM 10/100 rl0 y una Ovislink vr0). Emplear el núcleo 2.6 no entra dentro de mis planes tampoco.
  4. Debian con 2.4 reconoce todas las tarjetas de red, pero no me da soporte SATA en Kernel, y las soluciones (recompilación, carga de drivers) no me satisfacen y no dan garantías de nada.
  5. Debian es una excelente distribución, pero instala por defecto demasiada «porquería». No me apetece hacer una instalación personalizada para depurar qué quiero tener en la máquina corriendo. Idem para Ubuntu (peor todavía, instala, salvo la versión server, demasiadas cosas por defecto). Además, está el problema de los núcleos 2.4 y 2.6.

Así que dándole vueltas al coco, he dicho ¿y si probamos en FreeBSD?

beastie

Bingo. Tras buscar por Google, compruebo que FreeBSD 6.2 ofrece soporte SATA de VIA de serie, y al instalar, verifico que todas las tarjetas de red están funcionando sin problema sin tocar nada. Y encima, una instalación bastante más liviana que Debian/GNU Linux.

Única problemática: el soporte de FreeBSD de ext3 es limitado, es sólo de lectura, con lo que una vez salvaguardada la información del NAS, hay que redefinir RAID de nuevo.

RAID 0 en FreeBSD

1. Identificamos nuestros discos

# atacontrol list
ATA channel 0:
Master: ad0 ATA/ATAPI revision 7
Slave: no device present
ATA channel 1:
Master: acd0 ATA/ATAPI revision 7
Slave: no device present
ATA channel 2:
Master: ad4 Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: ad6
Serial ATA v1.0
Slave: no device present

ad0 es nuestro Seagate IDE de 80 GB, con lo que ad0s* son sus particionados (defaults)
ad4 es el primer SATA Seagate de 160 GB
ad6 es el segundo SATA Seagate de 160 GB
acd0 es la regrabadora DVD del equipo. No nos interesa.

2. Generamos nuestro stripe RAID 0, al que llamaremos st0

# gstripe label -v st0 /dev/ad4 /dev/ad6

Metadata value stored on /dev/ad4.
Metadata value stored on /dev/ad6.
Done.

3. Comprobamos el estado de la banda de discos

# gstripe status
Name Status Components
stripe/st0 UP ad4
ad6

4. Creamos la tabla de particiones

# bsdlabel -wB /dev/stripe/st0

5. Inspeccionamos

# ls /dev/stripe

/dev/stripe:
st0 st0a st0c

6. Creamos sistema de ficheros en st0a

newfs -U /dev/stripe/st0a

7. Montamos

mount /dev/stripe/st0a /mnt

8. Añadimos a fstab el montaje para posteriores reinicios

# echo «/dev/stripe/st0a /mnt ufs rw 2 2» >> /etc/fstab

9. Listamos

# df -k
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 507630 82932 384088 18% /
devfs 1 1 0 100% /dev
/dev/ad0s1e 507630 12 467008 0% /tmp
/dev/ad0s1f 72358112 1346182 65223282 2% /usr
/dev/ad0s1d 1446574 3584 1327266 0% /var
/dev/stripe/st0a 302742646 4 278523232 0% /mnt

10. Añadimos el módulo GEOM a la lista de elementos a cargar en el inicio del sistema.

# echo ‘geom_stripe_load=»YES»‘ >> /boot/loader.conf

Toda la información sobre RAID 0 en FreeBSD que puedes necesitar está aquí.

3 comentarios sobre “Configurando RAID 0 en FreeBSD

  1. Todo bien pero me parece que tendrias que estudiar un poco mas detenidamente las opciones en arreglos RAID.

    Para empezar RAID 0 y RAID 1 no son las mejores opciones disponibles ya que tienden a fallar bastante y en el caso del RAID 1 se sabe de muchos casos en donde el «espejo de datos» no ha servido de mucho…

    Y mucha gente ha tenido que llamar de apuro a empresas especializadas (ONRETRIEVAL, RECOVERY LABS, ONTRACK, etc.) para que les recuperen la informacion, con el coste que conlleva este tipo de servicios…

    Por eso te recomendaria que implementaras un arreglo por hardware de un RAID 5 o un RAID 10.

    Sldos.

  2. aocforall,

    Gracias por tus consejos. No obstante, para un servidor casero en el que guardo información que no es crítica, sigo pensando que una agregación en RAID 0 mediante software es más que suficiente. Montar un RAID 5 o 10 con soporte hardware, para este servidor en particular, es un overkill.

    Un saludo,

Comentarios cerrados.