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.
Trabajar con instancias de spot de Amazon EC2
FSx para Lustre se puede utilizar con instancias de spot EC2 para reducir significativamente los costos de Amazon EC2. Una instancia de spot es una instancia EC2 sin utilizar que está disponible por un precio inferior al precio bajo demanda. Amazon EC2 puede interrumpir su instancia de spot si la demanda de instancias de spot supera el precio máximo, si la oferta de instancias de spot aumenta o si la oferta de instancias de spot disminuye.
Cuando Amazon EC2 interrumpe una instancia de spot, proporciona un aviso de interrupción de instancia de spot, que envía a la instancia una advertencia dos minutos antes de que Amazon EC2 la interrumpa. Para obtener más información, consulte Instancias de spot en Guía del usuario de Amazon EC2.
Para garantizar que los sistemas de archivos de Amazon FSx no se vean afectados por las interrupciones de instancias de spot de EC2, recomendamos desmontar los sistemas de archivos de Amazon FSx antes de finalizar o hibernar las instancias de spot de EC2. Para obtener más información, consulte Desmontaje de sistemas de archivos.
Cómo manejar las interrupciones de las instancias de spot de Amazon EC2
FSx for Lustre es un sistema de archivos distribuido en el que las instancias de servidor y cliente cooperan para proporcionar un sistema de archivos fiable y de alto rendimiento. Mantienen un estado distribuido y coherente en las instancias del cliente y del servidor. FSx en el caso de Lustre, los servidores delegan los permisos de acceso temporal a los clientes mientras estos se ocupan activamente de almacenar en caché I/O los datos del sistema de archivos. Se espera que los clientes respondan en un corto período de tiempo cuando los servidores les soliciten revocar sus permisos de acceso temporal. Para proteger el sistema de archivos de clientes malintencionados, los servidores pueden expulsar a los clientes de Lustre que no respondan después de unos minutos. Para evitar tener que esperar varios minutos la respuesta de un cliente indiferente a la solicitud del servidor, es importante desmontar limpiamente los clientes de Lustre, sobre todo antes de terminar las instancias de spot de EC2. Se inicia un desmontaje limpio mediante el umount comando without o. -f -l
Si Lustre los clientes se cierran sin desmontar correctamente el sistema de archivos, es probable que otros clientes que utilicen ese sistema de archivos experimenten un aumento temporal de la latencia, se bloqueen las operaciones o se produzcan errores. I/O
La instancia de spot de EC2 envía avisos de terminación con 2 minutos de antelación antes de cerrar una instancia. Le recomendamos que automatice el proceso de desmontar limpiamente los clientes de Lustre antes de terminar las instancias de spot de EC2.
ejemplo– Script para desmontar limpiamente las instancias de spot EC2 terminadas
Este script de ejemplo elimina de forma limpia la terminación de instancias de spot de EC2 haciendo lo siguiente:
Vigila los avisos de terminación de Spot.
Cuando recibe un aviso de terminación:
Detiene las aplicaciones que estén accediendo al sistema de archivos.
Desmonta el sistema de archivos antes de finalizar la instancia.
Puede adaptar el script como necesite, especialmente para cerrar su aplicación de manera adecuada. Para obtener más información sobre las mejores prácticas para manejar las interrupciones de instancias de spot, consulte Prácticas recomendadas para manejar las interrupciones de instancias de spot de EC2
nota
Un Lustre cliente puede tardar un tiempo en desmontar un sistema de archivos. Si monta varios sistemas de archivos en la misma instancia puntual de Amazon EC2, es posible que tarde demasiado tiempo en desmontarlos todos dentro del plazo de notificación de finalización puntual de dos minutos. Si necesita montar una gran cantidad de sistemas de archivos en un host, le recomendamos que utilice instancias bajo demanda para evitar problemas de desmontajes sucios debido a las interrupciones de las instancias puntuales de Amazon EC2.
#!/bin/bash # TODO: Specify below the FSx mount point you are using *FSXPATH=/fsx* cd / TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") if [ "$?" -ne 0 ]; then echo "Error running 'curl' command" >&2 exit 1 fi # Periodically check for termination while sleep 5 do HTTP_CODE=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s -w %{http_code} -o /dev/null http://169.254.169.254/latest/meta-data/spot/instance-action) if [[ "$HTTP_CODE" -eq 401 ]] ; then # Refreshing Authentication Token TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") continue elif [[ "$HTTP_CODE" -ne 200 ]] ; then # If the return code is not 200, the instance is not going to be interrupted continue fi echo "Instance is getting terminated. Clean and unmount '$FSXPATH' ..." curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/instance-action echo # Gracefully stop applications accessing the filesystem # # TODO*: Replace with the proper command to stop your application if possible* # Kill every process still accessing Lustre filesystem echo "Kill every process still accessing Lustre filesystem..." fuser -kMm -TERM "${FSXPATH}"; sleep 2 fuser -kMm -KILL "${FSXPATH}"; sleep 2 # Unmount FSx For Lustre filesystem if ! umount -c "${FSXPATH}"; then echo "Error unmounting '$FSXPATH'. Processes accessing it:" >&2 lsof "${FSXPATH}" echo "Retrying..." continue fi # Start a graceful shutdown of the host shutdown now done