As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Trabalhando com Amazon EC2 Spot Instances
FSx for Lustre pode ser usado com instâncias EC2 spot para reduzir significativamente seus EC2 custos na Amazon. Uma instância spot é uma EC2 instância não usada que está disponível por menos do que o preço sob demanda. A Amazon EC2 pode interromper sua Instância Spot quando o preço Spot excede seu preço máximo, quando a demanda por Instâncias Spot aumenta ou quando a oferta de Instâncias Spot diminui.
Quando a Amazon EC2 interrompe uma Instância Spot, ela fornece um aviso de interrupção da Instância Spot, que dá à instância um aviso de dois minutos antes que a Amazon EC2 a interrompa. Para obter mais informações, consulte Instâncias spot no Guia EC2 do usuário da Amazon.
Para garantir que os sistemas de FSx arquivos da Amazon não sejam afetados pelas interrupções das Instâncias EC2 Spot, recomendamos desmontar os sistemas de arquivos da FSx Amazon antes de encerrar ou EC2 hibernar as Instâncias Spot. Para obter mais informações, consulte Desmontar sistemas de arquivos.
Lidando com interrupções da Amazon EC2 Spot Instance
FSx for Lustre é um sistema de arquivos distribuído em que as instâncias do servidor e do cliente cooperam para fornecer um sistema de arquivos confiável e com desempenho. Eles mantêm um estado distribuído e coerente nas instâncias do cliente e do servidor. FSx Os servidores do Lustre delegam permissões de acesso temporário aos clientes enquanto eles realizam ativamente a E/S e armazenam dados do sistema de arquivos em cache. Espera-se que os clientes respondam em um curto período quando os servidores solicitarem a revogação das permissões de acesso temporário. Para proteger o sistema de arquivos contra clientes que se comportam mal, os servidores podem despejar Lustre clientes que não respondem após alguns minutos. Para evitar ter que esperar vários minutos até que um cliente que não responde responda à solicitação do servidor, é importante desmontar de forma limpa Lustre clientes, especialmente antes de encerrar as Instâncias EC2 Spot.
EC2 O Spot envia avisos de encerramento com 2 minutos de antecedência antes de encerrar uma instância. Recomendamos que você automatize o processo de desmontagem limpa Lustre clientes antes de encerrar as Instâncias EC2 Spot.
exemplo — Script para desmontar de forma limpa e encerramento de instâncias spot EC2
Esse script de exemplo desmonta de forma clara o encerramento de instâncias EC2 spot fazendo o seguinte:
Prestar atenção aos avisos de encerramento do spot.
Quando receber um aviso de encerramento:
Interromper as aplicações que acessam o sistema de arquivos.
Desmontar o sistema de arquivos antes que a instância seja encerrada.
É possível adaptar o script conforme necessário, especialmente para encerrar a aplicação normalmente. Para obter mais informações sobre as melhores práticas para lidar com interrupções de instâncias spot, consulte Melhores práticas para lidar com interrupções de instâncias 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