Lorsque vous créez des machines virtuelles (VM) de manière groupée dans une région à l'aide de Compute Engine, si votre application n'est pas limitée à un seul type de machine, vous pouvez augmenter le taux de réussite du provisionnement du nombre de VM requis en configurant la flexibilité des instances. La flexibilité des instances vous permet de spécifier un ou plusieurs types de machines adaptés à votre charge de travail. Compute Engine provisionne ensuite des VM à l'aide d'un ou de plusieurs de ces types de machines, en fonction de la capacité et de la disponibilité des quotas. Une seule requête d'insertion groupée peut créer des VM de plusieurs types de machines différents.
La flexibilité des instances vous aide à maximiser la disponibilité des ressources lors des pics de demande, à améliorer le rapport prix/performances et à adopter en toute sécurité le matériel le plus récent. Pour en savoir plus, consultez la section Optimiser le provisionnement de calcul.
Ce document explique comment fonctionne la flexibilité des instances pour les VM créées de manière groupée, y compris les valeurs de remplacement des propriétés d'instance pour la configuration minimale de la plate-forme de processeur et les disques, ainsi que les limites. Pour en savoir plus sur la configuration de la flexibilité des instances, consultez la section Créer des VM de manière groupée avec la flexibilité des instances.
Utiliser la flexibilité des instances
Pour configurer la flexibilité des instances, vous listez les types de machines adaptés en définissant
une ou plusieurs sélections d'instances dans votre requête d'insertion groupée régionale.
Par exemple, dans une requête REST, vous incluez l'objet instanceFlexibilityPolicy, dans lequel vous définissez un ou plusieurs objets instanceSelections, chacun contenant une liste de types de machines.
Vous pouvez également spécifier des types de machines qui s'exécutent sur différentes plates-formes de processeur, qui ont des architectures différentes (telles que x86 et Arm) ou qui ont des exigences de disque différentes. Pour utiliser des types de machines avec des exigences matérielles différentes, utilisez une
sélection d'instances pour remplacer les propriétés correspondantes des propriétés d'instance de la requête (instanceProperties). Pour en savoir plus, consultez la section Valeurs de remplacement des propriétés d'instance dans les sélections d'instances.
Lorsque Compute Engine reçoit la requête, il valide d'abord les types de machines et leur compatibilité zonale, en excluant toutes les entrées non valides. S'il existe au moins une configuration valide, l'opération se poursuit.
Compute Engine tente ensuite de provisionner des VM en fonction du matériel, des quotas et des réservations disponibles. Si vous configurez des rangs pour vos sélections d'instances, il donne la priorité aux sélections avec un rang inférieur. Dans chaque rang, Compute Engine tient compte des réservations inutilisées et des conseils concernant les VM Spot pour sélectionner des types de machines avec une probabilité de préemption plus faible.
Valeurs de remplacement des propriétés d'instance dans les sélections d'instances
Lorsque vous effectuez une sélection d'instances, vous pouvez spécifier des propriétés d'instance supplémentaires, telles que la configuration minimale de la plate-forme de processeur (minCpuPlatform) et les disques (disks), pour remplacer ou ajouter des propriétés que vous définissez dans les propriétés d'instance de la requête (instanceProperties). Lorsque Compute Engine sélectionne un type de machine à partir d'une sélection d'instances pour créer des VM, il utilise les propriétés d'instance que vous spécifiez dans cette sélection. Si vous ne spécifiez aucune valeur de remplacement pour une sélection d'instances, Compute Engine utilise les propriétés correspondantes de instanceProperties pour les VM qu'il crée à partir de cette sélection.
Le remplacement des propriétés d'instance au niveau de la sélection d'instances vous offre plus de contrôle et de flexibilité lorsque vous utilisez différentes configurations matérielles dans une seule requête d'insertion groupée.
Valeurs de remplacement de la configuration minimale de la plate-forme de processeur
Vous pouvez spécifier une
configuration minimale de la plate-forme de processeur
(minCpuPlatform) pour les VM que Compute Engine crée à partir des
types de machines d'une sélection d'instances. Cette valeur de remplacement vous permet de combiner différents types de machines et d'appliquer sélectivement des configurations minimales de plate-forme de processeur. Chaque type de machine d'une sélection d'instances doit être compatible avec la configuration minimale effective de la plate-forme de processeur, qu'elle soit spécifiée dans la sélection ou héritée de instanceProperties.
Vous pouvez également définir le champ minCpuPlatform sur AUTOMATIC. Ce paramètre remplace la valeur minCpuPlatform dans instanceProperties et permet à Compute Engine d'utiliser n'importe quelle plate-forme de processeur compatible pour les types de machines de la sélection d'instances.
Pour combiner des types de machines où une seule série est compatible avec une plate-forme de processeur spécifique, placez-les dans des sélections d'instances distinctes. Par exemple, les types de machines N4 sont compatibles avec la plate-forme Intel Emerald Rapids, tandis que les types de machines N2 avec moins de 96 vCPU sont compatibles avec Intel Ice Lake et Intel Cascade Lake. Pour combiner N4 et N2 dans une requête d'insertion groupée et exiger que N2 s'exécute sur Intel Ice Lake, configurez deux sélections d'instances comme suit :
- Sélection N2 : définissez le champ
minCpuPlatformsurIntel Ice Lake. - Sélection N4 : laissez le champ
minCpuPlatformnon défini ou définissez-le surAUTOMATIC.
Vous pouvez définir une préférence égale pour les deux types de machines en attribuant le même rang aux deux sélections d'instances.
Valeurs de remplacement de disque
Vous pouvez spécifier une configuration de disque personnalisée dans une sélection d'instances pour remplacer le disque de démarrage ou les disques supplémentaires spécifiés dans instanceProperties, ou pour associer des disques supplémentaires. Cette valeur de remplacement vous permet de combiner des types de machines qui ont des architectures différentes ou qui sont compatibles avec différents types de disques. Elle vous permet également de spécifier les images ou les disques de démarrage requis pour chaque type de machine.
Par exemple, vous pouvez utiliser des sélections d'instances distinctes pour remplacer les disques en fonction de différentes exigences :
- Architectures différentes : vous pouvez combiner les types de machines C4 (architecture x86) et C4A (architecture Arm). Étant donné que les types de machines x86 et Arm nécessitent des images de démarrage différentes, vous pouvez remplacer le disque de démarrage pour spécifier une image compatible pour chaque architecture.
- Types de disques différents : vous pouvez combiner les types de machines N2 et N4. Étant donné que N2 n'est compatible qu'avec les disques persistants pour les disques de démarrage et que N4 n'est compatible qu'avec Google Cloud Hyperdisk, vous pouvez remplacer la configuration du disque pour spécifier un type de disque compatible pour chaque série de machines.
Dans les deux cas, vous pouvez définir une préférence égale pour les deux types de machines en attribuant le même rang aux sélections d'instances.
Si un disque d'une sélection d'instances possède un deviceName qui correspond à un disque dans instanceProperties, Compute Engine remplace la configuration de ce disque. Si le deviceName ne correspond à aucun disque dans instanceProperties, Compute Engine l'associe en tant que disque supplémentaire. Vous devez vous assurer que la configuration effective du disque est compatible avec tous les types de machines de la sélection d'instances.
Le schéma suivant montre comment Compute Engine fusionne les configurations de disque de instanceProperties et d'une sélection d'instances :
Pour savoir comment spécifier la configuration minimale de la plate-forme de processeur et les valeurs de remplacement de disque lorsque vous créez des VM de manière groupée, consultez la section Créer des VM avec plusieurs types de machines, une configuration minimale de la plate-forme de processeur et des valeurs de remplacement de disque.
Pour en savoir plus sur les limites lorsque vous utilisez des valeurs de remplacement de sélection d'instances, consultez la section Limites de ce document.
Exemple : Valeurs de remplacement de la configuration minimale de la plate-forme de processeur et de disque
Vous pouvez utiliser des valeurs de remplacement dans une stratégie de flexibilité des instances pour provisionner des VM sur des séries de machines qui nécessitent différentes plates-formes de processeur, images de démarrage ou types de disques.
Prenons l'exemple d'une requête d'insertion groupée avec la configuration de base instanceProperties suivante, qui définit un disque de démarrage pd-balanced par défaut :
"instanceProperties": {
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-balanced"
}
}
],
"networkInterfaces": [{}]
}
La configuration instanceFlexibilityPolicy suivante dans la même requête remplace la configuration de base instanceProperties en spécifiant la configuration minimale de la plate-forme de processeur et les configurations de disque dans trois sélections d'instances :
"instanceFlexibilityPolicy": {
"instanceSelections": {
"first-preference": {
"rank": 1,
"machineTypes": ["n4-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
}
]
},
"second-preference": {
"rank": 2,
"machineTypes": ["c4a-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
},
{
"autoDelete": true,
"deviceName": "data-disk",
"boot": false,
"initializeParams": {
"diskSizeGb": "100",
"diskType": "hyperdisk-balanced"
}
}
]
},
"third-preference": {
"rank": 3,
"machineTypes": ["n2-standard-4"],
"minCpuPlatform": "Intel Ice Lake",
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-ssd"
}
}
]
}
}
}
Dans cet exemple, Compute Engine applique les valeurs de remplacement suivantes en fonction de la sélection d'instances qu'il utilise pour créer des VM :
- Première préférence (
first-preference) : pour les VMn4-standard-4, la sélection remplaceboot-diskpar un disquehyperdisk-balancedau lieu du disquepd-balancedde base. - Deuxième préférence (
second-preference) : pour les VMc4a-standard-4(Arm), la sélection remplaceboot-diskpar une image de démarrage compatible avec Arm (debian-12-arm64) sur un disquehyperdisk-balancedet associe un disquehyperdisk-balancedsupplémentaire de 100 Go nommédata-disk. - Troisième préférence (
third-preference) : pour les VMn2-standard-4, la sélection définitminCpuPlatformsurIntel Ice Lakeet remplaceboot-diskpar un disquepd-ssd.
Sélection de zone lorsqu'une forme de distribution cible est définie
Lorsque vous utilisez la flexibilité des instances avec une requête bulkInsert régionale, vous pouvez spécifier une forme de distribution cible pour contrôler la distribution des VM dans les zones de la région. Compute Engine sélectionne les zones pour le provisionnement des VM en fonction de cette forme, comme suit :
ANY_SINGLE_ZONE: Compute Engine sélectionne une seule zone qui dispose de la plus grande capacité pour les types de machines avec une préférence plus élevée.BALANCED: Compute Engine distribue les VM de manière aussi uniforme que possible dans les zones disposant de ressources disponibles. Dans chaque zone, Compute Engine donne la priorité aux types de machines avec une préférence plus élevée.ANY: Compute Engine sélectionne les zones disposant de ressources disponibles. Si des rangs sont configurés, Compute Engine donne la priorité aux zones pour provisionner des VM avec des types de machines ayant une préférence plus élevée.
Pour en savoir plus, consultez la section Créer des VM de manière groupée dans une région.
Provisionnement minimal de VM et flexibilité des instances
Si vous définissez une valeur pour le nombre minimal requis de VM (minCount) dans la requête bulkInsert, l'API tente de créer au moins ce nombre de VM. Si Compute Engine ne parvient pas à provisionner le nombre minimal requis de VM (minCount), l'opération entière échoue et Compute Engine ne crée aucune VM. Lorsque vous utilisez minCount avec la flexibilité des instances, Compute Engine donne la priorité au provisionnement des VM en fonction de l'obtention plutôt que du rang, comme suit :
- Compute Engine donne la priorité au provisionnement du nombre maximal de VM jusqu'à
count, même si cela implique d'utiliser des machines de préférence inférieure. Par exemple, si votre requête spécifie un minimum d'une VM requise (minCount=1) et un maximum de 10 VM (count=10), et si Compute Engine a la capacité de provisionner une VM de préférence supérieure ou six VM de préférence inférieure, Compute Engine provisionne les six VM de préférence inférieure. - Si Compute Engine peut provisionner le même nombre maximal de VM jusqu'à
counten utilisant différentes sélections d'instances, il donne la priorité à la sélection avec une préférence plus élevée. Par exemple, si votre requête spécifie un minimum d'une VM requise (minCount=1) et un maximum de 10 VM (count=10), et si Compute Engine peut provisionner six VM en utilisant une sélection d'instances de préférence supérieure ou inférieure, Compute Engine provisionne les six VM à partir de la sélection de préférence supérieure.
Pour en savoir plus, consultez la propriété minCount dans
bulkInsert.
Validation de l'insertion groupée et scénarios d'erreur
Compute Engine effectue une validation initiale des types de machines et de leur compatibilité zonale, en excluant toute entrée non valide. S'il reste au moins une configuration valide après cette vérification initiale, Compute Engine poursuit la création de la VM.
Toutefois, certaines validations de votre configuration ne peuvent avoir lieu qu'une fois que Compute Engine a sélectionné les zones et les types de machines à utiliser pour le provisionnement, en fonction de votre stratégie de flexibilité des instances et de la capacité disponible.
Si, lors de cette étape de validation ultérieure, la combinaison spécifique de type de machine et de zone choisie pour le provisionnement s'avère non valide, l'ensemble de la requête d'insertion groupée échoue avec des erreurs de validation. Cet échec peut se produire même si d'autres configurations dans instanceFlexibilityPolicy étaient initialement valides.
Limites
Les limites suivantes s'appliquent lorsque vous utilisez la flexibilité des instances pour la création groupée de VM :
- Vous ne pouvez spécifier la flexibilité des instances que pour les requêtes
bulkInsertrégionales. Vous ne pouvez pas l'utiliser avec des requêtes zonales. - La flexibilité des instances n'est pas compatible avec les VM à démarrage flexible ni avec les réservations futures.
- Vous ne pouvez pas utiliser la flexibilité des instances avec les fonctionnalités AI Hypercomputer, ni avec les GPU A3 Ultra, A4 et plus récents.
- Vous pouvez spécifier un maximum de 10 types de machines différents dans un maximum de 10 sélections d'instances différentes.
- Lorsque vous remplacez
minCpuPlatformoudisksdans une sélection d'instances, les limites suivantes s'appliquent également :- Lorsque vous configurez
minCpuPlatformoudiskspour une sélection d'instances, vous devez également inclure le champmachineTypes. Si vous omettez le champmachineTypes, l'opération échoue avec une erreur. - Vous ne pouvez remplacer les disques SSD locaux que pour les
types de machines qui vous permettent de choisir un nombre de disques SSD locaux.
Vous ne pouvez pas remplacer les disques SSD locaux pour les
-lssdvariantes des types de machines, qui associent automatiquement des disques SSD locaux.
- Lorsque vous configurez
Étape suivante
- Découvrez comment créer des VM de manière groupée avec la flexibilité des instances.
- Découvrez les dimensions de flexibilité, les cas d'utilisation et les bonnes pratiques dans la section Optimiser le provisionnement de calcul.