Daemon

Roles

The agent daemon spawns threads to handle its different roles:

  • Listener Listens for peer daemon, collector, om node and svcmgr requests.
  • Monitor Handle cluster-wide service start and failover decisions and actions.
  • Scheduler Periodically run node and services schedulers.
  • Heartbeat threads Check if peers are alive and exchange node and service information. Run the quorum race on split-brain.
  • Collector Send cluster information to the collector. Only one node in the cluster sends. This role fails over transparently.

Daemon management

Start

$ om node daemon start

On systems using systemd, the start is delegated to the systemd opensvc-agent unit, which triggers a om node daemon start.

Stop

$ om node daemon stop

The node advertizes its entering maintenance mode, so peer nodes will preserve the node's last known data until the node.maintenance_grace_period expires.

Restart

$ om node daemon restart

The node advertizes its entering maintenance mode, so peer nodes will preserve the node's last known data until the maintenance_grace_period expires.

On systems using systemd, the restart is delegated to the systemd opensvc-agent unit, which triggers a om node daemon stop followed by a om node daemon start.

Debugging

Run the daemon in foreground:

$ sudo python <OSVCLIB>/osvcd.py -f