Proxmox VE: turnkey virtualization and containerization setup

Infrastructure grows, and with it come downtime and manual operations that consume the team's time. We set up Proxmox on a turnkey basis: we design the cluster, migrate workloads, and hand over the system with backups and documentation. The customer gets managed virtualization where fault tolerance and access rights are configured in advance.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1359
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Setting up Proxmox: where infrastructure loses manageability

The hypervisor was deployed quickly: several nodes, dozens of virtual machines, everything works. The problem appears later — when each node was configured manually and configurations diverged.

Someone added a disk outside the template, someone left images on local storage, updates are installed one by one and "by eye", because a unified order is not described.

Node management turns into manual work with each server separately, and the cost of any error grows with the number of machines.

Second failure — failure of one server. Without a fault-tolerant cluster with a correct quorum, virtual machines do not move to live nodes by themselves: downtime due to server failure is measured in hours, and recovery is from backup.

Backups are often never tested for deployment, so the real recovery time is only discovered during an incident.

Third point of loss of manageability — load growth. While resources were distributed manually, one VM can pull CPU and disk subsystem onto itself, and "neighbors" sag.

Predictability appears only when there are placement policies, headroom for peaks, and metrics that reveal the bottleneck before user complaints.

Next, we break down how this is closed: Proxmox setup not as installing packages, but as turnkey virtualization — cluster, unified node templates, automatic VM migration, regular recovery checks, and clear monitoring.

What managed virtualization provides: effect in measurable indicators

We deploy Proxmox VE so that virtualization stops being a set of disparate hosts. VMs and containers live in one cluster: load migrates between nodes, resources are distributed by actual consumption, not by the principle "one task — one physical server".

Server consolidation gives load placement density several times higher, while CPU and memory headroom remains manageable — it is set by limits and reservations, not by hope that "it will be enough".

Recovery time after failure ceases to be measured in hours of manual work.

A node falls out — its machines automatically come up on live ones, planned maintenance takes place via live migration without stopping services, and a state snapshot and replica provide a rollback point to a specific moment.

The result — a downtime window in minutes and a predictable scenario instead of improvisation at the moment of an incident.

A single management point is not convenience for convenience's sake. One panel, common templates, roles and permissions, unified backup policies mean that configuration is reproduced, not restored from memory.

And along with this, a whole class of failures goes away: version desynchronization between nodes, manual edits on live systems, a "special" server that no one remembers.

A new node is brought in according to the same scenario as the previous ones and behaves the same — resources become predictable.

Proxmox setup options for different tasks

The choice of option is determined by two questions: what downtime is acceptable when hardware fails, and whether there is shared storage for all nodes.

This determines whether running machines are transferred between servers on the fly or restored from a copy with loss of data from the last minutes.

Placement schemes and their limitations

Option When suitable Limitations
Single node Test environment, internal service, small branch No fault tolerance: node failure stops all machines until manual intervention. Backups are mandatory and tested for recovery
Cluster with shared storage Need to move running machines without downtime and a single place for backups The shared volume becomes a shared point of failure, requires dedicated disks and separate administration
Cluster with replication between nodes No own storage, but need fast service recovery on a neighboring node Data is not synchronized instantly — part of the latest changes is lost. Space for copies is occupied twice
Container-first approach Services on one kernel, high placement density, quick deployment of new environments Shared kernel reduces isolation, not suitable for third-party systems and non-standard builds
Mixed environment: containers and virtual machines Some services in containers, some on full-fledged machines with their own kernel More difficult to maintain: two sets of templates, backup rules, and update procedures

We select the scheme based on the failure class and acceptable recovery time, not by the principle "the more complex, the more reliable": on a small environment, a cluster adds work without adding resilience.

How implementation goes: from audit to handover to operation

Work proceeds in stages, and each ends with an artifact that can be checked: infrastructure map, placement scheme, node configuration, test report.

This removes the main implementation risk — when the cluster is already assembled, and it turns out that the disk subsystem cannot handle the load or a node does not survive a shutdown.

  1. Infrastructure audit — inventory of servers, disks, network, and running machines: what we migrate, what we decommission, where the bottlenecks are in CPU, memory, and disk operations.
  2. Scheme design — layout of machines and containers across nodes, quorum, roles, addressing plan, and capacity headroom for growth.
  3. Deployment — installation of nodes, assembly of the Proxmox VE cluster, unified accounts and permissions, connection to monitoring.
  4. Storage setup — local disks or shared volume, replication between nodes, backup schedule, and backup retention depth.
  5. Network setup — bridges, traffic segmentation, isolation of machine groups, separate access to the management panel.
  6. Fault tolerance testing — shutting down a node under load, simulating disk failure, recovery from backup: we record switchover and recovery time.
  7. Handover to operation — update procedures, access, documentation, training for your team, and post-launch support.

The order of stages does not change with the size of the environment — the depth of checks and the volume of documentation change.

Access policies, backups, and documentation at handover

A carefully configured Proxmox VE cluster without handed-over documentation lives exactly until the first vacation of the engineer who assembled it.

Therefore, we hand over the environment as a complete set: configurations, policies, diagrams, and procedures by which your team or another contractor can work without us.

  • Access policies — roles and permission scopes for administrators, operators, and service accounts, domain binding and two-factor authentication, separate rules for backup and monitoring jobs.
  • Backups — schedule, retention depth by generations, combination of snapshots and full copies, storage targets, and recovery verification procedure with a test run log.
  • Network and storage diagram — addressing map, segments and routes between them, binding of disk pools to nodes, list of failure points with behavior when each fails.
  • Maintenance procedure — node update procedure, adding to and removing from the cluster, planned work with machine migration, response to disk or node degradation.
  • Instructions for your team — deploy a machine or container, connect storage, roll back a release, check status, and collect data for contacting support.
  • Inventory list — nodes, machines, templates, storages, and external dependencies with owners and review dates.

Each item is a working artifact from your environment, not a summary of settings: it can be handed over to the team or contractor and work can continue.

Case: a three-node cluster and load consolidation

What it was before

A fleet of fourteen physical servers grew chaotically: each service was installed on a separate machine "so it wouldn't interfere with neighbors." Nine machines ran at less than a quarter load, and planned maintenance of any node turned into a night window of several hours with services stopped.

Decommissioning hardware was done manually by engineers according to a ten-step instruction — and each time there was a risk of missing an item and bringing down a neighboring service.

What was changed

We assembled a three-node cluster on Proxmox VE and migrated virtual machines and containers there: first the test environment, then production services one by one, with checks after each migration.

Backup, migration, and restart remained standard — without custom scripts that depended on one person. Figures before and after:

  • idle servers: nine out of fourteen → two, left for tasks with direct access to equipment;
  • planned node maintenance: night window of 3–4 hours → 20–30 minutes during working hours without stopping services;
  • share of manual operations when decommissioning a node: about eighty percent → single checks against a short checklist;
  • node failure: services were down until an engineer arrived → load is distributed across live nodes automatically.

The failure scenario was tested deliberately: we turned off a node under production load and watched how many services came up on their own. No manual actions were required — some virtual machines migrated to neighboring nodes, the rest returned to service within a few minutes.

How containers differ from virtual machines in practice

The choice between a container and a virtual machine is a choice of isolation boundary, not "lighter or heavier." A container shares the kernel with the host, a virtual machine carries its own kernel and drivers. Hence the differences in placement density, service startup speed, and failure class on the node.

A container starts in seconds and does not spend memory on a second copy of the system: dozens of services coexist on a node, and the image remains compact.

The price is the shared kernel: you cannot bring up another branch of it or a third-party module, and an error in access permissions and network settings affects neighbors.

A virtual machine gets its own kernel, bootloader, and network interfaces. This allows keeping different kernel branches on one hardware, testing system updates before production, and rolling back a service with a disk copy rather than a rebuild. The price is emulation overhead, longer startup, and lower density.

Option When suitable Limitations
OS-level container similar services under Linux: web services, job queues, build agents shared kernel, no third-party modules, weaker security boundary
Virtual machine heterogeneous stack, its own kernel and drivers, guest systems not on Linux higher resource consumption, longer startup and update maintenance
Mixed scheme some services densely, some in a separate perimeter network and storage are designed for both types at once

In practice, a node is almost always mixed: application services go into containers, DBMS, gateways, and everything that requires its own kernel — into virtual machines.

The rule is simple: if you need density and fast startup — container; if you need full isolation or another kernel — virtual machine.

Doubts before starting: limitations and frequently asked questions

Before starting, customers ask the same questions: will Proxmox VE install on their hardware, can already running nodes be combined without stopping services, and what will happen if hardware fails. We answer directly, including cases when the solution will have to be limited.

We already have a node with virtual machines running — can it be added to the cluster without downtime?

A node is added to the cluster on the fly: we take backups, verify storage and network settings, add the node, and migrate machines with live migration. Downtime is zero, but we schedule heavy operations in a low-load window.

Will our current hardware be suitable?

Virtualization limitations depend not on the server brand, but on CPU support for hardware virtualization, memory headroom for the sum of machines, and the type of disk array.

To combine servers into a cluster, nodes must be compatible by CPU generation — otherwise we separate machines into groups.

Will we be able to maintain the system ourselves afterward?

Yes. We hand over configurations, network and storage diagrams, backup and update procedures, and train an administrator. After that, the system can be maintained on your own, leaving us with cluster expansion and resolution of complex failures.

What happens if a node or disk fails?

A cluster of three nodes survives the failure of one without stopping services: machines come up on live nodes. We configure quorum and shared storage, then test the scenario by actually shutting down a node.

Let's discuss the task and come back with an estimate and work plan

To discuss the task substantively, rather than in general terms, it is useful to collect several inputs in advance. They shorten the path to a working scheme for the future infrastructure and allow us to immediately talk about modes, timelines, and checkpoints.

  • List of services and workloads being migrated to virtualization: what is critical for availability, and what can tolerate planned downtime.
  • Current state: how many nodes and disks, which storages are used, where backups are stored, and how their integrity is checked.
  • Fault tolerance requirements: acceptable recovery time, backup retention depth, whether a reserve at a second site is needed.
  • Access restrictions: network segmentation, isolation of environments, who gets administrative rights, and how an action log is maintained.
  • What is already configured: cluster, storages, non-standard guest machine parameters that are important to preserve during migration.
  • Work windows: when services may be stopped and whether there are peak load periods.
  • A responsible person on your side who will accept the result and work with the infrastructure going forward.

Then the procedure is simple: we analyze the task and current state, assemble a scheme for the future infrastructure, prepare an estimate and work plan with stages and checkpoints. After approval, we implement, test behavior during node failure, and hand over with documentation.

Post-launch support — at your choice: from addressing individual questions to support with backup and update control.

Describe the task in free form — we will come back with an estimate and work plan.