Montar el volumen « iSCSI » en « Red Hat Enterprise Linux » 9

Aprenda a montar un volumen Block Storage for Classic en RHEL 9 con E/S multipath para un acceso redundante y de alto rendimiento al almacenamiento.

Siga el tutorial para montar un volumen IBM Cloud® Block Storage for Classic en un servidor virtual con el sistema operativo Red Hat Enterprise Linux® 9. Va a crear dos conexiones desde una interfaz de red de su host a dos direcciones IP de destino de la matriz de almacenamiento.

Si utiliza otro sistema operativo de tipo « Linux® », consulte la documentación de su distribución concreta y asegúrese de que el sistema multipath sea compatible con el protocolo ALUA (Asymmetric Logical Unit Access) para la priorización de rutas.

Antes de empezar

  1. Asegúrese de que el equipo que va a acceder al volumen « Block Storage for Classic » esté autorizado. Para obtener más información, consulte Autorización del host en la consolaAutorizacióndel host desde la CLIAutorización del host con Terraform.

  2. Se necesita una conexión VPN activa para acceder a la red privada de IBM Cloud e interactuar con varios servicios.

  3. Establezca una conexión SSH con su servidor. La dirección IP, el nombre de usuario y la contraseña se encuentran en la consola. En menú Icono del menú, haga clic en Infraestructura Icono VPC > Infraestructura clásica > Dispositivos. A continuación, localice su servidor en la lista y haga clic en su nombre para mostrar sus detalles.

Si varios hosts montan el mismo volumen Block Storage for Classic sin ser gestionados de forma cooperativa, sus datos corren el riesgo de corromperse. La corrupción del volumen puede ocurrir si se realizan cambios en el volumen por varios hosts al mismo tiempo. Necesita un sistema de archivos de disco compartido compatible con clústeres para evitar la pérdida de datos, como Microsoft Cluster Shared Volumes ( CSV ), Red Hat Global File System ( GFS2 ), VMware® VMFS y otros. Para obtener más información, consulta la documentación de tu sistema operativo.

Actualice el sistema operativo e instale las utilidades iSCSI y multipath

Asegúrate de que tu sistema esté actualizado e incluya los paquetes iscsi-initiator-utils y device-mapper-multipath. Utilice los mandatos siguientes para instalar los paquetes.

  1. Actualiza el sistema operativo.

    sudo dnf update
    
  2. Instalar utilidad multipath

    sudo dnf -y install device-mapper-multipath
    

    Una vez instalado el paquete, introduzca el comando mpathconf --enable --user_friendly_names n para activarlo.

  3. Instalar utilidad ISCSI

    sudo dnf -y install iscsi-initiator-utils
    

    Una vez instalado el paquete, inícielo con el comando systemctl start iscsid.

Actualizar los archivos de configuración de « iSCSI »

  1. Actualiza el archivo « /etc/iscsi/initiatorname.iscsi » con el IQN de la consola de IBM Cloud®.

    1. El siguiente ejemplo muestra cómo comprobar el nombre del iniciador actual.
    [root@vsi4classic ~]# cat /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.1994-05.com.redhat:7acdadcdc20
    
    1. Abre el archivo en un editor de texto:
    vi /etc/iscsi/initiatorname.iscsi
    
    1. Introduzca el IQN en el siguiente formato InitiatorName=<value-from-the-Portal>, como puede ver en el siguiente ejemplo. Sustituya el valor IQN por el suyo.
    InitiatorName=iqn.2025-11.com.ibm:sl02su1414935-v154455886
    
    1. Guarde el archivo (:w), y salga (:x).
  2. Descomente y actualice las siguientes entradas en /etc/iscsi/iscsid.conf utilizando el nombre de usuario y la contraseña de la consola IBM Cloud®. Utilice mayúsculas para los nombres CHAP (Challenge-Handshake Authentication Protocol).

    node.session.auth.authmethod = CHAP
    node.session.auth.username = <Username-value-from-Portal>
    node.session.auth.password = <Password-value-from-Portal>
    discovery.sendtargets.auth.authmethod = CHAP
    discovery.sendtargets.auth.username = <Username-value-from-Portal>
    discovery.sendtargets.auth.password = <Password-value-from-Portal>
    

    No modifiques el resto de ajustes de CHAP. El almacenamiento de « IBM Cloud® » utiliza únicamente autenticación unidireccional. No habilite Mutual CHAP.

  3. Reinicie el servicio iscsid.

    systemctl restart iscsid
    
  4. Compruebe que la configuración es correcta ejecutando la detección en la matriz iSCSI.

    Block Storage for Classic requiere una detección dinámica de destinos que utilice el método SendTargets. No utilice la configuración de nodos estáticos, ya que no es escalable y puede provocar problemas de conectividad cuando se realizan cambios en el almacenamiento (como autorizar o desautorizar el acceso de hosts a los LUN). La detección dinámica garantiza que el host detecte automáticamente cualquier cambio en los portales de destino.

    iscsiadm -m discovery -t sendtargets -p TARGET IP
    

    Si se muestran la dirección IP y los datos de acceso, significa que la detección se ha realizado correctamente.

    [root@vsi4classic ~]# iscsiadm -m discovery -t sendtargets -p 161.26.99.113
     161.26.99.113:3260,1034 iqn.1992-08.com.netapp:stfdal1006
     161.26.99.110:3260,1030 iqn.1992-08.com.netapp:stfdal1006
    

Configurar la multivía de acceso

DM Multipath se configura mediante la utilidad « mpathconf », que crea el archivo de configuración de multipath « /etc/multipath.conf ». Para obtener más información sobre la utilidad mpathconf, consulta la página del manual mpathconf(8).

  1. Si aún no lo ha hecho, introduzca el comando mpathconf con la opción --enable.

    mpathconf --enable --user_friendly_names n
    
  2. Edite el archivo /etc/multipath.conf con nano, vi, u otro editor de su elección.

    sudo vi /etc/multipath.conf
    
  3. Añade la siguiente configuración mínima.

    defaults {
    user_friendly_names no
    find_multipaths on
    max_fds max
    flush_on_last_del yes
    queue_without_daemon no
    dev_loss_tmo infinity
    fast_io_fail_tmo 5
    }
    # All data in the following section must be specific to your system.
    blacklist {
    wwid "SAdaptec*"
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
    }
    devices {
    device {
    vendor "NETAPP"
    product "LUN"
    path_grouping_policy group_by_prio
    features "2 pg_init_retries 50"
    no_path_retry queue
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    }
    

    La sección de valores predeterminados iniciales del archivo de configuración configura el sistema de tal manera que los nombres de los dispositivos multipath tengan el formato /dev/mapper/mpath n, donde mpath n es el WWID (World Wide Identifier) del dispositivo.

  4. Guarda el archivo de configuración y cierra el editor.

  5. Emita el mandato siguiente:

    systemctl start multipathd.service
    

    Si necesitas modificar el archivo de configuración de multipath después de haber iniciado el demonio de multipath, debes ejecutar el comando « systemctl reload multipathd.service » para que los cambios surtan efecto.

Descubrir el dispositivo de almacenamiento e iniciar sesión

La utilidad iscsiadm es una herramienta comando que se utiliza para detectar y conectarse a destinos de e iSCSI, así como para acceder y gestionar la base de datos de open-iscsi. Para obtener más información, consulta la página de manual de iscsiadm(8). En este paso, descubra el dispositivo utilizando la dirección IP de destino que se ha obtenido de la consola de IBM Cloud®.

  1. Ejecute el descubrimiento en la matriz de iSCSI.

    iscsiadm -m discovery -t sendtargets -p TARGET IP
    

    Si se muestran la dirección IP y los datos de acceso, significa que la detección se ha realizado correctamente.

  2. Inicie sesión en la matriz iSCSI.

    iscsiadm -m node --login
    
    [root@vsi4classic ~]# iscsiadm -m node --login
    Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.110,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.113,3260] successful.
    

Verificación de la configuración

  1. Valide que se ha establecido la sesión iSCSI.

    iscsiadm -m session -o show
    
  2. Compruebe que existen varias vías de acceso.

    multipath -l
    

    Este mandato informa de las vías de acceso. Si está configurado correctamente, cada volumen tendrá un único grupo, con un número de rutas igual al número de sesiones de iSCSI. Es posible conectar un volumen mediante una sola ruta, pero es importante que se establezcan conexiones en ambas rutas para evitar interrupciones en el servicio.

    [root@vsi4classic ~]# multipath -l
    3600a0980383056716724514550666270 dm-0 NETAPP,LUN C-Mode
    size=20G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    |-+- policy='round-robin 0' prio=0 status=active
    | `- 2:0:0:0 sda 8:0  active undef running
    `-+- policy='round-robin 0' prio=0 status=enabled
      `- 3:0:0:0 sdb 8:16 active undef running
    

    Si MPIO no se ha configurado correctamente, el dispositivo de almacenamiento se puede desconectar y aparecer fuera de línea cuando se produzca un corte en la red o cuando los equipos de IBM Cloud® realizan tareas de mantenimiento. MPIO proporciona un nivel adicional de conectividad durante esos eventos y mantiene una sesión establecida con el volumen mediante operaciones activas de lectura y escritura.

  3. Liste las tablas de partición del dispositivo conectado.

    fdisk -l | grep /dev/mapper
    

    De forma predeterminada, el dispositivo de almacenamiento se conecta a /dev/mapper/<wwid>. El WWID persiste mientras existe el volumen. El mandato informa de algo similar al ejemplo siguiente.

    [root@vsi4classic ~]# fdisk -l | grep /dev/mapper
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    

    En el ejemplo, la cadena 3600a0980383056716724514550666270 es el WWID. Su aplicación debe utilizar el WWID. También es posible asignar nombres más fáciles de leer utilizando las palabras clave «user_friendly_names» o «alias» en multipath.conf. Para obtener más información, consulte el sitio web multipath.conf página del manual.

    El volumen ahora está montado y es accesible en el host. Luego puede crear un sistema de archivos.

Creación de un sistema de archivos (opcional)

Siga estos pasos para crear un sistema de archivos en el volumen montado recientemente. Un sistema de archivos es necesario para que la mayoría de las aplicaciones utilicen el volumen. Utilice fdisk para unidades inferiores a 2 TB y parted para discos de más de 2 TB.

Creación de un sistema de archivos con fdisk

  1. Obtenga el nombre de disco.

    fdisk -l | grep /dev/mapper
    
    [root@vsi4classic ~]# fdisk -l | grep /dev/mapper
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    
    [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 65536 bytes
    
  2. Cree una partición en el disco. El siguiente ejemplo muestra la creación de la partición con los valores por defecto.

    [root@vsi4classic ~]# fdisk /dev/mapper/3600a0980383056716724514550666270
    
    Welcome to fdisk (util-linux 2.37.4).
    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 0x2aa2e16c.
    
    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): 1
    First sector (2048-41943039, default 2048): 2048
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 41943039
    
    Created a new partition 1 of type 'Linux' and of size 20 GiB.
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Invalid argument
    
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
    
  3. Cree un sistema de archivos en la nueva partición.

    • La nueva partición se lista con el disco, similar a XXXp1, seguido del tamaño, Tipo (83), y Linux®. Toma nota del nombre de la partición, lo necesitarás en el siguiente paso. (XXXp1 representa el nombre de partición)

      [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270
      Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 4096 bytes
      I/O size (minimum/optimal): 4096 bytes / 65536 bytes
      Disklabel type: dos
      Disk identifier: 0x2aa2e16c
      
      Device                                           Boot Start      End  Sectors Size Id Type
      /dev/mapper/3600a0980383056716724514550666270p1        2048 41943039 41940992  20G 83 Linu
      
    • Cree el sistema de archivos:

      mkfs.ext3 /dev/mapper/XXXp1
      
      [root@vsi4classic ~]# mkfs.ext3 /dev/mapper/3600a0980383056716724514550666270p1
      mke2fs 1.46.5 (30-Dec-2021)
      Discarding device blocks: done
      Creating filesystem with 5242624 4k blocks and 1310720 inodes
      Filesystem UUID: 09e7f833-32b7-4c7f-ab68-8c6083cb8a63
      Superblock backups stored on blocks:
          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
          4096000
      
      Allocating group tables: done
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done
      
  4. Cree un punto de montaje para el sistema de archivos y móntelo.

    • Cree un nombre de partición PerfDisk o donde quiera montar el sistema de archivos.

      mkdir /PerfDisk
      
    • Monte el almacenamiento con el nombre de la partición.

      mount /dev/mapper/XXXp1 /PerfDisk
      
    • Compruebe que ve el nuevo sistema de archivos que aparece en la lista.

      df -h
      
      [root@vsi4classic ~]# mkdir /PerfDisk
      [root@vsi4classic ~]# mount /dev/mapper/3600a0980383056716724514550666270p1 /PerfDisk
      [root@vsi4classic ~]# df -h
      Filesystem                                       Size  Used Avail Use% Mounted on
      devtmpfs                                         4.0M     0  4.0M   0% /dev
      tmpfs                                            469M     0  469M   0% /dev/shm
      tmpfs                                            188M   11M  177M   6% /run
      /dev/xvda2                                        24G  2.0G   21G   9% /
      /dev/xvda1                                       974M  320M  588M  36% /boot
      tmpfs                                             94M     0   94M   0% /run/user/0
      /dev/mapper/3600a0980383056716724514550666270p1   20G  156K   19G   1% /PerfDisk
      
  5. Para activar el montaje automático en el arranque, añada el nuevo sistema de archivos al archivo /etc/fstab del sistema.

    • Añada la siguiente línea al final de /etc/fstab (con el nombre de partición del Paso 3).
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

    Para más información, consulte Introducción al archivo Linux /etc/fstab.

Creación de un sistema de archivos con parted

En Red Hat Enterprise Linux® 9, parted viene preinstalado. No obstante, si lo necesitas, puedes instalarlo ejecutando el siguiente comando.

dnf install parted

Para crear un sistema de archivos con parted, siga estos pasos.

  1. Inicia el shell interactivo de « parted ».

    parted
    
  2. Cree una partición en el disco.

    1. A menos que se indique lo contrario, la utilidad « parted » utiliza la unidad principal, que en la mayoría de los casos es « /dev/sda ». Cambie al disco en el que quiera la partición utilizando el mandato select. Sustituya XXX por el nuevo nombre de dispositivo.

      select /dev/mapper/XXX
      
    2. Ejecuta el comando « print » para comprobar que te encuentras en el disco correcto.

      print
      
    3. Crear una tabla de partición.

      mklabel gpt
      
    4. Parted se puede utilizar para crear particiones de disco lógicas y primarias, los pasos a seguir son los mismos. Para crear una partición, la utilidad utiliza mkpart. Puede especificar otros parámetros como primaria o lógica en función del tipo de partición que quiera crear.

      mkpart
      

      El valor predeterminado de las unidades de la lista es megabytes (MB). Para crear una partición de 10 GB, deberá empezar en 1 y acabar en 10000. También puede cambiar las unidades de tamaño a terabytes especificando unit TB, si lo desea.

    5. Salga de parted con quit.

      quit
      
  3. Cree un sistema de archivos en la nueva partición.

    mkfs.ext3 /dev/mapper/XXXp1
    

    Es importante seleccionar el disco y la partición correctos al ejecutar este comando. Compruebe el resultado imprimiendo la tabla de partición. En la columna «Sistema de archivos», puedes ver « ext3 ».

  4. Cree un punto de montaje para el sistema de archivos y móntelo.

    • Cree un nombre de partición PerfDisk o donde quiera montar el sistema de archivos.
    mkdir /PerfDisk
    
    • Monte el almacenamiento con el nombre de la partición.
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • Compruebe que ve el nuevo sistema de archivos que aparece en la lista.
    df -h
    
  5. Para activar el montaje automático en el arranque, añada el nuevo sistema de archivos al archivo /etc/fstab del sistema.

    • Añada la siguiente línea al final de /etc/fstab (utilizando el nombre de partición del Paso 3).
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

    Para más información, consulte Introducción al archivo Linux /etc/fstab.

Gestión de permisos de usuario para el contenido del volumen montado

Como administrador del sistema, puedes gestionar el acceso a los datos del volumen montado. Una vez que el sistema de archivos esté listo, puede refinar el control de acceso utilizando los comandos chown y chmod para asignar permisos de lectura, escritura y ejecución a usuarios y grupos individuales. Para más información, consulte el tutorial de Red Hat: Cómo gestionar los permisos de Linux para usuarios, grupos y otros.

Verificación de la configuración de MPIO

Si MPIO no se ha configurado correctamente, el dispositivo de almacenamiento se puede desconectar y aparecer fuera de línea cuando se produzca un corte en la red o cuando los equipos de IBM Cloud® realizan tareas de mantenimiento. MPIO proporciona un nivel adicional de conectividad durante esos eventos y mantiene una sesión establecida con el volumen mediante operaciones activas de lectura y escritura.

  • Para comprobar si la multivía está recogiendo dispositivos, visualice la configuración actual. Si se configura correctamente, existe un único grupo para cada volumen, con un número de rutas igual al número de sesiones de iSCSI.

    multipath -l
    
    root@server:~# multipath -l
    3600a09803830304f3124457a45757067 dm-1 NETAPP,LUN C-Mode
    size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=-1 status=active
    | `6:0:0:101 sdd 8:48 active ready running
    `-+- policy='round-robin 0' prio=-1 status=enabled
     `- 7:0:0:101 sde 8:64 active ready running
    

    La cadena « 3600a09803830304f3124457a45757067 » del ejemplo es el WWID único del volumen. Cada volumen se identifica mediante su WWID único, que se mantiene mientras el volumen exista.

  • Confirme que aparecen todos los discos. En una configuración correcta, en la salida se deberían mostrar dos discos con el mismo identificador y un listado /dev/mapper del mismo tamaño con el mismo identificador. El dispositivo /dev/mapper es el que configura la multivía.

    fdisk -l | grep Disk
    
    • Ejemplo de salida de una configuración correcta.
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/mapper/3600a09803830304f3124457a45757066: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    

    El WWID se incluye en el nombre del dispositivo que crea la multivía. Se recomienda que su aplicación utilice el WWID.

    • Salida de ejemplo de una configuración incorrecta. No existe ningún disco /dev/mapper.
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    
  • Para comprobar que no hay discos locales en la lista de dispositivos multipath, visualice la configuración actual con el nivel de detalle 3. El resultado del mandato siguiente muestra los dispositivos y también muestra los que se han añadido a la lista de bloques.

    multipath -l -v 3 | grep sd <date and time>
    
  • Si se aprovisiona un volumen y se adjunta mientras la segunda ruta está inactiva, el host podría ver una única ruta cuando se ejecuta el escaneo de descubrimiento por primera vez. Si se encuentra con este raro fenómeno, compruebe la página de estado IBM Cloud® para ver si se está produciendo un evento que afecte a la capacidad de su host para acceder al almacenamiento. Si no se detectan eventos, vuelve a realizar el análisis de detección para asegurarte de que se hayan detectado correctamente todas las rutas. Si hay un evento en curso, el almacenamiento puede conectarse con una única ruta. No obstante, es fundamental volver a explorar las vías de acceso una vez finalizado el suceso. Si tras volver a realizar el escaneo no se detectan ambas rutas, abra un caso de asistencia para que se pueda investigar adecuadamente.

Desmontaje de volúmenes de Block Storage for Classic

  1. Desmonte el sistema de archivos.
    umount /dev/mapper/XXXp1 /PerfDisk
    
  2. Si no tiene ningún otro volumen en el portal de destino, puede finalizar la sesión del destino.
    iscsiadm -m node -T <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. Si no tiene ningún otro volumen en el portal de destino, suprima el registro del portal de destino para evitar futuros intentos de inicio de sesión.
    iscsiadm -m node -o delete -T <TARGET IQN> -p <PORTAL IP:PORT>
    
    Para obtener más información, consulta el manual de iscsiadm.