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á.
Acessando seus nós SageMaker HyperPod de cluster
Você pode acessar seu InServicecluster por meio de AWS Systems Manager (SSM) executando o AWS CLI comando aws ssm start-session com o nome do host do SageMaker HyperPod cluster no formato desagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]. Você pode recuperar o ID do cluster, o ID da instância e o nome do grupo de instâncias no SageMaker HyperPod console ou executando describe-cluster e list-cluster-nodes usando os AWS CLI comandos para SageMaker HyperPod. Por exemplo, se o ID do cluster for aa11bbbbb222, o nome do nó do cluster for controller-group e o ID do nó do cluster for i-111222333444555aa, o comando SSM start-session deverá ser o seguinte:
nota
Conceder aos usuários acesso aos nós HyperPod do cluster permite que eles instalem e operem software gerenciado pelo usuário nos nós. Certifique-se de manter o princípio de permissões de privilégio mínimo para os usuários.
Se você não tiver configurado AWS Systems Manager, siga as instruções fornecidas emConfigurando AWS Systems Manager e executando como para controle de acesso do usuário do cluster.
$aws ssm start-session \ --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa\ --regionus-west-2Starting session with SessionId: s0011223344aabbccddroot@ip-111-22-333-444:/usr/bin#
Observe que isso inicialmente conecta você como usuário-raiz. Antes de executar os trabalhos, alterne para o usuário ubuntu executando o seguinte comando:
root@ip-111-22-333-444:/usr/bin#sudo su - ubuntuubuntu@ip-111-22-333-444:/usr/bin#
Para configurações avançadas para o uso prático de HyperPod clusters, consulte os tópicos a seguir.
Tópicos
Dicas adicionais para acessar seus nós SageMaker HyperPod de cluster
Use o easy-ssh.sh script fornecido por HyperPod para simplificar o processo de conexão
Para transformar o processo anterior em uma única linha de comando, a HyperPod equipe fornece o easy-ssh.shdescribe-cluster e list-cluster-nodes comanda e analisa as informações necessárias para concluir o comando SSM. Os comandos de exemplo a seguir mostram como executar o script easy-ssh.sh
$chmod +x easy-ssh.sh$./easy-ssh.sh -c<node-group> <cluster-name>Cluster id:<cluster_id>Instance id:<instance_id>Node Group:<node-group>Add the following to your ~/.ssh/config to easily connect:$cat <<EOF >> ~/.ssh/config Host<cluster-name>User ubuntu ProxyCommand sh -c "aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>--document-name AWS-StartSSHSession --parameters 'portNumber=%p'" EOF Add your ssh keypair and then you can do: $ ssh<cluster-name>aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>Starting session with SessionId: s0011223344aabbccddroot@ip-111-22-333-444:/usr/bin#
Observe que isso inicialmente conecta você como usuário-raiz. Antes de executar os trabalhos, alterne para o usuário ubuntu executando o seguinte comando:
root@ip-111-22-333-444:/usr/bin#sudo su - ubuntuubuntu@ip-111-22-333-444:/usr/bin#
Configure para facilitar o acesso com SSH usando o nó de HyperPod computação como um host remoto
Para simplificar ainda mais o acesso ao nó de computação usando SSH de uma máquina local, o easy-ssh.sh script gera um trecho de código da configuração do HyperPod cluster como um host remoto, conforme mostrado na seção anterior. O trecho de código é gerado automaticamente para ajudar você a adicioná-lo diretamente ao ~/.ssh/config arquivo em seu dispositivo local. O procedimento a seguir mostra como configurar o acesso fácil usando SSH por meio do proxy SSM, para que você ou os usuários do cluster possam executar diretamente ssh a conexão com o nó do HyperPod cluster.<cluster-name>
-
Em seu dispositivo local, adicione o nó de HyperPod computação com um nome de usuário como host remoto ao
~/.ssh/configarquivo. O comando a seguir mostra como anexar o trecho de código gerado automaticamente do scripteasy-ssh.shao arquivo~/.ssh/config. Verifique se você o copiou da saída gerada automaticamente do scripteasy-ssh.shque tem as informações corretas do cluster.$cat <<EOF >> ~/.ssh/config Host<cluster-name>UserubuntuProxyCommand sh -c "aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>--document-name AWS-StartSSHSession --parameters 'portNumber=%p'" EOF -
No nó do HyperPod cluster, adicione a chave pública do seu dispositivo local ao
~/.ssh/authorized_keysarquivo no nó do HyperPod cluster.-
Imprima o arquivo de chave pública na sua máquina local.
$cat ~/.ssh/id_rsa.pubEla retornará sua chave. Copie a saída desse comando.
(Opcional) Se você ainda não tem uma chave pública, crie uma executando o seguinte comando:
$ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N "" -
Conecte-se ao nó do cluster e alterne para o usuário para adicionar a chave. O comando a seguir é um exemplo de acesso como usuário
ubuntu. Substituaubuntupelo nome de usuário para o qual você deseja configurar o acesso fácil com SSH.$./easy-ssh.sh -c<node-group> <cluster-name>$sudo su -ubuntuubuntu@ip-111-22-333-444:/usr/bin# -
Abra o arquivo
~/.ssh/authorized_keyse adicione a chave pública ao final desse arquivo.ubuntu@ip-111-22-333-444:/usr/bin#vim ~/.ssh/authorized_keys
-
Depois de concluir a configuração, você pode se conectar ao nó do HyperPod cluster como usuário executando um comando SSH simplificado da seguinte forma.
$ssh<cluster-name>ubuntu@ip-111-22-333-444:/usr/bin#
Além disso, você pode usar o host para desenvolvimento remoto a partir de um IDE em seu dispositivo local, como Visual Studio Code Remote - SSH
Configure um ambiente multiusuário por meio do espaço FSx compartilhado da Amazon
Você pode usar o espaço FSx compartilhado da Amazon para gerenciar um ambiente multiusuário em um cluster do Slurm em. SageMaker HyperPod Se você configurou seu cluster Slurm com a Amazon FSx durante a criação do HyperPod cluster, essa é uma boa opção para configurar o espaço de trabalho para os usuários do seu cluster. Crie um novo usuário e configure o diretório inicial do usuário no sistema de arquivos FSx compartilhados da Amazon.
dica
Para permitir que os usuários acessem o cluster por meio de seus nomes de usuário e diretórios dedicados, você também deve associá-los aos usuários ou perfis do IAM, marcando-os conforme orientado na Opção 2 da etapa 5, no procedimento Ative o suporte a Executar como para nós gerenciados do Linux no macOS fornecido em Ative o suporte a Executar como para nós gerenciados do Linux no macOS no Manual do usuário do AWS Systems Manager . Consulte também Configurando AWS Systems Manager e executando como para controle de acesso do usuário do cluster.
Para configurar um ambiente multiusuário ao criar um cluster Slurm no SageMaker HyperPod
A equipe SageMaker HyperPod de serviço fornece um script add_users.sh
-
Prepare um arquivo de texto chamado
shared_users.txtque você precisa criar no formato a seguir. A primeira coluna é para nomes de usuário, a segunda coluna é para usuário IDs único e a terceira coluna é para os diretórios de usuários no espaço FSx compartilhado da Amazon.username1,uid1,/fsx/username1 username2,uid2,/fsx/username2 ... -
Certifique-se de carregar os
add_users.sharquivos shared_users.txte no bucket do S3 para scripts de HyperPod ciclo de vida. Enquanto a criação do cluster, a atualização do cluster ou a atualização do software do cluster está em andamento, oadd_users.shlê em shared_users.txte configura os diretórios de usuário corretamente.
Para criar novos usuários e adicionar a um cluster Slurm existente em execução no SageMaker HyperPod
-
No nó principal, execute o seguinte comando para salvar um script que ajuda a criar um usuário: Não se esqueça de executar isso com as permissões sudo.
$cat > create-user.sh<< EOL #!/bin/bash set -x # Prompt user to get the new user name. read -p "Enter the new user name, i.e. 'sean': " USER # create home directory as /fsx/<user> # Create the new user on the head node sudo useradd \$USER -m -d /fsx/\$USER --shell /bin/bash; user_id=\$(id -u \$USER) # add user to docker group sudo usermod -aG docker \${USER} # setup SSH Keypair sudo -u \$USER ssh-keygen -t rsa -q -f "/fsx/\$USER/.ssh/id_rsa" -N "" sudo -u \$USER cat /fsx/\$USER/.ssh/id_rsa.pub | sudo -u \$USER tee /fsx/\$USER/.ssh/authorized_keys # add user to compute nodes read -p "Number of compute nodes in your cluster, i.e. 8: " NUM_NODES srun -N \$NUM_NODES sudo useradd -u \$user_id \$USER -d /fsx/\$USER --shell /bin/bash; # add them as a sudoer read -p "Do you want this user to be a sudoer? (y/N): " SUDO if [ "\$SUDO" = "y" ]; then sudo usermod -aG sudo \$USER sudo srun -N \$NUM_NODES sudo usermod -aG sudo \$USER echo -e "If you haven't already you'll need to run:\n\nsudo visudo /etc/sudoers\n\nChange the line:\n\n%sudo ALL=(ALL:ALL) ALL\n\nTo\n\n%sudo ALL=(ALL:ALL) NOPASSWD: ALL\n\nOn each node." fi EOL -
Execute o script com o comando a seguir. Você será solicitado a adicionar o nome de um usuário e o número de nós de computação que você deseja permitir que o usuário acesse.
$bash create-user.sh -
Teste o usuário executando os comandos a seguir.
$sudo su -<user>&& ssh $(srun hostname) -
Adicione as informações do usuário ao arquivo
shared_users.txtpara que o usuário seja criado em qualquer novo nó de computação ou em novos clusters.
Configure um ambiente multiusuário integrando HyperPod clusters com o Active Directory
Em casos de uso prático, os HyperPod clusters são normalmente usados por vários usuários: pesquisadores de aprendizado de máquina (ML), engenheiros de software, cientistas de dados e administradores de clusters. Eles editam seus próprios arquivos e executam seus próprios trabalhos sem afetar o trabalho uns dos outros. Para configurar um ambiente multiusuário, use o mecanismo de usuários e grupos do Linux para criar estaticamente vários usuários em cada instância por meio de scripts de ciclo de vida. No entanto, a desvantagem dessa abordagem é que você precisa duplicar as configurações de usuário e grupo em várias instâncias no cluster para manter uma configuração consistente em todas as instâncias ao fazer atualizações, como adicionar, editar e remover usuários.
Para resolver isso, você pode usar o Lightweight Directory Access Protocol (LDAP)