Microordenadores

RaspBMC y NFS para crear disco de red

logo RaspBMC

El otro día estrené mi primera Raspberry Pi modelo B y me propuse utilizarla como media center y para almacenamiento en red, conectándole por USB un disco duro de 2TB con alimentación externa.

He probado varias distribuciones y la que más se ha adaptado a lo que necesito es RaspBMC. Esta mañana mismo he probado OpenELEC y me ha gustado mucho. Sin embargo, con tal distribución es una odisea tan sólo cambiar la contraseña de cualquier usuario, ya que la partición del sistema está en modo read-only, por lo que tampoco pueden instalarse nuevos programas fácilmente.

Por ello, he probado RaspBMC, que igual que OpenELEC habilita un centro multimedia con XBMC y, además, a todos lo efectos no deja de ser una Debian en la que es posible modificar archivos e instalar programas.

Para la instalación he usado el script de aquí y, entre otras opciones, he configurado una IP estática cableada. Es importante que la IP sea estática si queremos compartir por NFS.

Servidor NFS

Por defecto el servidor SSH de la RaspBMC está activado. El usuario es pi y el passoword es raspberry.

Una vez hemos iniciado sesión por SSH, creamos un directorio como punto de montaje, por ejemplo:

sudo mkdir /media/ALMACEN

Si se da el caso de que ya esté creado el directorio a causa de un montaje automático y deseamos utilizar el mismo nombre que ya creado el sistema, habría que desmontar la particion con:

sudo umount /dev/sda1

Y entonces creamos el directorio.

Para el montaje automático cada que vez se inicia RaspBMC se ha de crear un punto de montaje en el archivo /etc/fstab de la RaspBMC.

Añadimos la línea:

/dev/sda1    /media/ALMACEN    ntfs    defaults    0    0

El valor ntfs puede (y debe) ser sustuido por el tipo de sistema de archivos de la partición que queremos montar en caso de que sea otro tipo sistema de archivos.

Una vez guardados los cambios en el archivo, podemos comprobar que la partición se monta con:

sudo mount -a

Si todo ha ido bien, la partición estará montada y se podra acceder a ella desde el punto de montaje creado anteriormente:

cd /media/Almacen
ls

Enlaces

Este punto es opcional. Como quiero tener un enlace simbólico para cada gran directorio del almacén, por ejemplo, un enlace al directorio de Musica, otro al de Videos, etc, los he creado en la carpeta del usuario pi

ln -s /media/ALMACEN/musica ~/Musica
ln -s /media/ALMACEN/videos ~/Videos

Exportar

Para crear un disco de almacenamiento he utilizado NFS. Con NFS es posible exportar directorios y montarlos en una maquina remota. Con la siguiente configuración, la Raspberry Pi se convierte en servidor de archivos y comparte un directorio con sus subdirectorios a la red local, mientras que los PC con linux montan tales directorios en puntos de montaje de la máquina cliente.

Primero, he instalado los paquetes para el servidor NFS (en la Raspberry)

sudo apt-get install rpcbind nfs-common nfs-kernel-server

Poco antes de completar la instalación, me ha dado un warning avisando de que no hay directorios que exportar. He añadido los directorios que quiero exportar con NFS en el archivo /etc/exports. De manera rápida:

/media/ALMACEN    192.168.1.0/24 (rw,sync)

Con esta última línea, he compartido con permisos de escritura el directorio ALMACEN a toda la red de area local.

Una vez salvado este cambio en el archivo, a continuación he exportado los directorios con:

sudo exportfs -r

Para que todo esto sirva para algo, hay que configurar los clientes.

Clientes NFS

Añadimos la línea a /etc/fstab en los ordenadores cliente en los que queremos montar los directorios exportados en la Raspberry.

192.168.1.50:/media/ALMACEN /mnt/Almacen		nfs	rw,defaults	0    0

y comprobamos:

sudo mount -a

Overcloking

Tener en una Pi el XBMC instalado, el disco duro externo conectado y el servidor NFS funcionado es mucha carga. El primer problema que se me presentó fue de errores de buffer en el disco duro, lo que ocasionaba que se conectara y desconetara cada cinco segundos, al mismo tiempo que XBMC se quedaba congelado, lo que hacía imposible realizar. Después de probar a tientas varios valores para el overcloking sin éxito, comenté las líneas de las variables en el archivo /boot/config.txt

#arm_freq=
#core_freq=
#over_voltage=

y he forzado que la Raspberry haga el overclock según vaya necesitando más potencia con:

force_turbo=0

Con esto, a decir verdad, aún tengo desconexiones de disco, pero con muchísima menos frecuencia, y sólo cuando cargo en pantalla directorios con mucho contenido. Por lo menos puedo darle un uso normal a mi media center. Ya veré cómo puedo resolverlo completamente.

Y con esto, y un bizcocho, ya tengo lo que me propuse al principio, con el pequeño incoveniente explicado del disco. Ahora veré si la máquina da para poner, además, un cliente de torrent y un poco más adelante reutilizaré un ventilador de CPU para la Raspberry PI.

 

Hi, I’m Gustavo Moreno