You are on page 1of 9

Cmo montar y conectarse a un servidor de targets iSCSI

El paquete scsi-target-utils nos ofrece las herramientas necesarias para configurar targets y
levantar un servidor iSCSI en sistemas GNU/Linux Red Hat, CentOS, Scientific Linux, etc. Esto
puede resultar til tanto en entornos productivos como cuando necesitamos hacer pruebas de iSCSI
y no tenemos una cabina de almacenamiento que nos sirva LUNs. La informacin del paquete es la
siguiente:
# yum info scsi-target-utils

Available Packages
Name

: scsi-target-utils

Arch

: i686

Version

: 1.0.24

Release

: 2.el6

Size

: 166 k

Repo

: base

Summary

: The SCSI target daemon and utility programs

URL

: http://stgt.sourceforge.net/

License

: GPLv2

Description : The SCSI target package contains the daemon and tools to setup a SCSI
targets.
: Currently, software iSCSI targets are supported.

En el caso de no encontrarse instalado lo hacemos a travs de yum:

# yum installnfo iscsi-initiator-utils

Toda la configuracin se establece en el fichero /etc/tgt/targets.conf. Por suerte, el fichero est


perfectamente documentado a travs de los comentarios. Los target iSCSI se definen con
etiquetas <target>, ejemplo:

# Sample target with one LUN only. Defaults to allow access for all initiators:

#<target iqn.2008-09.com.example:server.target1>

# backing-store /dev/LVM/somedevice
#</target>

Si quisiramos crear un initiator bsico, sin autenticacin y disponible para cualquier host podemos
seguir el ejemplo anterior. En este caso creamos un target para un volmen lgico cuyo path es
/dev/vg_lab/lv_test2, recordad que se sirve a nivel de bloque:

<target iqn.1994-05.com.redhat:server.lab01>
backing-store /dev/vg_lab/lv_test2
</target>

Si quisiramos compartirlo nicamente para un initiator (cliente iSCSI) podemos especificarlo con la
directiva initiator-address seguido de la IP del initiator:

<target iqn.1994-05.com.redhat:server.lab01>
backing-store /dev/vg_lab/lv_test2
initiator-address 192.168.1.128
</target>

Completando un poco la configuracin podramos solicitar autenticacin para hacer login contra el
target iSCSI especificando el user y pass dentro de las etiquetas target :

<target iqn.1994-05.com.redhat:server.lab01>
backing-store /dev/vg_lab/lv_test2
initiator-address 192.168.1.128
incominguser miusuario mipassword
</target>

Nota:

es

necesario

configurar

la autenticacin

en

el

cliente a

travs

del

fichero

/etc/iscsi/iscsid.conf
Si investigis el fichero de configuracin veris que las configuraciones pueden ser mucho ms
complejas, eso ya lo dejo para vosotros. Vamos a levantar el servidor iSCSI para ver si nuestro
target se sirve correctamente:

# /etc/init.d/tgtd restart
Stopping SCSI target daemon: not running

[FAILED]

Starting SCSI target daemon:

OK

En el lado del cliente


Una vez levantado el target ya podemos hacer login contra el portal desde un equipo que tenga
permiso para acceder al mismo. Para ello hacemos uso del comando iscsiadm, disponible con el
paquete iscsi-initiator-utils:
# yum info iscsi-initiator-utils

Installed Packages
Name

: iscsi-initiator-utils

Arch

: i686

Version

: 6.2.0.872

Release

: 41.el6

Size

: 1.9 M

Repo

: installed

From repo

: anaconda-CentOS-201207051201.i386

Summary

: iSCSI daemon and utility programs

URL

: http://www.open-iscsi.org

License

: GPLv2+

Description : The iscsi package provides the server daemon for the iSCSI protocol,
: as well as the utility programs used to manage it. iSCSI is a protocol
: for distributed disk access using SCSI commands sent over Internet
: Protocol networks.

Lo primero que hacemos es lanzar una consulta al portal (servidor iSCSI) para ver si nos sirve
algun disco/lun:

# iscsiadm --mode discovery --type sendtargets --portal 192.168.1.100


Starting iscsid:

OK

[::1]:3260,1 iqn.1994-05.com.redhat:server.lab01

Como podis ver, automticamente levanta el demonio iscsid para poder lanzar la peticin,
recordad de aadirlo en el arranque si queris que levante automticamente al reiniciar:

# chkconfig iscsid on

Como hemos visto, nos sirve un target:


[::1]:3260,1 iqn.1994-05.com.redhat:server.lab01
Para conectarnos utilizamos el siguiente comando, en este caso est configurado sin autenticacin
as que no especificamos user o password:
# iscsiadm --mode node \
> --targetname iqn.1994-05.com.redhat:server.lab01 \
> --portal 192.168.1.100 \
> --login
Logging in to [iface: default, target: iqn.1994-05.com.redhat:server.lab01, portal:
::1,3260] (multiple)
Login

to

[iface:

default,

target:

iqn.1994-05.com.redhat:server.lab01,

portal:

::1,3260] successful.

Una vez conectados al portal, ya veremos en nuestro sistema el nuevo dispositivo de bloques, ya
sea con undmesg o haciendo un fdisk -clu:
# dmesg | tail
scsi 4:0:0:0: RAID

IET

Controller

0001 PQ: 0 ANSI: 5

scsi 4:0:0:0: Attached scsi generic sg3 type 12


scsi 4:0:0:1: Direct-Access

IET

VIRTUAL-DISK

0001 PQ: 0 ANSI: 5

sd 4:0:0:1: Attached scsi generic sg4 type 0


sd 4:0:0:1: [sdc] 3244032 512-byte logical blocks: (1.66 GB/1.54 GiB)
sd 4:0:0:1: [sdc] Write Protect is off
sd 4:0:0:1: [sdc] Mode Sense: 49 00 00 08
sd 4:0:0:1: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or
FUA

sdc: unknown partition table


sd 4:0:0:1: [sdc] Attached SCSI disk
# fdisk -clu /dev/sdc

Disk /dev/sdc: 1660 MB, 1660944384 bytes


52 heads, 61 sectors/track, 1022 cylinders, total 3244032 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x08040000

Y a partir de aqu podemos trabajar con l como si de un disco fsico se tratara. La configuracin de
cliente iSCSI est fuera del alcance de este artculo, pero os puedo indicar que todos los valores se
configuran en el fichero/etc/iscsi/iscsid.conf y una vez conectados a un target, sus configuraciones
se encuentra en/var/lib/iscsi/nodes/.
Para desconectarnos de un target usamos el mismo comando de login anterior pero pasando el
ltimo parmetro de logout en lugar de login:
# iscsiadm --mode node \
> --targetname iqn.1994-05.com.redhat:server.lab01 \
> --portal 192.168.1.100 \
> --logout
Logging out of session [sid: 1, target: iqn.1994-05.com.redhat:server.lab01, portal:
::1,3260]
Logout

of

[sid:

1,

target:

iqn.1994-05.com.redhat:server.lab01,

successful.

Y para eliminar la conexin al target:


# iscsiadm --mode node \
> --targetname iqn.1994-05.com.redhat:server.lab01 \
> --portal 192.168.1.100 \
> -o delete

portal:

::1,3260]

OTRA EXPLICACION

Creacin iSCSI target CentOS Linux.

Para esta entrada explicare como crear un iSCSI target con multipath.
Arquitectura.

CentOs ISCSI
El primer paso a configurar es crear un target iscsi a partir de un logical volume creado ,
para este ejemplo:
[root@server ~]# lvdisplay vg_cluster
--- Logical volume --LV Path

/dev/vg_cluster/lv_cluster

LV Name

lv_cluster

VG Name

vg_cluster

LV UUID

Sqy3sb-0MYd-McCg-8Q0w-31e0-GBaV-rB7JWL

LV Write Access

read/write

LV Creation host, time cluster1.example.com, 2013-11-11 17:30:18 -0500


LV Status

available

# open

LV Size

512.00 MiB

Current LE

128

Segments

Allocation

inherit

Read ahead sectors

auto

- currently set to

256

Block device

253:10

Nos aseguramos de instalar el siguiente paquete yum -y install scsi-target-utils.


Configuramos el nuevo target en el siguiente archivo /etc/tgt/targets.conf
# cat /etc/tgt/targets.conf
<target iqn.2014-01.net.cpd:san.storage>
backing-store /dev/mapper/vg_cluster-lv_cluster
initiator-address 192.168.56.101
initiator-address 192.168.2.88
initiator-address 192.168.56.102
initiator-address 192.168.2.89
</target>

En este archivo definimos los target y a que IP servira. Luego iniciamos el servicio y
habilitamos.
chkconfig tgtd on; service tgtd start
Acontinuacion configuremos el iSCSI initiator para conectar el target a los dos clientes,
desde los clientes instalamos
yum -y install iscsi-initiator-utils

y seteamos el IQN en el archivo /etc/iscsi/initiatorname.iscsi del cliente:


cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-01.net.cpd:san.storage
InitiatorAlias=initiator01
cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-01.net.cpd:san.storage
InitiatorAlias=initiator02

Nodos
Desde los nodos descubrimos los target disponibles:
Node 1
node1 # iscsiadm -m discovery -t sendtargets -p 192.168.56.1
node1 # iscsiadm -m discovery -t sendtargets -p 192.168.2.165
node1 # sevice iscsi restart
Node 2
node2 # iscsiadm -m discovery -t sendtargets -p 192.168.56.1
node2 # iscsiadm -m discovery -t sendtargets -p 192.168.2.165node2 # sevice iscsi restart

Al ejecutar el comando fdisk -cul veremos que sean presentado 2 discos el /dev/sdb y
/dev/sdc
Disk /dev/sdb: 536 MB, 536870912 bytes
70 heads, 4 sectors/track, 3744 cylinders, total 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x491ab7ed
Disk /dev/sdc: 536 MB, 536870912 bytes
70 heads, 4 sectors/track, 3744 cylinders, total 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x491ab7ed

En realidad es un solo disco mapeado por dos rutas diferentes, por ello el sistema
operativo debera tratarlo como tal, para esto utilizamos el servicio multipath, instalando
el siguiente paquete en los nodos:
yum install device-mapper-multipath

Configuramos el archivo /etc/multipath.conf y aadimos en la seccin default y


multipaths lo siguiente:
defaults {
user_friendly_names no
getuid_callout "/lib/udev/scsi_id --replace-whitespace --whitelisted --device=/dev/%n"
}

multipath {
wwid "1IET

00010001"

alias "clusterstorage"
}

Para el caso de no conocer el wwwid con el siguiente comando nos ayudamos:


#iscsi_id --whitelisted --device=/dev/sdx
Para finalizar iniciamos el servicio: service multipathd start. Para comprobar el servicio
es optimo damos el siguiente comando:
# multipath -ll
clusterstorage (1IET

00010001) dm-2 IET,VIRTUAL-DISK

size=512M features='0' hwhandler='0' wp=rw


|-+- policy='round-robin 0' prio=1 status=active
| `- 5:0:0:1 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 6:0:0:1 sdc 8:32 active ready running

Ahora si podemos trabajar con el disco llamandolo desde /dev/mapper/clusterstorage


Si tienen problemas o algo esta mal en esta pequea entrada favor sus comentarios

You might also like