

# AWSControladores NVMe de
<a name="aws-nvme-drivers"></a>

Los volúmenes de Amazon EBS y los volúmenes del almacén de instancias se exponen como dispositivos de bloques NVMe en las [instancias basadas en Nitro](instance-types.md#instance-hypervisor-type). Para aprovechar al máximo el rendimiento y las capacidades de las características de Amazon EBS para los volúmenes expuestos como dispositivos de bloques NVMe, la instancia debe tener instalado el controlador AWS NVMe. Todas las AMI de AWS Windows de la generación actual vienen con el controlador AWS NVMe instalado de forma predeterminada.

Para obtener más información sobre EBS y NVMe, consulte [Amazon EBS y NVMe](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-ebs-volumes.html) en la *Guía del usuario de Amazon EBS*. Para obtener más información acerca del almacén de instancias de SSD y NVMe, consulte [Volúmenes del almacén de instancias SSD para instancias de EC2](ssd-instance-store.md).

## Instancias de Linux
<a name="install-nvme-driver-linux"></a>

Las siguientes AMI incluyen los controladores NVMe necesarios:
+ Amazon Linux 2
+ Amazon Linux AMI 2018.03
+ Ubuntu 14.04 o versiones posteriores con el kernel `linux-aws`
**nota**  
Los tipos de instancias basados en AWS Graviton requieren Ubuntu 18.04 o versiones posteriores con kernel `linux-aws`
+ Red Hat Enterprise Linux 7.4 o versiones posteriores
+ SUSE Linux Enterprise Server 12 SP2 o versiones posteriores
+ CentOS 7.4.1708 o versiones posteriores
+ FreeBSD 11.1 o posterior
+ Debian GNU/Linux 9 o versiones posteriores

**Para confirmar que su instancia tiene el controlador NVMe**  
Puede confirmar que la instancia tiene el controlador NVMe mediante el siguiente comando.
+ Amazon Linux, RHEL, CentOS y SUSE Linux Enterprise Server

  ```
  $ modinfo nvme
  ```

  Si la instancia tiene el controlador NVMe, el comando devuelve información sobre el controlador.
+ Amazon Linux 2 y Ubuntu

  ```
  $ ls /sys/module/ | grep nvme
  ```

  Si la instancia tiene el controlador NVMe, el comando devuelve los controladores instalados.

**Para actualizar el controlador NVMe**

Si la instancia tiene el controlador NVMe, puede actualizar el controlador a la versión más reciente mediante el procedimiento siguiente.

1. Conéctese a la instancia.

1. Actualice la caché del paquete para obtener las actualizaciones necesarias del paquete que se indican a continuación.
   + En Amazon Linux 2, Amazon Linux, CentOS y Red Hat Enterprise Linux:

     ```
     [ec2-user ~]$ sudo yum update -y
     ```
   + En Ubuntu y Debian:

     ```
     [ec2-user ~]$ sudo apt-get update -y
     ```

1. Ubuntu 16.04 y versiones posteriores incluyen el paquete `linux-aws`, que contiene los controladores NVMe y ENA necesarios para las instancias basadas en Nitro. Actualice el paquete `linux-aws` para recibir la última versión tal como se indica a continuación:

   ```
   [ec2-user ~]$ sudo apt-get install --only-upgrade -y linux-aws
   ```

   Para Ubuntu 14.04, puede instalar el último paquete `linux-aws` del modo siguiente:

   ```
   [ec2-user ~]$ sudo apt-get install linux-aws
   ```

1. Reinicie la instancia para cargar la última versión de kernel.

   ```
   sudo reboot
   ```

1. Vuelva a conectarse a su instancia una vez que se haya reiniciado.

## instancias de Windows
<a name="install-nvme-drivers-windows"></a>

------
#### [ PowerShell ]

Si no ha iniciado la instancia desde una de las AMI de Windows de AWS proporcionadas por Amazon, siga el procedimiento siguiente para instalar el controlador AWS NVMe actual en la instancia. Es necesario reiniciar para completar esta instalación. O bien el script de instalación reiniciará la instancia o deberá hacerlo usted en la última etapa.

**Requisitos previos**
+ PowerShell versión 3.0 o posterior está instalado.
+ Los comandos que aparecen en esta sección se deben ejecutar en la versión de 64 bits de PowerShell. No utilice la versión `x86` de PowerShell. Esa es la versión de 32 bits del intérprete de comandos y no es compatible con estos comandos.

**Para descargar e instalar el controlador NVMe de AWS más reciente**

1. Te recomendamos crear una AMI como copia de seguridad de la siguiente manera, en caso de que necesites revertir los cambios.

   1. Cuando detiene una instancia, se borran los datos contenidos en todos los volúmenes de almacén de instancias. Antes de detener una instancia, compruebe que ha copiado los datos que necesita de los volúmenes de almacén de instancias al almacenamiento persistente, como Amazon EBS o Amazon S3.

   1. En el panel de navegación, elija **Instances** (Instancias).

   1. Selecciona la instancia que requiere la actualización del controlador, selecciona **Estado de instancia** y a continuación selecciona **Detener instancia**.

   1. Una vez detenida la instancia, selecciona la instancia, selecciona **Acciones**, luego selecciona **Imagen y plantillas** y a continuación selecciona **Crear imagen**.

   1. Elija **Instance state (Estado de la instancia)** y **Start instance (Iniciar instancia)**.

1. Conéctese a la instancia e inicie sesión como administrador local.

1. Descargue los controladores en la instancia a través de una de las siguientes opciones:
   + **Navegador** – [Descargar](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip) el paquete de controladores más reciente en la instancia y extraiga el archivo ZIP.
   + **PowerShell**: ejecute los siguientes comandos:

     ```
     Invoke-WebRequest https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip -outfile $env:USERPROFILE\nvme_driver.zip
     Expand-Archive $env:userprofile\nvme_driver.zip -DestinationPath $env:userprofile\nvme_driver
     ```

     Si recibe un error al descargar el archivo y está usando Windows Server 2016 o una versión anterior, es posible que sea necesario habilitar TLS 1.2 para su terminal PowerShell. Puede habilitar TLS 1.2 para la sesión actual de PowerShell con el siguiente comando y luego volver a intentarlo:

     ```
     [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
     ```

1. Instale el controlador en la instancia ejecutando el script PowerShell `install.ps1` desde el directorio `nvme_driver` (`.\install.ps1`). Si aparece un error, asegúrese de que está utilizando PowerShell 3.0 o posterior.

   1. (Opcional) A partir de la versión `1.5.0` de NVMe de AWS, se admiten las reservas persistentes de la interfaz de sistema informáticos pequeños (SCSI) en Windows Server 2016 y versiones posteriores. Esta característica agrega compatibilidad con los clústeres de conmutación por error de Windows Server con almacenamiento compartido de Amazon EBS. De forma predeterminada, esta característica no está habilitada durante la instalación.

      Puede activar la característica al ejecutar el script `install.ps1` para instalar el controlador y especificar el parámetro `EnableSCSIPersistentReservations` con un valor de `$true`.

      ```
      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $true
      ```

      Puede deshabilitar la característica al ejecutar el script `install.ps1` para instalar el controlador y especificar el parámetro `EnableSCSIPersistentReservations` con un valor de `$false`.

      ```
      PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $false
      ```

   1. A partir de NVMe `1.5.0` de AWS, el script `install.ps1` siempre instala la herramienta `ebsnvme-id` con el controlador.

      (Opcional) En el caso de las versiones `1.4.0`, `1.4.1` y `1.4.2`, el script `install.ps1` permite especificar si la herramienta `ebsnvme-id` debe instalarse con el controlador. 

      1. Para instalar la herramienta `ebsnvme-id`, especifique `InstallEBSNVMeIdTool ‘Yes’`.

      1. Si no desea instalar la herramienta, especifique `InstallEBSNVMeIdTool ‘No’`.

         Si no se especifica `InstallEBSNVMeIdTool` y la herramienta ya está presente en `C:\ProgramData\Amazon\Tools`, el paquete actualizará la herramienta de forma predeterminada. Si la herramienta no está presente, `install.ps1` no actualizará la herramienta de forma predeterminada.

         Si no desea instalar la herramienta como parte del paquete, sino más adelante, puede encontrar la última versión o la herramienta en el paquete de controladores. Como alternativa, puede descargar la versión `1.0.0` desde Amazon S3:

         [Descargue](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) la herramienta `ebsnvme-id`.

1. Si el instalador no reinicia la instancia automáticamente, reiníciela.

------
#### [ Distributor ]

Puede usar el Distribuidor, una capacidad de AWS Systems Manager, para instalar el paquete de controladores NVMe una vez, o con actualizaciones programadas.

**Para instalar el controlador AWS NVMe**

1. Para obtener instrucciones sobre cómo instalar el paquete de controladores NVMe mediante el Distribuidor, consulte los procedimientos en [Instalar o actualizar paquetes](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html) en la *Guía del usuario de Amazon EC2 Systems Manager*.

1. En **Tipo de instalación**, seleccione **Desinstalar y volver a instalar**. 

1. En **Nombre**, elija **AWSNVMe**. 

1. (Opcional) En **Argumentos adicionales** puede personalizar la instalación al especificar los valores. Los valores deben formatearse con sintaxis JSON válida. Para ver ejemplos de cómo transmitir argumentos adicionales para el paquete `aws configure`, consulte la [referencia de complementos del documento de comandos](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html).

   1. A partir de NVMe `1.5.0` de AWS, el controlador admite las reservas persistentes de SCSI para Windows Server 2016 y versiones posteriores. De forma predeterminada, esta característica no está habilitada durante la instalación.
      + Para habilitar esta característica, especifique `{"SSM_EnableSCSIPersistentReservations": "true"}`. 
      + Si no desea habilitar esta característica, especifique `{"SSM_EnableSCSIPersistentReservations": "false"}`.

   1. A partir de NVMe `1.5.0` de AWS, el script `install.ps1` siempre instalará la herramienta `ebsnvme-id`.

      (Opcional) En el caso de las versiones `1.4.0`, `1.4.1` y `1.4.2`, el script `install.ps1` permite especificar si la herramienta ebsnvme-id debe instalarse con el controlador.
      + Para instalar la herramienta ebsnvme-id, especifique `{"SSM_InstallEBSNVMeIdTool": "Yes"}`.
      + Si no desea instalar la herramienta, especifique `{"SSM_InstallEBSNVMeIdTool": "No"}`.

        Si no se especifica `SSM_InstallEBSNVMeIdTool` para **Additional Arguments** (Argumentos adicionales) y la herramienta ya está presente en `C:\ProgramData\Amazon\Tools`, el paquete actualizará la herramienta de forma predeterminada. Si la herramienta no está presente, el paquete no actualizará la herramienta de forma predeterminada.

        Si no desea instalar la herramienta como parte del paquete, sino más adelante, puede encontrar la última versión de la herramienta en el paquete de controladores. Como alternativa, puede descargar la versión `1.0.0` desde Amazon S3:

        [Descargue](https://s3.amazonaws.com/ec2-windows-drivers-downloads/EBSNVMeID/Latest/ebsnvme-id.zip) la herramienta `ebsnvme-id`.

1. Si el instalador no reinicia la instancia automáticamente, reiníciela.

------

## Configure las reservas persistentes de SCSI para instancias de Windows
<a name="configure-scsi-persistent-reservations"></a>

Una vez instalada la versión `1.5.0` o posterior del controlador de NVMe de AWS, puede habilitar o deshabilitar las reservas persistentes SCSI mediante el registro de Windows para Windows Server 2016 y versiones posteriores. Debe reiniciar la instancia para que estos cambios en el registro surjan efecto.

Puede habilitar las reservas persistentes de SCSI con el siguiente comando, que establece el `EnableSCSIPersistentReservations` en un valor de `1`.

```
PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 1
```

Puede deshabilitar las reservas persistentes de SCSI con el siguiente comando, que establece el `EnableSCSIPersistentReservations` en un valor de `0`.

```
PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 0
```