Montar unidad ISCSI con CHAP habilitado

Enviado por keopx el Sáb, 29/01/2011 - 14:46

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:

Categoria

Añadir nuevo comentario

El contenido de este campo se mantiene privado y no se mostrará públicamente.

HTML Restringido

  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.