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à.
Avvia istanze con On-Demand Capacity Reservations (ODCR)
Con On-Demand Capacity Reservations (ODCR), puoi riservare la capacità per le istanze Amazon EC2 del tuo cluster in una specifica zona di disponibilità. In questo modo, puoi creare e gestire le prenotazioni di capacità indipendentemente dagli account di fatturazione offerti dai piani di risparmio
È possibile configurare open o targeted ODCR. Open ODCR copre tutte le istanze che corrispondono agli attributi ODCR. Questi attributi sono il tipo di istanza, la piattaforma e la zona di disponibilità. È necessario definire in modo esplicito Targeted ODCR nella configurazione del cluster. Per determinare se un ODCR è open otargeted, esegui il comando AWS CLI
Amazon EC2. describe-capacity-reservation
Puoi anche creare un ODCR in un gruppo di posizionamento del cluster chiamato cluster placement group on-demand capacity booking (CPG ODCR).
È possibile raggruppare più ODCR in un gruppo di risorse. Questo può essere definito nel file di configurazione del cluster. Per ulteriori informazioni sui gruppi di risorse, vedere Cosa sono i gruppi di risorse? nella Guida per l'utente dei gruppi di risorse e dei tag.
Usare ODCR con AWS ParallelCluster
AWS ParallelCluster supporta l'ODCR aperto. Quando si utilizza un ODCR aperto, non è necessario specificare nulla in. AWS ParallelCluster Le istanze vengono selezionate automaticamente per il cluster. Puoi specificare un gruppo di collocamento esistente o AWS ParallelCluster crearne uno nuovo per te.
ODCR nella configurazione del cluster
A partire dalla AWS ParallelCluster versione 3.3.0, è possibile definire gli ODCR nel file di configurazione del cluster, senza dover specificare le sostituzioni delle istanze di esecuzione di Amazon EC2.
Si inizia creando prenotazioni di capacità e gruppi di risorse utilizzando i metodi descritti nella documentazione collegata relativa a ciascuno di essi. È necessario utilizzare i AWS CLI metodi per creare gruppi di prenotazione della capacità. Se si utilizza il Console di gestione AWS, è possibile creare solo gruppi di risorse basati su Tag o Stack. I gruppi di risorse basati su tag e basati su Stack non sono supportati da AWS ParallelCluster né vengono avviate istanze con prenotazioni di capacità. AWS CLI
Dopo aver creato le prenotazioni di capacità e i gruppi di risorse, specificali in SlurmQueues/CapacityReservationTargeto SlurmQueues/ComputeResources/CapacityReservationTargetcome mostrato nel seguente esempio di configurazione del cluster. Sostituisci i valori values evidenziati in rosso con i tuoi valori validi.
Image: Os:osHeadNode: InstanceType:head_node_instanceNetworking: SubnetId:public_subnet_idSsh: KeyName:key_nameScheduling: Scheduler:schedulerSlurmQueues: - Name: queue1 Networking: SubnetIds: -private_subnet_idComputeResources: - Name: cr1 Instances: - InstanceType:instanceMaxCount:max_queue_sizeMinCount:max_queue_sizeEfa: Enabled: true CapacityReservationTarget: CapacityReservationResourceGroupArn:capacity_reservation_arn
avvertimento
-
A partire dalla AWS ParallelCluster versione 3.3.0, non consigliamo questo metodo. Questa sezione rimane un riferimento per le implementazioni che utilizzano versioni precedenti.
-
Questo metodo non è compatibile con l'allocazione di più tipi di istanza con Slurm.
Il supporto per gli targeted ODCR è stato aggiunto nella versione 3.1.1. AWS ParallelCluster In questa versione, è stato introdotto un meccanismo che sovrascrive RunInstances i parametri EC2 e trasmette le informazioni sulla prenotazione da utilizzare per ogni risorsa di calcolo configurata in. AWS ParallelCluster Questo meccanismo è compatibile con ODCR. targeted Tuttavia, quando si utilizza targeted ODCR, è necessario specificare la configurazione di sostituzionerun-instances. Gli ODCR mirati devono essere definiti in modo esplicito nel comando Amazon EC2. AWS CLI run-instances Per determinare se un ODCR è open o targeted esegui il comando Amazon EC2. AWS CLI describe-capacity-reservation
È possibile raggruppare più ODCR in un gruppo di risorse. Questo può essere utilizzato nell'override delle istanze di esecuzione per indirizzare più ODCR contemporaneamente.
Se utilizzi un targeted ODCR, puoi specificare un gruppo di collocamento. Tuttavia, devi anche specificare una configurazione di run-instances sostituzione.
Supponiamo di aver AWS creato un targeted ODCR per te o di disporre di un set specifico di istanze riservate. Quindi, non puoi specificare un gruppo di collocamento. Le regole configurate da AWS potrebbero essere in conflitto con l'impostazione del gruppo di collocamento. Quindi, se per la tua candidatura è richiesto un gruppo di collocamento, utilizza un https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html ODCR CPG. In entrambi i casi, è necessario specificare anche la configurazione di sostituzionerun-instances.
Se si utilizza un ODCR CPG, è necessario specificare la configurazione di run-instances sostituzione e specificare lo stesso gruppo di posizionamento nella configurazione del cluster.
Utilizzo di istanze riservate con AWS ParallelCluster
Le istanze riservate sono diverse dalle Capacity Reservations (ODCR). Esistono 2 tipi di istanze riservate. Un'istanza riservata regionale non riserva capacità. Un'istanza riservata zonale riserva la capacità nella zona di disponibilità specificata.
Se disponi di istanze riservate regionali, non è prevista alcuna prenotazione di capacità e potresti riscontrare errori di capacità insufficienti. Se hai istanze riservate zonali, hai una riserva di capacità, ma non ci sono parametri run-instances API che puoi usare per specificarle.
Le istanze riservate sono supportate da qualsiasi versione. AWS ParallelCluster Non è necessario specificare nulla AWS ParallelCluster e le istanze vengono selezionate automaticamente.
Quando si utilizzano istanze riservate zonali, è possibile evitare potenziali errori di capacità insufficiente omettendo la specifica del gruppo di posizionamento nella configurazione del cluster.
avvertimento
-
A partire dalla AWS ParallelCluster versione 3.3.0, non consigliamo questo metodo. Questa sezione rimane un riferimento per le implementazioni che utilizzano versioni precedenti.
-
Questo metodo non è compatibile con l'allocazione di più tipi di istanza con Slurm.
Puoi sovrascrivere RunInstances i parametri di Amazon EC2 per ogni risorsa di calcolo configurata in una coda di cluster. A tale scopo, crea il /opt/slurm/etc/pcluster/run_instances_overrides.json file sul nodo principale del cluster con il seguente contenuto di frammenti di codice:
-
${queue_name}è il nome della coda a cui vuoi applicare le sostituzioni. -
${compute_resource_name}è la risorsa di calcolo a cui si desidera applicare le sostituzioni. -
${overrides}è un oggetto JSON arbitrario che contiene un elenco diRunInstancessostituzioni da utilizzare per la combinazione specifica di coda e tipo di istanza. La sintassi degli overrides deve seguire le stesse specifiche documentate in una chiamata run_instances boto3. https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.run_instances
{ "${queue_name}": { "${compute_resource_name}": { ${overrides} }, ... }, ... }
Ad esempio, il seguente JSON configura il gruppo ODCR da utilizzare per le istanze configurate in e. group_arn p4d.24xlarge my-queue my-compute-resource
{"my-queue": {"my-compute-resource": { "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationResourceGroupArn":"group_arn"} } } } }
Dopo la generazione di questo file JSON, i AWS ParallelCluster daemon responsabili del ridimensionamento del cluster utilizzano automaticamente la configurazione di override per l'avvio delle istanze. Per confermare che i parametri specificati vengano utilizzati per il provisioning delle istanze, guarda i seguenti file di registro:
-
/var/log/parallelcluster/clustermgtd(per la capacità statica) -
/var/log/parallelcluster/slurm_resume.log(per capacità dinamica)
Se i parametri sono corretti, troverai una voce di registro che contiene quanto segue:
Found RunInstances parameters override. Launching instances with: <parameters_list>
avvertimento
-
A partire dalla AWS ParallelCluster versione 3.3.0, non consigliamo questo metodo. Questa sezione rimane un riferimento per le implementazioni che utilizzano versioni precedenti.
-
Questo metodo non è compatibile conAllocazione di più tipi di istanza con Slurm.
-
Crea un gruppo di risorse, per raggruppare la capacità.
$aws resource-groups create-group --nameEC2CRGroup\ --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'Nota
Un gruppo di risorse non supporta risorse condivise da altri account.
Se l'ODCR di destinazione è condiviso da un altro account, non è necessario creare un gruppo di risorse. Usa
CapacityReservationIdal posto di un gruppo di risorse nel passaggio 3.#!/bin/bash set -e # Override run_instance attributes cat > /opt/slurm/etc/pcluster/run_instances_overrides.json << EOF { "my-queue": { "my-compute-resource": { "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-abcdef01234567890" } } } } } EOFAggiungi prenotazioni di capacità al gruppo di risorse. Ogni volta che crei un nuovo ODCR, aggiungilo alla prenotazione di gruppo. Sostituiscilo
con l'ID del tuo account,ACCOUNT_IDcon l'ID della prenotazione della capacità ePLACEHOLDER_CAPACITY_RESERVATIONcon il tuo Regione AWS ID (ad esempio, us-east-1).REGION_ID$aws resource-groups group-resources --regionREGION_ID--groupEC2CRGroup\ --resource-arns arn:aws:ec2:REGION_ID:ACCOUNT_ID:capacity-reservation/PLACEHOLDER_CAPACITY_RESERVATIONCrea un documento relativo alla politica sul tuo computer locale. Sostituiscilo
con l'ID del tuo account eACCOUNT_IDcon il tuo Regione AWS ID (ad esempio, us-east-1).REGION_IDcat > policy.json << EOF { "Version": "2012-10-17", "Statement": [ { "Sid": "RunInstancesInCapacityReservation", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION_ID:ACCOUNT_ID:capacity-reservation/*", "arn:aws:resource-groups:REGION_ID:ACCOUNT_ID:group/*" ] } ] } EOF -
Crea la policy IAM Account AWS utilizzando il file json che hai creato.
$aws iam create-policy --policy-nameRunInstancesCapacityReservation--policy-document file://policy.json -
Crea il seguente script di post-installazione localmente sull'istanza e assegnagli un nome
postinstall.sh.Sostituisci
con il tuo Account AWS ID eACCOUNT_IDcon il tuo Regione AWS ID (ad esempio, us-east-1).REGION_ID#!/bin/bash set -e # Override run_instance attributes cat > /opt/slurm/etc/pcluster/run_instances_overrides.json << EOF { "my-queue": { "my-compute-resource": { "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:REGION_ID:ACCOUNT_ID:group/EC2CRGroup" } } } } } EOFCaricare il file immagine in un bucket Amazon S3. Sostituiscilo
amzn-s3-demo-bucketcon il nome specifico del bucket S3.$aws s3 mb s3://amzn-s3-demo-bucketaws s3 cp postinstall.sh s3://amzn-s3-demo-bucket/postinstall.sh -
Crea la configurazione del cluster locale, sostituendo i segnaposto con i tuoi valori.
Region:REGION_IDImage: Os: alinux2023 HeadNode: InstanceType: c5.2xlarge Ssh: KeyName:YOUR_SSH_KEYIam: S3Access: - BucketName:amzn-s3-demo-bucketAdditionalIamPolicies: - Policy: arn:aws:iam::ACCOUNT_ID:policy/RunInstancesCapacityReservation ## This post-install script is executed after the node is configured. ## It is used to install scripts at boot time and specific configurations ## In the script below we are overriding the calls to RunInstance to force ## the provisioning of our my-queue partition to go through ## the On-Demand Capacity Reservation CustomActions: OnNodeConfigured: Script: s3://amzn-s3-demo-bucket/postinstall.sh Networking: SubnetId:YOUR_PUBLIC_SUBNET_IN_TARGET_AZScheduling: Scheduler: slurm SlurmQueues: - Name: my-queue ComputeResources: - MinCount: 0 MaxCount: 100 InstanceType: p4d.24xlarge Name:my-compute-resourceEfa: Enabled: true Networking: ## PlacementGroup: ## Enabled: true ## Keep PG disabled if using targeted ODCR SubnetIds: -YOUR_PRIVATE_SUBNET_IN_TARGET_AZ -
Crea il cluster.
Usa il comando seguente per creare il cluster. Sostituiscilo
con il nome del file di configurazione,cluster-config.yamlcon il nome del cluster ecluster-dlREGION_IDcon il tuo ID regionale (ad esempio, us-east-1).$pcluster create-cluster --cluster-configurationcluster-config.yaml--cluster-namecluster-dl--regionREGION_IDDopo la creazione del cluster, lo script di post-installazione viene eseguito nel nodo principale. Lo script crea il
run_instances_overrides.jsonfile e sovrascrive le chiamate per forzare il provisioning della partizioneRunInstancesa passare attraverso la Capacity Reservation. On-DemandI AWS ParallelCluster daemon responsabili del ridimensionamento del cluster utilizzano automaticamente questa configurazione per le nuove istanze avviate. Per confermare che i parametri specificati vengano utilizzati per il provisioning delle istanze, puoi guardare i seguenti file di registro:
-
/var/log/parallelcluster/clustermgtd(per capacità statica -) MinCount> 0 -
/var/log/parallelcluster/slurm_resume.log(per capacità dinamica)
Se i parametri sono corretti, scoprirai che una voce di registro contiene quanto segue.
Found RunInstances parameters override. Launching instances with: <parameters_list> -
L'aggiornamento delle RunInstances sostituzioni
È possibile aggiornare la configurazione JSON generata in qualsiasi momento senza interrompere il parco di elaborazione. Dopo l'applicazione delle modifiche, tutte le nuove istanze vengono avviate con la configurazione aggiornata. Se devi applicare la configurazione aggiornata ai nodi in esecuzione, ricicla i nodi forzando la chiusura dell'istanza e attendi la sostituzione AWS ParallelCluster di quei nodi. Puoi farlo chiudendo l'istanza dalla console Amazon EC2 o AWS CLI impostando i Slurm nodi in uno stato or. DOWN DRAIN
Usa il comando seguente per impostare il Slurm nodo su o. DOWN DRAIN
$scontrol update nodename=my-queue-dy-my-compute-resource-1state=down reason=your_reasonscontrol update nodename=my-queue-dy-my-compute-resource-1state=drain reason=your_reason