Back to posts

Proxmox VE: Impact of Enabling SSD Emulation on HDD Storage

When to use SSD emulation in Proxmox VE


Proxmox VE: Impact of Enabling SSD Emulation on HDD Storage

Enabling the "SSD emulation" option in Proxmox VE for a virtual machine backed by physical Hard Disk Drives (HDDs) results in decreased I/O performance and increased latency.

1. Metadata Modification

The "SSD emulation" option does not introduce any hidden caching or hypervisor-level acceleration. It merely modifies the hardware metadata presented to the virtual machine, flagging the virtual disk as non-mechanical media (visible as rotational=0 in Linux sysfs).

2. Guest OS Behavior Change

Upon detecting an SSD, the guest operating system modifies its I/O scheduler algorithms:
* Linux Systems: The scheduler is changed from HDD-optimized algorithms (e.g., bfq or cfq, which group operations to minimize physical head movement) to SSD-optimized ones (e.g., none, noop, or mq-deadline). The OS assumes near-zero seek times for every sector.
* Windows Systems: Automatic defragmentation is disabled, potentially leading to filesystem fragmentation over time. The system sends I/O streams assuming instantaneous block access.

3. Physical Consequences (Disk Thrashing)

Since the guest OS stops optimizing read/write requests for platter geometry, a highly fragmented and unorganized I/O queue reaches the underlying physical storage. This forces the physical HDD heads to continuously jump across different areas of the platters. This phenomenon, known as disk thrashing, leads to a drastic drop in IOPS (especially random I/O) and exceptionally high IO wait metrics.

Conclusion

The "SSD emulation" feature should exclusively be enabled when the underlying storage relies on actual flash media (SSD/NVMe). Enabling it on rotational HDDs acts as an anti-optimization, degrading overall storage performance.