FreeNAS

Según la wikipedia: "FreeNAS es un sistema operativo basado en FreeBSD que proporciona servicios de almacenamiento en red. NAS son las siglas en inglés de Almacenamiento Conectado en Red (Network Attached Storage).

Este sistema operativo gratuito, open-source y software libre (basado en licencia Licencia BSD) permite convertir un ordenador personal en un soporte de almacenamiento accesible desde red, por ejemplo para almacenamientos masivos de información, música, backups, etc."

En nuestro caso vamos a utilizar este software para montar en la plataforma de pruebas una SAN iSCSI sobre un equipo convencional, con el objetivo de aprender esta tecnología antes de tener el hardware de almacenamiento del proyecto.

Instalación de FreeNAS 8.0

Se descarga la iso del sitio http://www.freenas.org y se instala de forma automática, una vez instalado en el disco duro de un equipo basta con reiniciar, la red se configurará de forma automática si hay un servidor DHCP en la red o habrá que configurarla manualmente una vez arrancado el sistema.

El manejo de FreeNAS es mediante una interfaz web muy intuitiva desarrollada en Django.

Configuración del target iSCSI

Para configurar el target iSCSI debemos acceder a la web de administración de FreeNAS.
Hay que partir de la base de que en FreeNAS no compartimos un disco, sino que se comparten porciones de este, es decir, podemos compartir volúmenes lógicos, RAID, etc.

Más información: Configuración del almacenamiento

En la columna de la izquierda de la pantalla encontramos el menú, accediendo a servicios-->iSCSI-->Configuración global del destino.
En esta pantalla debemos configurar los distintos parámetros como son el nombre del servicio, en nuestro caso 2011-01.example.com.

Para más información ver: Parámetros de configuración del almacenamiento

Se debe añadir un usuario iSCSI, se realiza desde Services-->iSCSI-->Authentication, donde debemos especificar la contraseña. Este paso es para que el servidor pida contraseña y usuario al cliente.

El siguiente paso es añadir un disco (device extent).

Hay que añadir el iniciador Services-->iSCSI-->Initiators. Aquí podemos especificar las redes desde las cuales estará disponible, por defecto todas.

Añadir portal, se deja por defecto (abriendo el servicio en el puerto 3206). Se realiza desde Services-->iSCSI-->Portal.

Añadir target, configurando los parámetros. Se realiza siguiendo la ruta Services-->iSCSI-->Target.

Para más información sobre los parámetros del target visitar el siguiente enlace: Parámetros del target

Asociamos el extend con el target creado. Esta configuración la podemos encontrar en Services-->iSCSI-->Target/Device.

Y en services-->Control services activamos el servicio.

Ya podemos conectarnos desde el cliente, en Linux Debian Squeeze se realiza de la siguiente forma:

Instalamos el siguiente paquete:

_#aptitude install open-iscsi_

Si queremos que se conecte automáticamente debemos editar el fichero /etc/init.d/iscsi/iscsid.conf cambiando la linea node.startup a automatic.

Para ver información sobre el disco:

_# iscsiadm -m discovery -t st -p 10.0.0.50_

Nos mostrará una salida como la siguiente:

10.0.0.50:3260,1 2011-01.example.com.istgt:target1

Ahora debemos añadir unas entradas al fichero de configuración del nodo (que se encuentra en /etc/iscsi/nodes/nombredelnodo), podemos realizarlo desde linea de comandos con las siguientes instrucciones:

_# iscsiadm -m node --targetname "2011-01.example.com.istgt:target1" --portal "10.0.0.50:3260" --op=update --name node.session.auth.username --value=iniciador

# iscsiadm -m node --targetname "2011-01.example.com.istgt:target1" --portal "10.0.0.50:3260" --op=update --name node.session.auth.password --value=inicio_

Podemos reiniciar el servicio y al arrancar de nuevo nos montará el dispositivo.

Para montar el disco manualmente:

# iscsiadm -m node --targetname "2011-01.example.com:target1" --portal "10.0.0.50:3260" --login

Para realizar un logout:

# iscsiadm -m node --targetname "2011-01.example.com:target1" --portal "10.0.0.50:3260" --logout

Podemos ver el disco ya en el sistema con fdisk -l:

_El disco /dev/dm-13 no contiene una tabla de particiones válida

Disco /dev/sdb: 2097 MB, 2097151488 bytes
65 heads, 62 sectors/track, 1016 cylinders
Units = cilindros of 4030 * 512 = 2063360 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disk identifier: 0x00000000
_

Una vez lo tengamos montado ya podemos darle formato y comenzar a utilizarlo.
Editado por Carlos Álvarez Barba.