Instalamos en paquete necesario:
$ sudo aptitude install open-iscsi
Arrancamos el servicio:
$ sudo /etc/init.d/open-iscsi start
En primer lugar tenemos que indicarle a iscsiadm que detecte nuestro target iSCSI y lo agregue a su base de datos. Hay que aclarar que iscsiadm tiene tres formas de operación:
- discovery: En este modo se pueden descubrir targets y agregarlos a la base de datos.
- node: En este modo se administran los targets ya descubiertos y se pueden visualizar datos acerca de estos nodos, así como conectarse a ellos.
- session: En este modo se administran los targets a los que se está conectados (en los que se ha hecho login).
Para descubrir nuestro target usamos “discovery“:
$ sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.110
192.168.1.110,1 iqn.2005-02.au.com.empresa:san.200G.samba
Con lo que le indicamos a iscsiadm que descubra los targets que le ofrece el portal ubicado en 192.168.1.110. El método que usa para descubrirlo es “sendtargets“, que es el método soportado más estable a la fecha (existen otros métodos, como por ejemplo uno que resuelve nombre de targets). Como vemos descubrió el target que instalamos anteriormente. Por lo cual, si hacemos solo:
$ sudo iscsiadm -m discovery
192.168.1.110:3260 via sendtargets
Vemos que la información del servidor iSCSI target descubierto quedó almacenada en la base de datos de iscsiadm Ahora, si queremos saber cuál es la información que se almacenó sobre el target descubierto, tenemos que operar en modo nodo:
$ sudo iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110
node.name = iqn.2005-02.au.com.empresa:san.200G.samba
node.transport_name = tcp
node.tpgt = 1
node.active_conn = 1
node.startup = manual
node.session.initial_cmdsn = 0
node.session.auth.authmethod = None
node.session.auth.username =
node.session.auth.password =
node.session.auth.username_in =
node.session.auth.password_in =
node.session.timeo.replacement_timeout = 120
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.session.iscsi.DefaultTime2Retain = 0
node.session.iscsi.DefaultTime2Wait = 0
node.session.iscsi.MaxConnections = 1
node.session.iscsi.MaxOutstandingR2T = 1
node.session.iscsi.ERL = 0
...
Configuración de la autenticación Si el target tiene configurada la autenticación, en mi caso CHAP mutuo, para pedir al iniciador un usuario y una contraseña, entonces debemos configurar esa información en nuestro iniciador. Para ello también usamos iscsiadm y modificamos la información almacenada para el target ya descubierto.
$ sudo iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -o update -n node.session.auth.authmethod -v CHAP
$ sudo iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -o update -n node.session.auth.username -v usuario-iniciador
$ sudo iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -o update -n node.session.auth.password -v clave-iniciador
- usuario-iniciador: iqn.2005-02.au.com.empresa:san.200G.samba
- clave-iniciador: password_definida_en_CHAP
También se puede configurar en el fichero de configuración /etc/iscsi/iscsid.conf:
# *************
# CHAP Settings
# *************
# To enable CHAP authentication set node.session.auth.authmethod
# to CHAP. The default is None.
node.session.auth.authmethod = CHAP
# To set a CHAP username and password for initiator
# authentication by the target(s), uncomment the following lines:
node.session.auth.username = iqn.2005-02.au.com.empresa:san.200G.samba
node.session.auth.password = carkeycarkey
# To set a CHAP username and password for target(s)
# authentication by the initiator, uncomment the following lines:
# node.session.auth.username_in =
# node.session.auth.password_in =
# To enable CHAP authentication for a discovery session to the target
# set discovery.sendtargets.auth.authmethod to CHAP. The default is None.
#discovery.sendtargets.auth.authmethod = CHAP
# To set a discovery session CHAP username and password for the initiator
# authentication by the target(s), uncomment the following lines:
discovery.sendtargets.auth.username = iqn.2005-02.au.com.empresa:san.200G.samba
discovery.sendtargets.auth.password = carkeycarkey
# To set a discovery session CHAP username and password for target(s)
# authentication by the initiator, uncomment the following lines:
#discovery.sendtargets.auth.username_in = username_in
#discovery.sendtargets.auth.password_in = password_in
Otro valor importante es la conexión automática, que se configura de la siguiente manera:
$ sudo iscsiadm -m node -T iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 --op update -n node.conn[0].startup -v automatic
Conectarse al target
$ sudo iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -l
La opción “-l” indica que queremos hacer login en el target. Esto significa que el disco iSCSI estará disponible como un dispositivo de hardware más en nuestro servidor. Para comprobar si el disco iSCSI se detecto y se “conectó” al equipo, basta con ver la salida de dmesg:
$ sudo dmesg
SCSI device sdi: 390620475 512-byte hdwr sectors (199998 MB)
sda: Write Protect is off
sda: Mode Sense: 77 00 00 08
SCSI device sdi: drive cache: write through
SCSI device sdi: 390620475 512-byte hdwr sectors (199998 MB)
sda: Write Protect is off
sda: Mode Sense: 77 00 00 08
SCSI device sdi: drive cache: write through
sdi: sdi1
sd 1:0:0:0: Attached scsi disk sdi
En el ejemplo el disco iSCSI se detectó y se “conectó” al equipo como un disco SCSI más. También notamos que para el sistema nuestro disco iSCSI no se diferencia de un disco SCSI conectado físicamente Fuente y documentacion relacionada:
- Conociendo iSCSI
- Montando un iniciador iSCSI en Linux
- Instalando un target iSCSI
- http://www.open-iscsi.org/docs/README
- http://www.cyberciti.biz/faq/howto-setup-debian-ubuntu-linux-iscsi-initiator/
- http://lists.us.dell.com/pipermail/linux-poweredge/2010-December/043848.html
- http://wiki.debian.org/iSCSI/open-iscsi
- http://www.linuxtopia.org/online_books/suse_linux_guides/SLES10/suse_enterprise_linux_server_installation_admin/sec_inst_system_iscsi_initiator.html
- http://forum.open-e.com/showthread.php?t=1732
- http://kb.lsi.com/KnowledgebaseArticle16017.aspx
Comentarios