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á.
Acesse 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 foraa11bbbbb222
, o nome do nó do cluster for controller-group
e o ID do nó do cluster fori-111222333444555aa
, o SSM start-session
comando deverá ser o seguinte.
nota
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-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
Observe que isso inicialmente conecta você como usuário root. Antes de executar trabalhos, alterne para o ubuntu
usuário executando o comando a seguir.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@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.sh
describe-cluster
e list-cluster-nodes
comanda e analisa as informações necessárias para concluir o SSM comando. Os comandos de exemplo a seguir mostram como executar o 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 root. Antes de executar trabalhos, alterne para o ubuntu
usuário executando o comando a seguir.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
Configure para facilitar o acesso SSH usando o nó de HyperPod computação como um host remoto
Para simplificar ainda mais o acesso ao nó SSH de computação usando 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 o SSH SSM proxy, 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/config
arquivo. O comando a seguir mostra como anexar o trecho de código gerado automaticamente do script aoeasy-ssh.sh
arquivo.~/.ssh/config
Certifique-se de copiá-lo da saída gerada automaticamente doeasy-ssh.sh
script que tem as informações corretas do cluster.$
cat <<EOF >> ~/.ssh/config Host
<cluster-name>
Userubuntu
ProxyCommand 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_keys
arquivo no nó do HyperPod cluster.-
Imprima o arquivo de chave pública em sua máquina local.
$
cat ~/.ssh/id_rsa.pub
Isso deve devolver sua chave. Copie a saída desse comando.
(Opcional) Se você não tiver uma chave pública, crie uma executando o comando a seguir.
$
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
ubuntu
usuário.ubuntu
Substitua pelo nome de usuário para o qual você deseja configurar o acesso fácilSSH.$
./easy-ssh.sh -c
<node-group> <cluster-name>
$
sudo su -
ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
-
Abra o
~/.ssh/authorized_keys
arquivo e adicione a chave pública no final do 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 SSH comando 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 IDE de um 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 seu cluster por meio de seus nomes de usuário e diretórios dedicados, você também deve associá-los a IAM funções ou usuários, marcando-os conforme orientado na Opção 2 da etapa 5, no procedimento Para ativar o suporte a Executar como para nós gerenciados do Linux e macOS, fornecido em Ativar o suporte a Executar como para os nós gerenciados do Linux e do macOS no Guia do Usuário. 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.txt
que 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.sh
arquivos shared_users.txt
e 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ão em andamento,add_users.sh
eles lêem shared_users.txt
e configuram os diretórios do usuário adequadamente.
Para criar novos usuários e adicionar a um cluster Slurm existente em execução no SageMaker HyperPod
-
No nó principal, execute o comando a seguir para salvar um script que ajuda a criar um usuário. Certifique-se 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
shared_users.txt
arquivo para 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)