Configurer la haute disponibilité dans le service Compute

Les administrateurs peuvent définir des paramètres pour contrôler la façon dont le service Compute 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 Compute affectent 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 Compute migre en direct toutes les instances en cours d'exécution vers d'autres noeuds de calcul du même domaine de pannes. Si ce scénario par défaut ne peut pas être exécuté, les paramètres de haute disponibilité, au niveau du service Compute et de l'instance individuelle, déterminent d'autres options pour migrer, arrêter et récupérer les instances de calcul concernées.

En cas de panne non planifiée d'un noeud de calcul, le service Compute arrête les instances et, si la panne persiste, tente d'évacuer le noeud de calcul en redémarrant les instances concernées sur d'autres noeuds de calcul. Cette forme automatisée de migration à froid est appelée migration au redémarrage.

Configuration haute disponibilité d'instance et de Compute Service

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

Le domaine de pannes sélectionné est le domaine de pannes spécifié dans la configuration d'instance. Une instance displaced se trouve dans un domaine de pannes qui n'est pas le domaine de pannes sélectionné.

Coupure de maintenance planifiée

Pour plus d'informations sur l'évacuation d'un noeud de calcul, reportez-vous à Opérations de maintenance de noeud de calcul. Si possible, le service Compute migre en direct les instances en cours d'exécution vers d'autres noeuds de calcul du même domaine de pannes. Cette section explique également comment utiliser l'action de récupération de la disponibilité de l'instance (définie sur chaque instance) et les propriétés de récupération automatique et de résolution automatique du service Compute lors de l'évacuation d'un noeud de calcul.

Coupures non programmées

Le service Compute tente d'arrêter des instances et de les migrer au redémarrage dans les conditions d'indisponibilité de noeud de calcul suivantes :

  • Mise hors tension à partir du statut HW

  • Impossible d'atteindre le réseau de données du noeud de calcul

Un noeud de calcul peut rencontrer une panne pendant laquelle le service Compute ne peut pas migrer les instances. Par exemple, si le service Compute ne peut pas atteindre le noeud de calcul du tout, il ne peut pas arrêter et redémarrer la migration des instances.

Coupure non planifiée inférieure à cinq minutes

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

Voulez-vous que le service Compute tente de redémarrer les instances en cours d'exécution avant la panne ? Il s'agit de la fonction 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 définie sur RESTORE_INSTANCE. Reportez-vous à 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 de pannes sélectionné, la récupération automatique continue d'interroger et de tenter de redémarrer les instances. Voir aussi getForcedStoppedInstances.

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

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

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

Coupure non planifiée de plus de cinq minutes

En cas d'interruption non planifiée, le service Compute arrête les instances concernées. Si la coupure dure plus de cinq minutes, le service Compute 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 de pannes sont migrées à nouveau vers d'autres domaines de pannes. Le comportement réel dépend de la configuration du service Compute. Le flux de décision suivant explique comment contrôler ce comportement.

Voulez-vous migrer les instances en cours d'exécution au redémarrage ? La migration au redémarrage s'arrête et démarre chaque instance en cours d'exécution sur un noeud de calcul donné. Reportez-vous également à Configuration haute disponibilité pour les instances Compute.

  • 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 de pannes, voulez-vous que ces instances soient migrées au redémarrage vers un autre domaine de pannes ?

    • Oui. Vérifiez que la fonction FD stricte est désactivée. Les instances qui ne peuvent pas être prises en charge dans un domaine de pannes restent arrêtées par le service Compute.

      Après la migration au redémarrage, voulez-vous que les instances en cours d'exécution dans un domaine de pannes qui n'est pas le domaine de pannes sélectionné soient automatiquement migrées en direct vers le domaine de pannes sélectionné lorsque les ressources sont disponibles ?

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

      • Non Désactiver la résolution automatique.

    • Non Activez la fonction FD stricte. Les instances qui étaient en cours d'exécution avant la panne et ne peuvent pas être migrées vers un autre noeud de calcul dans le domaine de pannes en cours restent arrêtées par le service Compute.

  • Non Désactivez la haute disponibilité de la machine virtuelle. Les instances qui étaient en cours d'exécution avant la coupure sont arrêtées par le service Compute.

Voulez-vous que les instances arrêtées par le service Compute soient automatiquement restaurées pour être exécutées dans le domaine de pannes sélectionné ? Si 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 définie sur RESTORE_INSTANCE. Reportez-vous à Configuration de l'état de récupération pour une instance arrêtée.

Affichage et définition de la configuration du service Compute

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

Utiliser l'interface utilisateur Web de service

Dans le menu de navigation, cliquez sur Instances FD, puis sur Calculer les détails du service.

La page Informations sur le service de calcul affiche les paramètres en cours 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 placement de domaine de pannes n'est pas strictement appliqué lorsque le service Compute migre des instances.

Utilisez le menu Controls de la page Compute Service Information pour modifier les valeurs de ces paramètres de configuration entre Enabled et Disabled.

Utilisation de la CLI de service

Utilisez la commande show computeservice pour afficher les paramètres de configuration actuels du service Compute. 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 répertorie toutes les commandes de configuration haute disponibilité dans le service Compute.

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 de pannes, exécutez la commande enableStrictFD.

Commandes de configuration du service Compute

Les commandes de la CLI de service pour la configuration HA du service Compute sont affichées dans la liste suivante. Pour accéder aux paramètres équivalents de l'interface utilisateur Web de service, cliquez sur le menu de navigation et sur Instances FD. Reportez-vous à Affichage et définition de la configuration du service Compute.

Dans ces descriptions, le domaine de pannes sélectionné est le domaine de pannes spécifié dans la configuration d'instance. Une instance displaced se trouve dans un domaine de pannes qui n'est pas le domaine de pannes sélectionné.

enableAutoRecoveryAction

Active le redémarrage automatique des instances arrêtées par le service Compute. Il s'agit de la fonction par défaut. Si l'action de récupération de la disponibilité de l'instance est définie sur RESTORE_INSTANCE, cette commande entraîne le redémarrage automatique des instances arrêtées par le service Compute dans le domaine de pannes sélectionné lorsque des ressources sont disponibles. Reportez-vous également à 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 Compute pour les raisons suivantes :

  • En raison de la spécification de l'option Forcer sur une opération de migration de toutes les opérations, certaines instances n'ont pas pu être migrées. Reportez-vous à Opérations de maintenance de noeud de calcul.

  • En raison d'une panne de noeud de calcul non planifiée.

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 Compute. Si l'action de récupération de la disponibilité de l'instance est définie sur 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 ensuite remplacée par RESTORE_INSTANCE, un passe de récupération automatique ultérieur redémarre 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 Compute ne sont pas automatiquement redémarrées lorsque des ressources sont disponibles.

enableAutoResolveDisplacedInstances

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

Vous pouvez définir cette configuration de résolution automatique à tout moment avant ou après une panne 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 vers le domaine de pannes sélectionné. Les instances qui ont été déplacées vers un autre domaine de pannes lors de l'évacuation du noeud de calcul restent dans le domaine de pannes vers lequel elles ont été déplacées.

enableVmHighAvailability

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

disableVmHighAvailability

Désactive la migration au redémarrage.

enableStrictFD

Active l'application stricte du domaine de pannes. 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 de pannes 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 de pannes. Il s'agit de la fonction par défaut. Pendant l'évacuation du noeud de calcul, toute instance qui ne peut pas être déplacée vers un autre noeud de calcul du même domaine de pannes est déplacée vers un autre domaine de pannes. Ce déplacement vers un autre domaine de pannes est temporaire si la propriété de résolution automatique du service Compute est activée : si la résolution automatique est activée, lorsque les ressources sont disponibles, les instances déplacées sont migrées en direct vers le domaine de pannes sélectionné. Voir aussi getDisplacedInstances.

getForcedStoppedInstances

Répertorie toutes les instances qui ont été arrêtées via l'option Forcer sur l'opération de migration ou qui ont été arrêtées par le service Compute en réponse à une coupure 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 de 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 de pannes qui n'est pas le domaine de pannes 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 de pannes 1. Une instance a été placée dans le domaine de pannes 2 et une autre dans le domaine de pannes 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 de 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 Compute a arrêté une instance, vous pouvez configurer le traitement de cette instance arrêtée lorsque les ressources sont à nouveau disponibles en définissant l'action de récupération de la disponibilité de l'instance et la propriété de récupération automatique du service Compute.

Reportez-vous à la description de la commande enableAutoRecoveryAction dans Commandes de configuration de service Compute pour connaître les raisons pour lesquelles une instance peut être arrêtée par le service Compute. Voir aussi les descriptions de disableAutoRecoveryAction et getForcedStoppedInstances.

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

Dans l'interface utilisateur Web de calcul, reportez-vous à la section Configuration de la disponibilité de la boîte de dialogue pour créer ou modifier une instance, ou pour créer ou modifier une configuration d'instance. Pour redémarrer les instances qui ont été arrêtées par le service Compute, cochez la case "Restaurer l'état de cycle de vie des instances après la maintenance de l'infrastructure". Il s'agit de la fonction par défaut. Pour que les instances arrêtées restent 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 d'instance de calcul launch ou update ou la commande de configuration d'instance create ou update. Définissez recoveryAction sur RESTORE_INSTANCE ou STOP_INSTANCE. Le comportement par défaut est RESTORE_INSTANCE.

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

Activation de l'application stricte de domaines de pannes

Pour activer l'application stricte du domaine de pannes, effectuez l'une des opérations suivantes :

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

  • Dans la CLI de service, exécutez la commande enableStrictFD.

Pour plus d'informations sur l'effet de l'application du domaine de pannes, reportez-vous à la section Compute Service Configuration Commands.

Si le domaine de pannes actuel ne dispose pas de suffisamment de ressources pour prendre en charge toutes les instances devant être migrées, procédez comme suit :

  • Si vous effectuez une évacuation de noeud de calcul planifiée, indiquez l'option Forcer l'opération de migration pour arrêter les instances dans leur domaine de pannes actuel.

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

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

Reportez-vous à l'exemple de la section Evacuating a Compute Node.