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à.
Costruire una personalizzazione AWS ParallelCluster AMI
Quando si utilizza l'interfaccia a riga di AWS ParallelCluster comando (CLI) oppureAPI, si pagano solo le AWS risorse create quando si creano o si aggiornano AWS ParallelCluster immagini e cluster. Per ulteriori informazioni, consulta AWS servizi usati da AWS ParallelCluster.
PCUIÈ basato su un'architettura serverless ed è possibile utilizzarlo nella categoria AWS Free Tier nella maggior parte dei casi. Per ulteriori informazioni, consulta PCUIcosti.
Importante
Se ne crei una personalizzataAMI, devi ripetere i passaggi utilizzati per crearla AMI con ogni nuova AWS ParallelCluster versione.
Prima di continuare a leggere, ti consigliamo di rivedere prima la Azioni bootstrap personalizzate sezione. Determina se le modifiche che desideri apportare possono essere scritte tramite script e supportate nelle versioni future AWS ParallelCluster .
Anche se la creazione di un file personalizzato AMI in generale non è l'ideale, esistono scenari specifici in cui AWS ParallelCluster è necessario crearne uno personalizzatoAMI. Questo tutorial spiega come creare una soluzione personalizzata AMI per questi scenari.
Prerequisiti
-
AWS ParallelCluster è installato.
-
AWS CLI è installato e configurato.
-
Hai una coppia di EC2 chiavi Amazon.
-
Hai un IAM ruolo con le autorizzazioni necessarie per eseguire pcluster CLI e creare immagini.
Come personalizzare il AWS ParallelCluster AMI
Esistono due modi per creare una personalizzazione AWS ParallelCluster AMI. Uno di questi due metodi consiste nel crearne uno nuovo AMI utilizzando AWS ParallelCluster CLI. Un altro metodo richiede che tu apporti modifiche manuali per crearne uno nuovo AMI disponibile con il tuo Account AWS.
Crea un file personalizzato AWS ParallelCluster AMI
Se AMI disponi di un software personalizzato, puoi applicare le modifiche necessarie AWS ParallelCluster su di esso. AWS ParallelCluster si affida al servizio EC2 Image Builder per creare progetti personalizzati. AMIs Per ulteriori informazioni, consultare la Guida per l'utente di Image Builder.
Punti chiave:
-
Il processo dura circa 1 ora. Questo tempo può variare se ci sono altri Build/Componentsda installare in fase di compilazione.
-
AMIÈ contrassegnato con le versioni dei componenti principali. Questi includono il kernel, lo scheduler e EFAil driver. Nella descrizione è riportato anche un sottoinsieme delle versioni dei componenti. AMI
-
A partire dalla AWS ParallelCluster versione 3.0.0, è possibile utilizzare un nuovo set di CLI comandi per gestire il ciclo di vita delle immagini. Sono inclusi build-image, list-images, describe-image e delete-image.
-
Questo metodo è ripetibile. È possibile rieseguirlo per rimanere AMIs aggiornato (ad esempio, aggiornamenti del sistema operativo) e quindi utilizzarlo quando si aggiorna un cluster esistente.
Nota
Se si utilizza questo metodo nella partizione AWS cinese, è possibile che si verifichino errori di rete. Ad esempio, potresti visualizzare questi errori nel pcluster build-image
comando quando scarica pacchetti da GitHub o da un archivio del sistema operativo. In tal caso, ti consigliamo di utilizzare uno dei seguenti metodi alternativi:
-
Segui l'Modificare un AWS ParallelCluster AMIapproccio che ignora questo comando.
-
Create l'immagine in un'altra partizione e regione, ad esempio
us-east-1
, e poi memorizzatela e ripristinatela per spostarla nella regione della Cina. Per ulteriori informazioni, consulta Archiviare e ripristinare e AMI utilizzare S3 nella Amazon EC2 User Guide.
Fasi:
-
Configura Account AWS le tue credenziali in modo che il AWS ParallelCluster client possa effettuare chiamate alle AWS API operazioni per tuo conto. Per un elenco delle autorizzazioni richieste, consulta AWS Identity and Access Management autorizzazioni in AWS ParallelCluster.
-
Crea un file di configurazione dell'immagine di build di base. Per fare ciò, specifica il InstanceTypefile da utilizzare per creare l'immagine e il ParentImage. Questi vengono utilizzati come punto di partenza per creare ilAMI. Per ulteriori informazioni sui parametri di compilazione opzionali, consulta Image Configuration.
Build: InstanceType:
<BUILD_INSTANCE_TYPE>
ParentImage:<BASE_AMI_ID>
-
Usa il CLI comando pcluster build-imageper creare una base AWS ParallelCluster AMI a partire da AMI quella che fornisci come base.
$
pcluster build-image --image-id
IMAGE_ID
--image-configurationIMAGE_CONFIG.yaml
--regionREGION
{ "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0" } }
avvertimento
pcluster build-image
utilizza l'impostazione predefinitaVPC. Se si elimina l'impostazione predefinita VPC utilizzando AWS Control Tower o AWS Landing Zone, l'ID della sottorete deve essere specificato nel file di configurazione dell'immagine. Per ulteriori informazioni, consulta SubnetId.Per un elenco di altri parametri, consultate la pagina di riferimento dei pcluster build-imagecomandi. I risultati del comando precedente sono i seguenti:
-
Viene creato uno CloudFormation stack in base alla configurazione dell'immagine. Lo stack include tutte le risorse di EC2 Image Builder necessarie per la build.
-
Le risorse create includono i componenti ufficiali di Image Builder a cui è possibile aggiungere AWS ParallelCluster componenti Image Builder personalizzati. Per informazioni su come creare componenti personalizzati, consulta gli AMIsesempi personalizzati nel workshop HPC
per i clienti del settore pubblico. -
EC2Image Builder avvia un'istanza di build, applica il AWS ParallelCluster ricettario, installa lo stack AWS ParallelCluster software ed esegue le attività di configurazione necessarie. Il AWS ParallelCluster ricettario viene utilizzato per creare e avviare. AWS ParallelCluster
-
L'istanza viene interrotta e ne AMI viene creata una nuova.
-
Un'altra istanza viene lanciata dalla nuova istanza creataAMI. Durante la fase di test, EC2 Image Builder esegue i test definiti nei componenti di Image Builder.
-
Se la compilazione ha esito positivo, lo stack viene eliminato. Se la compilazione fallisce, lo stack viene mantenuto e disponibile per l'ispezione.
-
-
È possibile monitorare lo stato del processo di compilazione eseguendo il comando seguente. Una volta completata la build, puoi eseguirla per recuperare l'AMIID fornito nella risposta.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
# BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0", "cloudformationStackTags": [ { "value": "3.7.0", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" }
# AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
-
Per creare il tuo cluster, inserisci l'AMIID nel CustomAmicampo della configurazione del cluster.
Risoluzione dei problemi e monitoraggio del processo AMI di creazione
La creazione dell'immagine viene completata in circa un'ora. È possibile monitorare il processo eseguendo il pcluster describe-imagecomando o i comandi di recupero del registro.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
Il build-imagecomando crea uno CloudFormation stack con tutte le EC2 risorse Amazon necessarie per creare l'immagine e avvia il processo Image EC2 Builder.
Dopo aver eseguito il build-imagecomando, è possibile recuperare gli eventi dello CloudFormation stack utilizzando. pcluster get-image-stack-events Puoi filtrare i risultati con il --query
parametro per vedere gli ultimi eventi. Per ulteriori informazioni, consulta Filtraggio dell' AWS CLI output nella Guida per l'AWS Command Line Interface utente.
$
pcluster get-image-stack-events --image-id
IMAGE_ID
--regionREGION
--query "events[0]"{ "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.7.0/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.7.0\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }
Dopo circa 15 minuti, gli eventi dello stack vengono visualizzati nella voce degli eventi di registro relativa alla creazione di Image Builder. È ora possibile elencare i flussi di log delle immagini e monitorare i passaggi di Image Builder pcluster list-image-log-streamsutilizzando pcluster get-image-log-eventsi comandi and.
$
pcluster list-image-log-streams --image-id
"3.7.0/1" ]IMAGE_ID
--regionREGION
\ --query 'logStreams[*].logStreamName'$
pcluster get-image-log-events --image-id
IMAGE_ID
--regionREGION
\ --log-stream-name 3.7.0/1 --limit 3{ "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.7.0/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }
Continuate a controllare con il describe-imagecomando finché non ne vedete lo stato. BUILD_COMPLETE
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
{ "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
Se devi risolvere un problema di AMI creazione personalizzata, crea un archivio dei log delle immagini come descritto nei passaggi seguenti.
È possibile archiviare i log in un bucket Amazon S3 o in un file locale, a seconda del parametro. --output
$
pcluster export-image-logs --image-id
IMAGE_ID
--regionREGION
\ --bucketBUCKET_NAME
--bucket-prefixBUCKET_FOLDER
{ "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." }
$
pcluster export-image-logs --image-id
IMAGE_ID
\ --regionREGION
--bucketBUCKET_NAME
--bucket-prefixBUCKET_FOLDER
--output-file /tmp/archive.tar.gz{ "path": "/tmp/archive.tar.gz" }
L'archivio contiene i CloudWatch Logs Streams relativi al processo AWS CloudFormation di Image Builder e agli eventi dello stack. L'esecuzione del comando potrebbe richiedere alcuni minuti.
Gestione personalizzata AMIs
A partire dalla AWS ParallelCluster versione 3.0.0, è stato aggiunto un nuovo set di comandi CLI per creare, monitorare e gestire il ciclo di vita dell'immagine. Per ulteriori informazioni sui comandi, consulta i comandi di pcluster.
Modificare un AWS ParallelCluster AMI
Questo metodo consiste nel modificare un funzionario AWS ParallelCluster AMI aggiungendovi una personalizzazione. La base AWS ParallelCluster AMIs viene aggiornata con nuove versioni. Questi AMIs hanno tutti i componenti necessari AWS ParallelCluster per funzionare una volta installati e configurati. Puoi iniziare con uno di questi come base.
Punti chiave:
-
Questo metodo è più veloce del build-imagecomando. Tuttavia, si tratta di un processo manuale e non ripetibile automaticamente.
-
Con questo metodo, non è possibile accedere ai comandi di recupero dei log e di gestione del ciclo di vita delle immagini disponibili tramite. CLI
Fasi: