Service daemons
Introduction
A Proxmox VE node runs a couple of services for proper operation. This article provides a short overview of those services, describing their basic functionality.
Proxmox VE Services
pve-cluster
This service is the heart of any Proxmox VE installation. It provides the Proxmox_Cluster_file_system_(pmxcfs), a database-driven file system for storing configuration files, replicated in real time on all nodes using corosync.
The service makes the data accessible on the normal file system level, mounted at /etc/pve (using fuse). All Proxmox VE related configuration is stored there.
Note: You also need this service if you do not run a cluster.
This service also provides a cluster wide locking implementation, and we use it to distribute statistic data to all cluster nodes.
pvedaemon
pvedaemon is the REST API server. All API calls which require root privileges are done using this Server. The Server runs as 'root', but only listens to a local address 127.0.0.1 port 85 for security reasons. It usually serves request from pveproxy, which listens to public ports, and run as non-root user.
pveproxy
pveproxy is the REST API proxy server, listening on port 8006 - used in PVE 3.0+ onwards. This service run as user 'www-data', and forwards request to other nodes (or pvedaemon) if required. API calls which do not require root privileges are directly answered by this server.
pvestatd
pvestatd is the PVE Status Daemon. It queries the status of all resources (VMs, Containers and Storage), and send the result to all cluster members. You can easily query the resulting data with:
# cat /etc/pve/.rrd
pve-manager
This is just a startup script (not a daemon), used to start/stop all VMs and Containers.
Cluster Services
Those services are only required if you run a cluster.
cman (corosync 1.x)
Note: Only on the old stable Proxmox VE 3.x releases |
cman is a symmetric general-purpose cluster manager. It provides a service manager that handles service groups, plus a connection manager that handles cluster membership management, messaging among cluster nodes, event notification, quorum and state transitions.
corosync 2.x
The Corosync Cluster Engine is a group communication system with additional features for implementing high availability within applications. configuration a in-memory database that provide the ability to set, retrieve, and receive change notifications of information. quorum system that notifies applications when quorum is achieved or lost.
fenced
Note: Only on the old stable Proxmox VE 3.x releases |
The fencing daemon, fenced, fences cluster nodes that have failed. Fencing a node generally means rebooting it or otherwise preventing it from writing to storage, e.g. disabling its port on a SAN switch. Fencing involves interacting with a hardware device, e.g. network power switch, SAN switch, storage array. Different "fencing agents" are run by fenced to interact with various hardware devices.
rgmanager
Note: Only on the old stable Proxmox VE 3.x releases |
rgmanager is the Resource Group (Cluster Service) Manager Daemon. rgmanager handles management of user-defined cluster services (also known as resource groups). This includes handling of user requests including service start, service disable, service relocate, and service restart. The service manager daemon also handles restarting and relocating services in the event of failures.
Standard Services
Almost any Linux server runs this services. I just mention them here for completeness.
cron
cron daemon execute scheduled commands.
ntp
ntp is the Network Time Protocol (NTP) daemon.
rsyslog
rsyslogd is a system utility providing support for message logging (syslog).
postfix
Postfix is the mail server (smtp).