ISCSI
Introducción
ISCSI es un estándar que permite el uso del protocolo SCSI sobre redes TCP/IP. iSCSI es un protocolo de la capa de transporte definido en las especificaciones SCSI-3.
Para esta practica se han creado 3 maquinas virtuales, 2 debian 10, una cliente y otra servidor con 3 discos de 1Gb y una maquina windows 7.
Instalación y configuración
En el servidor, empezamos instalando los paquetes tgt y lvm2.
apt install tgt lvm2
Mientras en el cliente debian instalamos el paquete iscsi
apt install open-iscsi
Preparamos los discos para el uso de ISCSI LUN (en el server), usando lvm2 creamos los volúmenes físicos:
root@ISCSI:/home/vagrant# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
Creamos el grupo de volúmenes:
root@ISCSI:/home/vagrant# vgcreate iscsi /dev/sdb
Volume group "iscsi" successfully created
Creamos el volumen logico:
root@ISCSI:/home/vagrant# lvcreate -L 950M -n vol-iscsi iscsi
Rounding up size to full physical extent 952.00 MiB
Logical volume "vol-iscsi" created.
Comprobamos que se haya creado correctamente con el comando lvs
root@ISCSI:/home/vagrant# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol-iscsi iscsi -wi-a----- 952.00m
Una vez creado el volumen lógico, pasemos a crear el LUN que sera el dispositivo al que el iniciador se conectara, para ello modificamos (/etc/tgt/targets.conf):
<target iqn.2020-21.com:tgiscsi>
backing-store /dev/iscsi/vol-iscsi
</target>
Reiniciamos el servivio tgt:
systemctl restart tgt
Comprobamos que el target este bien creado:
root@ISCSI:/home/vagrant# tgtadm --mode target --op show
Target 1: iqn.2020-21.com:tgiscsi
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 998 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /dev/iscsi/vol-iscsi
Backing store flags:
Account information:
ACL information:
ALL
Configuración de cliente Debian
Configuramos el fichero (/etc/iscsi/iscsid.conf):
iscsid.startup = automatic
node.startup = automatic
Reiniciamos el servicio:
systemctl restart open-iscsi.service
Comunicamos al cliente con el target:
root@cliente:/home/vagrant# iscsiadm -m discovery -t st -p 192.168.43.23
192.168.43.23:3260,1 iqn.2020-21.com:tgiscsi
Buscamos los servcios disponibles dentro de la red:
iscsiadm -m discovery -t sendtargets -p ip serrver
Hacemos un login al target que se nos ha mostrado anteriormente:
root@cliente:/home/vagrant# iscsiadm --m node --targetname "iqn.2020-21.com:tgiscsi" -p "192.168.43.23:3260" --login
iscsiadm: default: 1 session requested, but 1 already present.
iscsiadm: Could not log into all portals
Una vez hecho esto, le damos formato y lo montamos para comprobar que se pueda escribir en el:
mkfs.ext4 /dev/sdb
mkdir /mnt/iscsi
mount /dev/sdb1 /mnt/iscsi
Montamos el login de iscsi en el servidor para comprobar que el fichero creado por el cliente se haya creado correctamente:
mount /dev/iscsi/vol-iscsi iscsi/
Comprobamos que el fichero creado por el cliente existe:
root@ISCSI:/mnt# cat iscsi/fichero_iscsi.txt
practica iscsi
Automontaje del volumen en el cliente:
Creamos el automontaje en /etc/systemd/system/iscsi.mount con la siguiente configuración:
[Unit]
Description=ISCSI
[Mount]
What=/dev/sdb
Where=/mnt/iscsi
Type=ext4
Options=_netdev
[Install]
WantedBy=multi-user.target
Recargamos el demonio y habilitamos el automontaje:
systemctl daemon-reload
systemctl enable iscsi.mount
Reiniciamos y comprobamos si se automonta:
Configuración Windows
Para windows vamos a utilizar los dos volumenes que sobran, sdc y sdd, empezamos al igual que antes creando los volúmenes lógicos en el servidor:
root@ISCSI:/home/vagrant# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
root@ISCSI:/home/vagrant# vgcreate win1 /dev/sdc
Volume group "win1" successfully created
root@ISCSI:/home/vagrant# lvcreate -L 950M -n vol-win1 win1
Rounding up size to full physical extent 952.00 MiB
Logical volume "vol-win1" created.
Repetimos lo mismo con el otro disco:
root@ISCSI:/home/vagrant# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
root@ISCSI:/home/vagrant# vgcreate win2 /dev/sdd
Volume group "win2" successfully created
root@ISCSI:/home/vagrant# lvcreate -L 950M -n vol-win2 win2
Rounding up size to full physical extent 952.00 MiB
Logical volume "vol-win2" created.
Creamos los dos LUN en /etc/tgt/targets.conf modificando el fichero de la siguiente forma:
<target iqn.2020-02.com:tgwindows>
backing-store /dev/win1/vol-win1
backing-store /dev/win2/vol-win2
incominguser sergioib 123456654321
</target>
En este caso para crear el LUN de windows tenemos que añadir una autentificacion CHAP que debe tener tanto un usuario como una contraseña de entre 12 y 15 caracteres.
Reiniciamos el servicio igual que antes y comprobamos que se hayan creado:
root@ISCSI:/home/vagrant# tgtadm --mode target --op show
Target 1: iqn.2020-02.com:tgwindows
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 998 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /dev/win1/vol-win1
Backing store flags:
LUN: 2
Type: disk
SCSI ID: IET 00010002
SCSI SN: beaf12
Size: 998 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /dev/win2/vol-win2
Backing store flags:
Account information:
sergioib
ACL information:
ALL
Cliente windows
Conectamos el iscsi al cliente windows:
Panel de control > herramientas administrativas > iniciador iscsi > propiedades > detección > detectar portal
Ponemos la ip del servidor y nos deberán salir los targets creados anteriormente.
Le damos a conectar y vamos a las opciones avanzadas y habilitamos el inicio de sesión por chap donde añadimos el usuario y contraseña creados anteriormente.
Aceptamos y ya tendremos iscsi conectado a nuestra maquina windows1

Comments