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à.
Slurmfailover rapido di capacità insufficiente del cluster
A partire dallaAWS ParallelCluster versione 3.2.0, i cluster vengono eseguiti con la modalità di failover veloce con capacità insufficiente abilitata per impostazione predefinita. Ciò riduce al minimo il tempo impiegato per riprovare a mettere in coda un lavoro quando vengono rilevati errori di capacità insufficiente di EC2. Ciò è particolarmente efficace quando si configura il cluster con più tipi di istanze.
EC2 ha rilevato problemi di capacità insufficienti:
-
InsufficientInstanceCapacity
-
InsufficientHostCapacity
-
InsufficientReservedInstanceCapacity
-
MaxSpotInstanceCountExceeded
-
SpotMaxPriceTooLow
: attivato se il prezzo della richiesta Spot è inferiore al prezzo minimo richiesto di gestione di una Richiesta Spot pari al prezzo minimo richiesto di gestione di una Richiesta Spot. -
Unsupported
: attivato con l'uso di un tipo di istanza che non è supportato in uno specificoRegione AWS.
In modalità di failure-over veloce con capacità insufficiente, se viene rilevato un errore di capacità insufficiente quando un lavoro viene assegnato a SlurmQueues/compute resource,AWS ParallelCluster esegue le seguenti operazioni:
-
Imposta la risorsa di calcolo su uno stato disabilitato (
DOWN
) per un periodo di tempo predefinito. -
Viene utilizzato
POWER_DOWN_FORCE
per annullare i processi del nodo in errore della risorsa di calcolo e per sospendere il nodo in errore. Imposta il nodo in errorePOWER_DOWN (!)
sullo statoIDLE
and e quindi suPOWERING_DOWN (%)
. -
Richiede il lavoro a un'altra risorsa di calcolo.
I nodi statici e potenziati della risorsa di elaborazione disabilitata non sono interessati. I lavori possono essere completati su questi nodi.
Questo ciclo si ripete fino a quando il lavoro non viene assegnato correttamente a uno o più nodi di risorse di elaborazione. Per informazioni sugli stati dei nodi, vedere ilSlurmguida per la modalità a coda multipla.
Se non vengono trovate risorse di calcolo per eseguire il processo, il processo viene impostato sulloPENDING
stato fino al termine del periodo di tempo predefinito. In questo caso, è possibile modificare il periodo di tempo predefinito come descritto nella sezione seguente.
Parametro di timeout della capacità insufficiente
insufficient_capacity_timeout
insufficient_capacity_timeout
specifica il periodo di tempo (in secondi) in cui la risorsa di elaborazione viene mantenuta nello stato disabilitato (down
) quando viene rilevato un errore di capacità insufficiente.
Per impostazione predefinita,insufficient_capacity_timeout
è abilitato.
Il valore predefinitoinsufficient_capacity_timeout
è 600 secondi (10 minuti).
Se ilinsufficient_capacity_timeout
valore è minore o uguale a zero, la modalità di failure-over veloce con capacità insufficiente è disattivata.
È possibile modificare ilinsufficient_capacity_timeout
valore aggiungendo il parametro nel file diclustermgtd
configurazione che si trova/etc/parallelcluster/slurm_plugin/parallelcluster_clustermgtd.conf
inHeadNode
.
Il parametro può essere aggiornato in qualsiasi momento senza interrompere il parco di elaborazione.
Ad esempio:
-
insufficient_capacity_timeout=600
:Se viene rilevato un errore di capacità insufficiente, la risorsa di elaborazione viene impostata su disabilitata (
DOWN
). Dopo 10 minuti, il nodo fallito viene impostato sullo statoidle~
(POWER_SAVING
). -
insufficient_capacity_timeout=60
:Se viene rilevato un errore di capacità insufficiente, la risorsa di elaborazione è disattivata (
DOWN
). Dopo 1 minuto, il nodo fallito viene impostato sulloidle~
stato. -
insufficient_capacity_timeout=0
:La modalità di failure-over veloce con capacità insufficiente è disattivata. La risorsa di elaborazione non è disabilitata.
Nota
Potrebbe esserci un ritardo fino a un minuto tra il momento in cui i nodi si guastano con errori di capacità insufficiente e il momento in cui il demone di gestione del cluster rileva i guasti dei nodi. Questo perché il demone di gestione del cluster verifica la presenza di errori di capacità insufficiente del nodo e imposta le risorse di calcolo allodown
stato a intervalli di un minuto.
Stato rapido in modalità failover con capacità insufficiente
Quando un cluster si trova rapidamente in modalità di failover con capacità insufficiente, è possibile verificarne lo stato e lo stato del nodo.
Stati dei nodi
Quando un lavoro viene inviato a un nodo dinamico della risorsa di calcolo e viene rilevato un errore di capacità insufficiente, il nodo viene inserito nellodown#
stato con un motivo.
(Code:InsufficientInstanceCapacity)Failure when resuming nodes.
Quindi i nodi spenti (nodi inidle~
stato) vengono impostati sudown~
con motivo.
(Code:InsufficientInstanceCapacity)Temporarily disabling node due to insufficient capacity.
Il lavoro è richiesto ad altre risorse di calcolo in coda.
I nodi statici e i nodi delle risorse di calcolo cheUP
non sono influenzati dalla modalità di failover veloce con capacità insufficiente.
Considera gli stati del nodo mostrati nell'esempio seguente.
$
sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 30 idle~ queue1-dy-c-1-[1-15],queue1-dy-c-2-[1-15] queue2 up infinite 30 idle~ queue2-dy-c-1-[1-15],queue2-dy-c-2-[1-15]
Inoltriamo un lavoro a queue1 che richiede un nodo.
$
sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 1 down# queue1-dy-c-1-1 queue1* up infinite 15 idle~ queue1-dy-c-2-[1-15] queue1* up infinite 14 down~ queue1-dy-c-1-[2-15] queue2 up infinite 30 idle~ queue2-dy-c-1-[1-15],queue2-dy-c-2-[1-15]
queue1-dy-c-1-1
Il nodo viene avviato per eseguire il job. Tuttavia, l'istanza non è stata avviata a causa di un errore di capacità insufficiente. Il nodoqueue1-dy-c-1-1
è impostato sudown
. Il nodo dinamico spento all'interno della risorsa di calcolo (queue2-dy-c-1
) è impostato sudown
.
Puoi controllare il motivo del nodo conscontrol show nodes
.
$
scontrol show nodes queue1-dy-c-1-1
NodeName=broken-dy-c-2-1 Arch=x86_64 CoresPerSocket=1 CPUAlloc=0 CPUTot=96 CPULoad=0.00 ... ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s Reason=(Code:InsufficientInstanceCapacity)Failure when resuming nodes [root@2022-03-10T22:17:50]
$
scontrol show nodes queue1-dy-c-1-2
NodeName=broken-dy-c-2-1 Arch=x86_64 CoresPerSocket=1 CPUAlloc=0 CPUTot=96 CPULoad=0.00 ... ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s Reason=(Code:InsufficientInstanceCapacity)Temporarily disabling node due to insufficient capacity [root@2022-03-10T22:17:50]
Il job viene messo in coda su un altro tipo di istanza all'interno delle risorse di calcolo della coda.
Al termine,insufficient_capacity_timeout
i nodi della risorsa di calcolo vengono ripristinati alloidle~
stato.
$
sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 30 idle~ queue1-dy-c-1-[1-15],queue1-dy-c-2-[1-15] queue2 up infinite 30 idle~ queue2-dy-c-1-[1-15],queue2-dy-c-2-[1-15]
Dopo che gliinsufficient_capacity_timeout
intervalli e i nodi della risorsa di calcolo sono stati ripristinati alloidle~
stato, loSlurm scheduler assegna ai nodi una priorità inferiore. Lo scheduler continua a selezionare nodi da altre risorse di calcolo in coda con pesi più elevati a meno che non si verifichi una delle seguenti situazioni:
-
I requisiti di invio di un lavoro corrispondono alla risorsa di elaborazione recuperata.
-
Non sono disponibili altre risorse di elaborazione perché sono esaurite.
-
slurmctld
viene riavviato. -
Il parco diAWS ParallelCluster elaborazione viene interrotto e avviato a spegnere e riaccendere tutti i nodi.
Registri correlati
I log relativi agli errori di capacità insufficiente e alla modalità di failover veloce con capacità insufficiente sono disponibili nelSlurmresume
clustermgtd
registro e nel registro nel nodo principale.
- Slurm
resume
(/var/log/parallelcluster/slurm_resume.log
) -
Messaggi di errore quando un nodo non si avvia a causa di una capacità insufficiente.
[slurm_plugin.instance_manager:_launch_ec2_instances] - ERROR - Failed RunInstances request: dcd0c252-90d4-44a7-9c79-ef740f7ecd87 [slurm_plugin.instance_manager:add_instances_for_nodes] - ERROR - Encountered exception when launching instances for nodes (x1) ['queue1-dy-c-1-1']: An error occurred (InsufficientInstanceCapacity) when calling the RunInstances operation (reached max retries: 1): We currently do not have sufficient p4d.24xlarge capacity in the Availability Zone you requested (us-west-2b). Our system will be working on provisioning additional capacity. You can currently get p4d.24xlarge capacity by not specifying an Availability Zone in your request or choosing us-west-2a, us-west-2c.
- Slurm
clustermgtd
(/var/log/parallelcluster/clustermgtd
) -
La risorsa di calcolo c-1 in queue1 è disabilitata a causa della capacità insufficiente.
[slurm_plugin.clustermgtd:_reset_timeout_expired_compute_resources] - INFO - The following compute resources are in down state due to insufficient capacity: {'queue1': {'c-1': ComputeResourceFailureEvent(timestamp=datetime.datetime(2022, 4, 14, 23, 0, 4, 769380, tzinfo=datetime.timezone.utc), error_code='InsufficientInstanceCapacity')}}, compute resources are reset after insufficient capacity timeout (600 seconds) expired
Dopo la scadenza del timeout di capacità insufficiente, la risorsa di calcolo viene ripristinata, i nodi all'interno delle risorse di elaborazione sono impostati su
idle~
.[root:_reset_insufficient_capacity_timeout_expired_nodes] - INFO - Reset the following compute resources because insufficient capacity timeout expired: {'queue1': ['c-1']}