Hyper-V S2D vs Proxmox Ceph: the comparison that decided it
The Hyper-V versus Proxmox debate is rarely settled by a single number, because the two platforms do not pay the same price for the same guarantees. Hyper-V with Storage Spaces Direct remains built for a Windows world, whereas Proxmox VE with Ceph aims at the flexibility of a mixed fleet and a zero licensing bill. The real trade-off plays out on two axes, the performance one can expect from storage and the cost of ownership spread over several years.
What performance means here
One should be wary of the raw numbers printed in vendor white papers, because they almost never measure the same thing: comparing a random read on one side to a write on the other is exactly the kind of sleight of hand that makes a table say anything. One finding, however, stays robust when you change your measuring tool. On small-block random writes at shallow queue depth, local mirror-replicated storage such as S2D on NVMe keeps the edge, simply because it writes next to the CPU and waits for no one. Ceph, by contrast, pays a network round trip and replication coordination on every write and that is structural rather than accidental, since a write is only acknowledged once the replicas confirm it, which places its latency in the millisecond range rather than the microsecond one.
On reads, or on sequential workloads, the gap narrows and it even reverses once scaling enters the picture, because Ceph spreads the load across all of its OSDs while S2D stays bounded by its cluster geometry. The practical consequence fits in one sentence: for a database sensitive to write latency, local storage wins; for a pool that must grow, absorb failures and rebalance on its own, Ceph was designed for exactly that from the start, resilience being built in rather than bolted on.
Cost of ownership
Hyper-V + S2D:
- Windows Server Datacenter required (per-core licenses, expensive)
- management tooling on top
- Microsoft support included
- native integration with existing Windows infrastructure
Proxmox VE + Ceph:
- zero licensing (open source)
- tooling is included (Proxmox VE, Ceph dashboard)
- community support, or a Proxmox subscription for the enterprise
The decision for a studio fleet
A fleet of game development studios mixes Windows and Linux, dev workstations, build servers and VMs already in place, so the choice depends first on what already exists. If the infrastructure is already Windows-centric with Datacenter licenses in place, S2D holds its own. If the infrastructure is to be built from scratch, Proxmox and Ceph win the TCO calculation by eliminating the licenses.
The compromise that holds up combines the two: Proxmox VE for the hypervisor, open source with Ceph built in and Windows Server inside the VMs for the workstations and build servers. The Windows licenses then apply to the VMs, not to the hypervisor, which divides the licensing bill by the density factor.
The HA cluster and the question of usable capacity
This is where the first version of this article said something wrong that needs correcting outright. With three-way replication (size=3, min_size=2), usable capacity stays at a third of raw and it stays there regardless of node count: tripling every piece of data will always cost two thirds of the space. What the node count changes is not that ratio, it is fault tolerance and the headroom the cluster has to rebuild itself.
- three nodes: the honest minimum for quorum and for size=3, but losing one node leaves the cluster with no headroom to recreate the third replica;
- five nodes: the balance point, where losing one node rebalances painlessly while quorum holds;
- seven nodes and beyond: a node failure removes only a small fraction of capacity and the performance impact during the rebuild becomes negligible.
If the goal is to raise usable capacity rather than tolerance, the lever is not stacking nodes under three-way replication, it is switching to erasure coding, a 4+2 profile for instance, which raises usable capacity to around two thirds at the cost of higher latency and CPU load and which demands more nodes precisely to be safe. The real trade-off is replication versus erasure coding, not node count taken in isolation.
The usual Ceph rule still holds as is: a dedicated network (10 GbE minimum), its three replicas or its erasure-coding profile and SSDs protected against power loss.
[edit: 2026] The Ansible implementation of all this: the hyperv and proxmox roles.