Error “LCM Controller” en Azure Stack HCI 23H2: diagnóstico y solución definitiva

La extensión LCM Controller desempeña un papel fundamental en la gestión del ciclo de vida de los clústeres Azure Stack HCI. Sin embargo, en la versión 2311.2 (release 23H2) numerosos administradores han encontrado que la extensión no se instala o no se carga en uno o varios nodos, dejando el clúster en estado inconsistente. Este artículo describe en profundidad la naturaleza del error, proporciona un procedimiento de mitigación probado en producción y ofrece buenas prácticas para evitar la reincidencia —todo ello con foco en la optimización SEO y la utilidad real para el lector.

Índice

Visión general del problema

Azure Stack HCI 23H2 introduce una serie de extensiones nativas para orquestar actualizaciones, supervisar componentes críticos y simplificar la operación diaria. Entre ellas se encuentra LCM Controller, responsable de coordinar las políticas de “Life‑Cycle Management” (LCM) que controlan parches, drivers y firmware.

En la compilación 2311.2, el instalador de la extensión se distribuyó con una dependencia que no resuelve correctamente en todos los entornos. Esto provoca que la instalación falle de forma silenciosa o quede estancada en estado «Installing». Lo más habitual es que solo algunos nodos resulten afectados, generando un clúster con extensiones desalineadas.

Síntomas específicos detectados

  • En el portal de Azure, el estado de la extensión aparece como Failed o Installing indefinidamente para nodos concretos.
  • El comando Get-AzStackHciExtension devuelve Status=Unknown en el nodo problemático.
  • El servicio WindowsAzureGuestAgent registra eventos 30111 con texto «Package failed to download or install».
  • No se generan archivos de log en C:\Packages\Plugins\MSExtension.LcmController, lo que indica que el ejecutable principal nunca se inicia.
  • En escenarios con Arc‑enabled Servers, la política «Aplica extensiones críticas» se detiene debido a la incompatibilidad del clúster.

Causa raíz provisional

Microsoft ha confirmado internamente que se trata de un bug de empaquetado: la extensión se compila con un manifiesto que apunta a una versión específica del módulo Az.StackHci. En entornos donde ese módulo está ausente o obsoleto, el agente de extensiones aborta la instalación. El agente, además, no informa de la dependencia incumplida, lo que complica el diagnóstico. Microsoft ha anunciado que la versión corregida se publicará «en breve».

Impacto operativo

Un clúster con LCM Controller parcialmente instalado sufre las siguientes limitaciones:

  1. El «device compliance status» en Azure marca el clúster como Needs Attention, aumentando ruido operativo en los dashboards.
  2. Se bloquean las actualizaciones automáticas de firmware, ya que la comprobación de pre-flight requiere consistencia de extensiones.
  3. Las tareas de mantenimiento programadas mediante «Cluster-Aware Updating» pueden fallar por timeout si un nodo permanece en estado «Waiting for extension».

Pasos de mitigación y solución

El proceso ha sido verificado por múltiples administradores de la comunidad y reduce el tiempo fuera de servicio a unos pocos minutos por nodo.

PasoAcciónPropósito
1Cerrar sesión en todos los nodos afectados.Evita que sesiones RDP o PowerShell remotas mantengan archivos bloqueados.
2Desinstalar la extensión LCM Controller desde el portal de Azure.Limpia cualquier instalación parcial.
3En Azure Cloud Shell, ejecutar la instalación remota por nodo.Descarga el paquete directo del repositorio oficial, soslayando el instalador local.
4Verificar que la extensión aparezca como «Installed» en todos los nodos.Asegura la coherencia de estado en el clúster.

Script recomendado en Cloud Shell

# Sustituye <ResourceGroup> y <ClusterName> por los valores reales
$rg = "<ResourceGroup>"
$cluster = "<ClusterName>"
$nodes = (Get-AzStackHciClusterNode -ResourceGroupName $rg -ClusterName $cluster).Name

foreach (\$n in \$nodes) {
Write-Host "Instalando LCM Controller en \$n..." -ForegroundColor Cyan
New-AzStackHciExtension `        -ResourceGroupName $rg`
-ClusterName \$cluster `        -Name "LCMController"`
-TargetNodeName \$n `        -Type "MSExtension.LcmController"`
-TypeHandlerVersion "1.0" \`
-AutoUpgradeMinorVersion \$true
}

Consejo: si la red tiene políticas de proxy restrictivas, añade la variable de entorno https_proxy en Cloud Shell para asegurar la salida al repositorio.

Validación posterior a la instalación

Para verificar que el clúster queda uniforme, ejecuta en cualquier nodo:

$ext = Get-AzStackHciExtension -ClusterName $cluster -ResourceGroupName $rg |
        Where-Object { $_.Name -eq "LCMController" }
$ext | Format-Table TargetNodeName, ProvisioningState

Todos los nodos deben devolver ProvisioningState = Succeeded. Opcionalmente, analiza el log:

Get-WinEvent -LogName Microsoft-AzureStack-HCI-Operations |
    Where-Object { $_.Message -like "LCM Controller" } |
    Sort-Object TimeCreated -Descending |
    Select-Object -First 10

Buenas prácticas para evitar la reincidencia

  • Política de pruebas A/B. Antes de desplegar extensiones en producción, prueba el paquete en un clúster de laboratorio conectado a los mismos repositorios.
  • Control de versiones. Documenta la versión exacta de cada extensión y correlaciónala con la versión de agentes Arc y Azure Stack HCI.
  • Revisión de dependencias. Mantén actualizado el módulo Az.StackHci ejecutando: Update-Module Az.StackHci -Force
  • Supervisión proactiva. Configura alertas basadas en el evento 30111 del Guest Agent y en el estado Failed de extensiones.
  • Documentación interna. Incluye capturas de portal, scripts empleados y resultados en tu base de conocimiento corporativa.

Preguntas frecuentes

¿Debo reiniciar los nodos después de reinstalar la extensión?

No, la extensión se ejecuta en modo usuario y no requiere reinicio. Únicamente reinicia si vas a aplicar firmware tras la reparación.

¿La falla afecta a la disponibilidad de máquinas virtuales?

No directamente. Sin embargo, si tu proceso de actualización de firmware se detiene, podrías posponer actualizaciones de seguridad relevantes para el hipervisor.

¿Puedo forzar la instalación con versiones anteriores del paquete?

No es recomendable. Microsoft planea publicar una hotfix; instalar paquetes antiguos puede introducir incompatibilidades con Arc.

Próximos pasos y monitorización

Microsoft ha comunicado que el paquete corregido debería publicarse en el «Update Center» en las próximas semanas. Para recibirlo sin intervención manual:

  1. Asegúrate de que AutoUpgradeMinorVersion está en true para la extensión.
  2. Mantén el Guest Agent actualizado a la versión que acompaña a la build 23H2.
  3. Suscríbete a las alertas de servicio de Azure para la región de tu clúster.

En caso de que la futura versión no resuelva el problema, Microsoft recomienda abrir un ticket de soporte y adjuntar los archivos generados por el cmdlet Get-AzStackHciDiagnosticLog.

Conclusión

El error en la extensión LCM Controller para Azure Stack HCI 23H2 puede resultar desconcertante por la ausencia de mensajes de advertencia claros. No obstante, el procedimiento descrito —desinstalación, instalación remota y validación— ha demostrado ser eficaz y rápido, restaurando la integridad del clúster sin tiempos de inactividad significativos. Mantener una estrategia de pruebas controladas, monitoreo y documentación garantizará que los futuros despliegues de extensiones se realicen de manera predecible y segura. De este modo, tu infraestructura HCI seguirá beneficiándose de las capacidades de actualización y conformidad automatizadas que caracterizan a la plataforma.

Índice