Cómo configurar el servidor iSCSI (destino) y el cliente (iniciador) en Debian 9

Cómo configurar el servidor iSCSI (destino) y el cliente (iniciador) en Debian 9

En el mundo de los centros de datos, las redes de área de almacenamiento. ( SAN. de gran capacidad se han convertido en el estándar mínimo. A medida que los proveedores de nube y la virtualización también continúan teniendo un impacto masivo en el mundo de la tecnología, la necesidad de aún más espacio de almacenamiento SAN se ha vuelto evidente.

La mayoría del hardware SAN se compone de un controlador minimalista (o conjunto de controladores) y una gran colección de unidades de alta capacidad, todas configuradas para admitir grandes cantidades de disponibilidad e integridad de datos.

Muchos de estos productos especializados están fabricados por proveedores de renombre como Netapp, Dell Equalogic, HP Storageworks o EMC y tienen etiquetas de precio adjuntas que solo las empresas más grandes pueden pagar.

Siendo realistas, estos dispositivos no son más que grandes conjuntos de discos duros con un controlador que proporciona el espacio de esos discos duros a los clientes en red. Han existido muchas tecnologías a lo largo de los años que brindan esta funcionalidad o una funcionalidad similar a un precio sustancialmente más económico.

La distribución Debian GNU/Linux. proporciona paquetes que permiten que un sistema Debian sirva para el propósito de un dispositivo de almacenamiento SAN de nivel empresarial a una mera fracción del costo. Esto permite que todos, desde usuarios domésticos básicos o grandes centros de datos, obtengan los beneficios del almacenamiento SAN sin tener que gastar una fortuna en una solución patentada por el proveedor.

freestar. espacio mediante un sistema conocido como Interfaz de sistemas informáticos pequeños de Internet. o iSCSI. para abreviar. iSCSI. es un estándar basado en Protocolo de Internet. ( IP. para proporcionar almacenamiento en bloque (disco duro) a otros sistemas. iSCSI funciona en un modelo cliente-servidor, pero utiliza diferentes nombres para distinguir al cliente del servidor.

En la terminología de iSCSI, el servidor que está proporcionando el “ espacio en disco. se conoce como un destino. de iSCSI. “. ‘y el sistema que solicita/utiliza el espacio en disco se conoce como el’ Iniciador. ‘de iSCSI. En otras palabras, un ‘ Iniciador. solicita almacenamiento en bloque de un ‘ Destino. .

Configuración del entorno

Esta guía le explicará una configuración básica que implica un simple servidor iSCSI. ( destino. y cliente. ( iniciador. , ambos ejecutando Debian 9 (Stretch).

Debian iSCSI Target. 192.168.56.101/24. Almacenamiento. Contiene dos discos duros adicionales para usar como almacenamiento en la configuración iSCSI Debian iSCSI Initiator. 192.168.56.102/24.

La red se puede ver a continuación:

Diagrama de red iSCSI de Debian  Diagrama de red iSCSI de Debian Diagrama de red iSCSI de Debian

Configuración de destino iSCSI de Debian

En el mundo iSCSI. el target. se considera el host que contiene los dispositivos de almacenamiento que utilizará el iniciador.

En este artículo se utiliza como destino. el servidor con la IP de 192.168.56.101. Todas las configuraciones se realizarán en ese host para esta sección.

El primer paso es la instalación de los paquetes necesarios para permitir que el sistema Debian sirva objetivos iSCSI. Este paquete de software se conoce como Target Framework. ( TGT. .

El otro elemento que se utiliza para esta guía son las herramientas de Gestión de volúmenes lógicos. ( LVM. como Volúmenes lógicos. ( LVs. se utilizarán como respaldo de almacenamiento para el destino iSCSI.

Ambos paquetes se pueden instalar con los siguientes comandos.

# apt-get update # apt-get install tgt lvm2

Una vez que los paquetes están instalados, LVM. se utilizará para preparar los discos duros del destino. para su uso como iSCSI LUN. El primer comando se utiliza para preparar los discos para su inclusión en una configuración LVM. ¡Asegúrese de modificar el comando según sea necesario para diferentes escenarios!

# lsblk (Solo se usa para confirmar que los discos se usarán en la configuración de LVM) # pvcreate/dev/sd b, c  Confirmar y crear la configuración de LVM  Confirmar y crear Configuración de LVM Confirmar y crear la configuración de LVM

Una vez que los discos se hayan preparado con el ‘ pvcreate. ‘, es hora de crear un grupo de volumen. a partir de estos discos en particular. El grupo de volúmenes. es necesario para crear los volúmenes lógicos. que actuarán como almacenamiento iSCSI. más adelante.

Para crear un grupo de volúmenes, se necesita el comando ‘ vgcreate. .

# vgcreate tecmint_iscsi/dev/sd b, c # vgs (solo se necesita para confirmar la creación del grupo de volumen)  Crear grupo de volúmenes en Debian  Crear grupo de volúmenes en Debian Crear grupo de volúmenes en Debian

Observe en el resultado anterior que el sistema responde que se creó el Grupo de volumen. pero siempre es una buena idea verificarlo como se ve arriba con el comando ‘ vgs. . La capacidad de este grupo de volumen. es de solo 9,99 GB. Si bien este es un grupo de volúmenes particularmente pequeño, el proceso sería el mismo para discos de mayor capacidad.

El siguiente paso es la creación del volumen lógico que actuará como disco para el iSCSI. cliente ( iniciador. . Para este ejemplo, se utilizará la totalidad del grupo de volumen. pero no es necesario.

El volumen lógico se creará usando el comando ‘ lvcreate. .

# lvcreate-l 100% FREE tecmint_lun1 tecmint_iscsi # lvs (Se usa simplemente para confirmar la creación de el volumen lógico)  Crear volumen lógico en Debian  Crear volumen lógico en Debian Crear volumen lógico en Debian

Lo anterior ‘ lvcreate. ‘puede resultar un poco confuso a primera vista, pero el desglose es el siguiente:

  • lvcreate: comando utilizado para crear el volumen lógico.
  • -l 100% GRATIS. Crea el lo volumen lógico utilizando todo el espacio libre del grupo de volúmenes.
  • -n tecmint_lun1. el nombre del volumen lógico que se creará.
  • tecmint_iscsi. el nombre del grupo de volúmenes en el que se creará el volumen lógico.

Una vez que se ha creado el volumen lógico. es hora de crear el LUN. ( Número de unidad lógica. . El LUN. será el dispositivo de almacenamiento al que el iniciador. se conectará y utilizará más adelante.

Crear un LUN. es muy sencillo y solo requiere unos pocos pasos. El primer paso será la creación del archivo de configuración. Este archivo residirá en el directorio “/etc/tgt/conf.d. y para este artículo se llamará “ TecMint_iscsi.conf. .

Para crear este archivo use un editor de texto.

# nano/etc/tgt/conf.d/TecMint_iscsi.conf

Dentro de este archivo se configurará toda la información de configuración necesaria para este LUN. Hay muchas opciones que se pueden colocar en este archivo, pero por ahora un LUN. básico con un Protocolo de autenticación por desafío mutuo. ( CHAP. mutuo ser configurado.

La definición de LUN existirá entre dos declaraciones “ objetivo. . Para obtener más parámetros que pueden ir en la declaración de destino, revise la página del manual para el archivo ‘ targets.conf. emitiendo ‘ man 5 targets.conf. .

# Dispositivo proporcionado como destino iSCSI backing-store/dev/mapper/tecmint_iscsi-tecmint_lun1 dirección-iniciador 192.168.56.102 entrante usuario tecmint-iscsi-usuario contraseña usuario saliente debian-iscsi-target secretpass

Están sucediendo muchas cosas arriba. Una explicación rápida puede resultar útil para la mayoría.

  • La primera. línea comienza la configuración particular del iSCSI LUN. En este caso, el LUN. etiquetado como “ iqn.2018-02.tecmint.com:lun1. . La parte “ iqn. indica que será un nombre calificado iSCSI. “ 2018-02. es una combinación de fechas elegida arbitrariamente. “ tecmint.com. es el dominio al que pertenece este LUN en particular. Por último, “ lun1. se utiliza como nombre para este objetivo en particular.
  • La segunda. línea anterior ilustra un comentario. Los comentarios pueden existir en los archivos de configuración de destino y deben ir precedidos del símbolo “ #. .
  • La tercera. línea es donde se encuentra el espacio de almacenamiento real que será utilizado por el iniciador existe. En este caso, el respaldo de almacenamiento será el volumen lógico que se creó anteriormente en la guía.
  • La cuarta. línea es la dirección IP que se espera del iniciador. Si bien este no es un elemento de configuración obligatorio, puede ayudar a aumentar la seguridad.
  • La quinta. línea es el nombre de usuario/contraseña entrante. Al igual que la dirección del iniciador anterior, este parámetro tampoco es necesario, pero puede ayudar a proteger el LUN. Dado que esta guía también cubre el CHAP mutuo de iSCSI, este parámetro es obligatorio. Esta línea indica el nombre de usuario y la contraseña que el objetivo esperará del iniciador para conectarse a este LUN.
  • La sexta. línea es el nombre de usuario/contraseña que el objetivo proporcionará al iniciador para permitir que se lleve a cabo la autenticación CHAP mutua. Normalmente, este parámetro no es obligatorio, pero este artículo cubre la autenticación CHAP mutua, por lo que este parámetro es obligatorio.
  • La última línea es la declaración de cierre de la definición de destino. ¡Preste atención a la barra oblicua de cierre delante del destino de la palabra clave!

Una vez que se hayan escrito las configuraciones adecuadas para el LUN, guarde los cambios y salga del editor de texto. Si usa nano. presione ctrl + o para guardar y luego presione ctrl + x para salir de nano.

 Crear archivo de configuración de LUN  Crear archivo de configuración de LUN Crear archivo de configuración LUN

Una vez que se ha creado el archivo de configuración, el servicio tgt. debe reiniciarse para que tgt. sea consciente de la nuevos objetivos. y la configuración asociada.

Esto se puede hacer con uno de los siguientes comandos y depende del sistema init en uso.

# service tgt restart (para sistemas sysv init) # systemctl restart tgt (para sistemas systemd init )

Una vez reiniciado tgt. es importante verificar que el destino iSCSI. esté disponible de acuerdo con el archivo de configuración creado.

Esto se puede lograr con el comando “ tgtadm. .

# tgtadm–mode target–op show (Esto mostrará todos los objetivos)  Mostrar Todos los destinos iSCSI  Mostrar todos los destinos iSCSI Mostrar Todos los destinos iSCSI

Esto concluye la configuración del destino. La siguiente sección trabajará a través de la configuración del iniciador.

Configuración del iniciador iSCSI de Debian

El siguiente paso para usar el destino iSCSI configurado previamente. es la configuración del iniciador iSCSI.

Se utilizará un sistema Debian 9 diferente como iniciador. en este artículo, pero cualquier sistema que pueda utilizar el protocolo iSCSI puede conectarse al destino configurado previamente; esto podría incluir hipervisores como XenServer/ESXi u otras distribuciones como Red Hat, Debian o Ubuntu.

El primer paso en este proceso para este iniciador Debian. es la instalación de los paquetes adecuados para iSCSI.

# apt-get update # apt-get install open-iscsi

​​Una vez que apt ha finalizado la configuración de los paquetes open-iscsi. el iniciador iSCSI. puede comenzar la configuración. El primer paso será comunicarse con el objetivo. para obtener la información de configuración inicial para el objetivo preparado.

# iscsiadm-m discovery-t st-p 192.168.56.101

Cuando esto se ejecuta el comando, responderá con el nombre del lun. configurado anteriormente para este host en particular. El comando anterior también generará dos archivos para la información de LUN recién descubierta.

 Conectar iSCSI Target Servidor  Conectar Servidor de destino iSCSI Conectar el servidor de destino iSCSI

Ahora, el archivo creado para este nodo deberá tener la información de CHAP. configurada para que este destino iSCSI. sea realmente accesible por el iniciador.

Técnicamente, esta información podría configurarse para todo el sistema como un todo, pero en el caso de que un host se conecte a diferentes LUN. con diferentes credenciales, coloque esas credenciales en la configuración del nodo específico. archivo puede mitigar cualquier problema.

El archivo de configuración del nodo existirá en el directorio “/etc/iscsi/nodes/” y tendrá un directorio por LUN disponible. En el caso de este artículo (tenga en cuenta que las rutas cambiarán si se cambian los nombres/direcciones IP).

#/etc/iscsi/nodes/iqn.2018-02.tecmint.com \: lun1/192.168.56.101 \, 3260 \, 1/default

Para trabajar con este archivo, se puede utilizar cualquier editor de texto.

# nano/etc/iscsi/nodes/iqn.2018-02.tecmint.com\:lun1/192.168.56.101\,3260\,1/default

Dentro de este archivo habrá varias opciones ya configuradas para el objetivo. respectivo que se determinó durante la ejecución del comando ‘ iscsiadm. anteriormente.

Dado que esta configuración de objetivo/iniciador. de Debian en particular utiliza CHAP. mutuo, es necesario cambiar algunas opciones más y agregarlas a este archivo y luego un inicio de sesión al destino iSCSI. realizado.

Los cambios a este archivo son:

node.session.auth.authmethod = CHAP #Habilitar la autenticación CHAP node.session.auth.username = tecmint-iscsi-user # Destino a la autenticación del iniciador node.session.auth.password = contraseña # Destino al nodo de autenticación del iniciador .session.auth.username_in = debian-iscsi-target # Autenticación de iniciador a destino node.session.auth.password_in = secretpass # Autenticación de iniciador a destino

Las opciones anteriores permitirán que este destino. se autentique al iniciador. así como permitir que el iniciador. se autentique en el objetivo.

Hay otra opción en este archivo en particular que puede necesitar ser cambiada dependiendo de las preferencias del administrador y ese es el parámetro “ node.startup. .

Si sigue esta guía, la opción “ node.startup. se establecerá en “ manual. en este punto. Puede que esto no sea lo deseado. Si el administrador desea tener el objetivo iSCSI. conectado cuando se inicia el sistema, cambie ‘ manual. a ‘ automático. como tal:

node.startup = automatic

Una vez que se hayan realizado los cambios anteriores, guarde el archivo y salga. En este punto, es necesario reiniciar el servicio de iniciador open-iscsi. para poder leer estos nuevos cambios y conectarse al destino iSCSI.

Esto se puede lograr con uno de los siguientes comandos dependiendo del sistema de inicio en uso.

# service open-iscsi restart (para sistemas de inicio sysv) # systemctl restart open-iscsi (para systemd sistemas init)  Restart Open Iscsi Initiator  Reiniciar Open Iscsi Initiator Reiniciar Open Iscsi Initiator

Observe en el cuadro verde de arriba que el iniciador iSCSI. pudo iniciar sesión en el destino. Para confirmar aún más que el destino iSCSI. está realmente disponible para el iniciador. podemos verificar el sistema en busca de unidades de disco adicionales que estén disponibles mediante el comando ‘ lsblk. ‘y verificando la salida en busca de unidades adicionales.

# lsblk Comprobar disco de destino iSCSI  Verificar disco de destino iSCSI Verificar disco de destino iSCSI

El otro comando que se puede usar en el iniciador. para confirmar una conexión con el objetivo. es “ iscsiadm. como tal:

# iscsiadm-m sesión  Confirmar conexión a ISCSI Target Confirmar conexión al ancho de destino ISCSI Confirmar conexión al destino ISCSI

El último lugar para confirmar una conexión sería el destino. mediante el comando ‘ tgtadm. para enumerar las conexiones iSCSI.