Instalación de iscsi en Debian 12

iscsi

¿Que es iscsi?

iSCSI es un protocolo de red de almacenamiento que permite a los hosts utilizar dispositivos de almacenamiento remoto.

Requisitos

  • Sistema Debian 12 actualizado.
  • Privilegios de root o sudo.
  • Acceso a internet.

Instalacion

Para que nuestro servidor pueda funcionar como un servidor iscsi, necesitamos instalar el paquete tgt.

root@iscsi:~# apt install tgt -y

Configuracion

Una vez instalado el paquete, vamos a configurar el target.

root@iscsi:~# nano /etc/tgt/conf.d/target1.conf

<target iqn.2023-12.local.example:target01>
    driver iscsi
    controller_tid 1
    backing-store /dev/vdb
    incominguser iscsi password2023
</target>
  • iqn.2023-12.local.example:target01: Es el nombre del target, el cual debe ser unico.
  • driver iscsi: Es el driver que vamos a utilizar.
  • controller_tid 1: Es el ID del target, el cual debe ser unico.
  • backing-store /dev/vdb: Es el dispositivo de almacenamiento que vamos a compartir.
  • incominguser iscsi password2023: Es el usuario y contraseña que vamos a utilizar para conectarnos al target.

Una vez configurado el target, vamos a reiniciar el servicio.

root@iscsi:~# systemctl restart tgt

Comprobacion windows

Para comprobar que nuestro target funciona correctamente, vamos a utilizar la herramienta initiator iscsi de windows.

Introductimos la IP de nuestro servidor iscsi y pulsamos en conexión rápida.

iscsi-windows-1

Veremos que nos aparece el target que hemos configurado, pulsamos en listo.

iscsi-windows-2

Ahora pulsamos en conectar y pulsamos en avanzado.

iscsi-windows-3

Marcamos la casilla de habilitar inicio de sesión CHAP y introducimos el usuario y contraseña que hemos configurado en el target y pulsamos en OK.

iscsi-windows-4

Veremos que nos aparece el target conectado.

iscsi-windows-5

Si vamos a administrador de discos, veremos que nos aparece un nuevo disco, el cual podemos formatear y utilizar.

iscsi-windows-6

Una vez formateado, podemos ver que el disco esta listo para ser utilizado.

iscsi-windows-7

He creado un par de carpetas con algunos archivos algo pesados y como podemos ver, el disco funciona correctamente.

iscsi-windows-8

Comprobacion linux

Para comprobar que nuestro target funciona correctamente, vamos a utilizar la herramienta open-iscsi de linux.

root@iscsi-client:~# apt install open-iscsi -y

Una vez instalado el paquete nos dirigimos al fichero ‘/etc/iscsi/initiatorname.iscsi’ y ajustamos el nombre del iniciador según nuestro caso.

root@iscsi-client:~# nano /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2023-12.local.example:iscsi-client.initiator

Ahora tenemos que configurar el fichero ‘/etc/iscsi/iscsid.conf’.

root@iscsi-client:~# nano /etc/iscsi/iscsid.conf

#Descomentamos la siguiente linea
node.session.auth.authmethod = CHAP

#Descomentamos las siguientes lineas y las modificamos por el usuario y contraseña que hemos configurado en el target
node.session.auth.username = iscsi
node.session.auth.password = password2023

Una vez configurado el fichero, reiniciamos los servicios iscsid y open-iscsi.

root@iscsi-client:~# systemctl restart iscsid open-iscsi

Ahora vamos a utilizar el siguiente comando con la IP de nuestro servidor iscsi para ver los targets disponibles.

root@iscsi-client:~# iscsiadm -m discovery -t sendtargets -p 192.168.50.44

192.168.50.44:3260,1 iqn.2023-12.local.example:target01

Utilizamos el siguiente comando con la IP de nuestro servidor iscsi y el nombre del target para conectarnos.

root@iscsi-client:~# iscsiadm -m node -T iqn.2023-12.local.example:target01 -p 192.168.50.44 -l

Logging in to [iface: default, target: iqn.2023-12.local.example:target01, portal: 192.168.50.44,3260]
Login to [iface: default, target: iqn.2023-12.local.example:target01, portal: 192.168.50.44,3260] successful.

Ahora vamos a utilizar el siguiente comando para ver los discos disponibles.

Como podemos ver, nos aparece un nuevo disco llamado sda que fue el que utilizamos en la prueba con windows.

root@iscsi-client:~# lsblk

**NOTA:** No es recomendable utilizar el mismo disco en dos máquinas diferentes al mismo tiempo, ya que puede provocar corrupción de datos. Desconectamos el disco de windows y lo conectamos en linux.

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0    2G  0 disk
├─sda1   8:1    0   16M  0 part
└─sda2   8:2    0    2G  0 part
sr0     11:0    1  738M  0 rom
vda    254:0    0    8G  0 disk
├─vda1 254:1    0    7G  0 part /
├─vda2 254:2    0    1K  0 part
└─vda5 254:5    0  975M  0 part [SWAP]

Montamos el disco y comprobamos que funciona correctamente.

root@iscsi-client:~# mount /dev/sda2 /mnt

Vemos el contenido del disco.

Como podemos ver, el disco funciona correctamente y contiene los archivos que hemos creado en windows.

root@iscsi-client:~# ls /mnt

total 8
drwxrwxrwx 1 root root    0 dic  2 15:56 '$RECYCLE.BIN'
drwxrwxrwx 1 root root 4096 dic  2 15:56  prueba1
drwxrwxrwx 1 root root 4096 dic  2 15:56  prueba2
drwxrwxrwx 1 root root    0 dic  2 15:58 'System Volume Information'

Con esto ya tendriamos nuestro servidor iscsi funcionando correctamente en Debian 12.