Iscsi Server con Debian Squeez, Raid 5 y lvm

iSCSI (Abreviatura de Internet SCSI) es un estándar que permite el uso del protocolo SCSI sobre redes TCP/IP. iSCSI es un protocolo de la capa de transporte definido en las especificaciones SCSI-3. Otros protocolos en la capa de transporte son SCSI Parallel Interface y canal de fibra.

La adopción del iSCSI en entornos de producción corporativos se ha acelerado en estos momentos gracias al aumento del Gigabit Ethernet. La fabricación de almacenamientos basados en iSCSI (red de área de almacenamiento) es menos costosa y está resultando una alternativa a las soluciones SAN basadas en Canal de fibra.

Lo que haremos es configurar un server iscsi con un debian squeeze, para este mini how-to presupongo que tienes el SO ya instalado y andando, montado sobre un raid 5 y un lvm para manejar mas facilmente los volumentes logicos.

El software elegido en este caso para hacer de servidor fue iSCSI Enterprise Target, esto es asi por que se encuentran los fuentes empaquedatos para debian.

Primero a lo primero, instalar los paquetes necesarios para poder hacer todo esto, lo recomendable es que antes de empezar tengas el sistema al dia y actualizado asi que antes que nada as un aptitude update y aptitude safe-upgrade.

Entonces, lo que tenemos que ejecutar es:

aptitude install iscsitarget iscsitarget-source open-iscsi module-assistant

Luego que descargo e instalo todo editamos este archivo  /etc/default/iscsitarget el contenido del file debe quedar asi:

ISCSITARGET_ENABLE=true

El siguiente comando a ejecutar es:

module-assistant a-i iscsitarget

Con esto lo que lograremos sera compitar el modulo para el kernel.

Para saber si esta tarea se realizo con exito ejecutamos este comando y miramos la salida:

clementina:/etc# lsmod |grep iscsi
iscsi_trgt 69353 4
iscsi_tcp 8097 0
libiscsi_tcp 10994 1 iscsi_tcp
libiscsi 29302 3 ib_iser,iscsi_tcp,libiscsi_tcp
scsi_transport_iscsi 25036 4 ib_iser,iscsi_tcp,libiscsi
scsi_mod 126597 8 ib_iser,iscsi_tcp,libiscsi,scsi_transport_iscsi,sg,sr_mod,sd_mod,libata

Vemos que dice iscsi_trgt saraza eso quiere decir que el modulo esta cargado y andando.

Ahora ya podemos iniciar el demonio de iSCSI Enterprise Target con el comando /etc/init.d/iscsitarget restart porsupuesto que para que sea util primero hay que configurarlo, y a eso vamos.

Primero antes que nada debemos tener nuestro dipositivo de bloques listo para trabajar, vamos a crear uno en nuestro lvm

clementina:/etc# lvcreate --name iscsi -L 2T el-groso
Logical volume "iscsi" created

No es necesario darle formato alguno al volumen que acabamos de crear, ya que eso lo realizara el equipo que se conecte al server iscsi osea el cliente :P

El archivo que tendremos que editar ahora es: /etc/iet/ietd.conf

Aqui les pongo un ejemplo de una Lun

Target iqn.2011-07.ar.com.vafe.depto.clementina:storage.2T
Lun 0 Path=/dev/el-groso/iscsi,Type=fileio
Alias Test
MaxRecvDataSegmentLength 65536
MaxXmitDataSegmentLength 65536
MaxSessions 0 # Number of sessions/target

Hay muchas mas opciones para configurar, pero eso ya te lo dejo a vos y a las paginas man que son tus amigas, ahora voy a pasar a explicar brebemente las opciones que use y porque:

  1. Target iqn.2011-07.ar.com.vafe.depto.clementina:storage.2T
    • Bueno esto se define de la siguiente manera:
    • iqn.[yyyy-mm].[nombre del dominio invertido]:[identificador]
    • 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 dos puntos podemos poner lo que queramos para organizar los diferentes targets y luns que creemos.
  2. Lun 0 Path=/dev/el-groso/iscsi,Type=fileio
    • Lun 0: Numero de Lun que sera.
    • Path=/dev/el-groso/iscsi: Ruta absoluta y completa al dispositivo de bloques.
    • Type=fileio: Tipo de dispositivo.
  3. Alias Test Mucho que decir sobre esto no hay, un nombre de alias para el lun
  4. MaxRecvDataSegmentLength 65536 (Largo maximo del segmento de datos que se Recibira)
  5. MaxXmitDataSegmentLength 65536 (Largo maximo del segmento de datos que se Enviara)

Una vez realizado todo esto y creado todas los targets que necesitemos, basta despues con reiniciar el demonio de iscsi y listo,

Lo que podemos hacer para probar que todo esta andando correctamente es instalar el paquete open-iscsi, y reiniciar el servicio que lleva el mismo nombre, luego con el comando: iscsiadm -m discovery -t st -p ip-donde-corre-iscsi, deberia listar las luns que estamos publicando, por ejemplo:


clementina:/etc# iscsiadm -m discovery -t st -p 192.168.2.13
192.168.2.13:3260,1 iqn.2011-07.ar.com.vafe.depto.clementina:storage.2T

Espero que le sirva a alquien. y hasta la proxima entrega.

Leave a Reply

*