4 minute read

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

iscsi

Categories:

Updated:

Comments