iSCSI: configurar servidor y clientes para almacenamiento compartido
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):
- Preparar volúmenes en el servidor (LVM, archivos o particiones).
- Definir Targets y LUNs en ietd.conf.
- Restringir clientes mediante initiators.allow.
- Iniciar servicios y verificar descubrimiento desde clientes.
- 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
- RHEL5 Virtualization Manual
- http://iscsitarget.sourceforge.net
- Oracle RAC HowTO
Materiales similares

Limpiar Gmail y cancelar suscripciones con Cleanfox

X2Go seguro en Ubuntu Precise con WiKID 2FA

Filtración 'Grasshopper' de WikiLeaks: malware CIA

Ubicación predeterminada en Windows 10

Abrir PowerPoint en el navegador
