Gérer les erreurs d'hôte pour les charges de travail SAP sur Google Cloud

Ce document explique comment détecter les erreurs matérielles de l'hôte sur Google Cloud et les protéger de vos charges de travail SAP.

Google Cloud n'est pas à l'abri des pannes matérielles. Bien que plusieurs niveaux de redondance existent, des erreurs matérielles peuvent se produire, ce qui entraîne l'arrêt de vos instances Compute Engine.

Les erreurs matérielles de l'hôte peuvent avoir plusieurs causes, car le matériel du serveur et ses composants associés comportent de nombreuses pièces susceptibles de tomber en panne. Les types de machines à mémoire optimisée, en particulier, comportent un grand nombre de modules de mémoire, ce qui peut augmenter la probabilité que les défaillances matérielles soient liées à la mémoire. Il existe deux types de défaillances liées à la mémoire:

  • Erreurs de mémoire corrigibles: ce sont les erreurs qui peuvent être corrigées par des mécanismes matériels et logiciels intégrés, tels que la mémoire ECC (Error Correction Code). Ces erreurs n'ont aucun impact sur l'instance Compute Engine exécutée sur l'hôte. Ils sont gérés de manière transparente par des mécanismes matériels et logiciels.

  • Erreurs de mémoire non corrigibles: il s'agit d'erreurs qui ne peuvent pas être corrigées. Elles sont rares, aléatoires et imprévisibles. Toute tentative d'accès à la zone de mémoire affectée génère un signal envoyé à l'OS, ce qui entraîne l'arrêt de l'instance Compute Engine ou une exception de vérification de l'état de la machine (MCE) transmise à l'instance. Lorsqu'une application sur l'instance Compute Engine tente de lire des données à partir de la zone de mémoire non corrigible affectée, elle consomme ce signal et s'arrête. Lorsque l'OS d'une instance Compute Engine reçoit ce signal, il empêche par défaut la réallocation des pages mémoire concernées pour éviter toute utilisation ultérieure.

Détecter les erreurs de l'hôte

Pour détecter les erreurs de l'hôte, configurez des règles d'alerte basées sur les journaux qui utilisent les requêtes Compute Engine prédéfinies suivantes:

Nom de la requête/du filtre Description
Erreur d'hôte Compute Engine (compute.instances.hostError) Une erreur d'hôte indique qu'une erreur matérielle s'est produite et que l'instance Compute Engine doit être arrêtée.
Alerte de mémoire hôte Compute Engine (compute.instances.hostEventNotify) Une alerte de mémoire hôte indique un type d'erreur matérielle associée aux modules de mémoire. Ces erreurs peuvent être dues à des défaillances de composants permanentes au fil du temps ou à des événements transitoires causés par des particules à haute énergie ou des rayons cosmiques qui empêchent la récupération sécurisée d'une page de mémoire.

Protéger vos charges de travail SAP contre les erreurs de l'hôte

Pour protéger vos charges de travail SAP contre les erreurs d'hôte, nous vous recommandons les mesures suivantes:

  • Assurez-vous que le redémarrage automatique est défini pour vos instances Compute Engine.

    Compute Engine active cette option pour toutes les instances par défaut. Nous vous recommandons de ne pas désactiver cette fonctionnalité.

  • Pour protéger vos charges de travail SAP HANA et SAP NetWeaver contre les défaillances d'une seule instance, déployez-les avec une configuration haute disponibilité (HA).

    Pour en savoir plus, consultez les guides suivants :

  • Pour éviter que vos charges de travail SAP HANA ne soient affectées par l'arrêt de tout processus SAP HANA, implémentez les hooks de fournisseur HA/DR SAP HANA et activez l'option Fast Restart de SAP HANA.

    Pour savoir comment procéder, consultez le guide de déploiement correspondant à votre scénario SAP HANA dans la section Tous les guides SAP HANA.

  • Pour protéger vos charges de travail SAP HANA contre les erreurs de mémoire détectées par les événements Alerte de mémoire hôte Compute Engine (compute.instances.host_event_notify) pour les types de machines M2, M3 ou M4, procédez comme suit:

    • Si la VM ne peut pas gérer l'erreur non corrigible, elle est automatiquement redémarrée en raison de la règle de redémarrage automatique. Dans un cluster à haute disponibilité, le nœud secondaire prend automatiquement le relais. Aucune autre action n'est requise.

    • Si l'erreur de mémoire irrécupérable peut être gérée par la VM et ne provoque pas de plantage de la VM, procédez comme suit:

      1. Si l'instance concernée est le nœud principal actuel de votre cluster HA, lancez un basculement manuel vers le nœud secondaire de votre cluster.

      2. Arrêtez l'instance concernée pour libérer les pages de mémoire virtuelle affectées par l'événement d'erreur de l'hôte.

        Bien que Compute Engine migre automatiquement les VM concernées vers un hôte sain lors de ces événements, certaines pages de mémoire peuvent rester inaccessibles. Si votre charge de travail SAP HANA tente de lire les pages de mémoire concernées pour la première fois après l'erreur de mémoire, elle échoue et se termine. En arrêtant l'instance, vous libérez les pages de mémoire virtuelle affectées qui pourraient rester de l'erreur matérielle initiale.

      3. Démarrez l'instance concernée.

      Si vous ne parvenez pas à arrêter et à démarrer la VM concernée, les applications qui s'exécutent dessus peuvent continuer à fonctionner jusqu'à ce qu'elles puissent lire les pages de mémoire concernées, ce qui peut prendre plusieurs heures. Redémarrez la VM concernée dès que possible pour libérer les pages de mémoire concernées.