Visualización de los errores del Servicio de mantenimiento
Se aplica a: Azure Stack HCI, versiones 23H2 y 22H2; Windows Server 2022, Windows Server 2019
El Servicio de mantenimiento supervisa constantemente el clúster de Espacios de almacenamiento directo para detectar problemas y generar "errores". Un cmdlet muestra los errores actuales, lo que le permite comprobar fácilmente el estado de la implementación sin tener que mirar cada entidad o característica. Los errores están diseñados para ser precisos, fáciles de entender y accionable.
Cada error contiene cinco campos importantes:
- severity
- Descripción del problema
- Pasos siguientes recomendados para solucionar el problema
- Información de identificación de la entidad con errores
- Su ubicación física (si procede)
Por ejemplo, este es un error habitual:
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
Nota
La ubicación física procede de la configuración del dominio de error. Para más información sobre los dominios de error, consulte Reconocimiento de dominio de error. Si no proporciona esta información, el campo de ubicación será menos útil. Por ejemplo, solo puede mostrar el número de ranura.
Análisis de la causa raíz
El Servicio de mantenimiento puede evaluar el potencial de causalidad entre entidades con errores para identificar y combinar los errores que son consecuencia del mismo problema subyacente. Al reconocer las cadenas de efectos, habrá menos informes innecesarios. Por ejemplo, si un servidor está fuera de servicio, se espera que las unidades del servidor también estén sin conectividad. Por lo tanto, solo se provocará un único error para la causa principal, en este caso, el servidor.
Uso en PowerShell
Para ver los errores actuales en PowerShell, ejecute el cmdlet siguiente:
Get-HealthFault
Se devuelven los errores que afectan al clúster Espacios de almacenamiento directo. A menudo, estos errores están relacionados con el hardware o la configuración. Si no hay ningún error, el cmdlet no devuelve nada.
Nota
En un entorno que no sea de producción y bajo su propio riesgo, puede experimentar con esta característica desencadenando errores por sí mismo. Por ejemplo, puede hacerlo eliminando un disco físico o apagando un nodo. Una vez que aparezca el error, vuelva a insertar el disco físico o reinicie el nodo para que el error desaparezca.
Uso en .NET y C#
En esta sección se muestra cómo conectarse al Servicio de mantenimiento, usar la detección de objetos y ejecutar consultas de error.
Conectar
Para consultar el Servicio de mantenimiento, establezca el valor de CimSession con el clúster. Para ello, necesitará algunos elementos que solo están disponibles en Microsoft .NET, lo que significa que no puede hacerlo directamente desde una aplicación móvil o web. Los ejemplos de código de esta sección usan C#, la opción más sencilla para esta capa de acceso a datos.
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;
}
El nombre de usuario proporcionado debe ser un administrador local del equipo de destino.
Se recomienda construir Password SecureString directamente a partir de la entrada del usuario en tiempo real, para que la contraseña no se almacene nunca en la memoria en forma de texto no cifrado. Esto ayuda a mitigar diversos problemas de seguridad. Pero, en la práctica, construirlo tal como se ha mencionado anteriormente es algo frecuente para la creación de prototipos.
Detectar objetos
Una vez establecido CimSession, puede consultar Instrumental de administración de Windows (WMI) en el clúster.
Para poder obtener errores o métricas, debe obtener instancias de varios objetos pertinentes. En primer lugar, obtenga la clase MSFT_StorageSubSystem que representa Espacios de almacenamiento directo en el clúster. Con ella, puede obtener cada clase MSFT_StorageNode del clúster y cada MSFT_Volume de los volúmenes de datos. Por último, debe obtener la clase MSCluster_ClusterHealthService, el Servicio de mantenimiento en sí mismo.
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();
}
Estos son los mismos objetos que se obtienen en PowerShell mediante cmdlets como Get-StorageSubSystem, Get-StorageNode y Get-Volume.
Puede acceder a todas las propiedades, documentadas en Clases de la API de administración de almacenamiento.
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());
}
Errores de consulta
Invoque Diagnose para obtener los errores actuales en el ámbito del elemento CimInstance de destino, que puede ser el clúster o cualquier volumen.
La lista completa de errores disponibles en cada ámbito de Windows Server 2019 se documenta más adelante en la sección Cobertura.
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!
}
}
}
Opcional: clase MyFault
Puede que tenga sentido construir y conservar su propia representación de errores. Por ejemplo, la clase MyFault almacena varias propiedades clave de errores, incluido FaultId, que se puede utilizar más adelante para asociar actualizaciones, quitar notificaciones o desduplicar en caso de que se detecte el mismo error varias veces.
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 lista completa de propiedades de cada error (DiagnoseResult) se documenta más adelante en la sección Propiedades de errores.
Eventos de error
Cuando se crean, quitan o actualizan errores, el Servicio de mantenimiento genera eventos WMI. Son esenciales para mantener el estado de la aplicación sincronizado sin sondeos frecuentes y pueden ayudar con aspectos como determinar cuándo se envían alertas de correo electrónico, por ejemplo. Para suscribirse a estos eventos, el código de ejemplo siguiente utiliza el modelo de diseño de observador.
En primer lugar, suscríbase a los eventos 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);
}
A continuación, implemente un observador cuyo método OnNext() se invoque cada vez que se genere un nuevo evento.
Cada evento contiene el elemento ChangeType que indica si se crea, quita o actualiza un error y el elemento FaultId pertinente.
Además, cada evento contiene todas las propiedades de error en sí.
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
}
}
Reconocimiento del ciclo de vida de los errores
Los errores no están diseñados para que el usuario los marque como "vistos" o resueltos. Se crean cuando el Servicio de mantenimiento observa un problema y se quitan automáticamente solo después de que el Servicio de mantenimiento ya no pueda observar el problema. En general, esto refleja que el problema se ha corregido.
Sin embargo, en algunos casos, el Servicio de mantenimiento puede volver a detectar errores, como después de una conmutación por error, conectividad intermitente, etc. Por este motivo, puede tener sentido conservar su propia representación de errores, para que pueda desduplicarlos fácilmente. Esto es importante sobre todo si envía alertas por correo electrónico o equivalentes.
Propiedades de errores
En la tabla siguiente se presentan varias propiedades clave del objeto de error. Para ver el esquema completo, inspeccione la clase MSFT_StorageDiagnoseResult en storagewmi.mof.
Propiedad | Ejemplo |
---|---|
FaultId | {12345-12345-12345-12345-12345} |
FaultType | Microsoft.Health.FaultType.Volume.Capacity |
Motivo | "El volumen se está quedando sin espacio disponible." |
PerceivedSeverity | 5 |
FaultingObjectDescription | Contoso XYZ9000 S.N. 123456789 |
FaultingObjectLocation | Rack A06, RU 25, Ranura 11 |
RecommendedActions | {"Expandir el volumen.", "Migrar cargas de trabajo a otros volúmenes."} |
FaultId: identificador único dentro del ámbito de un clúster.
PerceivedSeverity: PerceivedSeverity = { 4, 5, 6 } = { "Informativo", "Advertencia" y "Error" } o colores equivalentes como azul, amarillo y rojo.
FaultingObjectDescription: información sobre la pieza de hardware, normalmente en blanco para objetos de software.
FaultingObjectLocation: información sobre la ubicación de hardware, normalmente en blanco para objetos de software.
RecommendedActions: lista de acciones recomendadas que son independientes y no están en un orden determinado. Actualmente, esta lista suele tener una longitud de 1.
Propiedades del evento de error
En la tabla siguiente se presentan varias propiedades clave del evento de error. Para ver el esquema completo, inspeccione la clase MSFT_StorageFaultEvent en storagewmi.mof.
Tenga en cuenta el elemento ChangeType que indica si se crea, quita o actualiza un error y el elemento FaultId. Un evento también contiene todas las propiedades del error afectado.
Propiedad | Ejemplo |
---|---|
ChangeType | 0 |
FaultId | {12345-12345-12345-12345-12345} |
FaultType | Microsoft.Health.FaultType.Volume.Capacity |
Motivo | "El volumen se está quedando sin espacio disponible." |
PerceivedSeverity | 5 |
FaultingObjectDescription | Contoso XYZ9000 S.N. 123456789 |
FaultingObjectLocation | Rack A06, RU 25, Ranura 11 |
RecommendedActions | {"Expandir el volumen.", "Migrar cargas de trabajo a otros volúmenes."} |
ChangeType ChangeType = { 0, 1, 2 } = { "Crear", "Quitar", "Actualizar" }.
Cobertura
En Windows Server 2019 y Azure Stack HCI, el Servicio de mantenimiento proporciona la siguiente cobertura de errores:
PhysicalDisk (31)
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailedMedia
- Gravedad: advertencia
- Motivo: "Se produjo un error del disco físico."
- RecommendedAction: "Reemplazar el disco físico."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.LostCommunication
- Gravedad: advertencia
- Motivo: "Se perdió la conectividad con el disco físico."
- RecommendedAction: "Comprobar que el disco físico funciona y está conectado correctamente."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.Unresponsive
- Gravedad: advertencia
- Motivo: "El disco físico muestra falta de respuesta periódicamente."
- RecommendedAction: "Reemplazar el disco físico."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.PredictiveFailure
- Gravedad: advertencia
- Motivo: "Es muy probable que se produzca un error del disco físico en poco tiempo."
- RecommendedAction: "Reemplazar el disco físico."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.UnsupportedHardware
- Gravedad: advertencia
- Motivo: "El disco físico está en cuarentena porque no es compatible con el proveedor de soluciones."
- RecommendedAction: "Reemplazar el disco físico por el hardware compatible."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.UnsupportedFirmware
- Gravedad: advertencia
- Motivo: "El disco físico está en cuarentena porque la versión de firmware no es compatible con el proveedor de soluciones."
- RecommendedAction: "Actualizar el firmware del disco físico a la versión de destino."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.UnrecognizedMetadata
- Gravedad: advertencia
- Motivo: "El disco físico tiene metadatos no reconocidos."
- RecommendedAction: "Este disco puede contener datos de un grupo de almacenamiento desconocido. Asegurarse primero de que no haya ningún dato útil en este disco y, después, restablecer el disco."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailedFirmwareUpdate
- Gravedad: advertencia
- Motivo: "Error al intentar actualizar el firmware en el disco físico."
- RecommendedAction: "Intentar usar un binario de firmware diferente."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.SblFailedMedia
- Gravedad: advertencia
- Motivo: "Error en la unidad."
- RecommendedAction: "Reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.SblUnresponsive
- Gravedad: advertencia
- Motivo: "El disco físico muestra falta de respuesta periódicamente."
- RecommendedAction: "Reemplazar el disco físico."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureBadBlock
- Gravedad: advertencia
- Motivo: "La unidad informó de bloques de error durante las escrituras. Un bloque incorrecto ocasional es normal, pero demasiados podrían significar que la unidad no funciona correctamente, está dañada o empieza a generar errores."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureBadBlockRead
- Gravedad: advertencia
- Motivo: "La unidad informó de bloques de error durante las lecturas. Un bloque incorrecto ocasional es normal, pero demasiados podrían significar que la unidad no funciona correctamente, está dañada o empieza a generar errores."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureIoRetry
- Gravedad: advertencia
- Motivo: "La unidad necesitó varios intentos para leer o escribir. Si sigue ocurriendo, podría significar que la unidad no funciona correctamente, está dañada o empieza a generar errores."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
Nota
Este error está deshabilitado de manera predeterminada. Para habilitarlo, establezca la configuración de mantenimiento System.Storage.PhysicalDisk.MarginalFailure.EventBased.IoRetry.Enabled en verdadero.
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureIoFailure
- Gravedad: advertencia
- Motivo: "La unidad no pudo leer ni escribir. Si sigue ocurriendo, podría significar que la unidad no funciona correctamente, está dañada o empieza a generar errores."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
Nota
Este error está deshabilitado de manera predeterminada. Para habilitarlo, establezca la configuración de mantenimiento System.Storage.PhysicalDisk.MarginalFailure.EventBased.IoFailure.Enabled en verdadero
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureSmart
- Gravedad: advertencia
- Motivo: "La unidad informó de los siguientes posibles problemas a Windows mediante SMART (autosupervisión, análisis y tecnología de generación de informes)."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureHighWear
- Gravedad: advertencia
- Motivo: "La unidad alcanzó un alto porcentaje de su resistencia de escritura clasificada. La unidad puede convertirse en de solo lectura, lo que significa que no puede realizar más escrituras cuando alcanza el 100 % de su resistencia clasificada. Consultar la hoja de datos o pedir al fabricante más detalles sobre la clasificación de resistencia y el comportamiento de duración."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.FailureReadOnly
- Gravedad: advertencia
- Motivo: "La unidad alcanzó el 100 % de su resistencia de escritura clasificada y ahora es de solo lectura, lo que significa que no puede realizar más escrituras. Las unidades de estado sólido se contraen después de un número determinado de escrituras, lo que varía en función de la clasificación de resistencia de la unidad. Para más información, consultar las especificaciones de la unidad o preguntar al fabricante sobre la clasificación de la resistencia y el comportamiento de duración."
- RecommendedAction: "Si sigue ocurriendo o se observa una disminución del rendimiento, considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.HighLatency.SlowestIO
- Gravedad: advertencia
- Motivo: "La unidad tiene una latencia máxima alta."
- RecommendedAction: "Supervisar el rendimiento de la unidad y considerar la posibilidad de reemplazar la unidad."
Nota
Este error está deshabilitado de manera predeterminada. Para habilitarlo, establezca la configuración de mantenimiento System.Storage.PhysicalDisk.HighLatency.Threshold.Tail.Enabled en verdadero
FaultType: Microsoft.Health.FaultType.PhysicalDisk.HighLatency.AverageIO
- Gravedad: advertencia
- Motivo: "La unidad tiene una latencia media alta."
- RecommendedAction: "Supervisar el rendimiento de la unidad y considerar la posibilidad de reemplazar la unidad."
Nota
Este error está deshabilitado de manera predeterminada. Para habilitarlo, establezca la configuración de mantenimiento System.Storage.PhysicalDisk.HighLatency.Threshold.Tail.Enabled en verdadero
FaultType: Microsoft.Health.FaultType.PhysicalDisk.HighLatency.Outlier.AverageIO
- Gravedad: advertencia
- Motivo: "La unidad tiene una latencia media alta."
- RecommendedAction: "Supervisar el rendimiento de la unidad y considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.HighLatency.Outlier.SlowestIO
- Gravedad: advertencia
- Motivo: "La unidad tiene una latencia máxima alta."
- RecommendedAction: "Supervisar el rendimiento de la unidad y considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.HighErrorCount.AverageIO
- Gravedad: advertencia
- Motivo: "La unidad tiene un gran número de errores."
- RecommendedAction: "Supervisar el rendimiento de la unidad y considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.HighErrorCount.Outlier.AverageIO
- Gravedad: advertencia
- Motivo: "La unidad tiene un gran número de errores."
- RecommendedAction: "Supervisar el rendimiento de la unidad y considerar la posibilidad de reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.CacheReadOnly
- Gravedad: advertencia
- Motivo: "Error en algunas lecturas o escrituras en la unidad de caché, por lo que para proteger los datos los hemos movido a unidades de capacidad."
- RecommendedAction: "Reemplazar la unidad o intentar borrarla y restablecerla."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.CacheReadOnly.Draining
- Gravedad: advertencia
- Motivo: "La unidad de caché no pudo realizar algunas lecturas o escrituras. Para proteger los datos, hemos dejado de escribir contenido en la unidad de caché y estamos intentando mover los datos a unidades de capacidad."
- RecommendedAction: "Esperar mientras movemos los datos."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.CacheReadOnly.FailedDrain
- Gravedad: advertencia
- Motivo: "Algunos datos de la unidad de caché no se pueden leer, lo que nos impide moverlos a unidades de capacidad."
- RecommendedAction: "Reemplazar la unidad."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.SedEncKey.RotationFailure
- Gravedad: advertencia
- Motivo: "Error al intentar rotar la clave de cifrado SED al nuevo valor predeterminado."
- RecommendedAction: "Comprobar que la unidad funcione y esté conectada correctamente. Si se ha producido un error en la unidad, reemplazarla. Reiniciar la rotación de claves de cifrado SED una vez que la unidad esté en buen estado."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.SedEncKey.NotDefault
- Gravedad: advertencia
- Motivo: "El disco físico tiene una clave de cifrado SED, pero no coincide con la clave predeterminada actual."
- RecommendedAction: "Iniciar la rotación de claves de cifrado SED."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.SedEncKey.NotDefined
- Gravedad: advertencia
- Motivo: "No hay ninguna clave de cifrado SED predeterminada definida para la unidad."
- RecommendedAction: "Establecer una clave de cifrado SED predeterminada."
FaultType: Microsoft.Health.FaultType.StorageScaleUnit.SedEncKey.RotationTimeout
- Gravedad: advertencia
- Motivo: "No se pudo completar la rotación de claves de cifrado SED en el servidor antes de que finalizara el tiempo de espera."
- RecommendedAction: "Asegurarse de que el servidor sea accesible y de que todos los discos físicos estén en buen estado."
FaultType: Microsoft.Health.FaultType.PhysicalDisk.DriveArriveFailure
- Gravedad: advertencia
- Motivo: "El disco físico provoca errores en las consultas."
- RecommendedAction: "Asegurarse de la confiabilidad de la red. Si el problema persiste, considerar la posibilidad de reemplazar el dispositivo."
Disco virtual (3)
FaultType: Microsoft.Health.FaultType.VirtualDisks.NeedsRepair
- Gravedad: informativo
- Motivo: "Algunos datos de este volumen no son totalmente resistentes y siguen siendo accesibles."
- RecommendedAction: "Restaurar la resistencia de los datos."
FaultType: Microsoft.Health.FaultType.VirtualDisks.Detached
- Gravedad: Crítico
- Motivo: "El volumen no es accesible. Es posible que se hayan perdido datos."
- RecommendedAction: "Comprobar la conectividad física o de red de todos los dispositivos de almacenamiento. Es posible que se tenga que restaurar desde la copia de seguridad."
FaultType: Microsoft.Health.FaultType.VirtualDisks.NoRedundancy
- Gravedad: Crítico
- Motivo: "No hay ninguna copia de datos disponible para una región de disco virtual. Se puede interrumpir la carga de trabajo, y se pueden observar errores de E/S."
- RecommendedAction: "En caso de haber una operación de mantenimiento en curso, suspender y restaurar el acceso a todo el almacenamiento hasta que este se estabilice."
Capacidad del grupo (2)
FaultType: Microsoft.Health.FaultType.StoragePool.TransactionAndCleanupFailure
- Gravedad: advertencia
- Motivo: "El bloque de almacenamiento no puede escribir en un cuórum de dispositivos de metadatos. Se puede interrumpir la carga de trabajo, y se pueden observar errores de E/S."
- RecommendedAction: "En caso de haber una operación de mantenimiento en curso, suspender y restaurar el acceso a todo el almacenamiento hasta que este se estabilice."
FaultType: Microsoft.Health.FaultType.StoragePool.PoolCapacityThresholdExceeded
- Gravedad: advertencia
- Motivo: "El bloque de almacenamiento se está quedando sin capacidad."
- RecommendedAction: "Agregar capacidad adicional al bloque de almacenamiento o liberar capacidad."
Capacidad del volumen (5)1
FaultType: Microsoft.Health.FaultType.Volume.Capacity
- Gravedad: advertencia
- Motivo: "El volumen se está quedando sin espacio disponible."
- RecommendedAction: "Expandir el volumen o migrar las cargas de trabajo a otros volúmenes."
FaultType: Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Correctable
- Gravedad: advertencia
- Motivo: "El sistema de archivos detectó un error de suma de comprobación y pudo corregirlo."
- RecommendedAction: "Iniciar el examen de la integridad de los datos en el programador de tareas, es posible que el almacenamiento no se realice correctamente. En caso de haber una operación de actualización o mantenimiento en marcha, detenerla inmediatamente. Es posible que se tenga que restaurar desde la copia de seguridad."
FaultType: Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Uncorrectable
- Gravedad: advertencia
- Motivo: "El sistema de archivos detectó un error de suma de comprobación y no pudo corregirlo."
- RecommendedAction: "Iniciar el examen de la integridad de los datos en el programador de tareas, es posible que el almacenamiento no se realice correctamente. En caso de haber una operación de actualización o mantenimiento en marcha, detenerla inmediatamente. Es posible que se tenga que restaurar desde la copia de seguridad."
FaultType: Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Uncorrectable.DataRemoved
- Gravedad: advertencia
- Motivo: "El sistema de archivos detectó daños en un archivo o carpeta. El archivo o carpeta se ha quitado del espacio de nombres del sistema de archivos."
- RecommendedAction: "Iniciar el examen de la integridad de los datos en el programador de tareas, es posible que el almacenamiento no se realice correctamente. En caso de haber una operación de actualización o mantenimiento en marcha, detenerla inmediatamente. Es posible que se tenga que restaurar desde la copia de seguridad."
FaultType: Microsoft.Health.FaultType.Volume.FileSystem.Corruption.Uncorrectable.DataRemovalFailure
- Gravedad: advertencia
- Motivo: "El sistema de archivos detectó daños en un archivo o carpeta. Es posible que el sistema de archivos no lo pudiera quitar del espacio de nombres del sistema de archivos."
- RecommendedAction: "Iniciar el examen de la integridad de los datos en el programador de tareas, es posible que el almacenamiento no se realice correctamente. En caso de haber una operación de actualización o mantenimiento en marcha, detenerla inmediatamente. Es posible que se tenga que restaurar desde la copia de seguridad."
Servidor (12)
FaultType: Microsoft.Health.FaultType.Server.Down
- Gravedad: Crítico
- Motivo: "No se puede acceder al servidor."
- RecommendedAction: "Iniciar o reemplazar el servidor."
FaultType: Microsoft.Health.FaultType.Server.Isolated
- Gravedad: Crítico
- Motivo: "El servidor está aislado del clúster debido a problemas de conectividad."
- RecommendedAction: "Si el aislamiento persiste, comprobar las redes o migrar las cargas de trabajo a otros nodos."
FaultType: Microsoft.Health.FaultType.Server.Quarantined
- Gravedad: Crítico
- Motivo: "El clúster pone el servidor en cuarentena debido a errores periódicos."
- RecommendedAction: "Reemplazar el servidor o corregir la red."
FaultType: Microsoft.Health.FaultType.Server.Temperature
- Gravedad: advertencia
- Motivo: "El sensor de temperatura del servidor ha producido una advertencia."
- RecommendedAction: "Comprobar la temperatura del servidor."
FaultType: Microsoft.Health.FaultType.Server.Storage.Degraded
- Gravedad: advertencia
- Motivo: "El servidor tiene almacenamiento que no está completo o actualizado, por lo que es necesario sincronizarlo con los datos de otros servidores del clúster. Esto es normal después de que se reinicie un servidor o se produzca un error en una unidad."
- RecommendedAction: "Esperar mientras sincronizamos el almacenamiento. No quitar unidades ni reiniciar los servidores del clúster hasta que confirmemos que la sincronización se haya completado."
FaultType: Microsoft.Health.FaultType.Node.CPUOverloaded
- Gravedad: advertencia
- Motivo: "El uso de CPU del servidor supera el umbral de forma sistemática."
- RecommendedAction: "Mover máquinas virtuales a otros servidores con un uso de CPU más bajo o considerar la posibilidad de agregar más capacidad de proceso al clúster (normalmente, agregando servidores)."
FaultType: Microsoft.Health.FaultType.Node.VCPUToLCPU
- Gravedad: advertencia
- Motivo: "La proporción de procesadores virtuales con procesadores lógicos (subprocesos) en este servidor ha superado el umbral configurado."
- RecommendedAction: "Mover máquinas virtuales a otro servidor con un uso de CPU más bajo o considerar la posibilidad de agregar más capacidad de proceso al clúster."
FaultType: Microsoft.Health.FaultType.Node.LowFreeRam
- Gravedad: advertencia
- Motivo: "La memoria disponible está por debajo del umbral configurado."
- RecommendedAction: "Mover máquinas virtuales a otro servidor con un uso de CPU más bajo o considerar la posibilidad de agregar más capacidad de proceso al clúster."
FaultType: Microsoft.Health.FaultType.Node.HighRootPartitionMemoryUsage
- Gravedad: advertencia
- Motivo: "Windows Server consume mucha memoria física, lo que supera el umbral configurado."
- RecommendedAction: "Comprobar si hay procesos o aplicaciones que consumen demasiada memoria, mover máquinas virtuales a otros servidores o agregar memoria a los servidores."
FaultType: Microsoft.Health.FaultType.Node.TooHighCpuReservation
- Gravedad: advertencia
- Motivo: "La reserva de CPU combinada de máquinas virtuales en este servidor supera el umbral configurado."
- RecommendedAction: "Considerar la posibilidad de mover máquinas virtuales o reducir sus reservas de CPU."
FaultType: Microsoft.Health.FaultType.Node.TooHighMemoryUseAfterReclamation
- Gravedad: advertencia
- Motivo: "La asignación de memoria combinada de máquinas virtuales en este servidor supera el umbral configurado."
- RecommendedAction: "Considerar la posibilidad de mover máquinas virtuales o reducir su memoria asignada."
FaultType: Microsoft.Health.FaultType.Node.SustainedHighCpuUsage
- Gravedad: advertencia
- Motivo: "El servidor tiene un uso de CPU que supera sistemáticamente el umbral."
- RecommendedAction: "Mover máquinas virtuales a otro servidor con un uso de CPU más bajo o considerar la posibilidad de agregar más capacidad de proceso."
Clúster (6)
FaultType: Microsoft.Health.FaultType.ClusterQuorumWitness.Error
- Gravedad: Crítico
- Motivo: "Solo falta un error de servidor para que el clúster quede inactivo."
- RecommendedAction: "Comprobar el recurso de testigo y reiniciar según sea necesario. Iniciar o reemplazar los servidores con errores."
FaultType: Microsoft.Health.FaultType.Cluster.ValidationReport.Failed
- Gravedad: Crítico
- Motivo: "La validación del clúster se ha encontrado con problemas."
- RecommendedAction: "La validación del clúster ha encontrado errores en algunas categorías de pruebas. Consultar el informe de validación del clúster."
FaultType: Microsoft.Health.FaultType.Cluster.ValidationReportDcb.Failed
- Gravedad: Crítico
- Motivo: "Validate-DCB se ha encontrado con problemas."
- RecommendedAction: "Validate-DCB ha encontrado errores de red. Consultar el informe de validación de DCB."
FaultType: Microsoft.Health.FaultType.Cluster.TooHighCpuReservation
- Gravedad: Crítico
- Motivo: "La reserva de CPU combinada de máquinas virtuales en este servidor supera el umbral configurado."
- RecommendedAction: "Considerar la posibilidad de mover máquinas virtuales o reducir sus reservas de CPU."
FaultType: Microsoft.Health.FaultType.Cluster.TooHighMemoryUseAfterReclamation
- Gravedad: Crítico
- Motivo: "La asignación de memoria combinada de máquinas virtuales en este servidor supera el umbral configurado."
- RecommendedAction: "Considerar la posibilidad de mover máquinas virtuales o reducir su memoria asignada."
FaultType: Microsoft.Health.FaultType.Cluster.SustainedHighCpuUsage
- Gravedad: Crítico
- Motivo: "El servidor tiene un uso de CPU que supera sistemáticamente el umbral."
- RecommendedAction: "Mover máquinas virtuales a otro servidor con un uso de CPU más bajo o considerar la posibilidad de agregar más capacidad de proceso."
Interfaz o adaptador de red (6)
FaultType: Microsoft.Health.FaultType.NetworkAdapter.Disconnected
- Gravedad: advertencia
- Motivo: "La interfaz de red se ha desconectado."
- RecommendedAction: "Volver a conectar el cable de red."
FaultType: Microsoft.Health.FaultType.NetworkInterface.Missing
- Gravedad: advertencia
- Motivo: "El servidor {servidor} no tiene adaptadores de red conectados a la red de clúster {red de clúster}."
- RecommendedAction: "Conectar el servidor a la red de clúster que falta."
FaultType: Microsoft.Health.FaultType.NetworkAdapter.Hardware
- Gravedad: advertencia
- Motivo: "La interfaz de red ha tenido un error de hardware."
- RecommendedAction: "Reemplazar el adaptador de interfaz de red."
FaultType: Microsoft.Health.FaultType.NetworkAdapter.Disabled
- Gravedad: advertencia
- Motivo: "La interfaz de red {interfaz de red} no está habilitada y no se está utilizando."
- RecommendedAction: "Habilitar la interfaz de red."
FaultType: Microsoft.Health.FaultType.StorageSubsystem.RDMA.Alert
- Gravedad: advertencia
- Motivo: "El clúster detectó problemas de conectividad de red que impiden que Espacios de almacenamiento directo funcione correctamente."
- RecommendedAction: "Comprobar que la red esté configurada y funcione correctamente. En caso de utilizar RDMA sobre Ethernet convergente (RoCE), comprobar que Data Center Bridging (DCB), Servicio de transmisión mejorada (ETS) y Control de flujo basado en prioridades (PFC) estén configurados de forma correcta y coherente en cada nodo de clúster y conmutador físico. Si no se sabe cómo hacerlo, pedir ayuda al proveedor o a alguien de confianza."
FaultType: Microsoft.Health.FaultType.StorageSubsystem.RDMA.Disabled
- Gravedad: advertencia
- Motivo: "El clúster detectó problemas de conectividad de red que impiden que Espacios de almacenamiento directo funcione correctamente. Para garantizar un rendimiento y una seguridad de datos coherentes, Espacios de almacenamiento directo ha dejado de usar el acceso directo a memoria remota (RDMA), incluso si el hardware compatible con RDMA está presente y habilitado. El tráfico de almacenamiento seguirá fluyendo, pero con un rendimiento reducido mediante TCP/IP."
- RecommendedAction: "Comprobar que la red esté configurada y funcione correctamente y, a continuación, volver a activar RDMA. En caso de utilizar RDMA sobre Ethernet convergente (RoCE), comprobar que Data Center Bridging (DCB), Servicio de transmisión mejorada (ETS) y Control de flujo basado en prioridades (PFC) estén configurados de forma correcta y coherente en cada nodo de clúster y conmutador físico. Si no se sabe cómo hacerlo, pedir ayuda al proveedor o a alguien de confianza."
Contenedor (6)
FaultType: Microsoft.Health.FaultType.StorageEnclosure.LostCommunication
- Gravedad: advertencia
- Motivo: "Se ha perdido la comunicación con el contenedor de almacenamiento."
- RecommendedAction: "Iniciar o reemplazar el contenedor de almacenamiento."
FaultType: Microsoft.Health.FaultType.StorageEnclosure.FanError
- Gravedad: advertencia
- Motivo: "Error de ventilador en la posición {posición} del contenedor de almacenamiento."
- RecommendedAction: "Reemplazar el ventilador del contenedor de almacenamiento."
FaultType: Microsoft.Health.FaultType.StorageEnclosure.CurrentSensorError
- Gravedad: advertencia
- Motivo: "Error de sensor de corriente en la posición {posición} del contenedor de almacenamiento."
- RecommendedAction: "Reemplazar un sensor de corriente del contenedor de almacenamiento."
FaultType: Microsoft.Health.FaultType.StorageEnclosure.VoltageSensorError
- Gravedad: advertencia
- Motivo: "Error de sensor de voltaje en la posición {posición} del contenedor de almacenamiento."
- RecommendedAction: "Reemplazar un sensor de voltaje del contenedor de almacenamiento."
FaultType: Microsoft.Health.FaultType.StorageEnclosure.IoControllerError
- Gravedad: advertencia
- Motivo: "Error de controlador de E/S en la posición {posición} del contenedor de almacenamiento."
- RecommendedAction: "Reemplazar un controlador de E/S del contenedor de almacenamiento."
FaultType: Microsoft.Health.FaultType.StorageEnclosure.TemperatureSensorError
- Gravedad: advertencia
- Motivo: "Error de sensor de temperatura en la posición {posición} del contenedor de almacenamiento."
- RecommendedAction: "Reemplazar un sensor de temperatura del contenedor de almacenamiento."
Lanzamiento de firmware (3)
FaultType: Microsoft.Health.FaultType.FaultDomain.FailedMaintenanceMode
- Gravedad: advertencia
- Motivo: "No se puede seguir adelante en estos momentos mientras se realiza el lanzamiento del firmware."
- RecommendedAction: "Comprobar que todos los espacios de almacenamiento estén en buen estado y que ningún dominio de error esté actualmente en el modo de mantenimiento."
FaultType: Microsoft.Health.FaultType.FaultDomain.FirmwareVerifyVersionFailed
- Gravedad: advertencia
- Motivo: "La implementación del firmware se canceló debido a información de versión de firmware ilegible o inesperada después de aplicar una actualización de firmware."
- RecommendedAction: "Reiniciar el lanzamiento del firmware una vez resuelto el problema de firmware."
FaultType: Microsoft.Health.FaultType.FaultDomain.TooManyFailedUpdates
- Gravedad: advertencia
- Motivo: "La implementación del firmware se canceló debido a que hay demasiados discos físicos que no pueden actualizar el firmware."
- RecommendedAction: "Reiniciar el lanzamiento del firmware una vez resuelto el problema de firmware."
QoS de almacenamiento (3)2
FaultType: Microsoft.Health.FaultType.StorQos.InsufficientThroughput
- Gravedad: advertencia
- Motivo: "El rendimiento de almacenamiento no es suficiente para satisfacer las reservas."
- RecommendedAction: "Reconfigurar las directivas de QoS de almacenamiento."
FaultType: Microsoft.Health.FaultType.StorQos.LostCommunication
- Gravedad: advertencia
- Motivo: "El administrador de directivas de QoS de almacenamiento perdió la comunicación con el volumen."
- RecommendedAction: "Reiniciar los nodos {nodos}"
FaultType: Microsoft.Health.FaultType.StorQos.MisconfiguredFlow
- Gravedad: advertencia
- Motivo: "Uno o varios consumidores de almacenamiento (normalmente las máquinas virtuales) están usando una directiva con el identificador {identificador} que no existe."
- RecommendedAction: "Volver a crear las directivas de QoS de almacenamiento faltantes."
VM/VHD (7)
FaultType: Microsoft.Health.FaultType.Vm.BadHealthState
- Gravedad: advertencia
- Motivo: "El estado de mantenimiento de la máquina virtual no es correcto."
- RecommendedAction: "Solucionar problemas de la máquina virtual."
FaultType: Microsoft.Health.FaultType.Vm.BadOperationalStatus
- Gravedad: advertencia
- Motivo: "El estado operativo de la máquina virtual no es correcto."
- RecommendedAction: "Solucionar problemas de la máquina virtual."
FaultType: Microsoft.Health.FaultType.Vm.GuestUnhealthy
- Gravedad: advertencia
- Motivo: "El sistema operativo invitado de la máquina virtual informa de un estado incorrecto."
- RecommendedAction: "Solucionar problemas de la máquina virtual."
FaultType: Microsoft.Health.FaultType.Vm.ConfigIsOffline
- Gravedad: advertencia
- Motivo: "El recurso de configuración de la máquina virtual está desconectado, lo que significa que no se puede administrar la máquina virtual."
- RecommendedAction: "Poner en línea la configuración de la máquina virtual."
FaultType: Microsoft.Health.FaultType.Vm.NotRespondingToControlCodes
- Gravedad: advertencia
- Motivo: "La máquina virtual no responde a los códigos de control del clúster."
- RecommendedAction: "Comprobar el estado del recurso del clúster de la máquina virtual."
FaultType: Microsoft.Health.FaultType.Vm.IsNearMemoryLimit
- Gravedad: advertencia
- Motivo: "La máquina virtual necesita más de su memoria máxima configurada. "
- RecommendedAction: "Comprobar si hay procesos o aplicaciones que consumen demasiada memoria o considerar la posibilidad de aumentar su memoria máxima."
FaultType: Microsoft.Health.FaultType.Vhd.IsNearlyFull
- Gravedad: advertencia
- Motivo: "El disco duro virtual ha alcanzado su capacidad. No se pueden escribir más datos en él, lo que puede afectar negativamente a las máquinas virtuales."
- RecommendedAction: "Cambiar el tamaño del disco duro virtual o eliminar archivos no deseados."
1 Indica que se ha alcanzado el volumen total de 80 % (gravedad menor) o del 90 % (gravedad mayor). 2 Indica que algunos .vhd del volumen no han cumplido su IOPS mínimo en más de un 10 % (menor), 30 % (mayor) o 50 % (crítico) de un período acumulado de 24 horas.
Nota
El mantenimiento de los componentes del contenedor de almacenamiento, como ventiladores, fuentes de alimentación y sensores, proviene de SCSI Enclosure Services (SES). Si el proveedor no proporciona esta información, el servicio de mantenimiento no puede mostrarla.