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.
$ 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.
$ 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.
$ 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.
Run the daemon in foreground:
$ sudo python <OSVCLIB>/osvcd.py -f
- Agent Daemon Listener
- Agent Daemon Monitor
- Agent Daemon Scheduler
- Agent Heartbeats
- Agent Daemon Quorum