Configuration de la haute disponibilité dans le service de calcul

Les administrateurs peuvent définir des paramètres pour contrôler la façon dont le service de calcul tente de maintenir les instances disponibles en réponse à des pannes de noeud de calcul planifiées ou non. Les paramètres de haute disponibilité du service de calcul ont une incidence sur toutes les instances de calcul et interagissent avec les paramètres de récupération d'instance individuels.

Lorsqu'une maintenance planifiée doit être effectuée, un noeud de calcul est évacué. Si possible, le service de calcul migre en direct toutes les instances en cours d'exécution vers d'autres noeuds de calcul du même domaine d'erreur. Si ce scénario par défaut ne peut pas être exécuté, les paramètres de haute disponibilité, au niveau du service de calcul et de l'instance individuelle, déterminent d'autres options pour migrer, arrêter et récupérer les instances de calcul touchées.

En cas d'interruption non planifiée du noeud de calcul, le service de calcul arrête les instances et, si l'interruption persiste, tente d'évacuer le noeud de calcul en redémarrant les instances touchées sur d'autres noeuds de calcul. Cette forme automatisée de migration à froid est appelée migration avec redémarrage.

Configuration de la haute disponibilité du service d'instance et de calcul

La configuration haute disponibilité du service de calcul vous permet de gérer les résultats de différents types d'interruption de noeud de calcul. L'action de récupération de disponibilité d'instance est la seule configuration haute disponibilité définie pour chaque instance. Toutes les autres configurations haute disponibilité sont définies dans le service de calcul et ont une incidence sur toutes les instances.

Le domaine d'erreur sélectionné est le domaine d'erreur spécifié dans la configuration d'instance. Une instance déplacée se trouve dans un domaine d'erreur qui n'est pas son domaine d'erreur sélectionné.

Interruption de maintenance planifiée

Voir Opérations de maintenance des noeuds de calcul pour plus d'informations sur l'évacuation d'un noeud de calcul. Si possible, le service de calcul migre en direct les instances en cours d'exécution vers d'autres noeuds de calcul du même domaine d'erreur. La section décrit également comment utiliser l'action de récupération de disponibilité d'instance (définie sur chaque instance) et les propriétés de récupération automatique et de résolution automatique du service de calcul lors de l'évacuation d'un noeud de calcul.

Interruptions non programmées

Le service de calcul tente d'arrêter les instances et de les migrer avec redémarrage dans les conditions d'interruption de noeud de calcul suivantes :

  • Mise hors tension à partir du statut HW

  • Impossible d'accéder au réseau de données du noeud de calcul

Un noeud de calcul peut subir une interruption lorsque le service de calcul ne peut pas migrer les instances. Par exemple, si le service de calcul ne peut pas atteindre le noeud de calcul, il ne peut pas arrêter et migrer les instances avec redémarrage.

Interruption non planifiée inférieure à cinq minutes

En cas d'interruption non planifiée, le service de calcul arrête les instances concernées. Si l'interruption dure moins de cinq minutes, le service de calcul tente par défaut de redémarrer les instances qui étaient en cours d'exécution avant l'interruption. Le comportement réel dépend de la configuration des instances et du service de calcul. Le flux de décision suivant décrit comment contrôler ce comportement.

Voulez-vous que le service de calcul tente de redémarrer les instances en cours d'exécution avant l'interruption? Il s'agit de la valeur par défaut.

  • Oui. Vérifiez que la récupération automatique est activée et que l'action de récupération de la disponibilité de l'instance est réglée à RESTORE_INSTANCE. Voir Configuration de l'état de récupération pour une instance arrêtée.

    Si certaines instances ne peuvent plus être prises en charge dans le domaine d'erreur sélectionné, la récupération automatique continuera à scruter et tentera de redémarrer les instances. Voir aussi getForcedStoppedInstances.

    Si l'action de récupération de disponibilité d'instance est réglée à STOP_INSTANCE, l'instance reste arrêtée, même si la récupération automatique est activée.

  • Non. Désactiver la récupération automatique. Les instances qui étaient en cours d'exécution avant l'interruption resteront arrêtées.

Le paramètre d'action de récupération de disponibilité d'instance et le paramètre de récupération automatique peuvent être modifiés à tout moment. Les modifications entreront en vigueur lors de la prochaine scrutation.

Interruption non planifiée plus de cinq minutes

En cas d'interruption non planifiée, le service de calcul arrête les instances concernées. Si l'interruption dure plus de cinq minutes, le service de calcul tente par défaut de redémarrer les instances de migration (migration à froid) hors du noeud de calcul. Les instances qui ne peuvent pas être prises en charge sur d'autres noeuds de calcul du même domaine d'erreur sont migrées avec redémarrage vers d'autres domaines d'erreur. Le comportement réel dépend de la configuration du service de calcul. Le flux de décision suivant décrit comment contrôler ce comportement.

Voulez-vous que les instances en cours d'exécution soient migrées avec redémarrage? La migration avec redémarrage s'arrête et démarre chaque instance en cours d'exécution sur un noeud de calcul donné. Voir aussi Configuration de la haute disponibilité pour les instances de calcul.

  • Oui. Vérifiez que la haute disponibilité de machine virtuelle est activée.

    Si certaines instances ne peuvent pas être prises en charge sur un autre noeud de calcul du même domaine d'erreur, voulez-vous que ces instances soient migrées avec redémarrage vers un autre domaine d'erreur?

    • Oui. Vérifiez que Strict FD est désactivé. Les instances qui ne peuvent pas être prises en charge dans un domaine d'erreur restent arrêtées par le service de calcul.

      Après la migration avec redémarrage, voulez-vous que les instances qui s'exécutent dans un domaine d'erreur qui n'est pas leur domaine d'erreur sélectionné soient automatiquement migrées en direct vers leur domaine d'erreur sélectionné lorsque les ressources deviennent disponibles?

      • Oui. Vérifiez que la résolution automatique est activée. Voir aussi getDisplacedInstances.

      • Non. Désactiver la résolution automatique.

    • Non. Activer FD strict. Les instances qui étaient en cours d'exécution avant l'interruption et qui ne peuvent pas être migrées vers un autre noeud de calcul dans le domaine d'erreur courant restent arrêtées par le service de calcul.

  • Non. Désactiver la haute disponibilité de machine virtuelle. Les instances en cours d'exécution avant l'interruption sont arrêtées par le service de calcul.

Voulez-vous que les instances arrêtées par le service de calcul soient automatiquement restaurées pour s'exécuter dans le domaine d'erreur sélectionné? Si oui, vérifiez que la récupération automatique est activée et que l'action de récupération de disponibilité d'instance est réglée à RESTORE_INSTANCE. Voir Configuration de l'état de récupération pour une instance arrêtée.

Affichage et définition de la configuration du service de calcul

Pour plus d'informations sur le fonctionnement de ces paramètres de configuration, voir Commandes de configuration du service de calcul.

Utiliser l'interface utilisateur Web du service

Dans le menu de navigation, cliquez sur Instances FD, puis sur Détails du service de calcul.

La page Informations sur le service de calcul affiche les paramètres courants pour la récupération automatique, la résolution automatique des instances déplacées, la haute disponibilité de machine virtuelle et le FD strict. Tous ces paramètres sont activés par défaut, à l'exception de Strict FD, qui est désactivé par défaut. Par défaut, le positionnement du domaine d'erreur n'est pas strictement appliqué lorsque le service de calcul migre les instances.

Utilisez le menu Controls de la page Compute Service Information pour modifier les valeurs de ces paramètres de configuration entre Activé et Désactivé.

Utilisation de l'interface de ligne de commande du service

Utilisez la commande show computeservice pour afficher les paramètres de configuration courants du service de calcul. Dans l'exemple suivant, les valeurs par défaut sont définies pour les quatre paramètres de configuration de haute disponibilité : Auto Recovery Action Enabled, Auto-Resolve Displaced Instances Enabled, VM High Availability Enabled et Strict FD Enabled. Tous ces paramètres sont vrais par défaut, à l'exception de Strict FD Enabled, qui est faux par défaut.

PCA-ADMIN> show computeservice
Data:
 Id = unique_ID
 Type = ComputeService
 total CN cpu usage percent = 23.3
 total CN memory usage percent = 16.2
 Auto Recovery Action Enabled = true
 Auto-Resolve Displaced Instances Enabled = true
 VM High Availability Enabled = true
 Strict FD Enabled = false
 Name = Compute Service
 Work State = Normal

Pour modifier ces paramètres, utilisez les commandes de la liste suivante. La commande showcustomcmds computeservice liste toutes les commandes de configuration à haute disponibilité du service de calcul.

PCA-ADMIN> showcustomcmds computeservice
    enableAutoRecoveryAction
    disableAutoRecoveryAction
    enableAutoResolveDisplacedInstances
    disableAutoResolveDisplacedInstances
    enableVmHighAvailability
    disableVmHighAvailability
    enableStrictFD
    disableStrictFD
    getForcedStoppedInstances
    getDisplacedInstances

Par exemple, pour désactiver Auto Recovery Action Enabled, exécutez la commande disableAutoRecoveryAction. Pour activer l'application stricte du domaine d'erreur, exécutez la commande enableStrictFD.

Commandes de configuration du service de calcul

Les commandes de l'interface de ligne de commande du service de calcul pour la configuration haute disponibilité sont présentées dans la liste qui suit. Pour accéder aux paramètres équivalents de l'interface utilisateur Web du service, cliquez sur le menu de navigation et cliquez sur Instances FD. Voir Consultation et définition de la configuration du service de calcul.

Dans ces descriptions, le domaine d'erreur sélectionné est le domaine d'erreur spécifié dans la configuration d'instance. Une instance déplacée se trouve dans un domaine d'erreur qui n'est pas son domaine d'erreur sélectionné.

enableAutoRecoveryAction

Active le redémarrage automatique des instances qui ont été arrêtées par le service de calcul. Il s'agit de la valeur par défaut. Si l'action de récupération de la disponibilité de l'instance est réglée à RESTORE_INSTANCE, cette commande entraîne le redémarrage automatique des instances arrêtées par le service de calcul dans le domaine d'erreur sélectionné lorsque des ressources sont disponibles. Voir aussi Configuration de l'état de récupération pour une instance arrêtée et getForcedStoppedInstances.

Les instances ont pu être arrêtées par le service de calcul pour les raisons suivantes :

Vous pouvez définir cette propriété de récupération automatique à tout moment avant ou après une interruption de maintenance administrative ou une interruption non planifiée pour redémarrer les instances arrêtées par le service de calcul. Si l'action de récupération de disponibilité d'instance est réglée à STOP_INSTANCE, l'instance reste arrêtée même si la propriété de récupération automatique est activée. Si l'action de récupération de la disponibilité de l'instance est par la suite remplacée par RESTORE_INSTANCE, une passe de récupération automatique suivante redémarrera l'instance.

disableAutoRecoveryAction

Désactive le redémarrage automatique des instances arrêtées. Les instances qui ont été arrêtées par le service de calcul ne sont pas redémarrées automatiquement lorsque des ressources sont disponibles.

enableAutoResolveDisplacedInstances

Active le retour des instances en cours d'exécution dans le domaine d'erreur sélectionné. Il s'agit de la valeur par défaut. Si les instances ont été déplacées vers un autre domaine d'erreur (déplacé) lors de l'évacuation du noeud de calcul, cette commande permet de migrer automatiquement ces instances en direct vers le domaine d'erreur sélectionné une fois que suffisamment de ressources sont disponibles dans ce domaine d'erreur. Voir aussi getDisplacedInstances.

Vous pouvez définir cette configuration de résolution automatique à tout moment avant ou après une interruption pour déplacer les instances déplacées. Les instances arrêtées ne sont pas migrées.

disableAutoResolveDisplacedInstances

Désactive le retour des instances dans le domaine d'erreur sélectionné. Les instances qui ont été déplacées vers un autre domaine d'erreur lors de l'évacuation du noeud de calcul restent dans le domaine d'erreur vers lequel elles ont été déplacées.

enableVmHighAvailability

Active la haute disponibilité (migration avec redémarrage) à partir d'un noeud de calcul inaccessible. Il s'agit de la valeur par défaut.

disableVmHighAvailability

Désactive la migration avec redémarrage.

enableStrictFD

Active l'application stricte du domaine d'erreur. Lors de l'évacuation du noeud de calcul, toute instance qui ne peut pas être déplacée vers un autre noeud de calcul dans le même domaine d'erreur est arrêtée si l'option Forcer a été spécifiée. Si l'option force n'a pas été spécifiée, l'opération de migration échoue.

disableStrictFD

Désactive l'application stricte du domaine d'erreur. Il s'agit de la valeur par défaut. Lors de l'évacuation du noeud de calcul, toute instance qui ne peut pas être déplacée vers un autre noeud de calcul dans le même domaine d'erreur est déplacée vers un autre domaine d'erreur. Ce déplacement vers un autre domaine d'erreur est temporaire si la propriété de résolution automatique du service de calcul est activée : Si la résolution automatique est activée, lorsque les ressources sont disponibles, les instances déplacées sont de nouveau migrées en direct vers le domaine d'erreur sélectionné. Voir aussi getDisplacedInstances.

getForcedStoppedInstances

Répertorie toutes les instances qui ont été arrêtées au moyen de l'option force lors de l'opération de migration ou qui ont été arrêtées par le service de calcul en réponse à une interruption non planifiée.

PCA-ADMIN> getForcedStoppedInstances
Data:
 id                        displayName  compartmentId
 --                        -----------  -------------
 ocid1.instance.unique_ID  inst-name    ocid1.compartment.unique_ID

Dans l'interface utilisateur Web du service, cliquez sur le menu de navigation, cliquez sur Instances FD, puis sur Instances arrêtées forcées. Utilisez le menu Actions pour copier les OCID.

getDisplacedInstances

Répertorie les instances en cours d'exécution dans un domaine d'erreur qui n'est pas le domaine d'erreur sélectionné. Les instances qui ne sont pas en cours d'exécution ne sont pas affichées.

Dans l'exemple suivant, les instances en cours d'exécution sont migrées hors du domaine d'erreur 1. Une instance a été placée dans le domaine d'erreur 2 et une autre dans le domaine d'erreur 3.

PCA-ADMIN> getDisplacedInstances
Data:
 id                        displayName  compartmentId                faultDomain     faultDomainSelected
 --                        -----------  -------------                -----------     -------------------
 ocid1.instance.unique_ID  inst-name    ocid1.compartment.unique_ID  FAULT-DOMAIN-3  FAULT-DOMAIN-1
 ocid1.instance.unique_ID  inst-name    ocid1.compartment.unique_ID  FAULT-DOMAIN-2  FAULT-DOMAIN-1

Dans l'interface utilisateur Web du service, cliquez sur le menu de navigation, cliquez sur Instances FD, puis sur Instances déplacées. Utilisez le menu Actions pour copier les OCID.

Configurer l'état de récupération d'une instance arrêtée

Si le service de calcul a arrêté une instance, vous pouvez configurer comment celle-ci sera traitée lorsque les ressources seront de nouveau disponibles en définissant l'action de récupération de disponibilité d'instance et la propriété de récupération automatique du service de calcul.

Voir la description de la commande enableAutoRecoveryAction dans les commandes de configuration du service de calcul pour les raisons pour lesquelles une instance peut être arrêtée par le service de calcul. Voir aussi les descriptions de disableAutoRecoveryAction et getForcedStoppedInstances.

Lors du lancement de l'instance ou lors d'une mise à jour ultérieure de l'instance, définissez l'action de récupération d'instance dans la configuration de disponibilité de l'instance.

Dans l'interface utilisateur Web de calcul, voir la section "Configuration de la disponibilité" de la boîte de dialogue pour créer ou modifier une instance ou créer ou modifier une configuration d'instance. Pour redémarrer les instances qui ont été arrêtées par le service de calcul, cochez la case "Restaurer l'état du cycle de vie de l'instance après la maintenance de l'infrastructure". Il s'agit de la valeur par défaut. Pour arrêter les instances arrêtées, décochez la case "Restaurer l'instance".

Dans l'interface de ligne de commande OCI, utilisez l'option --availability-config ou la propriété availabilityConfig dans la commande launch ou update de l'instance de calcul ou la commande create ou update de la configuration d'instance. Réglez recoveryAction à RESTORE_INSTANCE ou STOP_INSTANCE. Le comportement par défaut est RESTORE_INSTANCE.

"availabilityConfig": {"recoveryAction": "STOP_INSTANCE"}

Activation de l'application stricte des domaines d'erreur

Pour activer l'application stricte d'un domaine d'erreur, effectuez l'une des opérations suivantes :

  • Dans l'interface utilisateur Web du service, cliquez sur le menu de navigation, cliquez sur Instances FD et cliquez sur Détails du service de calcul. Dans la page Compute Service Information, cliquez sur le menu Controls et cliquez sur Enable Strict FD.

  • Dans l'interface de ligne de commande du service, exécutez la commande enableStrictFD.

Pour plus d'informations sur les effets de l'application d'un domaine d'erreur, voir Commandes de configuration du service de calcul.

Si le domaine d'erreur courant ne dispose pas de suffisamment de ressources pour prendre en charge toutes les instances qui doivent être migrées, procédez de la façon suivante :

  • Si vous effectuez une évacuation planifiée du noeud de calcul, spécifiez l'option Forcer sur l'opération de migration pour arrêter les instances dans leur domaine d'erreur courant.

  • Exécutez la commande enableAutoRecoveryAction ou sélectionnez Activer la récupération automatique dans l'interface utilisateur Web du service.

  • Assurez-vous que l'action de récupération de disponibilité d'instance pour chaque instance est réglée à RESTORE_INSTANCE, qui est la valeur par défaut. Voir Configuration de l'état de récupération pour une instance arrêtée.

Voir l'exemple sous Évacuation d'un noeud de calcul.