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


En el mundo del centro 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 la nube y la virtualización también continúan generando impactos masivos en el mundo de la tecnología, la necesidad de tener aún más espacio de almacenamiento SAN se ha hecho evidente.

La mayoría del hardware SAN está compuesto por un controlador minimalista (o un conjunto de controladores) y una gran colección de unidades de alta capacidad, todas configuradas para admitir grandes cantidades de integridad y disponibilidad 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 precios que solo las empresas más grandes pueden pagar.

En realidad, estos dispositivos no son más que grandes arreglos de discos duros 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.

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

Este artículo analizará cómo se puede configurar un sistema Debian 9 (Estiramiento) para que sirva espacio en el disco usando 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 de bloque (disco duro) a otros sistemas. iSCSI funciona en un modelo de servidor cliente pero utiliza nombres diferentes para distinguir al cliente del servidor.

En la terminología de iSCSI, el servidor que sirve el ' espacio en disco ' se conoce como iSCSI ' Destino ' y el sistema que lo solicita/La utilización del espacio en disco se conoce como iSCSI ' Iniciador '. Entonces, en otras palabras, un " Iniciador " solicita el almacenamiento en bloque desde un " Destino".

Esta guía le guiará a través de una configuración básica que incluye un simple iSCSI servidor ( objetivo ) y cliente ( iniciador ) ejecutando Debian 9 (estiramiento) .

Debian iSCSI Target: 192.168.56.101/24
Storage: Contains two extra hard drives to be used as the storage in the iSCSI setup
Debian iSCSI Initiator: 192.168.56.102/24

La red se puede ver a continuación:

Configuración de destino iSCSI de Debian

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

En este artículo, el servidor con la IP de 192.168.56.101 se está utilizando como 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 son las herramientas Logical Volume Management ( LVM ) como Logical Volumes ( LVs ) se utilizará 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 se hayan instalado los paquetes, LVM se utilizará para preparar los discos duros en el destino para su uso como iSCSI LUN . El primer comando se utiliza para preparar los discos para su inclusión en una configuración de LVM. ¡Asegúrese de modificar el comando según sea necesario para diferentes escenarios!

# lsblk (Only used to confirm disks to be used in the LVM setup)
# pvcreate /dev/sd{b,c}

Una vez que los discos se hayan preparado con el comando anterior " pvcreate ", es hora de crear un grupo de volúmenes a partir de estos discos particulares. Se requiere el grupo de volúmenes para crear los Volúmenes lógicos que actuarán como el 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  (Only needed to confirm the creation of the volume group)

Observe en la salida anterior que el sistema responde que se creó el Grupo de volumen , pero siempre es una buena idea verificar dos veces como se vio anteriormente con el comando " vgs ". La capacidad de este grupo de volúmenes es solo 9.99GB . 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 cliente iSCSI ( iniciador ). Para este ejemplo, se utilizará la totalidad del grupo de volúmenes , pero no es necesario.

El volumen lógico se creará con el comando " lvcreate ".

# lvcreate -l 100%FREE tecmint_lun1 tecmint_iscsi
# lvs  (Simply used to confirm the creation of the logical volume)

El comando " lvcreate " anterior puede ser un poco confuso a primera vista, pero el desglose es como tal:

  • lvcreate – Command used to create the logical volume.
  • -l 100%FREE – Create the logical volume using all of the volume group’s free space.
  • -n tecmint_lun1 – The name of the logical volume to be created.
  • tecmint_iscsi – The name of the volume group to create the logical volume within.

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

Crear un LUN es muy simple 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 utiliza 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 el Challenge Handshake Authentication Protocol ( CHAP ) mutuo estar configurado

La definición de LUN existirá entre dos declaraciones " objetivo ". Para ver más parámetros que pueden incluirse en la declaración de objetivos, revise la página del manual del archivo ‘ targets.conf ‘ emitiendo ‘ man 5 goals.conf ‘.

<target iqn.2018-02.tecmint.com:lun1>
     # Provided device as an iSCSI target
     backing-store /dev/mapper/tecmint_iscsi-tecmint_lun1
     initiator-address 192.168.56.102
    incominguser tecmint-iscsi-user password
     outgoinguser debian-iscsi-target secretpass
</target>

Hay mucho que hacer arriba. Una explicación rápida puede ser útil para la mayoría.

  • The first line begins the particular iSCSI LUN configuration. In this case the LUN labeled ‘iqn.2018-02.tecmint.com:lun1‘. The ‘iqn‘ part indicates that this will be an iSCSI qualified name. The ‘2018-02‘ is an arbitrarily chosen date combination. ‘tecmint.com‘ is the domain that this particular LUN belongs. Finally, the ‘lun1‘ is used as the name for this particular target.
  • The second line above illustrates a comment. Comments can exist in the target configuration files and must be prefaced with a ‘#‘ symbol.
  • The third line is where the actual storage space that will be used by the initiator exists. In this case the storage backing will be the logical volume that was created earlier in the guide.
  • The fourth line is the IP address that is expected from the initiator. While this isn’t a required configuration item, it can help increase security.
  • The fifth line is the incoming username/password. Much like the initiator address above, this parameter isn’t required either but can help to secure the LUN. Since this guide is also covering iSCSI mutual CHAP, this parameter is required. This line indicates the username and password that the target will expect from the initiator in order to connect to this LUN.
  • The sixth line is the username/password that the target will provide to the initiator to allow for mutual CHAP authentication to take place. Normally this parameter is not required but this article is covering mutual CHAP authentication so this parameter is required.
  • The final line is the closing statement for the target definition. Pay attention to the closing slash in front of the keyword target!

Una vez que se hayan escrito las configuraciones apropiadas 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.

Una vez que se haya creado el archivo de configuración, el servicio tgt debe reiniciarse para que tgt tenga conocimiento de los 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  (For sysv init systems)
# systemctl restart tgt  (For systemd init systems)

Una vez que se haya reiniciado tgt , es importante verificar que el objetivo iSCSI esté disponible según el archivo de configuración creado.

Esto se puede lograr con el comando " tgtadm ".

# tgtadm --mode target --op show   (This will show all targets)

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 iSCSI de Debian

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

Se usará 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 de Debian es la instalación de los paquetes adecuados para iSCSI .

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

Una vez que apt haya finalizado la configuración de los paquetes open-iscsi , puede comenzar la configuración del iniciador iSCSI . 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 se ejecuta 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.

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

Técnicamente, esta información podría configurarse para todo el sistema en su totalidad, pero en el caso de que un host se conecte a diferentes LUNs con diferentes credenciales, colocar esas credenciales en el archivo de configuración del nodo específico 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 de acceso 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 determinaron durante el comando " iscsiadm " ejecutado anteriormente.

Dado que esta configuración particular del objetivo/iniciador de Debian está utilizando el CHAP mutuo, es necesario cambiar y agregar algunas opciones más a este archivo y luego iniciar sesión en el objetivo iSCSI realizado.

Los cambios a este archivo son:

node.session.auth.authmethod = CHAP                    #Enable CHAP Authentication
node.session.auth.username = tecmint-iscsi-user        #Target to Initiator authentication
node.session.auth.password = password                  #Target to Initiator authentication
node.session.auth.username_in = debian-iscsi-target    #Initiator to Target authentication
node.session.auth.password_in = secretpass             #Initiator to Target authentication

Las opciones anteriores permitirán que este objetivo se autentique con el iniciador y que el iniciador se autentique con el objetivo .

Hay otra opción en este archivo en particular que puede ser necesario cambiar 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. Esto puede no ser deseado. Si el administrador desea que el objetivo iSCSI esté conectado cuando se inicie 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, el servicio open-iscsi inittor debe reiniciarse para leer estos nuevos cambios y conectarse al objetivo iSCSI .

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

# service open-iscsi restart   (For sysv init systems)
# systemctl restart open-iscsi (For systemd init systems)

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 objetivo iSCSI está realmente disponible para el iniciador , podemos comprobar si hay unidades de disco adicionales disponibles en el lsblk 'comando y comprobación de la salida para unidades adicionales.

# lsblk

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

# iscsiadm -m session

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

# tgtadm --mode conn --op show --tid 1

¡A partir de este punto, el dispositivo iSCSI recién conectado se puede utilizar de forma similar a cualquier disco normalmente conectado! La partición, la creación del sistema de archivos, el montaje y/o el montaje persistente se pueden manejar normalmente.

Una gran precaución a tener en cuenta con los dispositivos iSCSI es que si el destino iSCSI contiene sistemas de archivos importantes que se necesitan ya que el iniciador está iniciando, asegúrese de para usar la entrada ' _netdev ' en el archivo '/etc/fstab ' para asegurarse de que el dispositivo iSCSI esté conectado antes de que el sistema continúe con el arranque.

Todos los derechos reservados © Linux-Console.net • 2019-2021