Instalación de iscsi en Debian 12
¿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.
Veremos que nos aparece el target que hemos configurado, pulsamos en listo.
Ahora pulsamos en conectar y pulsamos en avanzado.
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.
Veremos que nos aparece el target conectado.
Si vamos a administrador de discos, veremos que nos aparece un nuevo disco, el cual podemos formatear y utilizar.
Una vez formateado, podemos ver que el disco esta listo para ser utilizado.
He creado un par de carpetas con algunos archivos algo pesados y como podemos ver, el disco funciona correctamente.
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.