GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar el servidor de almacenamiento iSCSI en Ubuntu 18.04 LTS

iSCSI significa (interfaz de sistema de computadora pequeña de Internet) es un protocolo de red de área de almacenamiento (SAN) que se puede usar para la administración de almacenamiento en línea. Es un estándar de red de almacenamiento basado en IP que proporciona acceso a nivel de bloque a dispositivos de almacenamiento mediante la transmisión de comandos SCSI a través de una red TCP/IP.

iSCSI consta de dos componentes, el objetivo iSCSI y el iniciador iSCSI. El destino iSCSI es un servicio en el servidor iSCSI que ofrece acceso al almacenamiento compartido y el iniciador iSCSI es un cliente iSCSI que se conecta al destino y accede al almacenamiento compartido.

En este tutorial, le mostraremos cómo configurar el objetivo iSCSI y el iniciador iSCSI en el servidor Ubuntu 18.04.

Requisitos

  • Un nuevo servidor Ubuntu 18.04 para destino iSCSI con disco duro externo de 2 GB.
  • Un nuevo servidor Ubuntu 18.04 para el iniciador iSCSI.
  • Una dirección IP estática 192.168.0.103 está configurada en el objetivo iSCSI y 192.168.0.102 está configurada en el iniciador iSCSI.
  • Se configura una contraseña raíz en ambos servidores.

Cómo empezar

Antes de comenzar, deberá actualizar ambos servidores con la última versión. Puede actualizarlos ejecutando el siguiente comando en ambos $

apt-get update -y
apt-get upgrade -y

Una vez que ambos servidores estén actualizados, reinícielos para aplicar los cambios.

Instalar destino iSCSI

Primero, deberá instalar el paquete Target Framework (TGT) en el servidor de destino iSCSI. Puede instalarlo con el siguiente comando:

apt-get install tgt -y

Una vez que se haya instalado TGT, verifique el estado de TGT ejecutando el siguiente comando:

systemctl status tgt

Debería ver el siguiente resultado:

? tgt.service - (i)SCSI target daemon
   Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-11-08 07:40:28 UTC; 27s ago
     Docs: man:tgtd(8)
 Main PID: 2343 (tgtd)
   Status: "Starting event loop..."
    Tasks: 1
   CGroup: /system.slice/tgt.service
           ??2343 /usr/sbin/tgtd -f

Nov 08 07:40:28 ubuntu systemd[1]: Starting (i)SCSI target daemon...
Nov 08 07:40:28 ubuntu tgtd[2343]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Nov 08 07:40:28 ubuntu tgtd[2343]: tgtd: work_timer_start(146) use timer_fd based scheduler
Nov 08 07:40:28 ubuntu tgtd[2343]: tgtd: bs_init(387) use signalfd notification
Nov 08 07:40:28 ubuntu systemd[1]: Started (i)SCSI target daemon.

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar destino iSCSI

A continuación, deberá crear un dispositivo LUN (Número de unidad lógica) en su servidor iSCSI. LUN es un dispositivo de almacenamiento back-end al que el iniciador se conectará y usará más adelante.

Puede hacerlo creando el archivo de configuración dentro del directorio /etc/tgt/conf.d:

nano /etc/tgt/conf.d/iscsi.conf

Agregue las siguientes líneas:

<target iqn.2019-11.example.com:lun1>
     # Provided device as an iSCSI target
     backing-store /dev/sdb1                             
     initiator-address 192.168.0.102 
    incominguser iscsi-user password
     outgoinguser iscsi-target secretpass
</target>

Guarde y cierre el archivo cuando haya terminado. Luego, reinicia el servicio TGT para aplicar los cambios de configuración:

systemctl restart tgt

Aquí hay una breve explicación de cada parámetro:

objetivo :Este es el nombre del objetivo en particular.

tienda de respaldo :esta opción especifica el disco de almacenamiento que utilizará el iniciador.

dirección del iniciador :Esta es la dirección IP del iniciador.

usuario entrante :Este es el nombre de usuario/contraseña entrante para asegurar el LUN.

usuario saliente :Este es el nombre de usuario/contraseña saliente para la autenticación CHAP mutua.

Después de reiniciar el servicio TGT, verifique el servidor de destino iSCSI con el siguiente comando:

tgtadm --mode target --op show

Debería ver que el objetivo iSCSI está disponible:

Target 1: iqn.2019-11.example.com:lun1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 2146 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1
            Backing store flags: 
    Account information:
        iscsi-user
        iscsi-target (outgoing)
    ACL information:
        192.168.0.102

Instalar y configurar el iniciador iSCSI

A continuación, deberá instalar el paquete del iniciador iSCSI en el servidor del iniciador iSCSI. Puede instalarlo con el siguiente comando:

apt-get install open-iscsi -y

Una vez completada la instalación, ejecute el descubrimiento de destino en nuestro servidor de destino iSCSI para averiguar los destinos compartidos.

iscsiadm -m discovery -t st -p 192.168.0.103

Debería ver el objetivo disponible en el siguiente resultado:

192.168.0.103:3260,1 iqn.2019-11.example.com:lun1

El comando anterior también genera dos archivos con información de LUN. Puedes verlos con el siguiente comando:

ls -l /etc/iscsi/nodes/iqn.2019-11.example.com\:lun1/192.168.0.103\,3260\,1/ /etc/iscsi/send_targets/192.168.0.103,3260/

Debería ver los siguientes archivos:

/etc/iscsi/nodes/iqn.2019-11.example.com:lun1/192.168.0.103,3260,1/:
total 4
-rw------- 1 root root 1840 Nov  8 13:17 default

/etc/iscsi/send_targets/192.168.0.103,3260/:
total 8
lrwxrwxrwx 1 root root  66 Nov  8 13:17 iqn.2019-11.example.com:lun1,192.168.0.103,3260,1,default -> /etc/iscsi/nodes/iqn.2019-11.example.com:lun1/192.168.0.103,3260,1
-rw------- 1 root root 547 Nov  8 13:17 st_config

A continuación, deberá editar el archivo predeterminado y definir la información CHAP que configuró en el destino iSCSI para acceder al destino iSCSI desde el iniciador iSCSI.

nano /etc/iscsi/nodes/iqn.2019-11.example.com\:lun1/192.168.0.103\,3260\,1/default

Agregue/cambie las siguientes líneas:

node.session.auth.authmethod = CHAP  
node.session.auth.username = iscsi-user
node.session.auth.password = password          
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass         
node.startup = automatic

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio del iniciador iSCSI para aplicar los cambios de configuración:

systemctl restart open-iscsi

Debería ver el siguiente resultado:

 * Unmounting iscsi-backed filesystems                                                                                                  [ OK ] 
 * Disconnecting iSCSI targets                                                                                                                 iscsiadm: No matching sessions found
                                                                                                                                        [ OK ]
 * Stopping iSCSI initiator service                                                                                                     [ OK ] 
 * Starting iSCSI initiator service iscsid                                                                                              [ OK ] 
 * Setting up iSCSI targets                                                                                                                    
Logging in to [iface: default, target: iqn.2019-11.example.com:lun1, portal: 192.168.0.103,3260] (multiple)
Login to [iface: default, target: iqn.2019-11.example.com:lun1, portal: 192.168.0.103,3260] successful.
                                                                                                                                        [ OK ]
 * Mounting network filesystems                                                                                                         [ OK ] 

Ahora puede verificar el disco de almacenamiento compartido desde el objetivo iSCSI con el siguiente comando:

lsblk

Debería ver que el disco de almacenamiento ahora está disponible para el iniciador como sdb:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
??sda1   8:1    0  93.1G  0 part /
??sda2   8:2    0     1K  0 part 
??sda5   8:5    0 186.3G  0 part /home
??sda6   8:6    0 181.6G  0 part /Data
??sda7   8:7    0   4.8G  0 part [SWAP]
sdb      8:16   0     2G  0 disk 

También puede verificar las conexiones iSCSI con el siguiente comando:

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

Deberías obtener el siguiente resultado:

Session: 1
    Connection: 0
        Initiator: iqn.1993-08.org.debian:01:2e1e2383de41
        IP Address: 192.168.0.102

A continuación, deberá crear un sistema de archivos en este dispositivo compartido (sdb) y montarlo para que este dispositivo se pueda utilizar.

Primero, cree un sistema de archivos en el dispositivo compartido (sdb) con el siguiente comando:

fdisk /dev/sdb

Debería ver el siguiente resultado:

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x06091fe8.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303):

Created a new partition 1 of type 'Linux' and of size 2 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Luego, formatee esta partición con el siguiente comando:

mkfs.ext4 /dev/sdb1

A continuación, monte esta partición en el directorio /mnt con el siguiente comando:

mount /dev/sdb1 /mnt

Ahora, puede verificar el dispositivo montado con el siguiente comando:

df -h

Debería ver el siguiente resultado:

Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G  4.0K  1.9G   1% /dev
tmpfs           384M  1.2M  383M   1% /run
/dev/sda1        92G   36G   51G  42% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            1.9G   54M  1.9G   3% /run/shm
none            100M   48K  100M   1% /run/user
/dev/sda5       184G   96G   79G  55% /home
/dev/sda6       179G   32G  138G  19% /Data
/dev/sdb1       2.0G  3.0M  1.9G   1% /mnt

¡Felicidades! ha instalado correctamente el servidor de destino iSCSI y lo ha conectado desde el iniciador iSCSI. Ahora puede usar este dispositivo iSCSI compartido como un disco adjunto normal.


Ubuntu
  1. Cómo configurar el servidor y el cliente Kerberos en Ubuntu 18.04 LTS

  2. Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

  3. Cómo configurar un servidor de almacenamiento iSCSI en Ubuntu 20.04 LTS

  4. Cómo configurar Elasticsearch en Ubuntu 18.04 y 16.04 LTS

  5. Configurar el servidor Rsyslog en Ubuntu 20.04 - ¿Cómo hacerlo?

Cómo configurar el servidor Git en Ubuntu 20.04

Cómo configurar el servidor Rsyslog en Ubuntu

Cómo configurar el servidor DHCP en Ubuntu

Cómo actualizar a Ubuntu Server 22.04 LTS

Cómo instalar Jellyfin Media Server en Ubuntu 20.04 LTS Server/Desktop

Cómo configurar el servidor y el cliente NTP en Ubuntu 20.04 LTS