Afficher les erreurs du Service de contrôle d’intégrité

S’applique à : Azure Stack HCI, versions 23H2 et 22H2 ; Windows Server 2022, Windows Server 2019

Le Service de contrôle d’intégrité surveille en permanence votre cluster d’espaces de stockage direct pour détecter d’éventuels problèmes et générer des « erreurs ». Une nouvelle cmdlet permet d’afficher toutes les erreurs actuelles, ce qui vous permet de vérifier facilement l’intégrité de votre déploiement sans avoir à examiner chaque entité ou fonctionnalité une par une. Les erreurs sont conçues pour être précises, faciles à comprendre et exploitables.

Chaque erreur contient cinq champs importants :

  • Gravité
  • Description du problème
  • Étapes suivantes recommandées pour traiter le problème
  • Informations d’identification de l’entité défaillante
  • Son emplacement physique (si applicable)

Par exemple, voici une erreur type :

Severity: MINOR
Reason: Connectivity has been lost to the physical disk.
Recommendation: Check that the physical disk is working and properly connected.
Part: Manufacturer Contoso, Model XYZ9000, Serial 123456789
Location: Seattle DC, Rack B07, Node 4, Slot 11

Remarque

L’emplacement physique est dérivé de la configuration de votre domaine d’erreur. Pour plus d’informations sur les domaines d’erreur, consultez Détection des domaines d’erreur. Si vous ne fournissez pas ces informations, le champ d’emplacement est moins utile. Par exemple, il peut afficher uniquement le nombre d’emplacements.

Analyse de la cause racine

Le Service de contrôle d’intégrité peut évaluer la causalité potentielle parmi les entités défaillantes pour identifier et combiner des erreurs qui sont des conséquences du même problème sous-jacent. La reconnaissance d’un effet tel en chaîne permet d’écourter les rapports. Par exemple, si un serveur est en panne, on s’attend à ce que tous les disques du serveur soient privés de connectivité. Par conséquent, une seule erreur sera déclenchée pour la cause racine, dans ce cas, le serveur.

Utilisation dans PowerShell

Pour afficher les erreurs en cours dans PowerShell, exécutez la cmdlet suivante :

Get-HealthFault

Cela renvoie toutes les erreurs qui affectent l’ensemble du cluster Espaces de stockage direct. Le plus souvent, ces erreurs sont liées au matériel ou à la configuration. En l’absence d’erreurs, la cmdlet ne renvoie rien.

Remarque

Dans un environnement hors production et à vos risques et périls, vous pouvez essayer cette fonctionnalité en déclenchant vous-même des erreurs. Par exemple, vous pouvez le faire en supprimant un disque physique ou en arrêtant un nœud. Une fois l’erreur affichée, réinsérez le disque physique ou redémarrez le nœud pour faire disparaître l’erreur.

Utilisation dans .NET et C#

Cette section montre comment se connecter au Service de contrôle d’intégrité, utiliser des objets discover et exécuter des requêtes d’erreur.

Se connecter

Pour interroger le Service de contrôle d’intégrité, vous devez établir une CimSession avec le cluster. Pour ce faire, vous aurez besoin de certains éléments qui ne sont disponibles que dans Microsoft .NET complet, ce qui signifie que vous ne pouvez pas effectuer cette opération directement à partir d’une application Web ou mobile. Les exemples de code de cette section utilisent C#, le choix le plus simple pour cette couche d’accès aux données.

using System.Security;
using Microsoft.Management.Infrastructure;

public CimSession Connect(string Domain = "...", string Computer = "...", string Username = "...", string Password = "...")
{
    SecureString PasswordSecureString = new SecureString();
    foreach (char c in Password)
    {
        PasswordSecureString.AppendChar(c);
    }

    CimCredential Credentials = new CimCredential(
        PasswordAuthenticationMechanism.Default, Domain, Username, PasswordSecureString);
    WSManSessionOptions SessionOptions = new WSManSessionOptions();
    SessionOptions.AddDestinationCredentials(Credentials);
    Session = CimSession.Create(Computer, SessionOptions);
    return Session;
}

Le nom d’utilisateur fourni doit être un administrateur local de l’ordinateur cible.

Nous vous recommandons de construire la SecureString du mot de passe directement à partir de l’entrée utilisateur en temps réel, afin que le mot de passe ne soit jamais stocké en texte clair dans la mémoire. Cela permet d’atténuer un grand nombre de problèmes de sécurité. Toutefois, dans la pratique, il est courant de les construire comme indiqué ci-dessus à des fins de prototypage.

Détecter les objets

Une fois la CimSession établie, vous pouvez interroger Windows Management Instrumentation (WMI) sur le cluster.

Avant de pouvoir récupérer des erreurs ou des métriques, vous devez récupérer les instances de plusieurs objets pertinents. Tout d’abord, récupérez le MSFT_StorageSubSystem qui représente des espaces de stockage direct sur le cluster. Grâce à cela, vous pouvez récupérer chaque MSFT_StorageNode dans le cluster et chaque MSFT_Volume des volumes de données. Enfin, vous devez récupérer le MSCluster_ClusterHealthService, le Service de contrôle d’intégrité lui-même.

CimInstance Cluster;
List<CimInstance> Nodes;
List<CimInstance> Volumes;
CimInstance HealthService;

public void DiscoverObjects(CimSession Session)
{
    // Get MSFT_StorageSubSystem for Storage Spaces Direct
    Cluster = Session.QueryInstances(@"root\microsoft\windows\storage", "WQL", "SELECT * FROM MSFT_StorageSubSystem")
        .First(Instance => (Instance.CimInstanceProperties["FriendlyName"].Value.ToString()).Contains("Cluster"));

    // Get MSFT_StorageNode for each cluster node
    Nodes = Session.EnumerateAssociatedInstances(Cluster.CimSystemProperties.Namespace,
        Cluster, "MSFT_StorageSubSystemToStorageNode", null, "StorageSubSystem", "StorageNode").ToList();

    // Get MSFT_Volumes for each data volume
    Volumes = Session.EnumerateAssociatedInstances(Cluster.CimSystemProperties.Namespace,
        Cluster, "MSFT_StorageSubSystemToVolume", null, "StorageSubSystem", "Volume").ToList();

    // Get MSFT_StorageHealth itself
    HealthService = Session.EnumerateAssociatedInstances(Cluster.CimSystemProperties.Namespace,
        Cluster, "MSFT_StorageSubSystemToStorageHealth", null, "StorageSubSystem", "StorageHealth").First();
}

Ce sont les mêmes objets que ceux que vous recevez dans PowerShell avec des cmdlets, telles que Get-StorageSubSystem, Get-StorageNode et Get-Volume.

Vous pouvez accéder aux mêmes propriétés, documentées dans Classes d’API de gestion de stockage.

using System.Diagnostics;

foreach (CimInstance Node in Nodes)
{
    // For illustration, write each node's Name to the console. You could also write State (up/down), or anything else!
    Debug.WriteLine("Discovered Node " + Node.CimInstanceProperties["Name"].Value.ToString());
}

Erreurs de requête

Appelez Diagnose pour récupérer les erreurs actuelles étendues à la cible CimInstance, qui peut être le cluster ou n’importe quel volume.

La liste complète des erreurs disponibles à chaque étendue dans Windows Server 2019 est décrite plus loin dans la section Couverture.

public void GetFaults(CimSession Session, CimInstance Target)
{
    // Set Parameters (None)
    CimMethodParametersCollection FaultsParams = new CimMethodParametersCollection();
    // Invoke API
    CimMethodResult Result = Session.InvokeMethod(Target, "Diagnose", FaultsParams);
    IEnumerable<CimInstance> DiagnoseResults = (IEnumerable<CimInstance>)Result.OutParameters["DiagnoseResults"].Value;
    // Unpack
    if (DiagnoseResults != null)
    {
        foreach (CimInstance DiagnoseResult in DiagnoseResults)
        {
            // TODO: Whatever you want!
        }
    }
}

Facultatif : classe MyFault

Il peut être judicieux de construire et de conserver votre propre représentation des erreurs. Par exemple, la classe MyFault stocke plusieurs propriétés clés des erreurs, y compris FaultId, qui peuvent être utilisées ultérieurement pour associer des mises à jour, supprimer des notifications ou dédupliquer dans le cas où la même erreur est détectée plusieurs fois.

public class MyFault {
    public String FaultId { get; set; }
    public String Reason { get; set; }
    public String Severity { get; set; }
    public String Description { get; set; }
    public String Location { get; set; }

    // Constructor
    public MyFault(CimInstance DiagnoseResult)
    {
        CimKeyedCollection<CimProperty> Properties = DiagnoseResult.CimInstanceProperties;
        FaultId     = Properties["FaultId"                  ].Value.ToString();
        Reason      = Properties["Reason"                   ].Value.ToString();
        Severity    = Properties["PerceivedSeverity"        ].Value.ToString();
        Description = Properties["FaultingObjectDescription"].Value.ToString();
        Location    = Properties["FaultingObjectLocation"   ].Value.ToString();
    }
}
List<MyFault> Faults = new List<MyFault>;

foreach (CimInstance DiagnoseResult in DiagnoseResults)
{
    Faults.Add(new Fault(DiagnoseResult));
}

La liste complète des propriétés de chaque erreur (DiagnoseResult) est documentée plus loin dans la section Propriétés des erreurs.

Événements d’erreur

Lorsque des erreurs sont créées, supprimées ou mises à jour, le Service de contrôle d’intégrité génère des événements WMI. Ils sont essentiels pour assurer la synchronisation de l’état de votre application sans interrogation fréquente. Elles peuvent également vous aider à déterminer quand envoyer des alertes par e-mail, par exemple. Pour s’abonner à ces événements, l’exemple de code suivant utilise le modèle de conception observateur.

Tout d’abord, abonnez-vous aux événements MSFT_StorageFaultEvent.

public void ListenForFaultEvents()
{
    IObservable<CimSubscriptionResult> Events = Session.SubscribeAsync(
        @"root\microsoft\windows\storage", "WQL", "SELECT * FROM MSFT_StorageFaultEvent");
    // Subscribe the Observer
    FaultsObserver<CimSubscriptionResult> Observer = new FaultsObserver<CimSubscriptionResult>(this);
    IDisposable Disposeable = Events.Subscribe(Observer);
}

Implémentez ensuite un observateur dont la méthode OnNext() est appelée chaque fois qu’un nouvel événement est généré.

Chaque événement contient un ChangeType qui indique si une erreur est créée, supprimée ou mise à jour, ainsi que le FaultId approprié.

En outre, chaque événement contient toutes les propriétés de l’erreur elle-même.

class FaultsObserver : IObserver
{
    public void OnNext(T Event)
    {
        // Cast
        CimSubscriptionResult SubscriptionResult = Event as CimSubscriptionResult;

        if (SubscriptionResult != null)
        {
            // Unpack
            CimKeyedCollection<CimProperty> Properties = SubscriptionResult.Instance.CimInstanceProperties;
            String ChangeType = Properties["ChangeType"].Value.ToString();
            String FaultId = Properties["FaultId"].Value.ToString();

            // Create
            if (ChangeType == "0")
            {
                Fault MyNewFault = new MyFault(SubscriptionResult.Instance);
                // TODO: Whatever you want!
            }
            // Remove
            if (ChangeType == "1")
            {
                // TODO: Use FaultId to find and delete whatever representation you have...
            }
            // Update
            if (ChangeType == "2")
            {
                // TODO: Use FaultId to find and modify whatever representation you have...
            }
        }
    }
    public void OnError(Exception e)
    {
        // Handle Exceptions
    }
    public void OnCompleted()
    {
        // Nothing
    }
}

Comprendre le cycle de vie des erreurs

Les erreurs ne sont pas censées être marquées comme étant « visibles » ou résolues par l’utilisateur. Elles sont créées lorsque le Service de contrôle d’intégrité remarque un problème et elles sont supprimées automatiquement une fois qu’il ne voit plus le problème. En général, cela indique que le problème a été résolu.

Toutefois, dans certains cas, le Service de contrôle d’intégrité peut redécouvrir des erreurs par exemple après un basculement, une connectivité intermittente, etc. Pour cette raison, il peut être judicieux de conserver votre propre représentation des erreurs, afin que vous puissiez facilement les dédupliquer. Cela est particulièrement important si vous envoyez des alertes par e-mail ou équivalent.

Propriétés des erreurs

Le tableau suivant présente plusieurs propriétés clés de l’objet d’erreur. Pour le schéma complet, inspectez la classe MSFT_StorageDiagnoseResult dans storagewmi.mof.

Propriété Exemple
FaultId {12345-12345-12345-12345-12345}
FaultType Microsoft.Health.FaultType.Volume.Capacity
Motif « Le volume manque d'espace disponible ».
PerceivedSeverity 5
FaultingObjectDescription Contoso XYZ9000 S.N. 123456789
FaultingObjectLocation Rack A06, RU 25, emplacement 11
RecommendedActions {« Développez le volume », « Migrez les charges de travail vers d'autres volumes ».}

FaultId : ID unique dans l’étendue d’un cluster.

PerceivedSeverity : PerceivedSeverity = {4, 5, 6} = {« informatif », « avertissement » et « erreur »}, ou des couleurs équivalentes, telles que le bleu, le jaune et le rouge.

FaultingObjectDescription : informations de référence sur le matériel, généralement vide pour les objets logiciels.

FaultingObjectLocation : informations d’emplacement sur le matériel, généralement vide pour les objets logiciels.

RecommendedActions : liste des actions recommandées qui sont indépendantes et dans aucun ordre particulier. Aujourd’hui, cette liste est souvent de longueur 1.

Propriétés de l’événement d’erreur

Le tableau suivant présente plusieurs propriétés clés de l’événement d’erreur. Pour le schéma complet, inspectez la classe MSFT_StorageFaultEvent dans storagewmi.mof.

Notez le ChangeType qui indique si une erreur est créée, supprimée ou mise à jour, ainsi que le FaultId. Un événement contient également toutes les propriétés de l’erreur affectée.

Propriété Exemple
ChangeType 0
FaultId {12345-12345-12345-12345-12345}
FaultType Microsoft.Health.FaultType.Volume.Capacity
Motif « Le volume manque d'espace disponible ».
PerceivedSeverity 5
FaultingObjectDescription Contoso XYZ9000 S.N. 123456789
FaultingObjectLocation Rack A06, RU 25, emplacement 11
RecommendedActions {« Développez le volume », « Migrez les charges de travail vers d'autres volumes ».}

ChangeType ChangeType = {0, 1, 2} = { « Créer », « Supprimer », « Mettre à jour » }.

Couverture

Dans Windows Server 2019 et Azure Stack HCI, le Service de contrôle d’intégrité fournit la couverture d’erreur suivante :

PhysicalDisk (31)

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailedMedia

  • Gravité : avertissement
  • Raison : « Le disque physique a échoué ».
  • RecommendedAction : « Remplacez le disque physique ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.LostCommunication

  • Gravité : avertissement
  • Raison : « La connectivité au disque physique a été perdue ».
  • RecommendedAction : « Vérifiez que le disque physique fonctionne et qu'il est correctement connecté ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.Unresponsive

  • Gravité : avertissement
  • Raison : « Le disque physique présente une inactivité récurrente ».
  • RecommendedAction : « Remplacez le disque physique ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.PredictiveFailure

  • Gravité : avertissement
  • Raison : « Une défaillance du disque physique est censée se produire bientôt ».
  • RecommendedAction : « Remplacez le disque physique ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.UnsupportedHardware

  • Gravité : avertissement
  • Raison : « Le disque physique est mis en quarantaine, car il n’est pas pris en charge par votre fournisseur de solutions ».
  • RecommendedAction : « Remplacez le disque physique ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.UnsupportedFirmware

  • Gravité : avertissement
  • Raison : « Le disque physique est en quarantaine, car la version de son microprogramme n’est pas prise en charge par le fournisseur de votre solution ».
  • RecommendedAction : « Mettez à jour le microprogramme sur le disque physique avec la version cible ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.UnrecognizedMetadata

  • Gravité : avertissement
  • Raison : « Le disque physique contient des métadonnées non reconnues ».
  • RecommendedAction : « Ce disque peut contenir des données d’un pool de stockage inconnu. Tout d’abord, assurez-vous qu’il n’existe aucune donnée utile sur ce disque, puis réinitialisez le disque ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailedFirmwareUpdate

  • Gravité : avertissement
  • Raison : « Échec de la tentative de mise à jour du microprogramme sur le disque physique ».
  • RecommendedAction : « Essayez d’utiliser un autre binaire de microprogramme ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.SblFailedMedia

  • Gravité : avertissement
  • Raison : « Le lecteur a échoué ».
  • RecommendedAction : « Remplacez le disque ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.SblUnresponsive

  • Gravité : avertissement
  • Raison : « Le disque physique présente une inactivité récurrente ».
  • RecommendedAction : « Remplacez le disque physique ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureBadBlock

  • Gravité : avertissement
  • Raison : « Le lecteur a signalé des blocs incorrects lors des écritures. Un bloc occasionnellement incorrect est normal, mais un nombre trop important peut signifier que le lecteur est défectueux, endommagé ou commence à être en panne ».
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureBadBlockRead

  • Gravité : avertissement
  • Raison : « Le lecteur a signalé des blocs incorrects lors des lectures. Un bloc occasionnellement incorrect est normal, mais un nombre trop important peut signifier que le lecteur fonctionne mal, est endommagé ou devient défectueux ».
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureIoRetry

  • Gravité : avertissement
  • Raison : « Le lecteur a besoin de plusieurs tentatives de lecture ou d’écriture. Si ce problème persiste, cela peut signifier que le lecteur fonctionne mal, est endommagé ou devient défectueux ».
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

Remarque

Cette erreur est désactivée par défaut. Pour l’activer, définissez le paramètre d’intégrité System.Storage.PhysicalDisk.MarginalFailure.EventBased.IoRetry.Enabled sur true

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureIoFailure

  • Gravité : avertissement
  • Raison : « Le lecteur n’a pas réussi à lire ou à écrire. Si ce problème persiste, cela peut signifier que le lecteur fonctionne mal, est endommagé ou devient défectueux ».
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

Remarque

Cette erreur est désactivée par défaut. Pour l’activer, définissez le paramètre d’intégrité System.Storage.PhysicalDisk.MarginalFailure.EventBased.IoRetry.Enabled sur true

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureSmart

  • Gravité : avertissement
  • Raison : « Le lecteur a signalé les problèmes potentiels suivants à Windows à l’aide de la technologie de surveillance automatique, d’analyse et de création de rapports »
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureHighWear

  • Gravité : avertissement
  • Raison : « Le lecteur a atteint un pourcentage élevé de son endurance d’écriture. Le lecteur peut être en lecture seule, ce qui signifie qu’il ne peut pas effectuer d’autres écritures, lorsqu’il atteint 100 % de son endurance nominale. Consultez la feuille de données ou demandez au fabricant des informations supplémentaires sur l’évaluation de l’endurance et le comportement de la fin de vie ».
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.FailureReadOnly

  • Gravité : avertissement
  • Raison : « Le lecteur a atteint 100 % de son endurance d’écriture nominale et est maintenant en lecture seule, ce qui signifie qu’il ne peut pas effectuer d’autres écritures. Les disques SSD s’usent après un certain nombre d’écritures, en fonction de l’endurance nominale du lecteur. Pour plus d’informations, consultez les spécifications des lecteurs ou demandez au fabricant l’endurance nominale et le comportement de la fin de vie du lecteur. »
  • RecommendedAction : « Si cette situation persiste ou si vous observez une baisse des performances, envisagez de remplacer le lecteur ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.HighLatency.SlowestIO

  • Gravité : avertissement
  • Raison : « Le lecteur a une latence maximale élevée ».
  • RecommendedAction : « Surveillez les performances du lecteur et envisagez de le remplacer ».

Remarque

Cette erreur est désactivée par défaut. Pour l’activer, définissez le paramètre d’intégrité System.Storage.PhysicalDisk.HighLatency.Threshold.Tail.Enabled sur true

FaultType : Microsoft.Health.FaultType.PhysicalDisk.HighLatency.AverageIO

  • Gravité : avertissement
  • Raison : « Le lecteur a une latence moyenne élevée ».
  • RecommendedAction : « Surveillez les performances du lecteur et envisagez de le remplacer ».

Remarque

Cette erreur est désactivée par défaut. Pour l’activer, définissez le paramètre d’intégrité System.Storage.PhysicalDisk.HighLatency.Threshold.Tail.Enabled sur true

FaultType : Microsoft.Health.FaultType.PhysicalDisk.HighLatency.Outlier.AverageIO

  • Gravité : avertissement
  • Raison : « Le lecteur a une latence moyenne élevée ».
  • RecommendedAction : « Surveillez les performances du lecteur et envisagez de le remplacer ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.HighLatency.Outlier.SlowestIO

  • Gravité : avertissement
  • Raison : « Le lecteur a une latence maximale élevée ».
  • RecommendedAction : « Surveillez les performances du lecteur et envisagez de le remplacer ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.HighErrorCount.AverageIO

  • Gravité : avertissement
  • Raison : « Le lecteur comporte un nombre élevé d’erreurs ».
  • RecommendedAction : « Surveillez les performances du lecteur et envisagez de le remplacer ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.HighErrorCount.Outlier.AverageIO

  • Gravité : avertissement
  • Raison : « Le lecteur comporte un nombre élevé d’erreurs ».
  • RecommendedAction : « Surveillez les performances du lecteur et envisagez de le remplacer ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.CacheReadOnly

  • Gravité : avertissement
  • Raison : « Le disque du cache a échoué dans certaines opérations de lecture ou d'écriture. Pour protéger vos données, nous les avons déplacées sur des lecteurs de grande capacité ».
  • RecommendedAction : « Remplacez le lecteur ou essayez de l’effacer et de le réinitialiser ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.CacheReadOnly.Draining

  • Gravité : avertissement
  • Raison : « Le disque du cache a échoué dans certaines opérations de lecture ou d'écriture. Pour protéger vos données, nous avons cessé l'écriture sur le lecteur et nous essayons de déplacer ses données sur des lecteurs de grande capacité ».
  • RecommendedAction : « Veuillez patienter pendant que nous déplaçons les données ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.CacheReadOnly.FailedDrain

  • Gravité : avertissement
  • Raison : « Impossible de lire certaines données du disque du cache, nous ne pouvons pas les déplacer sur des lecteurs de grande capacité ».
  • RecommendedAction : « Remplacez le disque ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.SedEncKey.RotationFailure

  • Gravité : avertissement
  • Raison : « Échec de la tentative de rotation de la clé de chiffrement SED vers la nouvelle valeur par défaut ».
  • RecommendedAction : « Vérifiez que le lecteur fonctionne correctement et qu’il est correctement connecté. Si le lecteur a échoué, remplacez-le. Redémarrez la rotation de la clé de chiffrement SED une fois que le lecteur est sain ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.SedEncKey.NotDefault

  • Gravité : avertissement
  • Raison : « Le disque physique a une clé de chiffrement SED, mais il ne correspond pas à la clé par défaut actuelle ».
  • RecommendedAction : « Lancez la rotation des clés de chiffrement SED ».

FaultType : Microsoft.Health.FaultType.PhysicalDisk.SedEncKey.NotDefined

  • Gravité : avertissement
  • Raison : « Il n’existe aucune clé de chiffrement SED définie par défaut pour le lecteur ».
  • RecommendedAction : « Définissez une clé de chiffrement SED par défaut ».

FaultType : Microsoft.Health.FaultType.StorageScaleUnit.SedEncKey.RotationTimeout

  • Gravité : avertissement
  • Raison : « Échec de la rotation de la clé de chiffrement SED sur le serveur avant l’expiration du délai d’attente »
  • RecommendedAction : « Assurez-vous que le serveur est accessible et que tous les disques physiques sont sains »

FaultType : Microsoft.Health.FaultType.PhysicalDisk.DriveArriveFailure

  • Gravité : avertissement
  • Raison : « Le disque physique ne répond pas aux requêtes ».
  • RecommendedAction : « Veuillez valider la fiabilité du réseau. Si le problème persiste, envisagez de remplacer l’appareil ».

Disque virtuel (3)

FaultType : Microsoft.Health.FaultType.VirtualDisks.NeedsRepair

  • Gravité : Informatif
  • Raison : « Certaines données de ce volume ne sont pas complètement résilientes. Elles restent accessibles ».
  • RecommendedAction : « Restauration de la résilience des données ».

FaultType : Microsoft.Health.FaultType.VirtualDisks.Detached

  • Gravité : Critique
  • Raison : « Le volume est inaccessible. Certaines données peuvent être perdues ».
  • RecommendedAction : « Vérifiez la connectivité physique et/ou réseau de tous les périphériques de stockage. Vous devrez peut-être effectuer une restauration à partir d’une sauvegarde ».

FaultType : Microsoft.Health.FaultType.VirtualDisks.NoRedundancy

  • Gravité : Critique
  • Raison : « Toutes les copies de données ne sont pas disponibles pour une région de disque virtuel. La charge de travail peut être interrompue et des échecs d’E/S peuvent être observés ».
  • RecommendedAction : « Si une opération de maintenance est en cours, interrompez-la et restaurez l’accès à l’ensemble du stockage jusqu’à ce que le stockage se stabilise ».

Capacité du pool (2)

FaultType : Microsoft.Health.FaultType.StoragePool.TransactionAndCleanupFailure

  • Gravité : avertissement
  • Raison : « Le pool de stockage ne peut pas écrire dans un quorum de périphériques de métadonnées. La charge de travail peut être interrompue et des échecs d’E/S peuvent être observés ».
  • RecommendedAction : « Si une opération de maintenance est en cours, interrompez-la et restaurez l’accès à l’ensemble du stockage jusqu’à ce que le stockage se stabilise ».

FaultType : Microsoft.Health.FaultType.StoragePool.PoolCapacityThresholdExceeded

  • Gravité : avertissement
  • Raison : « La capacité du pool de stockage est insuffisante ».
  • RecommendedAction : « Ajoutez de la capacité supplémentaire au pool de stockage ou libérez de la capacité ».

Capacité du volume (5)1

FaultType : Microsoft.Health.FaultType.Volume.Capacity

  • Gravité : avertissement
  • Raison : « Le volume manque d'espace disponible ».
  • RecommendedAction : « Développez le volume ou migrez les charges de travail vers d'autres volumes ».

FaultType : Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Correctable

  • Gravité : avertissement
  • Raison : « Le système de fichiers a détecté une erreur de somme de contrôle et a pu le corriger ».
  • RecommendedAction : « Lancez l’analyse de l’intégrité des données à partir du planificateur de tâches, le stockage est peut-être incorrect. Si une opération de mise à jour ou de maintenance est en cours, arrêtez-la immédiatement. Vous devrez peut-être effectuer une restauration à partir de la sauvegarde ».

FaultType : Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Uncorrectable

  • Gravité : avertissement
  • Raison : « Le système de fichiers a détecté une erreur de somme de contrôle et n’a pas pu la corriger ».
  • RecommendedAction : « Lancez l’analyse de l’intégrité des données à partir du planificateur de tâches, le stockage est peut-être incorrect. Si une opération de mise à jour ou de maintenance est en cours, arrêtez-la immédiatement. Vous devrez peut-être effectuer une restauration à partir de la sauvegarde ».

FaultType : Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Uncorrectable.DataRemoved

  • Gravité : avertissement
  • Raison : « Le système de fichiers a détecté une corruption sur un fichier ou un dossier. Le fichier ou le dossier a été supprimé de l’espace de noms du système de fichiers ».
  • RecommendedAction : « Lancez l’analyse de l’intégrité des données à partir du planificateur de tâches, le stockage est peut-être incorrect. Si une opération de mise à jour ou de maintenance est en cours, arrêtez-la immédiatement. Vous devrez peut-être effectuer une restauration à partir de la sauvegarde ».

FaultType : Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Uncorrectable.DataRemovalFailure

  • Gravité : avertissement
  • Raison : « Le système de fichiers a détecté une corruption sur un fichier ou un dossier. Le système de fichier n’a pas pu le supprimer de l’espace de noms du système de fichiers ».
  • RecommendedAction : « Lancez l’analyse de l’intégrité des données à partir du planificateur de tâches, le stockage est peut-être incorrect. Si une opération de mise à jour ou de maintenance est en cours, arrêtez-la immédiatement. Vous devrez peut-être effectuer une restauration à partir de la sauvegarde ».

Serveur (12)

FaultType : Microsoft.Health.FaultType.Server.Down

  • Gravité : Critique
  • Raison : « Le serveur n’est pas accessible .»
  • RecommendedAction : « Démarrez ou remplacez le serveur ».

FaultType : Microsoft.Health.FaultType.Server.Isolated

  • Gravité : Critique
  • Raison : « Le serveur est isolé du cluster en raison de problèmes de connectivité ».
  • RecommendedAction « Si l'isolation persiste, vérifiez le ou les réseaux, ou migrez les charges de travail vers d'autres nœuds ».

FaultType : Microsoft.Health.FaultType.Server.Quarantined

  • Gravité : Critique
  • Raison : « Le serveur est mis en quarantaine par le cluster en raison d’échecs récurrents ».
  • RecommendedAction : « Remplacez le serveur ou corrigez le réseau ».

FaultType : Microsoft.Health.FaultType.Server.Temperature

  • Gravité : avertissement
  • Raison : « Le capteur de température du serveur a généré un avertissement ».
  • RecommendedAction : « Vérifiez la température du serveur ».

FaultType : Microsoft.Health.FaultType.Server.Storage.Degraded

  • Gravité : avertissement
  • Raison : « Le serveur dispose d’un stockage qui n’est pas complet ou à jour. Par conséquent, nous devons le synchroniser avec les données d’autres serveurs du cluster. Ceci est normal après le redémarrage d’un serveur ou l’échec d’un lecteur ».
  • RecommendedAction : « Patientez pendant que nous synchronisons le stockage. Ne supprimez pas de lecteurs ou ne redémarrez aucun serveur du cluster tant que nous n’avons pas confirmé que la synchronisation est terminée ».

FaultType : Microsoft.Health.FaultType.Node.CPUOverloaded

  • Gravité : avertissement
  • Raison : « L’utilisation du processeur du serveur est toujours supérieure au seuil ».
  • RecommendedAction : « Déplacez les machines virtuelles vers d’autres serveurs avec une utilisation moindre de l’UC, ou envisagez d’ajouter une capacité de calcul supplémentaire au cluster (généralement en ajoutant des serveurs) ».

FaultType : Microsoft.Health.FaultType.Node.VCPUToLCPU

  • Gravité : avertissement
  • Raison : « Le rapport entre les processeurs virtuels et les processeurs logiques (threads) sur ce serveur a dépassé le seuil configuré ».
  • RecommendedAction : « Déplacez les machines virtuelles vers un autre serveur avec une utilisation moindre de l’UC, ou envisagez d’ajouter une capacité de calcul supplémentaire au cluster ».

FaultType : Microsoft.Health.FaultType.Node.LowFreeRam

  • Gravité : avertissement
  • Raison : « La mémoire disponible est inférieure à votre seuil configuré ».
  • RecommendedAction : « Déplacez les machines virtuelles vers un autre serveur avec une utilisation moindre de l’UC, ou envisagez d’ajouter une capacité de calcul supplémentaire au cluster ».

FaultType : Microsoft.Health.FaultType.Node.HighRootPartitionMemoryUsage

  • Gravité : avertissement
  • Raison : « Windows Server utilise beaucoup de mémoire physique, ce qui dépasse le seuil configuré ».
  • RecommendedAction : « Vérifiez si des processus ou des applications consomment trop de mémoire, déplacez des machines virtuelles vers d’autres serveurs ou ajoutez de la mémoire aux serveurs ».

FaultType : Microsoft.Health.FaultType.Node.TooHighCpuReservation

  • Gravité : avertissement
  • Raison : « La réservation d’UC combinée des machines virtuelles sur ce serveur dépasse le seuil configuré ».
  • RecommendedAction : « Envisagez de déplacer des machines virtuelles ou de réduire leurs réservations d’UC ».

FaultType : Microsoft.Health.FaultType.Node.TooHighMemoryUseAfterReclamation

  • Gravité : avertissement
  • Raison : « L’affectation de mémoire combinée des machines virtuelles sur ce serveur dépasse le seuil configuré ».
  • RecommendedAction : « Envisagez de déplacer des machines virtuelles ou de réduire leur mémoire affectée ».

FaultType : Microsoft.Health.FaultType.Node.SustainedHighCpuUsage

  • Gravité : avertissement
  • Raison : « Le serveur a une utilisation du processeur toujours supérieure au seuil ».
  • RecommendedAction : « Déplacez les machines virtuelles vers un autre serveur avec une utilisation moindre de l’UC, ou envisagez d’ajouter de la capacité de calcul ».

Cluster (6)

FaultType : Microsoft.Health.FaultType.ClusterQuorumWitness.Error

  • Gravité : Critique
  • Raison : « Le cluster tombera en panne si le serveur tombe en panne ».
  • RecommendedAction : « Vérifiez la ressource témoin, puis redémarrez si nécessaire. Démarrez ou remplacez les serveurs défaillants ».

FaultType : Microsoft.Health.FaultType.Cluster.ValidationReport.Failed

  • Gravité : Critique
  • Raison : « La validation du cluster a rencontré des problèmes ».
  • RecommendedAction : « La validation du cluster a détecté des erreurs dans certaines catégories de tests. Consultez le rapport de validation du cluster ».

FaultType : Microsoft.Health.FaultType.Cluster.ValidationReportDcb.Failed

  • Gravité : Critique
  • Raison : « Validate-DCB a détecté des problèmes ».
  • RecommendedAction : « Validate-DCB a détecté des erreurs réseau. Consultez le rapport de validation DCB ».

FaultType : Microsoft.Health.FaultType.Cluster.TooHighCpuReservation

  • Gravité : Critique
  • Raison : « La réservation d’UC combinée des machines virtuelles sur ce serveur dépasse le seuil configuré ».
  • RecommendedAction : « Envisagez de déplacer des machines virtuelles ou de réduire leurs réservations d’UC ».

FaultType : Microsoft.Health.FaultType.Cluster.TooHighMemoryUseAfterReclamation

  • Gravité : Critique
  • Raison : « L’affectation de mémoire combinée des machines virtuelles sur ce serveur dépasse le seuil configuré ».
  • RecommendedAction : « Envisagez de déplacer des machines virtuelles ou de réduire leur mémoire affectée ».

FaultType : Microsoft.Health.FaultType.Cluster.SustainedHighCpuUsage

  • Gravité : Critique
  • Raison : « Le serveur a une utilisation du processeur toujours supérieure au seuil ».
  • RecommendedAction : « Déplacez les machines virtuelles vers un autre serveur avec une utilisation moindre de l’UC, ou envisagez d’ajouter de la capacité de calcul ».

Carte réseau/interface (6)

FaultType : Microsoft.Health.FaultType.NetworkAdapter.Disconnected

  • Gravité : avertissement
  • Raison : « L’interface réseau a été déconnectée ».
  • RecommendedAction : « Reconnectez le câble réseau ».

FaultType : Microsoft.Health.FaultType.NetworkInterface.Missing

  • Gravité : avertissement
  • Raison : « Le serveur {server} n’a pas de carte réseau connectée au réseau de cluster {cluster network} ».
  • RecommendedAction : « Connectez le serveur au réseau de cluster manquant ».

FaultType : Microsoft.Health.FaultType.NetworkAdapter.Hardware

  • Gravité : avertissement
  • Raison : « L’interface réseau a rencontré une défaillance matérielle ».
  • RecommendedAction : « Remplacez la carte d’interface réseau ».

FaultType : Microsoft.Health.FaultType.NetworkAdapter.Disabled

  • Gravité : avertissement
  • Raison : « L’interface réseau {network interface} n’est pas activée et n’est pas utilisée ».
  • RecommendedAction : « Activez l’interface réseau ».

FaultType: Microsoft.Health.FaultType.StorageSubsystem.RDMA.Alert

  • Gravité : avertissement
  • Raison : « Le cluster a détecté des problèmes de connectivité réseau qui empêchent les espaces de stockage direct de fonctionner correctement ».
  • RecommendedAction : Vérifiez que votre réseau est correctement configuré et qu’il fonctionne. Si vous utilisez RDMA Over Converged Ethernet (RoCE), vérifiez que Data Center Bridging (DCB), ETS (Enhanced Transmission Service) et Priority Flow Control (PFC) sont configurés correctement et de manière cohérente sur chaque nœud de cluster et commutateur physique. Si vous ne savez pas comment procéder, demandez à votre fournisseur ou à une personne de confiance de vous aider ».

FaultType : Microsoft. Health. FaultType. StorageSubsystem. RDMA. Alert

  • Gravité : avertissement
  • Raison : « Le cluster a détecté des problèmes de connectivité réseau qui empêchent les espaces de stockage direct de fonctionner correctement. Pour garantir la cohérence des performances et de la sécurité des données, les espaces de stockage direct ont cessé d’utiliser l’accès direct à la mémoire à distance (RDMA) même si du matériel compatible RDMA est présent et activé. Le trafic de stockage continue à circuler, mais avec des performances réduites à l’aide de TCP/IP »
  • RecommendedAction : Vérifiez que votre réseau est correctement configuré et qu’il fonctionne, puis réactivez le RDMA. Si vous utilisez RDMA Over Converged Ethernet (RoCE), vérifiez que Data Center Bridging (DCB), ETS (Enhanced Transmission Service) et Priority Flow Control (PFC) sont configurés correctement et de manière cohérente sur chaque nœud de cluster et commutateur physique. Si vous ne savez pas comment procéder, demandez à votre fournisseur ou à une personne de confiance de vous aider ».

Boîtier (6)

FaultType : Microsoft.Health.FaultType.StorageEnclosure.LostCommunication

  • Gravité : avertissement
  • Raison : « La communication a été perdue dans le boîtier de stockage ».
  • RecommendedAction : « Démarrez ou remplacez le boîtier de stockage ».

FaultType : Microsoft.Health.FaultType.StorageEnclosure.FanError

  • Gravité : avertissement
  • Raison : « Le ventilateur à la position {position} du boîtier de stockage est en panne ».
  • RecommendedAction : « Remplacez le boîtier de stockage ».

FaultType : Microsoft.Health.FaultType.StorageEnclosure.CurrentSensorError

  • Gravité : avertissement
  • Raison : « Le capteur actuel à la position {position} du boîtier de stockage est en panne ».
  • RecommendedAction : « Remplacez le capteur actuel dans le boîtier de stockage ».

FaultType : Microsoft.Health.FaultType.StorageEnclosure.VoltageSensorError

  • Gravité : avertissement
  • Raison : « Le capteur de tension à la position {position} du boîtier de stockage est en panne ».
  • RecommendedAction : « Remplacez le capteur de tension dans le boîtier de stockage ».

FaultType : Microsoft.Health.FaultType.StorageEnclosure.IoControllerError

  • Gravité : avertissement
  • Raison : « Le contrôleur d’E/S à la position {position} du boîtier de stockage est en panne ».
  • RecommendedAction : « Remplacez le contrôleur d’E/S dans le boîtier de stockage ».

FaultType : Microsoft.Health.FaultType.StorageEnclosure.TemperatureSensorError

  • Gravité : avertissement
  • Raison : « Le capteur de température à la position {position} du boîtier de stockage est en panne ».
  • RecommendedAction : « Remplacez le capteur de tension dans le boîtier de stockage ».

Déploiement du microprogramme (3)

FaultType : Microsoft.Health.FaultType.FaultDomain.FailedMaintenanceMode

  • Gravité : avertissement
  • Raison : « Impossible d’effectuer l’opération en cours lors du déploiement du microprogramme ».
  • RecommendedAction : « Vérifiez que tous les espaces de stockage sont sains et qu'aucun domaine d'erreur n'est actuellement en mode maintenance ».

FaultType : Microsoft.Health.FaultType.FaultDomain.FirmwareVerifyVersionFailed

  • Gravité : avertissement
  • Raison : « Le déploiement du microprogramme a été annulé en raison d’informations de version du microprogramme illisibles ou inaccessibles après l’application d’une mise à jour du microprogramme ».
  • RecommendedAction : « Redémarrez le déploiement du microprogramme une fois que le problème du microprogramme a été résolu ».

FaultType : Microsoft.Health.FaultType.FaultDomain.TooManyFailedUpdates

  • Gravité : avertissement
  • Raison : « Le déploiement du microprogramme a été annulé en raison d’un trop grand nombre de disques physiques ayant échoué lors d’une tentative de mise à jour du microprogramme ».
  • RecommendedAction : « Redémarrez le déploiement du microprogramme une fois que le problème du microprogramme a été résolu ».

Qualité de service de stockage (3)2

FaultType : Microsoft.Health.FaultType.StorQos.InsufficientThroughput

  • Gravité : avertissement
  • Raison : « Le débit de stockage est insuffisant pour satisfaire les réserves ».
  • RecommendedAction : « Reconfigurez les stratégies de qualité de service de stockage ».

FaultType : Microsoft.Health.FaultType.StorQos.LostCommunication

  • Gravité : avertissement
  • Raison : « Le gestionnaire de stratégie de qualité de service de stockage a perdu la communication avec le volume ».
  • RecommendedAction : « Veuillez redémarrer les nœuds {nodes} »

FaultType : Microsoft.Health.FaultType.StorQos.MisconfiguredFlow

  • Gravité : avertissement
  • Raison : « Un ou plusieurs consommateurs de stockage (généralement des machines virtuelles) utilisent une stratégie inexistante avec l’ID {id} ».
  • RecommendedAction : « Recréez toutes les stratégies de qualité de service de stockage manquantes ».

VM/VHD (7)

FaultType : Microsoft.Health.FaultType.Vm.BadHealthState

  • Gravité : avertissement
  • Raison : « L’état d’intégrité de la machine virtuelle n’est pas bon ».
  • RecommendedAction : « Résolvez les problèmes de la machine virtuelle ».

FaultType : Microsoft.Health.FaultType.Vm.BadOperationalStatus

  • Gravité : avertissement
  • Raison : « L’état opérationnel de la machine virtuelle n’est pas bon ».
  • RecommendedAction : « Résolvez les problèmes de la machine virtuelle ».

FaultType : Microsoft.Health.FaultType.Vm.GuestUnhealthy

  • Gravité : avertissement
  • Raison : « Le système d’exploitation invité de la machine virtuelle signale un état non sain ».
  • RecommendedAction : « Résolvez les problèmes de la machine virtuelle ».

FaultType : Microsoft.Health.FaultType.Vm.ConfigIsOffline

  • Gravité : avertissement
  • Raison : « La ressource de configuration de la machine virtuelle est hors connexion, ce qui signifie que la machine virtuelle ne peut pas être administrée ».
  • RecommendedAction : « Mettez la configuration de la machine virtuelle en ligne ».

FaultType : Microsoft.Health.FaultType.Vm.NotRespondingToControlCodes

  • Gravité : avertissement
  • Raison : « La machine virtuelle ne répond pas aux codes de contrôle du cluster ».
  • RecommendedAction : « Vérifiez l’état de la ressource de cluster de la machine virtuelle ».

FaultType : Microsoft.Health.FaultType.Vm.IsNearMemoryLimit

  • Gravité : avertissement
  • Raison : « La machine virtuelle a besoin d’une plus grande quantité de mémoire configurée ».
  • RecommendedAction : « Vérifiez si des processus ou des applications consomment trop de mémoire ou envisagez d’améliorer la mémoire maximale ».

FaultType : Microsoft.Health.FaultType.Vhd.IsNearlyFull

  • Gravité : avertissement
  • Raison : « Le disque dur virtuel a atteint sa capacité maximale. Aucune donnée ne peut être écrite dans celui-ci, ce qui peut avoir un impact négatif sur la ou les machines virtuelles ».
  • RecommendedAction : « Redimensionnez le disque dur virtuel ou supprimez les fichiers inutiles ».

1 Indique que le volume a atteint un remplissage à 80 % (gravité mineure) ou à 90 % (gravité majeure). 2 Indique qu’un ou plusieurs disques durs virtuels sur le volume n’ont pas atteint leur nombre d’E/S par seconde minimum pendant plus de 10 % (mineur), 30 % (majeur) ou 50 % (critique) d’une fenêtre de 24 heures.

Remarque

L’intégrité des composants du boîtier de stockage tels que les ventilateurs, blocs d’alimentations et capteurs est dérivée des services de boîtier SCSI. Si votre fournisseur ne fournit pas ces informations, le service de contrôle d’intégrité ne peut pas les afficher.

Références supplémentaires