iSCSI Linux
Para poder conectarnos a una unidad iSCSI necesitamos disponer de un “initiator” de iSCSI. Voy a usar un “initiator” software, el Open-iSCSI, que viene con Red Hat 5. El primer paso que tenemos que hacer es instalar el paquete iscsi-initiator-utils. Esto lo hacemos con:
# yum install iscsi-initiator-utils
Una vez hecho esto, nos generamos un iSCSI Qualified Name (IQN). Este IQN será similar a:
iqn.1992-09.es.ehu:textoidentificativomio
Para saber más detalles sobre el formato de los IQN se puede consultar la RFC 3720.
Este IQN lo guardaremos en el fichero /etc/iscsi/initiatorname.iscsi que tendrá el siguiente aspecto:
InitiatorName=iqn.1992-09.es.ehu:textoidentificativomio InitiatorAlias=mihostname
Si no queremos complicarnos la vida con el IQN podemos usar el comando iscsi-iname que nos generá uno aleatorio (esto comando no actualiza el fichero /etc/iscsi/initiatorname.iscsi).
El IQN es un dato que va a necesitar el responsable del servidor que nos va a exportar la unidad iSCSI.
Para conectarnos al disco iSCSI necesitamos los siguientes valores:
- IP y puerto del servidor iSCSI
- Si la autenticación CHAP está habilitada y en caso afirmativo cual la clave CHAP.
- IQN del disco iSCSI al que nos vamos a conectar. Si podemos hacer un “discovery” contra el servidor no necesitaremos este dato.
Si el CHAP está habilitado como en nuestro caso (CHAP en inicio sesión y discovery, pero solo en un sentido, no autenticación mutúa) editamos el fichero /etc/iscsi/iscsid.conf y modificamos los siguientes parámetros:
node.session.auth.authmethod = CHAP
node.session.auth.username = iqn.1992-09.es.ehu:textoidentificativomio
node.session.auth.password = **************
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = iqn.1992-09.es.ehu:textoidentificativomio
discovery.sendtargets.auth.password = **************
Una vez modificado estos parámetros reiniciamos el servicio iscsi (en RedHat se arranca por defecto al instalarlo):
service iscsi restart
Ahora iniciamos el discovery para descubrir que discos nos están exportando:
iscsiadm -m discovery -t st -p ipservidoriscsi
Si todo va bien, este comando nos debería devolver la lista de IQN (targets) que nos exporta el servidor. Además este comando se encarga de actualizar una BD interna del driver iSCSI donde guarda los targets descubiertos. Reiniciamos el servicio iscsi para que se conecte a estos discos y si ahora ejecutamos el comando fdisk -l deberíamos ver los nuevos discos iSCSI. El nombre que tendrán será algo parecido a /dev/sd? (dependerá de los discos que existan con anterioridad).
Al rearrancar el servidor estos discos se volverán a contectar automáticamente y ya podremos trabajar con ellos como si fueran un nuevo disco local.
Por ejemplo en nuestro caso vamos a crear una partición LVM que ocupe todo el disco y dentro de ella crearemos un volumen.
# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 10000. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10000, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-10000, default 10000): Using default value 10000 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 10.4 GB, 10485760000 bytes 64 heads, 32 sectors/track, 10000 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 10000 10239984 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. # pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created # vgcreate vol_iscsi /dev/sdb1 Volume group "vol_iscsi" successfully created # vgchange -ay vol_iscsi 1 logical volume(s) in volume group "vol_iscsi" now active # lvcreate -L 5G -n disco1 vol_iscsi Logical volume "mysql" created # mkfs.ext3 /dev/vol_iscsi/disco1 # mount /dev/vol_iscsi/disco1 /iscsi
Ahora añadimos la linea correspondiente a /etc/fstab (con la opción _netdev ya que es una unidad de red) y ya tenemos nuestra partición creada en el disco iSCSI para usarla como mejor nos parezca.
/dev/vol_iscsi/disco1 /iscsi ext3 _netdev 0 0
Y eso es todo amigos…

Hola, he leido en otros foros que si queremos presentar la misma partición ISCSI a 2 máquinas distinas no funciona al formatear con ext3, es necesario un sistema de archivos distinto… ¿sabes cual?
Necesito hacer esto y tengo las LUNs ISCSI presentadas a ambas máquinas pero no quiero formatear hasta tener la certeza de qué sistemas de archivos utilizar.
Agradeceré mucho tu ayuda.
Saludos.
Sí, necesitas un sistema de ficheros que evite que los dos servidores intenten modificar los mismos datos a la vez (lo que puede generar inconsistencias). Una opción es GFS, aunque seguramente existirán más opciones.
Hola URGENTE auxilio,
Tengo Centos 5.4, y sigo los pasos indicados arriba pero despues de configurar los 2 archivos en /etc/iscsi/ , ejecuto service iscsi restart me aparece:
Stopping iSCSI daemon:
iscsid interrumpido pero existe un archivo pid [ OK ]
Starting iSCSI daemon: [ OK ]
[ OK ]
Configurando destinos iSCSI: iscsiadm: No records found!
[ OK ]
y luego, cuando ejecuto el comando:
iscsiadm -m discovery -t st -p 192.168.0.124
aparece:
iscsiadm: cannot make connection to 192.168.0.124:3260 (111)
iscsiadm: connection to discovery address 192.168.0.124 failed
iscsiadm: cannot make connection to 192.168.0.124:3260 (111)
iscsiadm: connection to discovery address 192.168.0.124 failed
iscsiadm: cannot make connection to 192.168.0.124:3260 (111)
iscsiadm: connection to discovery address 192.168.0.124 failed
iscsiadm: cannot make connection to 192.168.0.124:3260 (111)
iscsiadm: connection to discovery address 192.168.0.124 failed
iscsiadm: cannot make connection to 192.168.0.124:3260 (111)
iscsiadm: connection to discovery address 192.168.0.124 failed
iscsiadm: connection login retries (reopen_max) 5 exceeded
iscsiadm: Could not perform SendTargets discovery.
¿Alguien me puede ayudar????
yo estoy igual cesar
con centos 5.6
pudiste soulucionar el problema?
saludos
no prende el servicio
[root@vdi iscsi]# netstat -tulpn | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2902/portmap
tcp 0 0 :::11173 :::* LISTEN 3933/java
tcp 0 0 :::11174 :::* LISTEN 3933/java
udp 0 0 0.0.0.0:111 0.0.0.0:* 2902/portmap
[root@vdi iscsi]# netstat -tulpn | grep 3260
[root@vdi iscsi]#