Una operación asíncrona sigue en curso
Síntoma
Una operación de larga duración (como una migración o la creación de un volumen) sigue en curso más tiempo del esperado.
Causa
Las acciones de larga duración son asíncronas: el cliente inicia la operación y después consulta periódicamente su estado. Un aparente bloqueo suele significar que la operación sigue ejecutándose en el nodo o está esperando a que haya recursos disponibles.
En algunas operaciones, un periodo prolongado sin respuesta es normal. La migración de una VM a otro pool responde una sola vez, al final de todo el ciclo: copia mediante un flujo ZFS, nuevo registro de los discos, las instantáneas y la máquina, y eliminación del dataset de origen. El clúster no informa en absoluto del progreso de la copia, por lo que la ausencia de actualizaciones no indica el estado de la operación.
Cómo comprobarlo
- Estado del objeto. Revise la columna State de la lista de VM y el campo de estado en la tarjeta. Mientras la operación está en ejecución, la máquina está bloqueada y se rechazan otros comandos dirigidos a ella.
- El panel del registro de operaciones, botón LOG: muestra el progreso de la operación transmitida a los agentes de los nodos.
- Historial de estados de la máquina: lo devuelve el método
vm-historyy muestra cuándo el objeto entró en su estado actual y, por tanto, si la operación lleva en ejecución un minuto o una hora. - Estado del nodo:
Provider Data Center→Server Nodes. Un comando enviado a un nodo que no está ONLINE no recibirá respuesta.
Solución
Compruebe el estado actual de la operación y la carga del nodo afectado; si la operación no avanza y hay recursos disponibles, escale el caso con los datos de supervisión.
Repetir una solicitud con el mismo ID es innecesario y contraproducente: desde la versión 3.0.5, el dispatcher
reconoce la reentrega por parte del broker y no ejecuta el trabajo por segunda vez.
Una llamada síncrona recibe -1000, "esta solicitud ya existe"; una llamada asíncrona no recibe
respuesta a la repetición. La respuesta guardada del primer intento no se vuelve a devolver;
el resultado llega para la solicitud original. Un reintento correcto utiliza un nuevo
ID de solicitud.
La migración tiene un caso aparte: el código -25310 significa que el ciclo no finalizó y
falló durante el nuevo registro. Esto ya es un fallo, no un bloqueo. No inicie una nueva migración hasta
determinar la causa; compruebe el estado de la máquina y de sus discos en la tarjeta.
Métodos de la API
Las operaciones de la API tratadas en esta página son vm-statuses, vm-history, vm-get, node-list
y task. Consulte la referencia de la API.
Véase también
- Descripción general de la API: en qué se diferencian las llamadas síncronas y asíncronas y cómo funciona la regla de unicidad del ID de solicitud.
- Migración de VM: cambio de nodo y de pool: por qué la migración no ofrece actualizaciones de progreso y cómo finaliza.
- Ciclo de vida de una máquina virtual: qué estados son transitorios y qué está prohibido en ellos.