kentoh - Fotolia

Tip

Persistent memory in Hyper-V VMs offers better data retention

When coupled with virtualization, persistent memory bridges the gap between traditional memory and storage devices by offering better performance and availability.

Given the rising interest in persistent memory, it was only a matter of time before Microsoft introduced the feature to Windows Server. The 2019 release has support for persistent memory in Hyper-V VMs, making it possible for virtualization administrators to use the same performance benefits that come with implementing persistent memory directly to hardware, such as the ability to retain data after loss of power and support for faster startups.

Persistent memory is still a young technology but one that's quickly making inroads into enterprise data centers. Virtualization administrators generally use hard disk drives (HDDs) and solid-state drives (SSDs) to store data, though they risk limiting their workloads by reducing bandwidth and performance. But persistent memory offers admins the ability to lower latency, increasing the speed of several IT tasks, such as cyberthreat analysis.

The persistent memory feature represents an important step for Microsoft and could prove a useful tool for enterprises running virtual servers. Microsoft's Storage Spaces Direct supported persistent memory prior to Hyper-V, and with Hyper-V support making its debut, the big winner here is server virtualization.

Get to know persistent memory

Dynamic RAM (DRAM) devices have dominated traditional computing systems. They provide exceptional performance but are expensive and volatile. This means that DRAM devices can't persist data with loss of power. Because of these limitations, most workloads rely on HDDs, SSDs or a combination of both for storing data. For example, admins who use tape drives to handle backup and archived data combine HDDs and SDDs.

Persistent memory delivers memory-level performance but can retain data in the event of power loss, similar to non-volatile HDDs and SSDs.

Despite the advantages of these non-volatile storage devices, they come with significant bandwidth, latency and performance concerns that grow worse as data volumes grow. Applications generally demand better throughputs and lower latencies as technologies, such as AI and machine learning, grow more prevalent.

Persistent memory promises to address these concerns by offering a new type of memory that bridges the gap between traditional memory and storage devices. Persistent memory delivers memory-level performance but can retain data in the event of power loss, similar to non-volatile HDDs and SSDs.

Admins generally install a persistent memory device on a system's memory bus, which provides direct connectivity to the processor. In this way, applications can access data through the memory bus, resulting in fewer I/O trips and comparable access speeds to traditional DRAM. The result is better performance, faster startups and greater availability, making persistent memory ideal for workloads that require frequent access to large data sets, such as real-time analytics or in-memory databases.

Persistent memory in Hyper-V VMs

Given the performance benefits that come with persistent memory, it's no surprise that Microsoft has extended support to Hyper-V VMs. Admins running virtualized workloads on Windows Server 2019 can take advantage of the high throughputs and low latencies that were exclusive to hardware-based persistent memory. For example, if admins implement an in-memory database in a VM, they can use virtual persistent memory to reduce both transaction latencies and recovery times in the event of a system failure.

Once admins install and configure persistent memory on a Windows Server 2019 computer, they can implement it in a Hyper-V VM by taking the following steps:

  1. Create a persistent memory virtual hard disk (VHD) on an existing New Technology File System (NTFS) direct access storage (DAX) volume. For this, admins must use PowerShell's New-VHD cmdlet, specifying the Fixed file format and the .vhdpmem extension for the device's file name.
  2. Create a Hyper-V Generation 2 VM by running the New-VM cmdlet. Admins must specify the memory size and a path to a VHD image in the command. The image must be a VHDX file, as opposed to a VHD file.
  3. Add a persistent memory controller to the VM by running the Add-VMPmemController cmdlet. Admins must specify the name of the VM created in the second step in the command.
  4. Attach the persistent memory device to the VM by running the Add-VMHardDiskDrive cmdlet, which adds a HDD to a VM. Admins must specify the name of the persistent memory device created in the first step and the name of the VM created in the second step in the command.

When admins start up the VM, the persistent memory device appears in Disk Manager, and they can use the device as a DAX volume or block volume.

A DAX volume behaves more like a memory module and provides the lowest latency. As the name suggests, DAX offers direct access to files, without incurring I/O overhead or needing to copy the data through the page cache. Admins can only use DAX with NTFS.

A block volume behaves more like traditional storage, which means that data flows through the stack and incurs I/O overhead. Admins can use block access with both NTFS and Resilient File System, which provides compatibility with legacy applications.

A persistent memory VM doesn't support Hyper-V Live Migration or Storage Migration features. In addition, VM production checkpoints don't include the persistent memory state.

Next Steps

Speed Dating With PM Application Developers

Annual Update on Persistent Memory

Dig Deeper on IT systems management and monitoring