View a markdown version of this page

Exemplo: Execute operações de inicialização antecipada com um boothook cloud-init - AWS PEÇAS

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á.

Exemplo: Execute operações de inicialização antecipada com um boothook cloud-init

Forneça esse script como o valor de "userData" em seu modelo de lançamento. Para obter mais informações, consulte Trabalhando com dados de usuário do Amazon EC2 para AWS PEÇAS.

Algumas configurações devem ser executadas logo no início da sequência de inicialização, antes do início do bootstrap do AWS PCS e antes que qualquer serviço use o hardware. Casos típicos são comandos de configuração de GPU que não podem entrar em vigor enquanto os processos mantêm as GPUs, como ativar o modo Multi-Instance GPU NVIDIA (MIG), e operações que exigem uma reinicialização para entrarem em vigor, como alterar o modo ECC da GPU. Uma reinicialização nesse estágio é segura, porque o bootstrap do AWS PCS ainda não foi iniciado. Não reinicie posteriormente no processo de inicialização, como a partir de um script de ação do ciclo de vida do nó: uma reinicialização interrompe a sequência de bootstrap do PCS. AWS Para obter mais informações, consulte Melhores práticas para ações do ciclo de vida dos nós em AWS PEÇAS.

Para criar o boot hook, adicione um bloco com o tipo de conteúdo text/cloud-boothook aos seus dados de usuário. O bloco contém o script em si. Um boothook é o primeiro gancho disponível nos dados do usuário: é cloud-init executado assim que processa o bloco, antes de cloud-config diretivas como bootcmd e antes dos blocos de dados do usuário do AWS PCS que registram o nó. Um boothook é executado em cada inicialização, incluindo a reinicialização que ele mesmo pode acionar, portanto, o script deve ser idempotente: verifique primeiro o estado atual e ignore o trabalho que já foi feito. Para obter mais informações, consulte a documentação de cloud-init.

O exemplo a seguir ativa o modo MIG em todas as GPUs e cria as instâncias MIG em cada inicialização. Como nenhum cliente de GPU foi iniciado ainda, a alteração do modo entra em vigor imediatamente e não é necessário reinicializar.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-boothook; charset="us-ascii" #!/bin/bash if ! nvidia-smi -i 0 -q | grep -A1 'MIG Mode' | grep -q 'Current.*Enabled'; then nvidia-smi -mig 1 fi if [ -z "$(nvidia-smi -L | grep MIG)" ]; then for i in 0 1 2 3 4 5 6 7; do nvidia-smi mig -i $i -cgi 9,14,19,19 -C done fi --==MYBOUNDARY==--

Se sua operação mostrar que uma reinicialização é necessária, reinicialize a partir do mesmo boothook após a mudança de estado. Na próxima inicialização, as verificações de idempotência detectam o trabalho já realizado, então o nó continua normalmente no bootstrap do AWS PCS.