Saltar al contenido principal

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.

ComandoQué cambiaRequiere nodoCuándo usarlo
HabilitarPermiso: el servicio puede funcionarnoDevolver un servicio a funcionamiento
DeshabilitarPermiso: el servicio está deshabilitadonoMantenimiento prolongado, retirada de un pool del servicio
IniciarEstado: inicio en un nodosíIniciar un servicio en el nodo seleccionado
DetenerEstado: detenciónnoUna 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.

  1. 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).
  2. 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.

  1. Asegúrese de que el servicio está habilitado. Si está deshabilitado, complete primero el paso 4.
  2. Seleccione el servicio y el nodo en el que debe ejecutarse, e inícielo.
  3. 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.

aviso

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ónResultado esperado tras el comando
IniciarEl servicio está en ejecución en el nodo especificado en la solicitud
DetenerEl servicio está detenido y sigue habilitado
DeshabilitarEl servicio está deshabilitado y detenido
HabilitarEl 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é vePor 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 masterInicie 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 formatoElimine guiones, puntos y espacios; compare el nombre con la columna Name
El inicio se rechaza con el código -20522El identificador del nodo no superó la validaciónIntroduzca el identificador del nodo como un número
Código de error -713No se pudo reenviar el comando a Cluster ManagerCompruebe la disponibilidad de Cluster Manager; el comando no llegó a los nodos
El comando se acepta, pero el estado del servicio no ha cambiadoCluster Manager aceptó el comando, pero el nodo todavía no lo ha aplicadoVuelva 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 nodoSe detuvo sin deshabilitarloDeshabilite 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ónNo 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 errorResuelva 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 efectoEl servicio está deshabilitadoHabilite primero el servicio y, después, inícielo
No se ven datos de composición del clústerEl usuario no tiene el privilegio para consultar el mapa de estadoSolicite el privilegio View Cluster Status Map (full) (6003)

Consulte también​

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.