Introducción a iSCSI

iSCSI es un protocolo de red que permite compartir almacenamiento entre servidores. iSCSI es una abreviatura de Internet Small Computer System Interface. Sirve para conectar servidores y almacenamiento de forma que se pueda compartir el almacenamiento entre ellos. Es una abreviatura de Internet Small Computer System Interface.

En este Taller vamos a configurar un servidor iSCSI y un cliente iSCSI. Para ello, vamos a usar un vagrantfile

Configuración del servidor iSCSI

Primero instalaremos una herramienta que nos permitirá poder utilizar iSCSI, que es tgt.

apt-get install tgt

Una vez finalizada la instalación, empezaremos con la creación del target para debian, que para ello deberemos crear un archivo de configuración:

nano /etc/tgt/conf.d/target1.conf

Y dentro de este archivo, pondremos lo siguiente:

<target iqn.2023-01-target1>
    backing-store /dev/vdb
</target>

Vamos a realizarlo en un solo LUN, que es lo mismo que en un solo disco duro. Para ello, vamos a reiniciar el servicio y comprobar que se ha creado correctamente:

sudo systemctl restart tgt
---
sudo tgtadm --mode target --op show

Configuración del cliente iSCSI

Para configurar el cliente iSCSI, vamos a instalar el paquete open-iscsi:

sudo apt-get install open-iscsi

sudo iscsiadm --mode discovery --type sendtargets --portal 192.168.121.117

sudo iscsiadm --mode node -T iqn.2023-01-target1 --portal 192.168.121.117 -l

NOTA: Para desmontar el target, utilizaremos la opción -u en el comando anterior (sudo iscsiadm --mode node -T iqn.2023-01-target1 --portal 192.168.121.117 -u).

Una vez instalado, podemos comprobar la conexión del target:

journalctl -k -f

Formateo del disco

Podemos hacer uso del nuevo dispositivo que hemos creado como si se tratase de un disco duro más. Para ello, vamos a formatearlo:

mkfs.ext4 /dev/sda

Una vez realizado elformateo, comprobaremos que se ha creado correctamente:

lsblk -f

El siguiente paso será montarlo, para poder escribir datos en él:

mount -t ext4 /dev/sda /mnt

Y como podemos comprobar en la siguiente imagen, podemos ver que está montado correctamente:

lsblk -f

Para comprobar que podemos escribir en él, vamos a crear un archivo de texto:

sudo echo "Prueba de funcionamiento iSCSI." > /mnt/prueba.txt

Montaje automático

Para que el disco se monte automáticamente, vamos a cargar el target en el arranque del sistema. Para ello, ejecutaremos el siguiente comando:

sudo iscsiadm -m discovery -T iqn.2023-01-target1 -p 192.168.121.117 -u
sudo iscsiadm -m discovery -T iqn.2023-01-target1 -o update -n node.startup -v automatic

Modificaremos fichero /etc/iscsi/iscsid.conf y añadiremos la siguiente línea:

node.startup = automatic

Y reiniciaremos el servicio:

sudo systemctl restart iscsid.service

Para habilitarlo de forma permanente, ejecutaremos el siguiente comando:

sudo systemctl enable iscsid open-iscsi.service

El siguiente paso que realizaremos será crear una unidad de systemd para que se monte el disco automáticamente. Para ello, crearemos un directorio donde crearemos las unidades iSCSI:

mkdir /media/iscsi

Tras esto, crearemos el archivo de configuración de la unidad en /etc/systemd/system/media-target1-iscsi.mount:

[Unit]
Description=Mount iSCSI target1
Requires=network-online.target
After=network-online.target, iscsid.service

[Mount]
What=/dev/disk/by-uuid/0ec438bc-620e-4bde-b8ca-d880b5d5358c
Where=/media/iscsi/target1
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target

NOTA: El nombre del fichero debe ser la ruta completa del directorio donde se montará el disco, pero separado por guiones. Por ejemplo, si queremos montar el disco en /mnt/target1, el nombre del fichero será /etc/systemd/system/mnt-target1.mount.

Reiniciaremos los demonios:

sudo systemctl daemon-reload

Habilitaremos la unidad:

sudo systemctl enable media-iscsi-target1.mount

Y por último, la iniciamos:

sudo systemctl start media-iscsi-target1.mount

Como podemos comprobar en la siguiente imagen, se ha montado correctamente:

Y si reiniciamos la máquina, se montará automáticamente:

Creamos un target para Windows

Para este punto, vamos a realizar los mismos pasos que para las configuraciones anteriores, pero en este caso, vamos a crear un target con 2 LUN y autenticación por CHAP.

  • Creamos el fichero de configuración:
nano /etc/tgt/conf.d/target2.conf
---

<target iqn.2023-01-target2>
    backing-store /dev/vdc
    backing-store /dev/vdd
    incominguser maria maria32061164s
</target>

NOTA: La contraseña debe de tener entre 12 y 16 caracteres para que no se error.

  • Reiniciamos el servicio:
systemctl restart tgt
  • Comprobamos que se ha creado correctamente:
tgtadm --mode target --op show

Cliente Windows

En la barra de búsqueda de Windows, escribimos iSCSI y seleccionamos la opción Iniciador iSCSI. Una vez seleccionado nos aparecerá la siguiente ventana:

Para poder conectar el target desde Windows, nos vamos a InicioBuscador iSCSISeleccionar "Iniciador iSCSI"Destinos. En esta subpestaña, introducimos los datos del servidor, pulsamos actualizar y se nos mostrarán los targets disponibles. En nuestro caso, seleccionaremos el target iqn.2023-01-target2 y le daremos a Conectar.

Tras esto, nos aparecerá una ventana de autenticación, donde deberemos introducir las credenciales que hemos configurado en el target. En nuestro caso, maria y maria32061164s.

Y como podemos ver en la siguiente imagen, se ha conectado correctamente.

Formateo y iso de la unidad iSCSI desde Windows

Nos dirigimos de nuevo a la barra de búsqueda de Windows y escribimos Administración de discos. Una vez seleccionado, nos aparecerá la siguiente ventana:

En la ventana de Inicializar disco donde aparecerán los dos discos que hemos configurado en el target. Seleccionaremos los dos y le daremos a Aceptar.

Nos aparecen los discos sin formato, por lo que, en la barra superior de la ventana, seleccionamos AcciónAñadir volumen simple. Seleccionaremos el formato NTFS y le daremos a Siguiente. En la siguiente ventana, le daremos a Siguiente y en la siguiente, a Finalizar.

Tras finalizar, podemos ver que se han creado dos unidades de disco, una para cada LUN.

Como podemos comprobar finalmente, ambos discos se han formateado correctamente y podemos acceder a ellos desde Windows.