Guía de tecnologías

iSCSI: configurar servidor y clientes para almacenamiento compartido

5 min read Almacenamiento Actualizado 19 Oct 2025
iSCSI: configuración de servidor y clientes
iSCSI: configuración de servidor y clientes

E. iSCSI — visión general

iSCSI es un protocolo de Storage Area Network (SAN) que permite compartir almacenamiento a través de una red IP existente. En este ejemplo se usó iscsitarget (http://iscsitarget.sourceforge.net) para exportar LUNs desde un host físico hacia invitados.

Importante: esta configuración es apropiada para entornos de laboratorio y aprendizaje. No se recomienda para producción sin medidas adicionales (redundancia, seguridad y SLAs adecuados).

1. Instalación y configuración del servidor iSCSI

1.a Compilar el tarball de la aplicación iSCSI

Estos pasos deben ejecutarse en el host físico.

  • Descarga el tarball desde SourceForge y colócalo en /usr/local/src.
  • Accede al directorio: cd /usr/local/src
  • Extrae los archivos: tar xvf iscsitarget-0.4.16.tar.gz cd iscsitarget-0.4.16
  • Compila e instala: make make install

Nota: mantener los bloques de código exactamente como aparecen ayuda a evitar errores de compilación.

1.b Configuración (ietd.conf)

A continuación se muestra el archivo ietd.conf usado para definir las LUNs que se asignarán a los invitados. He dejado comentarios que indican que el fichero real contiene más entradas.

#/etc/ietd.conf
# NOTE: the config files has more entries than what i'm showing here.
# but i've commented out the original entries and made the following
Target iqn.2008-07.NODE00:LUN01.NODE00
   MaxConnections         2
   Lun 1 Path=/dev/Virtual00VG/lvLUN01,Type=fileio
   Alias LUN01
Target iqn.2008-07.NODE00:LUN02.NODE00
   MaxConnections         2
   Lun 2 Path=/dev/Virtual00VG/lvLUN02,Type=fileio
   Alias LUN02
# end of ietd.conf

En el host físico se crearon dos volúmenes lógicos (50 GB cada uno). También puedes usar ficheros o particiones completas: cambia las entradas Path en ietd.conf según tu elección.

1.c Control de acceso (ACL)

iscsitarget usa /etc/initiators.allow y /etc/initiators.deny con funcionamiento análogo a hosts.allow/hosts.deny. En este ejemplo se permite que node01 y node02 accedan a las dos LUNs definidas.

#/etc/initiators.allow
#this should correspond to the definition in your /etc/ietd.conf
iqn.2008-07.NODE00:LUN01.NODE00 192.168.100.10, 192.168.100.20
iqn.2008-07.NODE00:LUN02.NODE00 192.168.100.10, 192.168.100.20
# endof initiators.allow
  • Inicia el servicio iscsi-target: service iscsi-target start
  • Asegúrate de que arranque en el inicio del sistema: chkconfig --add iscsi-target chkconfig iscsi-target on chkconfig --list iscsi-target iscsi-target 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Nota: los comandos chkconfig y service son típicos de sistemas tipo RHEL/CentOS 5; en distribuciones modernas usa systemctl.

2. Lado cliente (iniciador iSCSI)

El paquete iscsi-initiator-utils-6.2.0.865-0.8.el5 debería estar instalado (en el ejemplo se incluyó en el kickstart).

2.a Configuración del iniciador

  • Edita /etc/iscsi/initiatorname.iscsi para definir los nombres de iniciador. En el ejemplo se usa:
#/etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2008-07.NODE00:LUN01.NODE00
InitiatorName=iqn.2008-07.NODE00:LUN02.NODE00
# end of #/etc/iscsi/initiatorname.iscsi
  • Arranca el demonio iscsid e intenta descubrir las LUNs: service iscsid start Turning off network shutdown. Starting iSCSI daemon: [ OK ] iscsiadm -m discovery -t st -p node00 192.168.222.1:3260,1 iqn.2008-07.NODE00:LUN01.NODE00 192.168.222.1:3260,1 iqn.2008-07.NODE00:LUN02.NODE00

  • Luego inicia el servicio iscsi: service iscsi start Esto mostrará las sesiones de login y los objetivos conectados:

    iscsid (pid 964 963) is running...
    Setting up iSCSI targets: Login session [iface: default, target: \
    iqn.2008-07.NODE00:LUN02.NODE00, portal: 192.168.222.1,3260]
    Login session [iface: default, target: iqn.2008-07.NODE00:LUN01.\
    NODE00, portal: 192.168.222.1,3260] [  OK  ]
  • Revisa los logs del sistema para confirmar que se han detectado los discos: dmesg El ejemplo de salida muestra que aparecen sda y sdb con ~53687 MB cada uno.

  • Ejecuta fdisk para comprobar particiones: fdisk -l El ejemplo de salida revela discos adicionales sin tabla de particiones.

Repite el proceso en node02. Una vez que ambos invitados vean los discos, puedes proceder a montar un clúster de dos nodos. En el caso original se usó este método para probar Oracle 10gR2 RAC con ASM compartido y OCFS2 en 64 bits.

Alternativas y cuando considerar otras opciones

  • NFS: más sencillo para compartir ficheros entre servidores, pero no ofrece bloque a bloque como iSCSI.
  • Fibre Channel: rendimiento y latencia superiores, pero requiere hardware específico.
  • Soluciones modernas de software-defined storage (Ceph, Gluster): mejor escalado y características empresariales.

Elige iSCSI para pruebas, prototipos y cuando ya dispongas de una red IP dedicada o aislada para tráfico de almacenamiento.

Modelo mental y mini-metodología

Mentalidad: trata iSCSI como una extensión del almacenamiento local pero a través de la red. Mantén separación de tráfico (VLAN o red física) para evitar interferencias con la red de producción.

Mini-metodología (rápida):

  1. Preparar volúmenes en el servidor (LVM, archivos o particiones).
  2. Definir Targets y LUNs en ietd.conf.
  3. Restringir clientes mediante initiators.allow.
  4. Iniciar servicios y verificar descubrimiento desde clientes.
  5. Probar con dmesg, fdisk y montar/filesystem.

Caja de datos clave (factos del ejemplo)

  • Volúmenes LVM en host físico: 50 GB cada uno (dos LUNs).
  • Puerto iSCSI por defecto: 3260.
  • Paquetes de ejemplo: iscsitarget (servidor), iscsi-initiator-utils (cliente).

Lista de verificación por roles

Administrador del servidor (host iSCSI):

  • Crear volúmenes LVM o ficheros para LUNs.
  • Configurar /etc/ietd.conf con Targets y LUNs.
  • Configurar /etc/initiators.allow/deny.
  • Iniciar iscsi-target y habilitar en arranque.

Administrador del cliente (iniciador iSCSI):

  • Instalar iscsi-initiator-utils.
  • Editar /etc/iscsi/initiatorname.iscsi.
  • Iniciar iscsid y ejecutar iscsiadm discovery.
  • Iniciar servicio iscsi y verificar con dmesg/fdisk.

Riesgos comunes y mitigaciones

  • Riesgo: tráfico iSCSI en red de producción → Mitigación: usar VLANs o red física separada.
  • Riesgo: acceso no autorizado a LUNs → Mitigación: configurar initiators.allow y reglas de firewall.
  • Riesgo: corrupción por accesos simultáneos sin cluster FS → Mitigación: usar sistemas de ficheros/clúster (OCFS2, GFS2) o soluciones de bloque que soporten multi-writer.

Pruebas de aceptación (básicas)

  • El cliente descubre los targets con iscsiadm.
  • /var/log/dmesg muestra nuevos dispositivos SCSI (sda, sdb, etc.).
  • fdisk lista los discos exportados por el servidor.
  • Conexión estable tras reinicios (servicios activados en arranque).

Resumen

Esta guía mostró cómo instalar iscsitarget en un host físico, definir LUNs en /etc/ietd.conf, restringir acceso con /etc/initiators.allow y cómo configurar clientes con iscsi-initiator-utils para descubrir y usar los discos exportados. Es un enfoque útil para laboratorios y pruebas de clustering.

Importante: antes de usar esto en producción, planifica redundancia, seguridad y monitorización.

G. Lecturas adicionales

Autor
Edición

Materiales similares

Limpiar Gmail y cancelar suscripciones con Cleanfox
Productividad

Limpiar Gmail y cancelar suscripciones con Cleanfox

X2Go seguro en Ubuntu Precise con WiKID 2FA
Seguridad

X2Go seguro en Ubuntu Precise con WiKID 2FA

Filtración 'Grasshopper' de WikiLeaks: malware CIA
Ciberseguridad

Filtración 'Grasshopper' de WikiLeaks: malware CIA

Ubicación predeterminada en Windows 10
Windows 10

Ubicación predeterminada en Windows 10

Abrir PowerPoint en el navegador
Ofimática

Abrir PowerPoint en el navegador

Ejecutar CMD como administrador en Windows
Windows

Ejecutar CMD como administrador en Windows