Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Lancez des instances avec des réservations de capacité à la demande (ODCR)
Avec les réservations de capacité à la demande (ODCR), vous pouvez réserver de la capacité pour les EC2 instances Amazon de votre cluster dans une zone de disponibilité spécifique. Ainsi, vous pouvez créer et gérer des réservations de capacité indépendamment des comptes de facturation proposés par Savings Plans
Vous pouvez configurer open ou targeted ODCR. Open ODCR couvre toutes les instances qui correspondent aux attributs ODCR. Ces attributs sont le type d'instance, la plateforme et la zone de disponibilité. Vous devez définir explicitement l'ODCR ciblé dans la configuration du cluster. Pour déterminer si un ODCR est open outargeted, exécutez la EC2 describe-capacity-reservationcommande AWS CLI
Amazon.
Vous pouvez également créer un ODCR dans un groupe de placement de clusters appelé groupe de placement de clusters à la demande (CPG ODCR).
Plusieurs ODCRs peuvent être regroupés dans un groupe de ressources. Cela peut être défini dans le fichier de configuration du cluster. Pour plus d'informations sur les groupes de ressources, voir Que sont les groupes de ressources ? dans le guide de l'utilisateur de Resource Groups and Tags.
Utilisation de l'ODCR avec AWS ParallelCluster
AWS ParallelCluster supporte l'ODCR ouvert. Lorsque vous utilisez un ODCR ouvert, il n'est pas nécessaire de spécifier quoi que ce soit dans AWS ParallelCluster. Les instances sont automatiquement sélectionnées pour le cluster. Vous pouvez spécifier un groupe de placement existant ou en AWS ParallelCluster créer un nouveau pour vous.
ODCR dans la configuration du cluster
À partir de AWS ParallelCluster la version 3.3.0, vous pouvez définir ODCRs dans le fichier de configuration du cluster, sans avoir à spécifier les remplacements d'Amazon EC2 run-instances.
Vous commencez par créer des réservations de capacité et des groupes de ressources en utilisant les méthodes décrites dans la documentation associée pour chacun d'eux. Vous devez utiliser les AWS CLI méthodes pour créer des groupes de réservation de capacité. Si vous utilisez le AWS Management Console, vous ne pouvez créer que des groupes de ressources basés sur des balises ou des piles. Les groupes de ressources basés sur des balises et des piles ne sont pas pris en charge par AWS ParallelCluster ou AWS CLI lors du lancement d'instances avec des réservations de capacité.
Une fois les réservations de capacité et les groupes de ressources créés, spécifiez-les dans SlurmQueues/CapacityReservationTargetou SlurmQueues/ComputeResources/CapacityReservationTargetcomme indiqué dans l'exemple de configuration de cluster suivant. Remplacez les valeurs values surlignées en rouge par vos valeurs valides.
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
Avertissement
-
À partir de AWS ParallelCluster la version 3.3.0, nous ne recommandons pas cette méthode. Cette section reste une référence pour les implémentations utilisant des versions antérieures.
-
Cette méthode n'est pas compatible avec l'allocation de types d'instances multiples avec Slurm.
Support pour targeted ODCRs est ajouté dans la AWS ParallelCluster version 3.1.1. Dans cette version, un mécanisme a été introduit qui remplace EC2 RunInstances les paramètres et transmet les informations relatives à la réservation à utiliser pour chaque ressource de calcul configurée dans AWS ParallelCluster. Ce mécanisme est compatible avec l'targetedODCR. Toutefois, lorsque vous utilisez targeted ODCR, vous devez spécifier la configuration de run-instances remplacement. ODCRs Le ciblage doit être défini explicitement dans la EC2 run-instancescommande AWS CLI Amazon. Pour déterminer si un ODCR est open un ODCR, targeted exécutez la EC2 commande AWS CLI describe-capacity-reservationAmazon.
Plusieurs ODCRs peuvent être regroupés dans un groupe de ressources. Cela peut être utilisé dans le cadre du remplacement des instances d'exécution pour en cibler plusieurs en même ODCRs temps.
Si vous utilisez un targeted ODCR, vous pouvez spécifier un groupe de placement. Toutefois, vous devez également spécifier une configuration de run-instances remplacement.
Supposons que vous ayez AWS créé un targeted ODCR pour vous ou que vous disposiez d'un ensemble spécifique d'instances réservées. Dans ce cas, vous ne pouvez pas spécifier de groupe de placement. Les règles configurées par AWS peuvent entrer en conflit avec le paramètre du groupe de placement. Ainsi, si un groupe de placement est requis pour votre application, utilisez un ODCR CPG. Dans les deux cas, vous devez également spécifier la configuration de run-instances remplacement.
Si vous utilisez un ODCR CPG, vous devez spécifier la configuration de run-instances remplacement et le même groupe de placement dans la configuration du cluster.
Utilisation d'instances réservées avec AWS ParallelCluster
Les instances réservées sont différentes des réservations de capacité (ODCR). Il existe deux types d'instances réservées. Une instance réservée régionale ne réserve pas de capacité. Une instance réservée zonale réserve de la capacité dans la zone de disponibilité spécifiée.
Si vous avez des instances réservées régionales, il n'y a aucune réservation de capacité et vous pouvez obtenir des erreurs de capacité insuffisante. Si vous avez des instances réservées zonales, vous pouvez réserver des capacités, mais il n'existe aucun paramètre d'run-instancesAPI que vous pouvez utiliser pour les spécifier.
Les instances réservées sont prises en charge par toutes les AWS ParallelCluster versions. Il n'est pas nécessaire de spécifier quoi que ce soit AWS ParallelCluster et les instances sont automatiquement sélectionnées.
Lorsque vous utilisez des instances réservées zonales, vous pouvez éviter d'éventuelles erreurs de capacité insuffisante en omettant la spécification du groupe de placement dans la configuration du cluster.
Avertissement
-
À partir de AWS ParallelCluster la version 3.3.0, nous ne recommandons pas cette méthode. Cette section reste une référence pour les implémentations utilisant des versions antérieures.
-
Cette méthode n'est pas compatible avec l'allocation de types d'instances multiples avec Slurm.
Vous pouvez remplacer EC2 RunInstances les paramètres Amazon pour chaque ressource de calcul configurée dans une file d'attente de cluster. Pour ce faire, créez le /opt/slurm/etc/pcluster/run_instances_overrides.json fichier sur le nœud principal du cluster avec le contenu de l'extrait de code suivant :
-
${queue_name}est le nom de la file d'attente à laquelle vous souhaitez appliquer des remplacements. -
${compute_resource_name}est la ressource de calcul à laquelle vous souhaitez appliquer des dérogations. -
${overrides}est un objet JSON arbitraire qui contient une liste deRunInstancesremplacements à utiliser pour la combinaison spécifique de type de file d'attente et d'instance. La syntaxe des overrides doit suivre les mêmes spécifications que celles documentées dans un appel run_instancesboto3.
{ "${queue_name}": { "${compute_resource_name}": { ${overrides} }, ... }, ... }
Par exemple, le JSON suivant configure le groupe ODCR group_arn à utiliser pour les p4d.24xlarge instances configurées dans my-queue et. my-compute-resource
{"my-queue": {"my-compute-resource": { "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationResourceGroupArn":"group_arn"} } } } }
Une fois ce fichier JSON généré, les AWS ParallelCluster démons responsables du dimensionnement du cluster utilisent automatiquement la configuration de remplacement pour les lancements d'instances. Pour vérifier que les paramètres spécifiés sont utilisés pour le provisionnement des instances, consultez les fichiers journaux suivants :
-
/var/log/parallelcluster/clustermgtd(pour la capacité statique) -
/var/log/parallelcluster/slurm_resume.log(pour la capacité dynamique)
Si les paramètres sont corrects, vous trouverez une entrée de journal contenant les éléments suivants :
Found RunInstances parameters override. Launching instances with: <parameters_list>
Avertissement
-
À partir de AWS ParallelCluster la version 3.3.0, nous ne recommandons pas cette méthode. Cette section reste une référence pour les implémentations utilisant des versions antérieures.
-
Cette méthode n'est pas compatible avecAllocation de plusieurs types d'instances avec Slurm.
-
Créez un groupe de ressources pour regrouper les capacités.
$aws resource-groups create-group --nameEC2CRGroup\ --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'Note
Un groupe de ressources ne prend pas en charge les ressources partagées par d'autres comptes.
Si l'ODCR cible est partagé par un autre compte, il n'est pas nécessaire de créer un groupe de ressources. À utiliser à la
CapacityReservationIdplace d'un groupe de ressources à l'étape 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" } } } } } EOFAjoutez des réservations de capacité au groupe de ressources. Chaque fois que vous créez un nouvel ODCR, ajoutez-le à la réservation de groupe.
Remplacez-le par votre identifiant de compte,ACCOUNT_IDpar votre numéro de réservation de capacité etPLACEHOLDER_CAPACITY_RESERVATIONpar votre Région AWS identifiant (par exemple, 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_RESERVATIONCréez un document de politique sur votre ordinateur local.
Remplacez-le par votre identifiant de compte etACCOUNT_IDpar votre Région AWS identifiant (par exemple, 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 -
Créez la politique IAM qui vous convient à Compte AWS l'aide du fichier json que vous avez créé.
$aws iam create-policy --policy-nameRunInstancesCapacityReservation--policy-document file://policy.json -
Créez le script de post-installation suivant localement sur l'instance et nommez-le
postinstall.sh.Remplacez-le par votre Compte AWS identifiant etACCOUNT_IDpar votre Région AWS identifiant (par exemple, 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" } } } } } EOFTéléchargez le fichier dans un compartiment Amazon S3.
amzn-s3-demo-bucketRemplacez-le par le nom de votre compartiment S3 spécifique.$aws s3 mb s3://amzn-s3-demo-bucketaws s3 cp postinstall.sh s3://amzn-s3-demo-bucket/postinstall.sh -
Créez la configuration du cluster local en remplaçant les espaces réservés par vos propres valeurs.
Region:REGION_IDImage: Os: alinux2 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 -
Créez le cluster.
Utilisez la commande suivante pour créer le cluster.
Remplacez-le par le nom de votre fichier de configuration,cluster-config.yamlpar le nom de votre cluster etcluster-dlREGION_IDpar votre ID de région (par exemple, us-east-1).$pcluster create-cluster --cluster-configurationcluster-config.yaml--cluster-namecluster-dl--regionREGION_IDUne fois le cluster créé, le script de post-installation s'exécute dans le nœud principal. Le script crée le
run_instances_overrides.jsonfichier et remplace les appels pourRunInstancesforcer le provisionnement de la partition à passer par la réservation de capacité à la demande.Les AWS ParallelCluster démons responsables du dimensionnement du cluster utilisent automatiquement cette configuration pour les nouvelles instances lancées. Pour vérifier que les paramètres spécifiés sont utilisés pour provisionner les instances, vous pouvez consulter les fichiers journaux suivants :
-
/var/log/parallelcluster/clustermgtd(pour la capacité statique - MinCount> 0) -
/var/log/parallelcluster/slurm_resume.log(pour la capacité dynamique)
Si les paramètres sont corrects, vous trouverez une entrée de journal contenant les éléments suivants.
Found RunInstances parameters override. Launching instances with: <parameters_list> -
Mettre à jour RunInstances les dérogations
Vous pouvez mettre à jour la configuration JSON générée à tout moment sans arrêter le parc informatique. Une fois les modifications appliquées, toutes les nouvelles instances sont lancées avec la configuration mise à jour. Si vous devez appliquer la configuration mise à jour aux nœuds en cours d'exécution, recyclez les nœuds en forçant la fermeture d'une instance et AWS ParallelCluster en attendant de les remplacer. Vous pouvez le faire en mettant fin à l'instance depuis la EC2 console Amazon ou AWS CLI en définissant les Slurm nœuds dans l'DRAINétat DOWN ou.
Utilisez la commande suivante pour définir le Slurm nœud sur DOWN ouDRAIN.
$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