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à.
Avviare le istanze con ODCR (Prenotazioni di capacità on demand)
Prenotazioni di capacità on demand (ODCR), puoi prenotare la capacità per le istanze Amazon EC2 del cluster in una zona di disponibilità specifica. In questo modo, puoi creare e gestire le Prenotazioni di capacità in modo indipendente rispetto agli account di fatturazione offerti dai Savings Plans
È possibile configurare le open
Prenotazioni di capacità targeted
on demand (ODCR). Gli ODCR aperti coprono 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 gli ODCR mirati nella configurazione del cluster. Per determinare se un ODCR è open
otargeted
, esegui il comando AWS CLI EC2 describe-capacity-reservation
.
Puoi anche creare un ODCR in un gruppo di collocamento del cluster chiamato Cluster Placement Group On-Demand Capacity Reservation (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, consulta Che cos'è Resource Groups? nella Guida per l'utente Resource Groups e dei tag.
Usare ODCR con AWS ParallelCluster
AWS ParallelClustersupporta ODCR aperti. Quando si utilizza un ODCR aperto, non è necessario specificare nulla in AWS ParallelCluster Le istanze vengono selezionate automaticamente per il cluster. È possibile 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 la necessità di specificare le sostituzioni delle istanze di esecuzione di EC2.
Si inizia creando prenotazioni di capacità e gruppi di risorse utilizzando i metodi descritti nella documentazione collegata per ciascuno di essi. È necessario utilizzare i AWS CLI metodi per creare gruppi di prenotazione di capacità. Se si utilizza ilAWS Management Console, è possibile creare solo gruppi di risorse basati su tag o su stack. I gruppi di risorse basati su tag e basati su stack non sono supportati da AWS ParallelCluster o AWS CLI quando si avviano istanze con riserve di capacità.
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
evidenziati in rosso con i valori validi.
Image: Os:
os
HeadNode: InstanceType:head_node_instance
Networking: SubnetId:public_subnet_id
Ssh: KeyName:key_name
Scheduling: Scheduler:scheduler
SlurmQueues: - Name: queue1 Networking: SubnetIds: -private_subnet_id
ComputeResources: - Name: cr1 Instances: - InstanceType:instance
MaxCount:max_queue_size
MinCount:max_queue_size
Efa: 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 istanze con Slurm.
Support per gli targeted
ODCR è stato aggiunto nella AWS ParallelCluster versione 3.1.1. In questa versione è stato introdotto un meccanismo che sostituisce RunInstances
i parametri EC2 e trasmette informazioni sulla prenotazione da utilizzare per ogni risorsa di elaborazione configurata in. AWS ParallelCluster Questo meccanismo è compatibile con gli targeted
ODCR. Tuttavia, quando si utilizzano targeted
ODCR, è necessario specificare la configurazione di sostituzionerun-instances
. Gli ODCR mirati devono essere definiti in modo esplicito nel comando EC2. AWS CLI run-instances
Per determinare se un ODCR è open
o targeted
esegui il comando AWS CLI EC2. describe-capacity-reservation
È possibile raggruppare più ODCR in un gruppo di risorse. Questo può essere usato nell'override delle istanze di esecuzione per indirizzare più ODCR contemporaneamente.
Se utilizzi un targeted
ODCR, puoi specificare un gruppo di collocamento. Tuttavia, è necessario specificare anche una configurazione run-instances
sostitutiva.
Supponiamo che abbia AWS creato un targeted
ODCR per te o che tu disponga di un set specifico di istanze riservate. Quindi, non puoi specificare un gruppo di posizionamento. Le regole configurate da AWS potrebbero essere in conflitto con l'impostazione del gruppo di posizionamento. Quindi, se per la tua candidatura è richiesto un gruppo di collocamento, utilizza un ODCR CPG. In entrambi i casi, è necessario specificare anche la configurazione run-instances
di sostituzione.
Se si utilizza un ODCR CPG, è necessario specificare la configurazione run-instances
di 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 prenotazioni di capacità (ODCR). Esistono 2 tipi di istanze riservate. Un'istanza riservata regionale non riserva la capacità. Un'Istanza riservata di zona prenota 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 disponi di istanze riservate zonali, hai una prenotazione di capacità, ma non ci sono parametri run-instances
API che puoi utilizzare per specificarle.
Le istanze riservate sono supportate da qualsiasi AWS ParallelCluster versione. Non è necessario specificare nulla in 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 istanze con Slurm.
Puoi sovrascrivere RunInstances
i parametri EC2 per ogni risorsa di elaborazione 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 del frammento di codice:
-
${queue_name}
è il nome della coda a cui si desidera applicare le sostituzioni. -
${compute_resource_name}
è la risorsa di elaborazione a cui si desidera applicare le sostituzioni. -
${overrides}
è un oggetto JSON arbitrario che contiene un elenco diRunInstances
sostituzioni da utilizzare per la combinazione specifica di coda e tipo di istanza. La sintassi degli override deve seguire le stesse specifiche documentate in una chiamata boto3 di run_instances.
{ "${queue_name}": { "${compute_resource_name}": { ${overrides} }, ... }, ... }
Ad esempio, il seguente JSON configura il gruppo ODCR group_arn
da utilizzare per p4d.24xlarge
le istanze configurate in e. my-queue
my-compute-resource
{
"my-queue"
: {"my-compute-resource"
: { "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationResourceGroupArn":"group_arn"
} } } } }
Dopo la generazione di questo file JSON, AWS ParallelCluster i demoni responsabili della scalabilità del cluster utilizzano automaticamente la configurazione di override, ad esempio i lanci. Per confermare che i parametri specificati vengono utilizzati, ad esempio il provisioning, guarda i seguenti file di registro:
-
/var/log/parallelcluster/clustermgtd
(per 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 --name
EC2CRGroup
\ --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 le risorse condivise da altri account.
Se l'ODCR di destinazione è condiviso da un altro account, non è necessario creare un gruppo di risorse. Utilizza
CapacityReservationId
al 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" } } } } } EOF
Aggiungi 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_ID
con l'ID di prenotazione della capacità ePLACEHOLDER_CAPACITY_RESERVATION
con il tuo Regione AWS ID (ad esempio, us-east-1).REGION_ID
$
aws resource-groups group-resources --region
REGION_ID
--groupEC2CRGroup
\ --resource-arns arn:aws:ec2:REGION_ID
:ACCOUNT_ID
:capacity-reservation/PLACEHOLDER_CAPACITY_RESERVATION
Creazione di un documento di policy la sul sul sul sul sul sul sul sul sul sul sul Sostituisci
con l'ID del tuo account eACCOUNT_ID
con il tuo Regione AWS ID (ad esempio, us-east-1).REGION_ID
cat > 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 sul tuo Account AWS utilizzando il file json che hai creato.
$
aws iam create-policy --policy-name
RunInstancesCapacityReservation
--policy-document file://policy.json -
Crea il seguente script di post-installazione localmente sull'istanza e assegnagli un nome.
postinstall.sh
Sostituiscilo
con il tuo Account AWS ID eACCOUNT_ID
con 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
" } } } } } EOFCarica il file in un bucket Amazon S3. Sostituisci
S3_NAME_BUCKET con il nome specifico del tuo bucket
S3.$
aws s3 mb s3://
S3_NAME_BUCKET
aws s3 cp postinstall.sh s3://S3_NAME_BUCKET
/postinstall.sh -
Crea la configurazione locale del cluster, sostituendo i segnaposti con i tuoi valori.
Region:
REGION_ID
Image: Os: alinux2 HeadNode: InstanceType: c5.2xlarge Ssh: KeyName:YOUR_SSH_KEY
Iam: S3Access: - BucketName:S3_NAME_BUCKET
AdditionalIamPolicies: - 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://S3_NAME_BUCKET
/postinstall.sh Networking: SubnetId:YOUR_PUBLIC_SUBNET_IN_TARGET_AZ
Scheduling: Scheduler: slurm SlurmQueues: - Name: my-queue ComputeResources: - MinCount: 0 MaxCount: 100 InstanceType: p4d.24xlarge Name:my-compute-resource
Efa: Enabled: true Networking: ## PlacementGroup: ## Enabled: true ## Keep PG disabled if using targeted ODCR SubnetIds: -YOUR_PRIVATE_SUBNET_IN_TARGET_AZ
-
Creazione del cluster
Utilizza il seguente comando per creare il cluster. Sostituisci
con il nome del file di configurazione,cluster-config.yaml
con il nome del tuo cluster ecluster-dl
REGION_ID con il tuo ID
regionale (ad esempio, us-east-1).$
pcluster create-cluster --cluster-configuration
cluster-config.yaml
--cluster-namecluster-dl
--regionREGION_ID
Dopo la creazione del cluster, lo script di post-installazione viene eseguito nel nodo principale. Lo script crea il
run_instances_overrides.json
file e sovrascrive le chiamate perRunInstances
forzare il provisioning della partizione tramite la prenotazione della capacità su richiesta.I AWS ParallelCluster demoni responsabili della scalabilità dei cluster utilizzano automaticamente questa configurazione per le nuove istanze avviate. Per confermare che i parametri specificati vengono utilizzati per il provisioning delle istanze, puoi consultare 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, troverai che una voce di registro contiene quanto segue.
Found RunInstances parameters override. Launching instances with: <parameters_list>
-
Aggiornamento delle RunInstances
sostituzioni
Puoi aggiornare la configurazione JSON generata in qualsiasi momento senza interrompere il parco di elaborazione. Dopo aver applicato le 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 di quei AWS ParallelCluster nodi. Puoi farlo terminando l'istanza dalla console EC2 o AWS CLI impostando i nodi Slurm in uno stato or. DOWN
DRAIN
Utilizzare il comando seguente per impostare il Slurm nodo su DOWN
oDRAIN
.
$
scontrol update nodename=
my-queue-dy-my-compute-resource-1
state=down reason=your_reason
scontrol update nodename=my-queue-dy-my-compute-resource-1
state=drain reason=your_reason