PowerEdge: How to configure Persistent Memory NVDIMM on Windows Server 2019 Guest OS
Summary: This article provides information about how to configure Persistent Memory NVDIMMs on Windows Server 2019 Guest OS.
Instructions
On the previous article, "Configuring NVDIMM-N on PowerEdge Servers with Windows Server 2019," you learned about how NVDIMM-N works and how to configure Persistent Memory on Windows Server 2019.
This article explains how to configure NVDIMM PMEM on Windows Server 2019 Guest OS (VM). Example of how to configure NVDIMM on WS2019 Guest OS.
----------------
Configuration
----------------
Server: R740xd fully updated (BIOS, Firmware, Drivers, and OS)
- 2 x CPUs (Intel(R) Xeon(R) Gold 6126T CPU @ 2.60GHz)
- 2 x NVDIMM-N (16GB DDR4 2666MHz) + 12x regular RDIMMS (also 16GB DDR4 2666MHz)
- Boot Optimization Storage Solution (BOSS) - 2x M.2 SATA SSD in HW RAID used for the OS Installation
Note: Dell Technologies recommends updating BIOS, firmware, drivers, and Operating System as part of your scheduled update cycle. BIOS, firmware, driver, and OS updates are intended to improve the reliability, stability, and security of your system.
-------------------------------------------------------------
Storage-Class Memory support for VMs - Limitations
-------------------------------------------------------------
- No VM Migrations
- No runtime resizing
- No Thin-Provisioning or Snapshots
- Implemented through PowerShell
------------------------------------------------------
Configuring NVDIMM PMEM in a Windows VM
------------------------------------------------------
- Enable Persistent Memory in the R740xd BIOS.
Figure 1. BIOS Memory Settings
Figure 2. Memory Settings
Figure 3. Persistent Memory Menu
- Install Windows Server 2019.
- Install the Hyper-V role.
- Verify if an SCM disk has been detected by the Hypervisor.
Figure 4. Memory Devices on Device Manager
Figure 5. PMEM Devices listed on PowerShell
Figure 6. Physical Disks
- Create a PMEM Disk.
Figure 7. PMEM Unused Regions
Figure 8. Creating New PMEM disks
Figure 9. PMEM Disks on Get-Physical Disk output
- Initialize the new PMEM Disks, create new volumes, then format them. Use the parameter -
DAX $Truein order to properly enable SCM for Hyper-V utilization. You cannot present NVDIMM to VMs if-DAXoption is not present.
Figure 10. Identify PMEM Disks only
Figure 11. Initialize Disk, Create New Volume, and Format Volume
- Confirm that DAX is enabled.
Figure 12. DAX Mode Enabled
- Create a new Gen2 Virtual Machine, then Install Windows Server 2019.
- Shut down the VM.
- Add the PMEM Controller to the VM.
Figure 13. Adding VM PMEM Controller
- Create
.vhdpmemfile (new file extension). You must specify the-Fixedparameter. Thevhdpmemdisk does not work with dynamic VHD configuration.
Figure 14. Creating New VHDPMEM VHD
- Attach
VHDPMEMto the VM.
Figure 15. Attaching VHDPMEM Disk to VM
- Start the VM.
- Connect to the VM (PowerShell, Console, or RDP) and verify if PMEM disks are available.
Figure 16. PMEM in the VM
- Initialize Disk, create a new volume, then format it. For the SQL guys (SQL 2016 or above), if you want to take advantage of NVDIMMs, format the volume as DAX inside the VM (use the
-IsDAX $Trueparameter).
Figure 17. PMEM on VM - Initialize Disk, Create Volume, and Format Volume
-----------------------------------
Reference Powershell Cmdlets
----------------------------------- - Get PMEM Physical Device Information
Get-PmemPhysicalDevice
- Get Physical Disk Information
Get-PhysicalDisk
- Get PMEM Unused Region and Create New PMEM Disk
Get-PmemUnusedRegion | New-PmemDisk -Atomicity BlockTranslationTable
- Get PMEM Disk Information, Initialize Disk, Create New Partition, and Format the Volume in DAX Mode
Get-Disk -FriendlyName Persistent* | Initialize-Disk Get-Disk -FriendlyName Persistent* | New-Partition -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -isDAX $True
- Verify if DAX is Enabled
Get-Volume -DriverLetter x,x | Get-Partition | FT DriverLetter,IsDAX
- Get VM, Add PMEM Controller to the VM and Verify PMEM Controller Information
Get-VM Add-VMPmemController -VMName xxxxxx Get-VMPmemController -VMName xxxxxx
- Attach VHDPMEM File to the VM, Get VM Disk Information
Add-VMHardDiskDrive -VMName xxx -ControllerType PMEM -Path X:\xxxxx.vhdpmem Get-VMHardDiskDrive -VMName xxxxxx
Have any comments, questions, or suggestions? Contact us on WinServerBlogs@dell.com