GNU/Linux >> Tutoriales Linux >  >> Cent OS

Guía completa para configurar iSCSI en CentOS / RHEL 7

Internet Small Computer System Interface (iSCSI) es un estándar basado en IP para conectar dispositivos de almacenamiento. iSCSI usa redes IP para encapsular comandos SCSI, lo que permite que los datos se transfieran a largas distancias. iSCSI proporciona almacenamiento compartido entre varios sistemas cliente. Los dispositivos de almacenamiento están conectados a servidores (destinos). Los sistemas cliente (iniciadores) acceden a los dispositivos de almacenamiento remoto a través de redes IP. Para los sistemas cliente, los dispositivos de almacenamiento parecen estar conectados localmente. iSCSI utiliza la infraestructura IP existente y no requiere ningún cableado adicional, como es el caso de las redes de área de almacenamiento Fibre Channel (FC).

Configuración de un servidor iSCSI

RHEL/CentOS 7 utiliza el subsistema de destino del kernel de Linux-IO (LIO) para iSCSI. Además de iSCSI, LIO admite una serie de estructuras de almacenamiento que incluyen Fibre Channel sobre Ethernet (FCoE), acceso iSCSI sobre redes Mellanox InfiniBand (iSER) y acceso SCSI sobre redes Mellanox InfiniBand (SRP). En RHEL 7, todas las estructuras de almacenamiento se administran con targetcli utilidad.

Para configurar el sistema RHEL como un servidor iSCSI, comience instalando el paquete de software targetcli:

# yum install targetcli

La instalación del paquete de software targetcli también instala python-rtslib paquete, que proporciona el /usr/lib/systemd/system/target.service expediente. Antes de usar la utilidad targetcli para crear, eliminar y ver destinos de almacenamiento, use el comando systemctl para habilitar e iniciar el servicio de destino en el servidor iSCSI.

# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
# systemctl start target

Utilidad targetcli

La utilidad targetcli es el shell de administración para crear, editar y ver la configuración del subsistema de destino del kernel. Ejecute targetcli para ingresar al shell de configuración.

# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> help

Ejecute la ayuda comando desde el indicador targetcli para ver los comandos disponibles. Los siguientes son algunos de los comandos targetcli disponibles:

  • ls :Ver la jerarquía de objetos.
  • cd :recorrer la jerarquía de objetos.
  • crear :Cree objetos de almacenamiento, destinos, LUN, portales de red, listas de control de acceso.
  • salir :Salga del shell targetcli y guarde automáticamente la configuración.

También puede ingresar "targetcli [comando]"" para ejecutar comandos sin ingresar al shell.

Almacenes

Los almacenes de respaldo son los diferentes tipos de recursos de almacenamiento local que el destino del núcleo utiliza para "respaldar" los dispositivos SCSI que exporta a los sistemas cliente. Las asignaciones a los recursos de almacenamiento local que crea cada backstore se denominan objetos de almacenamiento. Usa el targetcli ls Comando para enumerar los diferentes tipos de backstores.

# targetcli ls /backstores

Los tipos de backstores se describen a continuación:

  • bloquear :Linux bloquea dispositivos como /dev/sda
  • fileio :Cualquier archivo en un sistema de archivos montado como /tmp/disk1.img
  • pscsi :cualquier objeto de almacenamiento que admita comandos SCSI de paso
  • disco ram :Memoria copia discos RAM

Para crear un backstore de bloques desde el shell targetcli:

/> cd /backstores/block
/backstores/block> create name=LUN_1 dev=/dev/xvdb

Para crear un backstore fileio desde el shell targetcli:

/> cd /backstores/fileio
/backstores/fileio> create name=LUN_3 /root/disk1.img 5G

Creación de un objetivo iSCSI

Para crear un objetivo iSCSI desde el shell targetcli, use el comando cd para cambiar al directorio /iscsi.

/> cd /iscsi
/iscsi>

Utilice el comando create sin ningún argumento para crear un destino iSCSI mediante un nombre de destino predeterminado. De forma predeterminada, el objetivo se identifica con un “iqn ” identificador. Este es un nombre calificado de iSCSI (IQN) , que identifica un objetivo de forma única. Las direcciones de formato IQN se usan más comúnmente para identificar un objetivo. Esta dirección consta de los siguientes campos:

  • Iqn literal
  • Fecha (en formato aaaa-mm) en que la autoridad de nombres tomó posesión del dominio
  • Nombre de dominio invertido de la autoridad
  • “:” opcional que precede a un nombre de destino de almacenamiento especificado por la autoridad de nombres
/> cd /iscsi 
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> 

Para enumerar los objetivos creados, use el siguiente comando.

# targetcli ls /iscsi

Para permitir que los sistemas remotos accedan a un objetivo iSCSI en el puerto 3260, deshabilite el servicio firewalld en el servidor iSCSI o configure firewalld para confiar en el puerto 3260/tcp. El siguiente ejemplo usa firewall-cmd para abrir el puerto 3260/tcp para el servicio firewalld.

# firewall-cmd --permanent --add-port=3260/tcp

Si incluye el –permanente opción al agregar un puerto, use el comando firewall-cmd para volver a cargar la configuración.

# firewall-cmd –reload

Creación de LUN iSCSI

El destino del núcleo exporta unidades lógicas SCSI a sistemas remotos. Use el shell targetcli para vincular objetos de almacenamiento definidos previamente con un destino y para especificar qué número de unidad lógica (LUN) usa el dispositivo. El siguiente ejemplo usa el comando create para crear dos LUN nuevos para un objetivo. Desde el shell targetcli, comience usando el comando cd para cambiar al directorio luns dentro de la jerarquía [target/TGP].

/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/
/iscsi/iqn.20....b0df6e328beb> cd tpg1/luns

Los siguientes comandos crean un LUN a partir de los objetos de almacenamiento en bloque definidos anteriormente.

/iscsi/iqn.20...beb/tpg1/luns> create /backstores/block/LUN_1 lun1
Created LUN 1.

Creación de ACL

Las listas de control de acceso (ACL) restringen el acceso a los LUN desde sistemas remotos. Puede crear una ACL para cada iniciador para aplicar la autenticación cuando el iniciador se conecta al destino. Esto le permite otorgar a un iniciador específico acceso exclusivo a un objetivo específico. El siguiente ejemplo usa el comando create para crear una ACL para un iniciador. Desde el shell targetcli, comience usando el comando cd para cambiar al directorio acls dentro de la jerarquía [target/TGP].

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/tpg1/acls 
/iscsi/iqn.20...beb/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012
Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012
Created mapped LUN 1.

Configuración de un iniciador iSCSI

Para configurar un sistema Linux como iniciador iSCSI, instale iscsi-initiator-utils paquete de software. Este paquete es el iniciador Linux Open-iSCSI.

# yum install iscsi-initiator-utils

El paquete instala varios archivos, incluidos los siguientes:

  • /etc/iscsi/iscsid.conf :El archivo de configuración leído por iscsid e iscsiadm. Este archivo está muy comentado con descripciones para cada directiva de configuración.
  • /sbin/iscsid :El demonio Open-iSCSI que implementa la ruta de control y las instalaciones de administración
  • /sbin/iscsiadm :la utilidad de administración Open-iSCSI utilizada para descubrir e iniciar sesión en destinos iSCSI

Edite /etc/iscsi/initiatorname.iscsi y reemplace el parámetro InitiatorName con el nombre del iniciador que configuró previamente como ACL en el destino. Hay un nombre de iniciador iscsi predeterminado definido en este archivo. Si usó el mismo nombre al configurar ACL, no tendrá que cambiar nada aquí.

# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:aabb51a64012

Utilice el comando systemctl para habilitar e iniciar el servicio iscsid.

# systemctl enable iscsid
# systemctl start iscsid
Comprender la utilidad iscsiadm en CentOS / RHEL

Descubrimiento de iSCSI

El descubrimiento es el proceso que hace que los objetivos sean conocidos por un iniciador. El siguiente ejemplo utiliza el método de descubrimiento SendTargets para descubrir destinos en la dirección IP 192.168.12.13. Este comando también inicia el demonio iscsid si es necesario.

# iscsiadm -m discovery --type sendtargets –p 192.168.12.13

Después del descubrimiento, la tabla de nodos y las tablas send_targets en la base de datos se actualizan:

# ls /var/lib/iscsi/nodes
iqn.2011-12.com.example.mypc:tgt1 
iqn.2011-12.com.example.mypc:tgt2 
iqn.2012-11.com.example.mypc:tgt3
# ls /var/lib/iscsi/send_targets
192.168.12.13,3260

Sesiones del iniciador iSCSI

Una sesión es una conexión TCP entre un puerto de nodo iniciador y un puerto de nodo de destino. Los LUN no son accesibles hasta que se establece una sesión. Use la opción -l (o –login) para establecer una sesión:

# iscsiadm -m node -l

Para iniciar sesión en un destino específico:

# iscsiadm -m node --targetname iqn.2011-12.com.example.mypc:tgt1 –p 192.0.2.102:3260 –l

Use la opción -u (o –logout) para cerrar una sesión. Para ver la información de la sesión:

# iscsiadm -m session [-P [printlevel]]

Los niveles de impresión son 1, 2 y 3. Cada uno muestra más detalles.


Cent OS
  1. Una guía definitiva para actualizar el kernel en CentOS/RHEL/Fedora

  2. CentOS/RHEL 7:Configuración de un servidor NFS y un cliente NFS

  3. CentOS / RHEL 7:Guía para principiantes de firewalld

  4. Comprender la utilidad iscsiadm en CentOS / RHEL

  5. Cómo solucionar problemas de iSCSI en CentOS/RHEL 6,7

Cómo configurar el almacenamiento GlusterFS en CentOS 7 / RHEL 7

Configuración de SpaceWalk / Carga de contenido en SpaceWalk en CentOS 6 / RHEL 6

Cómo configurar un clúster de alta disponibilidad en CentOS 7/RHEL 7

Instalar y configurar GlusterFS en CentOS 7/RHEL 7

CentOS / RHEL 7:Guía para principiantes de unidades de servicio systemd

Cómo configurar el objetivo iSCSI usando targetcli en CentOS / RHEL 7