View a markdown version of this page

Utilisation des instances Amazon EC2 Spot - FSx pour Lustre

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des instances Amazon EC2 Spot

FSx for Lustre peut être utilisé avec les instances ponctuelles EC2 pour réduire de manière significative vos coûts Amazon EC2. Une instance Spot est une instance EC2 non utilisée qui est disponible à un prix inférieur au On-Demand prix. Amazon EC2 peut interrompre votre instance ponctuelle lorsque le prix au comptant dépasse votre prix maximum, lorsque la demande d'instances ponctuelles augmente ou lorsque l'offre d'instances ponctuelles diminue.

Lorsqu’Amazon EC2 interrompt une instance Spot, il communique un avis d’interruption d’instance Spot, ce qui avertit l’instance qu’Amazon EC2 va l’interrompe dans deux minutes. Pour plus d’informations, consultez la section Instances Spot dans le Guide de l’utilisateur Amazon EC2.

Pour vous assurer que les systèmes de fichiers Amazon FSx ne sont pas affectés par les interruptions des instances ponctuelles EC2, nous vous recommandons de démonter les systèmes de fichiers Amazon FSx avant de mettre fin aux instances ponctuelles EC2 ou de les mettre en veille prolongée. Pour de plus amples informations, veuillez consulter Démontage des systèmes de fichiers.

Gestion des interruptions des instances Amazon EC2 Spot

FSx for Lustre est un système de fichiers distribué dans lequel les instances du serveur et du client coopèrent pour fournir un système de fichiers performant et fiable. Ils maintiennent un état distribué et cohérent entre les instances client et serveur. Les serveurs FSx for Lustre délèguent des autorisations d'accès temporaires aux clients pendant qu'ils effectuent activement I/O et mettent en cache les données du système de fichiers. Les clients sont censés répondre dans un court laps de temps lorsque les serveurs leur demandent de révoquer leurs autorisations d'accès temporaires. Pour protéger le système de fichiers contre le mauvais comportement des clients, les serveurs peuvent expulser les Lustre clients qui ne répondent pas au bout de quelques minutes. Pour éviter de devoir attendre plusieurs minutes pour qu'un client qui ne répond pas réponde à la demande du serveur, il est important de démonter correctement les Lustre clients, en particulier avant de mettre fin aux instances Spot EC2. Un démontage complet est lancé à l'aide de la umount commande sans -f ou-l.

Si les Lustre clients sont arrêtés sans avoir correctement démonté le système de fichiers, les autres clients utilisant ce système de fichiers sont susceptibles de connaître une latence temporairement accrue, des opérations suspendues ou I/O des erreurs.

EC2 Spot envoie des notifications de résiliation 2 minutes à l'avance avant de fermer une instance. Nous vous recommandons d'automatiser le processus de démontage correct des Lustre clients avant de mettre fin aux instances Spot EC2.

Exemple— Script pour démonter proprement les instances EC2 Spot qui se terminent

Cet exemple de script démonte proprement les instances Spot EC2 qui se terminent en procédant comme suit :

  • Watches for Spot Résiliation Notices.

  • Lorsqu'il reçoit un avis de résiliation :

    • Arrêtez les applications qui accèdent au système de fichiers.

    • Démonte le système de fichiers avant que l'instance ne soit arrêtée.

Vous pouvez adapter le script selon vos besoins, notamment pour fermer correctement votre application. Pour plus d'informations sur les meilleures pratiques de gestion des interruptions des instances Spot, consultez Meilleures pratiques pour la gestion des interruptions des instances Spot EC2.

Note

Le démontage d'un système de fichiers par un Lustre client peut prendre du temps. Si vous montez de nombreux systèmes de fichiers sur la même instance Spot Amazon EC2, il se peut que le démontage de tous les systèmes de fichiers dans le délai de notification de résiliation Spot de deux minutes soit trop long. Si vous devez monter un grand nombre de systèmes de fichiers sur un seul hôte, nous vous recommandons d'utiliser On-Demand Instances pour éviter les problèmes liés aux démontages impropres dus à des interruptions des instances Amazon EC2 Spot.

#!/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