Búsqueda de sitios web

Cree almacenamiento seguro centralizado utilizando iSCSI Target/Initiator en RHEL/CentOS 7 - Parte 12


iSCSI es un protocolo a nivel de bloque para gestionar dispositivos de almacenamiento a través de redes TCP/IP, especialmente a largas distancias. El destino iSCSI es un disco duro remoto presentado desde un servidor (o) destino iSCSI remoto. Por otro lado, el cliente iSCSI se denomina Iniciador y accederá al almacenamiento compartido en la máquina Destino.

En este artículo se han utilizado las siguientes máquinas:

Servidor (destino):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.29
Ports Used : TCP 860, 3260

Cliente (Iniciador):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.30
Ports Used : TCP 3260

Paso 1: instalar paquetes en iSCSI Target

Para instalar los paquetes necesarios para el objetivo (nos ocuparemos del cliente más adelante), haga:


yum install targetcli -y

Cuando se complete la instalación, iniciaremos y habilitaremos el servicio de la siguiente manera:


systemctl start target
systemctl enable target

Finalmente, necesitamos permitir el servicio en firewalld:


firewall-cmd --add-service=iscsi-target
firewall-cmd --add-service=iscsi-target --permanent

Y por último, pero no menos importante, no debemos olvidarnos de permitir el descubrimiento de objetivos iSCSI:


firewall-cmd --add-port=860/tcp
firewall-cmd --add-port=860/tcp --permanent
firewall-cmd --reload

Paso 2: Definir LUN en el servidor de destino

Antes de proceder a definir LUN en el Target, necesitamos crear dos volúmenes lógicos como se explica en la Parte 6 de la serie RHCSA (“Configuración del almacenamiento del sistema”). ”).

Esta vez los llamaremos vol_projects y vol_backups y los colocaremos dentro de un grupo de volúmenes llamado vg00, como se muestra en la Fig. 1. Siéntase libre de elija el espacio asignado a cada LV:

Después de crear los LV, estamos listos para definir los LUN en el Destino para que estén disponibles para la máquina cliente.

Como se muestra en la Fig. 2, abriremos un shell targetcli y emitiremos los siguientes comandos, que crearán dos backstores de bloques (recursos de almacenamiento local que representan el LUN que el iniciador realmente usará) y un Nombre calificado Iscsi (IQN), un método para dirigirse al servidor de destino.

Consulte la página 32 de RFC 3720 para obtener más detalles sobre la estructura del IQN. En particular, el texto después del carácter de dos puntos (:tgt1) especifica el nombre del destino, mientras que el texto antes de (server:) indica el nombre de host del destino dentro del dominio.


targetcli
cd backstores
cd block
create server.backups /dev/vg00/vol_backups
create server.projects /dev/vg00/vol_projects
cd /iscsi
create iqn.2016-02.com.tecmint.server:tgt1

Con el paso anterior, se creó un nuevo TPG (Grupo de portal de destino) junto con el portal predeterminado (un par que consta de una dirección IP y un puerto, que es la forma en que los iniciadores puede alcanzar el objetivo) escuchando en el puerto 3260 de todas las direcciones IP.

Si desea vincular su portal a una IP específica (la IP principal del destino, por ejemplo), elimine el portal predeterminado y cree uno nuevo de la siguiente manera (de lo contrario, omita los siguientes comandos targetcli. Tenga en cuenta que, por simplicidad, también los hemos omitido):


cd /iscsi/iqn.2016-02.com.tecmint.server:tgt1/tpg1/portals
delete 0.0.0.0 3260
create 192.168.0.29 3260

Ahora estamos listos para proceder con la creación de LUN. Tenga en cuenta que estamos utilizando los almacenes secundarios que creamos anteriormente (server.backups y server.projects). Este proceso se ilustra en la Fig. 3:


cd iqn.2016-02.com.tecmint.server:tgt1/tpg1/luns
create /backstores/block/server.backups
create /backstores/block/server.projects

La última parte de la configuración de Target consiste en crear una lista de control de acceso para restringir el acceso por iniciador. Dado que nuestra máquina cliente se llama “cliente”, agregaremos ese texto al IQN. Consulte la Fig. 4 para más detalles:


cd ../acls
create iqn.2016-02.com.tecmint.server:client

En este punto podemos usar el shell targetcli para mostrar todos los recursos configurados, como podemos ver en la Fig. 5:


targetcli
cd /
ls

Para salir del shell targetcli, simplemente escriba exit y presione Entrar. La configuración se guardará automáticamente en /etc/target/saveconfig.json.

Como se puede ver en la Fig. 5 arriba, tenemos un portal escuchando en el puerto 3260 de todas las direcciones IP como se esperaba. Podemos verificar eso usando el comando netstat (ver Fig. 6):


netstat -npltu | grep 3260

Esto concluye la configuración de Target. No dude en reiniciar el sistema y verificar que todas las configuraciones sobrevivan al reinicio. De lo contrario, asegúrese de abrir los puertos necesarios en la configuración del firewall e iniciar el servicio de destino al arrancar. Ahora estamos listos para configurar el iniciador y conectarnos con el cliente.

Paso 3: configurar el iniciador del cliente

En el cliente necesitaremos instalar el paquete iscsi-initiator-utils, que proporciona el demonio del servidor para el protocolo iSCSI (iscsid), así como iscsiadm<, la utilidad de administración:


yum update && yum install iscsi-initiator-utils

Una vez que se complete la instalación, abra /etc/iscsi/initiatorname.iscsi y reemplace el nombre del iniciador predeterminado (comentado en la Fig. 7) con el nombre que se configuró previamente en el ACL en el servidor (iqn.2016-02.com.tecmint.server:client).

Luego guarde el archivo y ejecute iscsiadm en modo de descubrimiento apuntando al destino. Si tiene éxito, este comando devolverá la información del objetivo como se muestra en la Fig. 7:


iscsiadm -m discovery -t st -p 192.168.0.29

El siguiente paso consiste en reiniciar y habilitar el servicio iscsid:


systemctl start iscsid
systemctl enable iscsid

y contactar con el objetivo en modo nodo. Esto debería dar como resultado mensajes a nivel de kernel, que cuando se capturan a través de dmesg muestran la identificación del dispositivo que se les ha dado a los LUN remotos en el sistema local (sde). y sdf en la Fig. 8):


iscsiadm -m node -T iqn.2016-02.com.tecmint.server:tgt1 -p 192.168.0.29 -l
dmesg | tail

A partir de este momento, puede crear particiones, o incluso LV (y sistemas de archivos encima de ellas) como lo haría con cualquier otro dispositivo de almacenamiento. Para simplificar, crearemos una partición primaria en cada disco que ocupará todo su espacio disponible y la formatearemos con ext4.

Finalmente, montemos /dev/sde1 y /dev/sdf1 en /projects y /backups, respectivamente ( tenga en cuenta que estos directorios deben crearse primero):


mount /dev/sde1 /projects
mount /dev/sdf1 /backups

Además, puede agregar dos entradas en /etc/fstab para que ambos sistemas de archivos se monten automáticamente en el arranque utilizando el UUID de cada sistema de archivos tal como lo devuelve blkid. fuerte>.

Tenga en cuenta que se debe utilizar la opción de montaje _netdev para posponer el montaje de estos sistemas de archivos hasta que se haya iniciado el servicio de red:

Ahora puedes utilizar estos dispositivos como lo harías con cualquier otro medio de almacenamiento.

Resumen

En este artículo hemos cubierto cómo instalar y configurar un objetivo iSCSI y un iniciador en distribuciones RHEL/CentOS 7. Aunque la primera tarea no forma parte de las competencias requeridas del examen EX300 (RHCE), es necesaria para implementar el segundo tema.

No dude en hacernos saber si tiene alguna pregunta o comentario sobre este artículo; no dude en escribirnos utilizando el formulario de comentarios a continuación.

Si desea configurar iSCSI Target y Client Initiator en RHEL/CentOS 6, siga esta guía: Configuración de almacenamiento iSCSI centralizado con Client Initiator.