Cómo configurar el servidor ISCSI (Target) y el cliente (iniciador) en Debian 9

Cómo configurar el servidor ISCSI (Target) y el cliente (iniciador) en Debian 9

En el mundo del centro de datos, gran capacidad Redes de área de almacenamiento (San) se han convertido en el estándar mínimo. A medida que los proveedores de la nube y la virtualización también continúan teniendo impactos masivos en el mundo de la tecnología, la necesidad de aún más espacio de almacenamiento de SAN se ha hecho evidente.

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

Muchos de estos productos especializados están hechos por proveedores de renombre como NetApp, Dell igualgic, HP Storageworks o EMC y tienen etiquetas de precio adjuntas que solo la mayor de las empresas pueden pagar.

Siendo realistas, estos dispositivos no son más que grandes matrices de disco duro con un controlador que proporciona el espacio de esos discos duros a los clientes en red. Muchas tecnologías han existido a lo largo de los años que proporcionan esta funcionalidad o funcionalidad similar a un precio sustancialmente más barato.

El Debian Gnu/Linux La distribución proporciona paquetes que permiten a un sistema Debian servir el propósito de un dispositivo de almacenamiento SAN de nivel empresarial a una mera fracción del costo! Esto permite a todos, desde usuarios domésticos básicos o grandes centros de datos, obtener los beneficios del almacenamiento de SAN sin tener que gastar una fortuna en una solución propietaria de proveedores.

Este artículo analizará cómo se puede configurar un sistema Debian 9 (estirado) para servir espacio en disco utilizando un sistema conocido como Interfaz de sistemas informáticos pequeños de Internet o ISCSI para abreviar. ISCSI es un protocolo de Internet (IP) Estándar basado para proporcionar almacenamiento de bloque (disco duro) a otros sistemas. ISCSI funciona en un modelo de servidor de cliente, pero utiliza diferentes nombres para distinguir el cliente del servidor.

En ISCSI Terminology, el servidor que está sirviendo el 'Espacio del disco'es conocido como un ISCSI 'Objetivo'y el sistema que solicita/utiliza el espacio del disco se conoce como ISCSI'Iniciador'. Entonces, en otras palabras, y 'Iniciador'Solicita el almacenamiento de bloque de un'Objetivo'.

Configuración del medio ambiente

Esta guía caminará a través de una configuración básica que involucra una simple ISCSI servidor (objetivo) y cliente (iniciador) Ambos corriendo Debian 9 (estiramiento).

Objetivo de Debian ISCSI: 192.168.56.101/24 Almacenamiento: Contiene dos discos duros adicionales que se utilizarán como almacenamiento en la configuración de ISCSI Iniciador de Debian ISCSI: 192.168.56.102/24 

La red se puede ver como a continuación:

Diagrama de red ISCSI de Debian

Configuración de destino de Debian ISCSI

En el ISCSI mundo, el objetivo se considera el host que contiene los dispositivos de almacenamiento a ser utilizados por el iniciador.

En este artículo el servidor con la IP de 192.168.56.101 se está utilizando como el objetivo. 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 Marco de destino (TGT).

El otro elemento que se está utilizando para esta guía es el Gestión de volumen lógico (LVM) Herramientas como Volúmenes lógicos (LVS) se utilizará como respaldo de almacenamiento para el objetivo ISCSI.

Ambos paquetes se pueden instalar con los siguientes comandos.

# APT-GET ACTUALIZACIÓN # APT-GET Instalar TGT LVM2 

Una vez que se instalan los paquetes, LVM se utilizará para preparar los discos duros en el objetivo para usar como un iScsi lun. El primer comando se usa 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 discos que se utilizarán en la configuración LVM) # pvcreate /dev /sd b, c 
Confirmar y crear configuración LVM

Una vez que los discos se han preparado con lo anterior 'pvcreate'Comando, es hora de crear un grupo de volumen de estos discos particulares. El grupo de volumen se requiere para crear el Volúmenes lógicos que actuará como el ISCSI Almacenamiento más tarde.

Para crear un grupo de volumen, el 'VGCreate'El comando es necesario.

# VGCreate TECMINT_ISCSI /DEV /SD B, C # VGS (solo se necesitaba para confirmar la creación del grupo de volumen) 
Crear grupo de volumen en Debian

Observe en la salida anterior que el sistema responde que el Grupo de volumen fue creado, pero siempre es una buena idea verificar como se ve arriba con el 'VGS' dominio. La capacidad de este grupo de volumen es solo 9.99GB. Si bien este es un grupo de volumen 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 el disco para el ISCSI cliente (iniciador). Para este ejemplo, la totalidad del grupo de volumen se utilizará pero no es necesario.

El volumen lógico se creará utilizando 'LvCreate' dominio.

# lvcreate -l 100%gratis tecMint_lun1 tecMint_iscsi # lvs (simplemente se usa para confirmar la creación del volumen lógico) 
Crear volumen lógico en Debian

Lo anterior 'LvCreate'El comando puede ser un poco confuso a primera vista, pero el desglose es como tal:

  • LVCreate - Comando utilizado para crear el volumen lógico.
  • -l 100%gratis - Cree el volumen lógico utilizando todo el espacio libre del grupo de volumen.
  • -N TECMINT_LUN1 - El nombre del volumen lógico que se creará.
  • tecmint_iscsi - El nombre del grupo de volumen para crear el volumen lógico dentro.

Una vez el volumen lógico ha sido creado, es hora de crear el Lun (Número de unidad lógica). El Lun será el dispositivo de almacenamiento que el iniciador se conectará y usará más tarde.

Creando un Lun es muy simple y requiere solo unos pocos pasos. El primer paso será la creación del archivo de configuración. Este archivo residirá en el '/etc/tgt/conf.d'Directorio y para este artículo se llamará'Tecmint_iscsi.confusión'.

Para crear este archivo, use un editor de texto.

# nano/etc/tgt/conf.D/TECMINT_ISCSI.confusión 

Dentro de este archivo, toda la información de configuración necesaria para esto Lun estará configurado. Hay muchas opciones que se pueden colocar en este archivo, pero por ahora un básico Lun con mutuo Desafío del protocolo de autenticación del apretón de manos (CAP) se configurará.

La definición del lun existirá entre dos 'objetivo' declaraciones. Para obtener más parámetros que puedan ir en la declaración de destino, revise la página manual para 'objetivos.confusión'Archivo emitiendo'hombre 5 objetivos.confusión'.

 # Dispositivo proporcionado como una tienda de respaldo de destino ISCSI/dev/mapper/tecmint_iscsi-tecmint_lun1 iniciador 192.168.56.102 Incominguser Tecmint-IScsi-User Password OuturingUser Debian-ISCSI-Target SecretPass  

Hay muchas cosas arriba. Una explicación rápida puede ser útil para la mayoría.

  • El primero La línea comienza el particular iScsi lun configuración. En este caso el Lun etiquetado 'IQN.2018-02.tecmenta.com: lun1'. El 'IQN'La parte indica que este será un nombre calificado de ISCSI. El '2018-02'es una combinación de fecha elegida arbitrariamente. 'tecmenta.comunicarse'es el dominio al que pertenece este lun en particular. Finalmente, el 'lun1'se usa como el nombre de este objetivo en particular.
  • El segundo La línea arriba ilustra un comentario. Los comentarios pueden existir en los archivos de configuración de destino y deben estar precedidos con un '#' símbolo.
  • El tercero La línea es donde existe el espacio de almacenamiento real que el iniciador utilizará. En este caso, el respaldo de almacenamiento será el volumen lógico que se creó anteriormente en la guía.
  • El cuatro La línea es la dirección IP que se espera del iniciador. Si bien este no es un elemento de configuración requerido, puede ayudar a aumentar la seguridad.
  • El quinto La 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 asegurar el LUN. Dado que esta guía también está cubriendo el capítulo mutuo de ISCSI, se requiere este parámetro. Esta línea indica el nombre de usuario y la contraseña que el objetivo esperará del iniciador para conectarse a este LUN.
  • El sexto La línea es el nombre de usuario/contraseña que el objetivo proporcionará al iniciador para permitir que tenga lugar la autenticación de capítulo mutuo. Normalmente no se requiere este parámetro, pero este artículo está cubriendo la autenticación de capítulo mutuo, por lo que se requiere este parámetro.
  • La línea final es la declaración de cierre para la definición de destino. Presta atención a la barra de cierre frente al objetivo de la palabra clave!

Una vez que se hayan escrito las configuraciones apropiadas para el LUN, guarde los cambios y salga del editor de texto. Si usa nano, golpear CTRL+O Para guardar y luego golpear CTRL+X para salir de nano.

Crear archivo de configuración LUN

Una vez que se ha creado el archivo de configuración, el TGT el servicio debe reiniciarse así TGT es consciente de lo nuevo objetivos y la configuración asociada.

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

# Servicio TGT REINT (para SYSV Init Systems) # SystemCTL Reiniciar TGT (para Systemd Init Systems) 

Una vez TGT se ha reiniciado, es importante verificar para garantizar que el objetivo ISCSI se está poniendo a disposición de acuerdo con el archivo de configuración creado.

Esto se puede lograr con el 'tgtadm' dominio.

# TGTADM -MODE Target --Op Show (esto mostrará todos los objetivos) 
Mostrar todos los objetivos ISCSI

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

Configuración del iniciador de Debian ISCSI

El siguiente paso en el uso de la configuración previamente configurada objetivo ISCSI es la configuración del iniciador ISCSI.

Se utilizará un sistema de Debian 9 diferente como el iniciador En este artículo, pero cualquier sistema que pueda utilizar el protocolo ISCSI puede conectarse al objetivo previamente configurado; 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 de Debian es la instalación de los paquetes adecuados para ISCSI.

# Actualización de apt-get # apt-get install Open-ISCSI 

Una vez que APT ha terminado la configuración del abierto paquetes, el iniciador ISCSI La configuración puede comenzar. El primer paso será comunicarse con el objetivo Para preparar la información de configuración inicial para el objetivo.

# ISCSIADM -M Discovery -T ST -P 192.168.56.101 

Cuando se ejecute este 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 LUN recién descubierta.

Conecte el servidor de destino ISCSI

Ahora el archivo creado para este nodo deberá tener el CAP información configurada para esto objetivo ISCSI ser realmente accesible por el iniciador.

Técnicamente, esta información podría configurarse para todo el sistema en su conjunto, pero en el caso de que un host se conecte a diferentes Lunes Con diferentes credenciales, colocar esas credenciales en el archivo de configuración de nodo específico puede mitigar cualquier problema.

El archivo de configuración del nodo existirá en el directorio '/etc/iscsi/nodos/'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/nodos/iqn.2018-02.tecmenta.com \: lun1/192.168.56.101 \, 3260 \, 1/predeterminado 

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

# nano/etc/iscsi/nodos/iqn.2018-02.tecmenta.com \: lun1/192.168.56.101 \, 3260 \, 1/predeterminado 

Dentro de este archivo habrá varias opciones ya configuradas para los respectivos objetivo que se determinaron durante el 'Iscsiadm'Comando ejecutar antes.

Desde este debian en particular objetivo/iniciador La configuración está usando mutual CAP, Se deben cambiar algunas opciones más y agregar a este archivo y luego un inicio de sesión en el objetivo ISCSI realizado.

Los cambios en este archivo son:

nodo.sesión.auténtico.authmethod = CHAP #Enable CHAP Authentication nodo.sesión.auténtico.Nombre de usuario = TecMint-Issi-User #Target al nodo de autenticación del iniciador.sesión.auténtico.contraseña = contraseña #Target al nodo de autenticación del iniciador.sesión.auténtico.UserName_in = Debian-ISCSI-Target #Initiator para atacar el nodo de autenticación.sesión.auténtico.contraseña_in = SecretPass #Initiator para dirigir la autenticación 

Las opciones anteriores permitirán esto objetivo para autenticar a la iniciador así como permitir el iniciador para autenticar a la objetivo.

Hay otra opción en este archivo en particular que es posible que deba cambiarse según las preferencias del administrador y ese es el 'nodo.puesta en marcha'Parámetro.

Si sigue esta guía, el 'nodo.puesta en marcha'La opción se establecerá en'manual' en este punto. Esto no puede ser deseado. Si el administrador desea tener el objetivo ISCSI conectado Cuando el sistema se inicia, cambie 'manual' a 'automático' como tal:

nodo.inicio = automático 

Una vez que se hayan realizado los cambios anteriores, guarde el archivo y salga. En este punto el iniciador de ISCSI El servicio debe reiniciarse para leer estos nuevos cambios y conectarse a la objetivo ISCSI.

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

# Servicio Open-ISCSI reiniciar (para sistemas init sysv) # systemctl reiniciar abierto-ISCSI (para sistemas init systemd) 
Reiniciar el iniciador ISCSI abierto

Observe en la caja verde arriba que el iniciador ISCSI pudo iniciar sesión en el objetivo. Para confirmar aún más que el objetivo ISCSI está de hecho disponible para el iniciador, Podemos verificar el sistema para obtener unidades de disco adicionales que están disponibles utilizando el 'lsblk'Comando y verificar la salida para unidades adicionales.

# lsblk 
Verifique el disco ISCSI Target

El otro comando que se puede usar en el iniciador Para confirmar una conexión con el objetivo es 'Iscsiadm' como tal:

# Sesión ISCSIADM -M 
Confirmar la conexión al objetivo ISCSI

El último lugar para confirmar una conexión estaría en el objetivo sí mismo usando el 'tgtadm'Comando para enumerar cualquier conexión ISCSI.

# tgtadm --mode conn --p show - -tid 1 
Lista de conexiones ISCSI

Desde este punto, el recién adjunto ISCSI El dispositivo se puede usar de manera similar a cualquier disco normalmente conectado! La partición, la creación del sistema de archivos, el montaje y/o el montaje persistente pueden manejarse normalmente.

Una gran precaución a tener en cuenta con ISCSI dispositivos es si el objetivo ISCSI contiene sistemas de archivos importantes que se necesitan como el iniciador está arrancado, asegúrese de usar el '_netdev'Entrada en el'/etc/fstab'Archivo para asegurarse de que el dispositivo iSCSI esté conectado antes de que el sistema continúe arrancando!