

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.

# Aprovisionamiento de iSCSI para Linux
<a name="mount-iscsi-luns-linux"></a>

FSx para ONTAP admite el protocolo iSCSI. Debe aprovisionar iSCSI tanto en el cliente Linux como en el sistema de archivos para poder usar el protocolo iSCSI para transportar datos entre los clientes y el sistema de archivos. El protocolo iSCSI está disponible en todos los sistemas de archivos que tienen 6 o menos [pares de alta disponibilidad (HA)](HA-pairs.md).

El proceso de configuración de iSCSI en Amazon FSx para NetApp ONTAP consta de tres pasos principales, que se describen en los siguientes procedimientos:

1. Instale y configure el cliente iSCSI en el host de Linux.

1. Configure iSCSI en la SVM del sistema de archivos.
   + Cree un grupo de iniciadores iSCSI.
   + Asigne el grupo de iniciadores al LUN.

1. Monte un LUN iSCSI en el cliente Linux.

## Antes de empezar
<a name="iscsi-linux-byb"></a>

Antes de iniciar el proceso de configuración del sistema de archivos para iSCSI, debe completar los siguientes elementos.
+ Cree el sistema de archivos de FSx para ONTAP. Para obtener más información, consulte [Creación de sistemas de archivos](creating-file-systems.md).
+ Cree un LUN iSCSI en el sistema de archivos. Para obtener más información, consulte [Creación de un iSCSI LUN](create-iscsi-lun.md).
+ Cree una instancia de EC2 que ejecute la imagen de máquina de Amazon (AMI) de Amazon Linux 2 y que esté en la misma VPC que el sistema de archivos. Este es el host de Linux en el que configurará iSCSI y accederá a los datos de sus archivos.

  Más allá del alcance de estos procedimientos, si el host está ubicado en otra VPC, puede usar el emparejamiento de VPC o AWS Transit Gateway para conceder a otras VPC el acceso a los puntos de conexión iSCSI del volumen. Para obtener más información, consulte [Acceso a los datos desde fuera de la VPC de implementación](supported-fsx-clients.md#access-from-outside-deployment-vpc).
+ Configure los grupos de seguridad de VPC del host Linux para permitir el tráfico entrante y saliente, como se describe en [Control de acceso al sistema de archivos con Amazon VPC](limit-access-security-groups.md).
+ Obtenga las credenciales del usuario de ONTAP con los privilegios de `fsxadmin` que usará para acceder a la CLI de ONTAP. Para obtener más información, consulte [Usuarios y roles de ONTAP](roles-and-users.md).
+ El host Linux que configurará para iSCSI y usará para acceder al sistema de archivos de FSx para ONTAP están ubicados en la misma VPC y en la Cuenta de AWS.
+ Recomendamos que la instancia EC2 esté 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 de 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.](http://docs.aws.amazon.com/es_es/fsx/latest/ONTAPGuide/images/fsx-ontap-iscsi-mnt-client.png)

Si la instancia de EC2 ejecuta una AMI de Linux diferente a la de Amazon Linux 2, es posible que algunas de las utilidades empleadas en estos procedimientos y ejemplos ya estén instaladas y que use 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.

**Topics**
+ [Antes de empezar](#iscsi-linux-byb)
+ [Instalar y configurar iSCSI en el host Linux](#configure-iscsi-on-linux-client)
+ [Configuración de iSCSI en el sistema de archivos de FSx para ONTAP](#configure-iscsi-on-fsx-ontap)
+ [Monte un LUN iSCSI en su cliente Linux](#mount-iscsi-lun-on-linux-client)

## Instalar y configurar iSCSI en el host Linux
<a name="configure-iscsi-on-linux-client"></a>

**Cómo 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html).

1. 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
   ```

1. 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
   ```

1. 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
   ```

1. 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
   ```

**Cómo 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
   ```

1. 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
<a name="configure-iscsi-on-fsx-ontap"></a>

1. Conéctese a la CLI ONTAP de NetApp en el sistema de archivos de FSx for ONTAP en el que creó el LUN iSCSI mediante el siguiente comando. Para obtener más información, consulte [Uso de la CLI de NetApp ONTAP](managing-resources-ontap-apps.md#netapp-ontap-cli).

   ```
   ~$ ssh fsxadmin@{{your_management_endpoint_ip}}
   ```

1. Cree el grupo de iniciadores (`igroup`) mediante el comando CLI [https://docs.netapp.com/us-en/ontap-cli-9111/lun-igroup-create.html](https://docs.netapp.com/us-en/ontap-cli-9111/lun-igroup-create.html)ONTAP de NetApp. 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](https://docs.netapp.com/us-en/ontap-cli-9111/lun-igroup-create.html) en el *Centro de documentación de ONTAP de NetApp*. 

1. Confirme que existe `igroup` con el comando: [https://docs.netapp.com/us-en/ontap-cli-9111/lun-igroup-show.html](https://docs.netapp.com/us-en/ontap-cli-9111/lun-igroup-show.html)

   ```
   ::> 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
   ```

1. Este paso supone que ya ha creado un iSCSI LUN. Si no lo ha hecho, consulte [Creación de un iSCSI LUN](create-iscsi-lun.md) para ver las instrucciones paso a paso para hacerlo.

   Cree un mapeo desde el LUN que creó hasta el igroup que creó, utilizando [https://docs.netapp.com/us-en/ontap-cli-9111/lun-mapping-create.html](https://docs.netapp.com/us-en/ontap-cli-9111/lun-mapping-create.html) 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}}
   ```

1. Use el comando [https://docs.netapp.com/us-en/ontap-cli-9111/lun-show.html](https://docs.netapp.com/us-en/ontap-cli-9111/lun-show.html) 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.

1. Utilice el comando [https://docs.netapp.com/us-en/ontap-cli-9111/network-interface-show.html](https://docs.netapp.com/us-en/ontap-cli-9111/network-interface-show.html) 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` es`172.31.21.81`.

## Monte un LUN iSCSI en su cliente Linux
<a name="mount-iscsi-lun-on-linux-client"></a>

El proceso de montaje del LUN iSCSI en el cliente Linux consta de tres pasos:

1. Descubrimiento de los nodos iSCSI de destino

1. Partición del LUN iSCSI

1. Montaje del LUN iSCSI en el cliente

Analizamos los pasos en los siguientes procedimientos.

**Descubrir los nodos iSCSI de destino**

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.

1. (Opcional) Para lograr un rendimiento superior al del cliente único de Amazon EC2, máximo de 5 GBps (\~625 MBps) al LUN iSCSI, siga los procedimientos descritos en [Ancho de banda de la red de instancias de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) en la guía del usuario de Amazon Elastic Compute Cloud para instancias de Linux a fin de establecer sesiones adicionales para obtener un mayor rendimiento.

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

   ```
   ~$ sudo iscsiadm --mode node -T {{target_initiator}} --op update -n node.session.nr_sessions -v 8
   ```

1. 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`.

1. 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.

**Cómo 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](#configure-iscsi-on-fsx-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 ONTAP de NetApp que utiliza Amazon FSx para NetApp ONTAP.
   + Reemplace `device_name` por el nombre descriptivo que desee utilizar para su dispositivo.

   ```
   multipaths {
       multipath {
           wwid 3600a0980{{serial_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
   ```

1. Reinicie el servicio `multipathd` para que los cambios `/etc/multipathd.conf` surtan efecto.

   ```
   ~$ systemctl restart multipathd.service
   ```

**Cómo 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}}
   ```

1. Particione el disco usando `fdisk`. Ingresará un mensaje interactivo. Ingrese las opciones en el orden que se muestra. Puede crear varias particiones utilizando un valor menor que el último sector (`20971519` en este ejemplo).
**nota**  
El valor `Last sector` variará según el tamaño del LUN iSCSI (10 GB 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.

1. 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
   ```

**Cómo 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}}
   ```

1. Monte el sistema de archivos utilizando el siguiente comando.

   ```
   ~$ sudo mount -t ext4 /dev/mapper/{{partition_name}} /{{directory_path}}/{{mount_point}}
   ```

1. (Opcional) Si desea asignar a un usuario específico la propiedad del directorio de montaje, reemplace {{`username`}} con el nombre de usuario del propietario.

   ```
   ~$ sudo chown {{username}}:{{username}} /{{directory_path}}/{{mount_point}}
   ```

1. (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.