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
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 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 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 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
This is just a startup script (not a daemon), used to start/stop all VMs and Containers.
Those services are only required if you run a cluster.
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.
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 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.
Almost any Linux server runs this services. I just mention them here for completeness.
cron daemon execute scheduled commands.
ntp is the Network Time Protocol (NTP) daemon.
rsyslogd is a system utility providing support for message logging (syslog).
Postfix is the mail server (smtp).