Instalando un target iSCSI

Existen variedad de servidores iSCSI, muchos de ellos son propietarios y algunas de las empresas que los comercializan son IBM, Sun, HP, etc. Como vemos, son grandes empresas, y por ende el precio de sus soluciones suele ser bastante grande también. Como no queremos pagar demás y estamos seguros de que entendemos muy bien la tecnología iSCSI (dando por hecho que leímos el post anterior en este blog🙂 ) como para no necesitar este tipo de soporte; vamos a instalar nuestro porpia SAN, o en buen inglés Storage Área Area Network. Para ello, desde luego usaremos Linux (Debian Etch, por supuesto) y una solución libre para targets iSCSI.

Dentro de Linux hay unas cuantas soluciones software para montar un servidor o target iSCSI. La más recomendada es Linux iSCSI Enterprise Target. Las razones son, que a la fecha, es la versión más potente, con activo desarrollo y tiene como ventaja que no hay que recompilar el kernel para poder usarla.

Veamos como podemos instalar un servidor o target como se le menciona en la “jerga” iSCSI. Los pasos son los siguientes:

Verificación de la versión del kernel

iSCSI Enterprise Target funciona solo sobre el kernel 2.6.14 o superior. Por eso si nuestro kernel es anterior, entonces tendremos que actualizarlo, o en última instancia, compilar una versión más reciente.

En Debian Etch la versión es superior. Lo mismo siempre podemos hacer

#apt-get install linux-image

para actualizar a la última versión del kernel.

Instalación del servidor

IET (iSCSI Enterprise Target) no está disponible como un paquete para Debian, por eso tendremos que bajarnos los fuentes y compilarlos. La buena noticia es que es un programa muy pequeño y que la instalación nos deja todo para que funcione bajo Debian.

Descargamos IET y lo descomprimimos

# tar -xzvf iSCSItarget-0.4.15.tar.gz
# cd iSCSItarget-0.4.15

El README nos dice que necesitaremos los fuentes de nuestro kernel para poder compilar los módulos que IET debe cargar para funcionar. De esto también comprendemos que cada vez que actualicemos el kernel será necesario recompilar IET para que cargue módulos que sean compatibles (Está previsto que haya soporte nativo para targets iSCSI en el kernel a futuro). Además también necesitamos las librerías de desarrollo de ssl

# apt-get install linux-source libssl-dev

Luego basta hacer

#make
#make install

Con esto se compilarán los módulos del kernel y el servidor iSCSI (ietd). Además se instalará la documentación, los scripts de inicio y los archivo de configuración.

Configuración del target

La configuración de IET se encuentra en /etc/ietd.conf

Allí tendremos que configurar dos cosas principalmente:

  • El nombre de nuestro target
  • El nombre de usuario y la contraseña para la conexión del iniciador
  • El dispositivo que ofreceremos como target

El nombre

El estándar iSCSI define que tanto los target como los iniciadores deben tener un nombre que sigue un patrón, el cual es el siguiente:

iqn.[yyyy-mm].[nombre del dominio invertido]:[identificador]

Donde:

iqn es un término fijo y debe figurar al principio.

yyyy-mm es la fecha de alta del dominio de la organización para la que estamos configurando el target

A continuación debe figurar el nombre del dominio invertido

Luego de los “:”, un identificador que podemos ponerlo a nuestro gusto, y que puede en muchos casos brindar información del target.

Un ejemplo válido sería:

iqn.2005-02.au.com.empresa:san.200G.samba

Como vemos el identificador aunque es variable y personalizable, puede reflejar el nombre dado al target, la capacidad y el servicio donde lo usaremos.

En /etc/ietd.conf definimos el nombre de nuestro target

Target iqn.2005-02.au.com.empresa:san.200G.samba

Si queremos que nuestro target requiera autenticación., podemos definir un usuario y una contraseña para que solo se conecten los iniciadores que nosotros queremos.

IncomingUser usuario-iniciador clave-iniciador

Luego debemos definir qué dispositivo ofreceremos como target. Debemos poner una línea como la siguiente:

Lun 0 Path=/dev/sda3,Type=fileio

En este ejemplo el primer dispositivo que estamos ofreciendo es la partición /dev/sda3 del servidor. La documentación nos dice que además de particiones podemos usar discos enteros, volúmenes LVM y RAID, e incluso archivos. En cualquier caso solo hay que definir el path.

El archivo contiene muchos parámetros más de configuración, que en la mayoría de los casos tienen que ver con la performance del servidor. En nuestro ejemplo, configurando estos tres parámetros nos basta.

Una vez que hemos configurado el servidor y que tenemos lista nuestra partición o disco a ofrecer, debemos levantar el servidor.

# /etc/init.d/iSCSI-target start

Con lo cual se cargará el módulo iSCSI target en el kernel y se levantará el servidor ietd que es el que gestionará las peticiones de los iniciadores.

Por último si queremos que nuestro servicio iSCSI target inicie junto con el servidor, debemos agregarlo al inicio del sistema.

# update-rc.d iSCSI-target defaults

Ya tenemos nuestro servidor iSCSI instalado y listo para servir discos a nuestra red. Ahora necesitamos un iniciador iSCSI para que se conecte a nuestro target y podamos empezar a usar los discos por la red. No preocuparse porque ese es el tema del próximo post.

Links sobre este tema:

Explore posts in the same categories: Debian, hardware, iscsi

6 comentarios en “Instalando un target iSCSI”

  1. Lu Says:

    “En buen inglés” Area no lleva tilde😉

  2. Ivan Ricondo (ubanov) Says:

    En mi caso, instalación limpia de debian, ha sido necesario hacer lo siguiente:
    – bajar el kernel (apt-get install linux-source)
    – descomprimirlo (cd /usr/src; tar xvfj linux-source*.tar.bz2)
    – compilarlo (cd /usr/src/linux-source-2.6.18; apt-get install ncurses-dev; cp /boot/config* .config; make menuconfig; make)
    – crear un link en /lib/modules/version/build a kernel compilado (ln -s /usr/src/linux-source-2.6.18/ /lib/modules/2.6.18-4-686/build)

    después me ha dejado compilar el IET.

    Otra opción más sencilla es ejecutar apt-get install linux-headers-2.6.18-4-686 (de esta forma no hace falta instalar el kernel-source)

    No se si habrá forma más sencilla, pero por si acaso

  3. gonzo Says:

    Buenas al realizar el make me ocurre lo siguiente:

    make -C usr
    make[1]: se ingresa al directorio `/root/iscsitarget-0.4.15/usr’
    make[1]: No se hace nada para `all’.
    make[1]: se sale del directorio `/root/iscsitarget-0.4.15/usr’
    make -C /lib/modules/2.6.22-2-686/build SUBDIRS=/root/iscsitarget-0.4.15/kernel modules
    make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.22-2-686′
    CC [M] /root/iscsitarget-0.4.15/kernel/event.o
    /root/iscsitarget-0.4.15/kernel/event.c: In function âevent_initâ:
    /root/iscsitarget-0.4.15/kernel/event.c:98: warning: passing argument 4 of ânetlink_kernel_createâ from incompatible pointer type
    /root/iscsitarget-0.4.15/kernel/event.c:98: error: too few arguments to function ânetlink_kernel_createâ
    make[2]: *** [/root/iscsitarget-0.4.15/kernel/event.o] Error 1
    make[1]: *** [_module_/root/iscsitarget-0.4.15/kernel] Error 2
    make[1]: se sale del directorio `/usr/src/linux-headers-2.6.22-2-686′
    make: *** [kernel] Error 2

    Soy un poco novato con linux , me podrian echar una mano. Gracias

  4. federicosayd Says:

    @gonzo

    No veo que pueda ser. Lo mismo no recuerdo por qué los parámetro del make “-C usr”.
    En última instancia en la sección de los links hay un enlace a un paquete .deb de iscsi target.

  5. Arthur Says:

    Saludos, esta muy interesante la guia pero tengo una duda yo estoy instalando el target en un Centos 5.2 y como soy nuevo en esto estoy un poco perdido con eso que necesito las fuentes para la instalacion me puediras ayudar con eso?

  6. Vadim Nekhai Says:

    I want to tell you that ther’s another free iSCSI Target Software – StarWind free. You can download it at http://starwindsoftware.com/free


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: