#4sysadmins

Inicio » GNU/Linux » Configurar iSCSI en Linux

Configurar iSCSI en Linux

Últimas Entradas

Follow #4sysadmins on WordPress.com

En esta entrada continuaremos con iSCSI, concretamente con la instalación y configuración de un cliente iSCSI o servidor de almacenamiento vía TCP/IP (iSCSI).

Instalación de paquetes Open-iSCSI

Cliente

Para instalar el paquete cliente en CentOS/Fedora/Red Hat/Ubuntu/Debian/LinuxMint:

Red Hat/CentOS

# yum install iscsi-initiator-utils

Ubuntu/Debian

# apt-get install open-iscsi

Servidor

Para instalar el paquete servidor en CentOS/Fedora/Red Hat/Ubuntu/Debian/LinuxMint:

Red Hat/CentOS

# yum install scsi-target-utils

Ubuntu/Debian

# apt-get install iscsitarget

 

Linux como cliente iSCSI

El paquete cliente de Linux está formado por tres componentes, aclarando por adelantado que en muchos de los paquetes Linux, incluidos aquellos que no hacen de servidor si no “cliente de”, existe un componente servidor o demonio que en este caso NO debemos de confundir con la parte servidora, es decir con el paquete servidor que se instala en las máquinas que realmente van a hacer de servidor de discos SCSI. Aclarado lo anterior, el paquete iSCSI cliente de linux se compone de:

  • Un módulo central que gestiona las interfaces de red TCP/IP
  • Un modulo servidor que garantice las comunicaciones con los servidores de almacenamiento remotos
  • Comandos de gestión

La configuración del servicio cliente se encuentra en /etc/iscsid.conf y en rara ocasión necesita ser modificado, salvo que el servidor remoto este levantado en un puerto diferente al que viene por defecto (3260) o necesite que el cliente transmita credenciales para su acceso.

El demonio cliente se arranca así:

# service iscsi start

Y veremos que no se ejecuta ningún proceso hasta que se realiza la primera llamada al servidor remoto.
Para acceder a un recurso iSCSI remoto primero hay que “descubrirlo”:

# iscsiadm -m discovery -t sendtargets -p 192.168.0.39
Inicio iscsid:
192.168.0.39:3260,1 iqn.2015-09.com.wordpress.nebul4ck:server.target

Con sendtargets estamos enviando nuestro WWN initiator. Si existe un WWN target en esa IP (192.168.0.39), nos devolverá su WWN, como ha sido el caso.

Ahora con su WWN conectamos:

# iscsiadm -m node -T iqn.2015-09.com.wordpress.nebul4ck:server.target \
-p 192.168.0.39 --login

Si la conexión es correcta, se guardará en la base de datos del demonio (cliente) iscsid para en ocasiones posteriores conectarse automáticamente.

En el momento que la conexión es aceptada las unidades de almacenamiento gestionadas por el destino se asocian a archivos especiales locales en modo bloque (/dev/sdb…) como si se tratasen de dispositivos locales, algo que podremos comprobar con fdisk -l.

Utilización de dispositivos iSCSI

Una vez tenemos conexión con el servidor remoto que gestiona los dispositivos iSCSI podremos tratarlos desde nuestro cliente Linux (nuestro Desktop por ejemplo) como discos locales, de modo que lo primero sería darles formatos con mkfs (en caso de que no lo tuviesen por ser discos nuevos, vacíos o que necesitasen ser formateados).

Una vez particionados y con formato, podríamos montarlos con el comando mount o automatizar el montaje con /etc/fstab, cuya línea quedaría tal que así:

# vi /etc/fstab
…
/dev/sde /opt/bigdata ext4 _netdev 0 0
…

La opción _netdev especifica el modo de acceso a la red del sistema de archivos.

Desconexión de un recurso iSCSI

Para desconectar un dispositivo iSCSI lo primero será desmontarlo con umount y a continuación ejecutar el siguiente comando:

# iscsiadm -m node -T iqn.2015-09.com.wordpress.nebul4ck:server.target \
-p 192.168.0.39 --logout

 

Linux como servidor iSCSI

Una vez hemos instalado el paquete servidor tal y como se indicó en la sección “Instalación de paquetes Open-iSCSI”, arrancaremos el demonio y se pondrá a la escucha de posibles peticiones de clientes remotos por el puerto 3260 (puerto por defecto).

Este servidor gestionará uno o mas destinos y para cada uno de ellos, una o mas unidades lógicas (LUN). Si se intercepta alguna conexión cliente, el servicio transmite la petición al controlador del dispositivo local y devuelve la respuesta al cliente.

Para configurar el servicio buscaremos el directorio (normalmente bajo /etc/) tgt y en especial el archivo targets.conf en el que asociaremos un WWN con uno o mas dispositivos tal que así:

# vi /etc/tgt/targets.conf
 <target iqn.2015-09.com.wordpress.nebul4ck:server.target>
 backing-store /dev/sde
 </target>

Ahora se levanta el demonio servidor y se configura para que inicie al arranque del sistema:

Systemd

# systemctl enable tgtd
# systemctl start tgtd

SysV

# service tgtd start
# chkconfig tgtd on

El comando tgtadm permitirá gestionar este servicio.

Nota: si tenemos ejecutándose un cortafuegos (iptables, firewalld, ufw…) tendremos que configurar las reglas para aceptar peticiones externas por el puerto 3260.

 

Anuncios

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: