Taller de Almacenamiento - Introducción a iSCSI
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 Inicio → Buscador iSCSI → Seleccionar "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ón → Añ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.