Tiempo de espera de las operaciones de E/S NVMe para los volúmenes de Amazon EBS
La mayoría de los sistemas operativos especifican un tiempo de espera para las operaciones de E/S enviadas a los dispositivos NVMe.
Instancias de Linux
En Linux, los volúmenes EBS conectados a instancias basadas en Nitro utilizan el controlador predeterminado de NVMe proporcionado por el sistema operativo. La mayoría de los sistemas operativos especifican un tiempo de espera para las operaciones de E/S enviadas a los dispositivos NVMe. El tiempo de espera predeterminado es 30 segundos y se puede cambiar mediante el parámetro de arranque nvme_core.io_timeout
. En la mayoría de los kernels de Linux anteriores a la versión 4.6, este parámetro es nvme.io_timeout
.
Si la latencia de E/S supera el valor de este parámetro de tiempo de espera, se produce un error de E/S en el controlador NVMe de Linux y se devuelve un error al sistema de archivos o a la aplicación. Según la operación de E/S, el sistema de archivos o aplicación puede recuperar el error. En algunos casos, el sistema de archivos puede volverse a montar como de solo lectura.
Para obtener una experiencia similar a los volúmenes de EBS asociados a instancias Xen, recomendamos establecer nvme_core.io_timeout
en el máximo valor posible. Para los kernels actuales, el máximo es 4294967295, mientras que para los kernels anteriores el máximo es 255. En función de la versión de Linux, el tiempo de espera ya podría estar definido en el valor máximo admitido. Por ejemplo, el tiempo de espera se define en 4294967295 de forma predeterminada para la AMI de Amazon Linux 2017.09.01 y versiones posteriores.
Puede verificar el valor máximo de la distribución de Linux mediante la escritura de un valor superior al máximo sugerido en /sys/module/nvme_core/parameters/io_timeout
y la comprobación del error Numerical result out of range
cuando intente guardar el archivo.
instancias de Windows
En Windows, el tiempo de espera predeterminado es 60 segundos y el máximo es 255 segundos. Se puede modificar el valor del registro de la clase de disco TimeoutValue
mediante el procedimiento descrito en el artículo Registry Entries for SCSI Miniport Drivers