Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Accesso ai nodi SageMaker HyperPod del cluster
È possibile accedere al InServicecluster tramite AWS Systems Manager (SSM) eseguendo il AWS CLI comando aws ssm start-session con il nome host del SageMaker HyperPod cluster nel formato disagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]. È possibile recuperare l'ID del cluster, l'ID dell'istanza e il nome del gruppo di istanze dalla SageMaker HyperPod console o eseguendo describe-cluster e list-cluster-nodes dai AWS CLIcomandi di. SageMaker HyperPod Ad esempio, se l’ID del cluster è aa11bbbbb222, il nome del nodo del cluster è controller-group e l’ID del nodo del cluster è i-111222333444555aa, il comando start-session di SSM dovrebbe essere il seguente.
Nota
La concessione agli utenti dell'accesso ai nodi HyperPod del cluster consente loro di installare e utilizzare software gestito dagli utenti sui nodi. Assicurati di rispettare il principio delle autorizzazioni con privilegio minimo per gli utenti.
Se non l'hai ancora configuratoAWS Systems Manager, segui le istruzioni fornite all'indirizzo. Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del 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#
Tieni presente che questa operazione esegue una connessione iniziale come utente root. Prima di eseguire i processi, passa all’utente ubuntu con il comando seguente.
root@ip-111-22-333-444:/usr/bin#sudo su - ubuntuubuntu@ip-111-22-333-444:/usr/bin#
Per le impostazioni avanzate per l'uso pratico dei HyperPod cluster, consulta i seguenti argomenti.
Argomenti
Suggerimenti aggiuntivi per accedere ai SageMaker HyperPod nodi del cluster
Utilizza lo easy-ssh.sh script fornito da HyperPod per semplificare il processo di connessione
Per trasformare il processo precedente in un comando a riga singola, il HyperPod team fornisce easy-ssh.shlist-cluster-nodes comanda describe-cluster e analizza le informazioni necessarie per completare il comando SSM. I comandi di esempio seguenti mostrano come eseguire lo 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#
Tieni presente che questa operazione esegue una connessione iniziale come utente root. Prima di eseguire i processi, passa all’utente ubuntu con il comando seguente.
root@ip-111-22-333-444:/usr/bin#sudo su - ubuntuubuntu@ip-111-22-333-444:/usr/bin#
Configura per un facile accesso con SSH utilizzando il nodo di HyperPod calcolo come host remoto
Per semplificare ulteriormente l'accesso al nodo di calcolo tramite SSH da una macchina locale, lo easy-ssh.sh script genera un frammento di codice relativo alla configurazione del HyperPod cluster come host remoto, come mostrato nella sezione precedente. Lo snippet di codice viene generato automaticamente per aiutarti ad aggiungere direttamente lo script al file ~/.ssh/config sul tuo dispositivo locale. La procedura seguente mostra come configurare un accesso semplificato tramite SSH tramite il proxy SSM, in modo che tu o gli utenti del cluster possiate ssh collegarvi direttamente al nodo del cluster. HyperPod <cluster-name>
-
Sul dispositivo locale, aggiungi al file il nodo di HyperPod elaborazione con un nome utente come host remoto.
~/.ssh/configIl comando seguente mostra come aggiungere il frammento di codice generato automaticamente dallo scripteasy-ssh.shal file~/.ssh/config. Assicurati di copiarlo dall’output generato automaticamente dello scripteasy-ssh.shche contiene le informazioni corrette sul 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 -
Sul nodo del HyperPod cluster, aggiungi la chiave pubblica sul dispositivo locale al
~/.ssh/authorized_keysfile sul nodo del HyperPod cluster.-
Stampa il file della chiave pubblica sul computer locale.
$cat ~/.ssh/id_rsa.pubQuesta operazione dovrebbe restituire la tua chiave. Copia l’output di questo comando.
(Facoltativo) Se non disponi di una chiave pubblica, creane una con il comando seguente.
$ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N "" -
Connettiti al nodo del cluster e passa all’utente per aggiungere la chiave. Il comando seguente è un esempio di accesso come utente
ubuntu. Sostituisciubuntucon il nome utente per il quale impostare l’accesso semplificato con SSH.$./easy-ssh.sh -c<node-group> <cluster-name>$sudo su -ubuntuubuntu@ip-111-22-333-444:/usr/bin# -
Apri il file
~/.ssh/authorized_keyse aggiungi la chiave pubblica alla fine del file.ubuntu@ip-111-22-333-444:/usr/bin#vim ~/.ssh/authorized_keys
-
Al termine della configurazione, puoi connetterti al nodo del HyperPod cluster come utente eseguendo un comando SSH semplificato come segue.
$ssh<cluster-name>ubuntu@ip-111-22-333-444:/usr/bin#
Inoltre, puoi utilizzare l’host per lo sviluppo remoto da un IDE sul tuo dispositivo locale, ad esempio Visual Studio Code Remote - SSH
Configura un ambiente multiutente tramite lo spazio FSx condiviso di Amazon
Puoi utilizzare lo spazio FSx condiviso di Amazon per gestire un ambiente multiutente in un cluster Slurm su. SageMaker HyperPod Se hai configurato il tuo cluster Slurm con Amazon FSx durante la creazione del HyperPod cluster, questa è una buona opzione per configurare lo spazio di lavoro per gli utenti del cluster. Crea un nuovo utente e configura la directory home per l'utente sul file system FSx condiviso di Amazon.
Suggerimento
Per consentire agli utenti di accedere al cluster con il proprio nome utente e le directory dedicate, devi anche associarli a ruoli o utenti IAM taggandoli come indicato nell’opzione 2 della fase 5 della procedura To turn on Run As support for Linux and macOS managed nodes disponibile in Turn on Run As support for Linux and macOS managed nodes in AWS Systems Manager User Guide. Consulta anche Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster.
Per configurare un ambiente multiutente durante la creazione di un cluster Slurm su SageMaker HyperPod
Il team SageMaker HyperPod di assistenza fornisce uno script add_users.sh
-
Prepara un file di testo denominato
shared_users.txtche abbia il seguente formato. La prima colonna è per i nomi utente, la seconda per gli utenti IDs unici e la terza per le directory degli utenti nello spazio FSx condiviso di Amazon.username1,uid1,/fsx/username1 username2,uid2,/fsx/username2 ... -
Assicurati di caricare
add_users.shi file shared_users.txtand nel bucket S3 per gli script del ciclo di vita. HyperPod Durante la creazione del cluster oppure l’aggiornamento del cluster o del software del cluster,add_users.shlegge shared_users.txte configura correttamente le directory degli utenti.
Per creare nuovi utenti e aggiungerli a un cluster Slurm esistente in esecuzione su SageMaker HyperPod
-
Sul nodo head, utilizza il comando seguente per salvare uno script che consente di creare un utente. Assicurati di eseguirlo con le autorizzazioni 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 -
Esegui lo script con il comando seguente. Ti verrà richiesto di aggiungere il nome di un utente e il numero di nodi di calcolo a cui desideri che l’utente abbia accesso.
$bash create-user.sh -
Testa l’utente utilizzando i comandi seguenti.
$sudo su -<user>&& ssh $(srun hostname) -
Aggiungi le informazioni sull’utente al file
shared_users.txt, in modo che l’utente venga creato su qualsiasi nuovo nodo di calcolo o nuovo cluster.
Configura un ambiente multiutente integrando HyperPod i cluster con Active Directory
Nei casi d'uso pratici, HyperPod i cluster vengono in genere utilizzati da più utenti: ricercatori di machine learning (ML), ingegneri del software, data scientist e amministratori di cluster. Questi utenti modificano i propri file ed eseguono i processi senza influire sul lavoro degli altri. Per configurare un ambiente multiutente, utilizza il meccanismo di utenti e gruppi Linux per creare staticamente più utenti su ogni istanza con gli script del ciclo di vita. Lo svantaggio di questo approccio, tuttavia, è che è necessario duplicare le impostazioni di utenti e gruppi su più istanze del cluster per mantenere una configurazione coerente in tutte le istanze quando si apportano aggiornamenti come l’aggiunta, la modifica e la rimozione di utenti.
Per risolvere questo problema, è possibile utilizzare Lightweight Directory Access Protocol (LDAP)