Cómo administrar los servicios del clúster
Cuándo usarlo
Un servicio del clúster es una unidad que Cluster Manager inicia en un nodo concreto.
Los pools de almacenamiento (con nombres como zpool_ssd01, zpool_tank0) y los
servicios del sistema del clúster se representan de este modo. Los servicios se administran al realizar el mantenimiento de un nodo,
al mover un pool a otro nodo y al diagnosticar un servicio que no se inicia.
Un servicio tiene dos dimensiones independientes. La primera es el permiso: si el servicio puede funcionar o está deshabilitado. La segunda es el estado: si está iniciado o detenido. Habilitar un servicio no lo inicia, y un intento de iniciar un servicio deshabilitado no supera la validación. Esta separación es intencionada: la deshabilitación mantiene el servicio apagado incluso después de reiniciar el nodo, mientras que la detención es una acción puntual.
| Comando | Qué cambia | Requiere nodo | Cuándo usarlo |
|---|---|---|---|
| Habilitar | Permiso: el servicio puede funcionar | no | Devolver un servicio a funcionamiento |
| Deshabilitar | Permiso: el servicio está deshabilitado | no | Mantenimiento prolongado, retirada de un pool del servicio |
| Iniciar | Estado: inicio en un nodo | sí | Iniciar un servicio en el nodo seleccionado |
| Detener | Estado: detención | no | Una detención puntual sin deshabilitar |
Observe la asimetría: el inicio requiere un nodo; la detención, no. Un servicio se inicia en un nodo especificado y se detiene allí donde se esté ejecutando en ese momento.
Requisitos previos
- El rol Cluster master (role_id=1): los cuatro comandos están restringidos a este rol;
- Un Cluster Manager disponible: los comandos van a él, y él los entrega a los nodos;
- Un nombre de servicio formado por letras, dígitos y guiones bajos: el clúster no acepta guiones, puntos ni espacios;
- vStack Center versión 3.0.3.
Paso 1. Consulte el estado actual del servicio
El estado de los servicios se obtiene junto con la composición del clúster.
- Abra Provider Data Center → Storage Resources. La tabla ZFS pools muestra los pools del clúster con las columnas GUID, Name, Health, Consuming, Scrubbing, Resilvering, Current node y Capacity (RAW).
- Abra un pool desde la tabla: la ficha del pool ofrece un menú Actions con las operaciones del pool.
Interprete el estado de la siguiente manera: el permiso le indica si el servicio puede funcionar, el estado le indica si está en ejecución ahora, y Current node le indica en qué nodo. Un pool habilitado y en ejecución aparece como en ejecución en su nodo. No tiene sentido iniciar un servicio deshabilitado y detenido: habilítelo primero.
Paso 2. Inicie un servicio en un nodo
El inicio se dirige a un nodo concreto: necesita tanto un servicio como un nodo. vStack Center reenvía el comando a Cluster Manager, que lo entrega al nodo.
- Asegúrese de que el servicio está habilitado. Si está deshabilitado, complete primero el paso 4.
- Seleccione el servicio y el nodo en el que debe ejecutarse, e inícielo.
- Compruebe el resultado: el servicio debe estar en ejecución, y el nodo que lo aloja debe coincidir con el que seleccionó.
Un comando aceptado confirma que Cluster Manager lo ha recibido. Solo el estado del servicio en el nodo confirma que realmente se ha iniciado.
Paso 3. Detenga un servicio
La detención no requiere un nodo: Cluster Manager ya sabe dónde se está ejecutando el servicio. Seleccione el servicio y deténgalo.
La detención solo cambia el estado. El permiso se mantiene, por lo que el servicio puede volver a iniciarse, por ejemplo, cuando se reinicia el nodo. Si el servicio debe permanecer apagado, deshabilítelo.
Paso 4. Habilite o deshabilite un servicio
El permiso es una decisión persistente. La deshabilitación mantiene el servicio apagado con independencia de los reinicios.
Deshabilitar el servicio de un pool de almacenamiento hace que los datos que sirve dejen de estar disponibles. Antes de deshabilitarlo, consulte en Storage Resources qué nodo aloja el servicio (la columna Current node) y qué cargas de trabajo dependen de él.
Seleccione el servicio y deshabilítelo; no es necesario especificar ningún nodo. Habilítelo por el mismo camino con el comando opuesto.
Para el mantenimiento, siga este orden: detenga el servicio, deshabilítelo, realice el trabajo, habilítelo e inícielo en el nodo necesario. El orden inverso (deshabilitar sin detener) deja el servicio en ejecución hasta el primer reinicio.
Detener el servicio de un pool también apaga las VM que se ejecutan en nodos remotos
Las VM que usan este pool pueden ejecutarse en nodos distintos del nodo propietario: con discos en modo NVMe, una máquina puede iniciarse en cualquier nodo y acceder a sus discos por la red desde el propietario. Antes de la versión 3.2.0, al detener el servicio solo se apagaban las máquinas del nodo propietario; las máquinas remotas seguían en ejecución y mantenían el pool en uso: la exportación fallaba con "pool is busy", y el servicio permanecía en su nodo original.
A partir de la versión 3.2.0, vStack Center apaga las máquinas del pool en otros nodos antes de detener el servicio. Lo mismo ocurre al mover un pool. Téngalo en cuenta al planificar el mantenimiento: detener el servicio de un pool ahora también apaga las máquinas que ve en ejecución en los nodos vecinos.
La barrera sigue el principio "no iniciar si no hay certeza". Un nodo supera la comprobación solo si confirma el apagado o informa de que no tiene máquinas que usen este pool. Cualquier otro resultado (un error, un tiempo de espera agotado o una conexión perdida) bloquea la operación de detención: esta no llega a iniciarse, el servicio sigue en ejecución, y la respuesta de rechazo contiene una lista de las máquinas que bloquean la operación y sus nodos. Toda la comprobación tiene un límite de tiempo de 2 minutos.
Compruebe el resultado
Vuelva al estado del servicio y compárelo con lo que solicitó.
| Acción | Resultado esperado tras el comando |
|---|---|
| Iniciar | El servicio está en ejecución en el nodo especificado en la solicitud |
| Detener | El servicio está detenido y sigue habilitado |
| Deshabilitar | El servicio está deshabilitado y detenido |
| Habilitar | El servicio está habilitado; debe iniciarse para que se ejecute |
Si el permiso ha cambiado pero el estado no, el comando se aceptó, pero el nodo todavía no ha informado. Vuelva a obtener el estado del servicio.
Solución de problemas
| Qué ve | Por qué | Qué hacer |
|---|---|---|
| Un comando de servicio se rechaza con el código -403 "Access denied" | Los comandos de servicio solo están disponibles para el rol Cluster master | Inicie sesión con un rol de nivel de clúster |
| Código de error -32602 "Invalid params" | El nombre del servicio no superó la validación de formato | Elimine guiones, puntos y espacios; compare el nombre con la columna Name |
| El inicio se rechaza con el código -20522 | El identificador del nodo no superó la validación | Introduzca el identificador del nodo como un número |
| Código de error -713 | No se pudo reenviar el comando a Cluster Manager | Compruebe la disponibilidad de Cluster Manager; el comando no llegó a los nodos |
| El comando se acepta, pero el estado del servicio no ha cambiado | Cluster Manager aceptó el comando, pero el nodo todavía no lo ha aplicado | Vuelva a obtener el estado; si la discrepancia persiste, compruebe el nodo de la columna Current node |
| El servicio se inició por sí solo después de reiniciar el nodo | Se detuvo sin deshabilitarlo | Deshabilite el servicio en lugar de limitarse a detenerlo |
| La detención del servicio de un pool devolvió una lista de máquinas que bloquean la operación | No se pudieron apagar las máquinas del pool en otros nodos: un nodo no respondió, se perdió la conexión o un nodo devolvió un error | Resuelva los problemas de las máquinas indicadas en los nodos especificados y vuelva a intentar la detención; el servicio permanece sin cambios |
| El inicio no tiene efecto | El servicio está deshabilitado | Habilite primero el servicio y, después, inícielo |
| No se ven datos de composición del clúster | El usuario no tiene el privilegio para consultar el mapa de estado | Solicite el privilegio View Cluster Status Map (full) (6003) |
Consulte también
- Clúster, nodos y servicios: qué es un servicio del clúster y en qué se diferencia Cluster Manager del rol Cluster master.
- Cómo administrar los nodos del clúster: retirar del servicio el nodo que aloja un servicio.
- Cómo consultar los recursos del clúster: el mapa de estado que muestra los servicios y su asignación a nodos.
Métodos de la API
Operaciones de la API que se tratan en esta página: get-statusmap, cluster-service-enable,
cluster-service-disable, cluster-service-start, cluster-service-stop: consulte la
referencia de la API.