Montaje de LUNs iSCSI en un cliente Linux - FSx para ONTAP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Montaje de LUNs iSCSI en un cliente Linux

Los ejemplos que se presentan en estos procedimientos utilizan la siguiente configuración:

  • El LUN iSCSI que se va a montar en el host Linux ya está creado. Para obtener más información, consulte Creación de un iSCSI LUN.

  • El host de Linux que está montando el LUN iSCSI es una instancia de Amazon EC2 que se ejecuta en la Imagen de máquina de Amazon (AMI) de Amazon Linux 2. Cuenta con grupos de seguridad de VPC configurados para permitir el tráfico entrante y saliente, tal y como se describe en Control de acceso al sistema de archivos con Amazon VPC.

  • El host Linux y el sistema de archivos de FSx para ONTAP están ubicados en la misma VPC y Cuenta de AWS. Si el host está ubicado en otra VPC, puede utilizar la interconexión de VPC o conceder AWS Transit Gateway a otras VPC el acceso a los puntos finales iSCSI del volumen. Para obtener más información, consulte Acceso a los datos desde fuera de la VPC de implementación.

    Si utiliza una instancia EC2 que ejecuta una AMI de Linux diferente, es posible que algunas de las utilidades que se instalan en el host estén preinstaladas y que utilice comandos diferentes para instalar los paquetes necesarios. Además de instalar los paquetes, los comandos utilizados en esta sección son válidos para otras AMI Linux de EC2.

    Se recomienda que la instancia EC2 se encuentre en la misma zona de disponibilidad que la subred preferida del sistema de archivos, como se muestra en el siguiente gráfico.

Imagen que muestra un sistema de archivos Amazon FSx para NetApp ONTAP con un LUN iSCSI y una instancia de Amazon EC2 ubicadas en la misma zona de disponibilidad que la subred preferida del sistema de archivos.

Instalar y configurar iSCSI en el cliente Linux

Para instalar el cliente iSCSI
  1. Confirme que iscsi-initiator-utils y device-mapper-multipath están instalados en su dispositivo Linux. Conexión a la instancia de Linux mediante un cliente SSH. Para más información, consulte Conectarse a su instancia Linux mediante SSH.

  2. Instale multipath el cliente iSCSI mediante el siguiente comando. La instalación de multipath es necesaria si desea realizar una conmutación por error automática entre los servidores de archivos.

    ~$ sudo yum install -y device-mapper-multipath iscsi-initiator-utils
  3. Para facilitar una respuesta más rápida al conmutar automáticamente entre servidores de archivos cuando se utiliza multipath, establezca el valor de tiempo de espera de sustitución en el archivo /etc/iscsi/iscsid.conf en un valor de 5 en lugar de utilizar el valor predeterminado de 120.

    ~$ sudo sed -i 's/node.session.timeo.replacement_timeout = .*/node.session.timeo.replacement_timeout = 5/' /etc/iscsi/iscsid.conf; sudo cat /etc/iscsi/iscsid.conf | grep node.session.timeo.replacement_timeout
  4. Inicie el servicio iSCSI.

    ~$ sudo service iscsid start

    Tenga en cuenta que, según su versión de Linux, puede que tenga que usar este comando en su lugar:

    ~$ sudo systemctl start iscsid
  5. Confirme que el servicio se está ejecutando mediante el siguiente comando.

    ~$ sudo systemctl status iscsid.service

    El sistema responde con el siguiente resultado:

    iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-09-02 00:00:00 UTC; 1min ago Docs: man:iscsid(8) man:iscsiadm(8) Process: 14658 ExecStart=/usr/sbin/iscsid (code=exited, status=0/SUCCESS) Main PID: 14660 (iscsid) CGroup: /system.slice/iscsid.service ├─14659 /usr/sbin/iscsid └─14660 /usr/sbin/iscsid
Para configurar iSCSI en su cliente Linux
  1. Para permitir que sus clientes realicen la conmutación por error automática entre sus servidores de archivos, debe configurar la multiruta. Utilice el siguiente comando:

    ~$ sudo mpathconf --enable --with_multipathd y
  2. Determine el nombre del iniciador de su host de Linux con el siguiente comando. La ubicación del nombre del iniciador depende de la utilidad iSCSI. Si está utilizando iscsi-initiator-utils, el nombre del iniciador se encuentra en el archivo /etc/iscsi/initiatorname.iscsi.

    ~$ sudo cat /etc/iscsi/initiatorname.iscsi

    El sistema responde con el nombre del iniciador.

    InitiatorName=iqn.1994-05.com.redhat:abcdef12345

Configuración de iSCSI en el sistema de archivos de FSx para ONTAP

  1. Conéctese a la CLI de NetApp ONTAP del sistema de archivos FSx para ONTAP en el que creó el LUN iSCSI mediante el siguiente comando. Para obtener más información, consulte Uso de la NetApp ONTAP CLI.

    ~$ ssh fsxadmin@your_management_endpoint_ip
  2. Cree el grupo de iniciadores (igroup) mediante el comando NetApp lun igroup createCLI de ONTAP. Un grupo de iniciadores se asigna a los LUNs iSCSI y controla qué iniciadores (clientes) tienen acceso a los LUNs. Reemplace host_initiator_name con el nombre del iniciador de su host Linux que recuperó en el procedimiento anterior.

    ::> lun igroup create -vserver svm_name -igroup igroup_name -initiator host_initiator_name -protocol iscsi -ostype linux

    Si desea que los LUNs asignados a este igroup estén disponibles para varios hosts, puede especificar varios nombres de iniciadores separados por una coma. Para obtener más información, consulte lun igroup create en el Centro de documentación de ONTAP. NetApp

  3. Confirme que existe igroup con el comando: lun igroup show

    ::> lun igroup show

    El sistema responde con el siguiente resultado:

    Vserver Igroup Protocol OS Type Initiators --------- ------------ -------- -------- ------------------------------------ svm_name igroup_name iscsi linux iqn.1994-05.com.redhat:abcdef12345
  4. Este paso supone que ya ha creado un iSCSI LUN. Si no lo ha hecho, consulte step-by-step las instrucciones Creación de un iSCSI LUN para hacerlo.

    Cree un mapeo desde el LUN que creó hasta el igroup que creó, utilizando lun mapping create y especificando los siguientes atributos:

    • svm_name: el nombre de la máquina virtual de almacenamiento que proporciona el destino iSCSI. El host usa este valor para llegar al LUN.

    • vol_name: el nombre del volumen que aloja el LUN.

    • lun_name: El nombre que ha asignado al servicio.

    • igroup_name: el nombre del grupo iniciador.

    • lun_id: el número entero del ID del LUN es específico de la asignación, no del propio LUN. Los iniciadores del igroup lo utilizan como número de unidad lógica. Utilice este valor para el iniciador al acceder al almacenamiento.

    ::> lun mapping create -vserver svm_name -path /vol/vol_name/lun_name -igroup igroup_name -lun-id lun_id
  5. Use el comando lun show -path para confirmar que el LUN está creado, en línea y mapeado.

    ::> lun show -path /vol/vol_name/lun_name -fields state,mapped,serial-hex

    El sistema responde con el siguiente resultado:

    Vserver Path serial-hex state mapped --------- ------------------------------- ------------------------ -------- -------- svm_name /vol/vol_name/lun_name 6c5742314e5d52766e796150 online mapped

    Guarde el valor serial_hex (en este ejemplo, es 6c5742314e5d52766e796150) y lo usará en un paso posterior para crear un nombre descriptivo para el dispositivo de bloques.

  6. Utilice el comando network interface show -vserver para recuperar las direcciones del iscsi_1 y las interfaces iscsi_2 de la SVM en la que creó el LUN iSCSI.

    ::> network interface show -vserver svm_name

    El sistema responde con el siguiente resultado:

    Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- svm_name iscsi_1 up/up 172.31.0.143/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.21.81/20 FSxId0123456789abcdef8-02 e0e true nfs_smb_management_1 up/up 198.19.250.177/20 FSxId0123456789abcdef8-01 e0e true 3 entries were displayed.

    En este ejemplo, la dirección IP de iscsi_1 es 172.31.0.143 y iscsi_2 es172.31.21.81.

Monte un LUN iSCSI en su cliente Linux

  1. En su cliente Linux, utilice el siguiente comando para detectar los nodos iSCSI de destino con la dirección IP de iscsi_1 iSCSI_1_IP.

    ~$ sudo iscsiadm --mode discovery --op update --type sendtargets --portal iscsi_1_IP
    172.31.0.143:3260,1029 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 172.31.21.81:3260,1028 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3

    En este ejemplo, iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 corresponde al target_initiator para LUN iSCSI de la zona de disponibilidad preferida.

  2. (Opcional) Puede establecer sesiones adicionales con target_initiator. Amazon EC2 tiene un límite de ancho de banda de 5 Gb/s (~625 MB/s) para el tráfico de flujo único, pero puede crear varias sesiones para impulsar niveles más altos de rendimiento en su sistema de archivos desde un solo cliente. Para obtener más información, consulte Ancho de banda de la red de instancias de Amazon EC2 en la Guía del usuario de Amazon Elastic Compute Cloud para instancias de Linux.

    El siguiente comando establece 8 sesiones por iniciador por nodo ONTAP en cada zona de disponibilidad, lo que permite al cliente transferir hasta 40 Gb/s (5000 MB/s) de rendimiento total al LUN iSCSI.

    ~$ sudo iscsiadm --mode node -T target_initiator --op update -n node.session.nr_sessions -v 8
  3. Inicie sesión en los iniciadores de destino. Los LUNs iSCSI se presentan como discos disponibles.

    ~$ sudo iscsiadm --mode node -T target_initiator --login
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] (multiple) Login to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] successful.

    El resultado anterior está truncado; debería ver una respuesta Logging in y Login successful una para cada sesión en cada servidor de archivos. En el caso de 4 sesiones por nodo, habrá 8 Logging in y 8 respuestas Login successful.

  4. Utilice el siguiente comando para comprobar que dm-multipath ha identificado y fusionado las sesiones iSCSI mostrando un único LUN con varias políticas. Debe haber un número igual de dispositivos listados como active y de aquellos listados como enabled.

    ~$ sudo multipath -ll

    En la salida, el nombre del disco se formatea como dm-xyz, donde xyz es un número entero. Si no hay otros discos de rutas múltiples, este valor es dm-0.

    3600a09806c5742314e5d52766e79614f dm-xyz NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 0:0:0:1 sda 8:0 active ready running | |- 1:0:0:1 sdc 8:32 active ready running | |- 3:0:0:1 sdg 8:96 active ready running | `- 4:0:0:1 sdh 8:112 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 2:0:0:1 sdb 8:16 active ready running |- 7:0:0:1 sdf 8:80 active ready running |- 6:0:0:1 sde 8:64 active ready running `- 5:0:0:1 sdd 8:48 active ready running

    Su dispositivo de bloques ahora está conectado a su cliente Linux. Se encuentra debajo de la ruta /dev/dm-xyz. No debe usar esta ruta con fines administrativos; en su lugar, utilice el enlace simbólico que se encuentra debajo de la ruta /dev/mapper/wwid, donde wwid es un identificador único para su LUN que sea coherente en todos los dispositivos. En el siguiente paso, proporcionará un nombre descriptivo para el wwid para que pueda distinguirlo de otros discos con múltiples rutas.

Para asignar un nombre descriptivo al dispositivo de bloques
  1. Para darle a su dispositivo un nombre descriptivo, cree un alias en el archivo /etc/multipath.conf. Para ello, agregue la siguiente entrada al archivo utilizando el editor de texto que prefiera y sustituya los siguientes marcadores:

    • Reemplace serial_hex por el valor que guardó en el procedimiento Configuración de iSCSI en el sistema de archivos de FSx para ONTAP.

    • Añada el prefijo 3600a0980 al valor serial_hex, tal y como se muestra en el ejemplo. Este es un preámbulo exclusivo de la distribución NetApp ONTAP que utiliza Amazon FSx for ONTAP. NetApp

    • Reemplace device_name por el nombre descriptivo que desee utilizar para su dispositivo.

    multipaths { multipath { wwid 3600a0980serial_hex alias device_name } }

    Como alternativa, puede copiar y guardar el siguiente script como un archivo bash, por ejemplo multipath_alias.sh. Puede ejecutar el script con los privilegios de sudo, reemplace serial_hex (sin el prefijo 3600a0980) y device_name por su número de serie respectivo y con el nombre descriptivo que desee. Este script busca una sección multipaths no comentada en el archivo /etc/multipath.conf. Si existe, añade una entrada multipath a esa sección; de lo contrario, creará una nueva sección multipaths con una entrada multipath para el dispositivo de bloques.

    #!/bin/bash SN=serial_hex ALIAS=device_name CONF=/etc/multipath.conf grep -q '^multipaths {' $CONF UNCOMMENTED=$? if [ $UNCOMMENTED -eq 0 ] then sed -i '/^multipaths {/a\\tmultipath {\n\t\twwid 3600a0980'"${SN}"'\n\t\talias '"${ALIAS}"'\n\t}\n' $CONF else printf "multipaths {\n\tmultipath {\n\t\twwid 3600a0980$SN\n\t\talias $ALIAS\n\t}\n}" >> $CONF fi
  2. Reinicie el servicio multipathd para que los cambios /etc/multipathd.conf surtan efecto.

    ~$ systemctl restart multipathd.service
Para particionar el LUN

El siguiente paso es formatear y particionar el LUN con fdisk.

  1. Utilice el siguiente comando para verificar que la ruta a su device_name está presente.

    ~$ ls /dev/mapper/device_name
    /dev/device_name
  2. Particione el disco usando fdisk. Ingresará un mensaje interactivo. Ingrese las opciones en el orden que se muestra. Tenga en cuenta que el valor Last sector variará según el tamaño del LUN iSCSI (10 GB en este ejemplo). Puede crear varias particiones utilizando un valor menor que el último sector (20971519 en este ejemplo).

    ~$ sudo fdisk /dev/mapper/device_name

    Se inicia el mensaje interactivo fsdisk.

    Welcome to fdisk (util-linux 2.30.2). 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 0x66595cb0. 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-20971519, default 2048): 2048 Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): 20971519 Created a new partition 1 of type 'Linux' and of size 512 B. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

    Tras ingresar w, la nueva partición /dev/mapper/partition_name estará disponible. El partition_name tiene el formato <device_name><partition_number>. 1 se utilizó como el número de partición utilizado en el fdisk comando en el paso anterior.

  3. Cree su sistema de archivos con /dev/mapper/partition_name como ruta.

    ~$ sudo mkfs.ext4 /dev/mapper/partition_name

    El sistema responde con el siguiente resultado:

    mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=16 blocks 655360 inodes, 2621184 blocks 131059 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2151677952 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Para montar el LUN en el cliente Linux
  1. Cree un directorio directory_path como punto de montaje para su sistema de archivos.

    ~$ sudo mkdir /directory_path/mount_point
  2. Monte el sistema de archivos utilizando el siguiente comando.

    ~$ sudo mount -t ext4 /dev/mapper/partition_name /directory_path/mount_point
  3. (Opcional) Puede cambiar la propiedad del directorio de montaje a su usuario. Reemplace username por su nombre de usuario.

    ~$ sudo chown username:username /directory_path/mount_point
  4. (Opcional) Compruebe que puede leer y escribir datos en el sistema de archivos.

    ~$ echo "Hello world!" > /directory_path/mount_point/HelloWorld.txt ~$ cat directory_path/HelloWorld.txt Hello world!

    Ha creado y montado correctamente un LUN iSCSI en su cliente Linux.