Professional Documents
Culture Documents
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
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.
# 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]
OK
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
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:
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
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
IET
VIRTUAL-DISK
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.
portal:
::1,3260]
OTRA EXPLICACION
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
available
# open
LV Size
512.00 MiB
Current LE
128
Segments
Allocation
inherit
auto
- currently set to
256
Block device
253:10
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
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
multipath {
wwid "1IET
00010001"
alias "clusterstorage"
}