Microsoft Build 2016 9/12/2018 5:05 AM Using non-volatile memory (NVDIMM-N) as byte-addressable storage in Windows Server 2016 Tobias Klima Program Manager.

Slides:



Advertisements
Similar presentations
Device Virtualization Architecture
Advertisements

Processes Management.
Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
The SNIA NVM Programming Model
Hypervisor, Virtualization Stack, And Device Virtualization Architectures Mike Neil Product Unit Manager Windows Virtualization Microsoft Corporation.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
NVM Programming Model. 2 Emerging Persistent Memory Technologies Phase change memory Heat changes memory cells between crystalline and amorphous states.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-2: I/O Management (Review) Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
I/O management is a major component of operating system design and operation Important aspect of computer operation I/O devices vary greatly Various methods.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
© 2004, D. J. Foreman 1 Computer Organization. © 2004, D. J. Foreman 2 Basic Architecture Review  Von Neumann ■ Distinct single-ALU & single-Control.
UNIX Unit 1- Architecture of Unix - By Pratima.
Processes and Virtual Memory
© 2006 EMC Corporation. All rights reserved. The Host Environment Module 2.1.
Device Driver Concepts Digital UNIX Internals II Device Driver Concepts Chapter 13.
Chapter 3 Getting Started. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Objectives To give an overview of the structure of a contemporary.
Welcome to Intro to Operating Systems Course Website:
CSCE451/851 Introduction to Operating Systems
Introduction to Operating Systems Concepts
Input/Output (I/O) Important OS function – control I/O
Chapter 13: I/O Systems.
Virtualization.
Virtual Machine Monitors
Business Continuity & Disaster Recovery
Hardware and OS Design and Layout.
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Microsoft Virtual Academy
Microsoft Ignite /22/2018 7:21 PM BRK2007
Chapter 1: A Tour of Computer Systems
CS 6560: Operating Systems Design
Kako sa novim tehnologijama graditi datacentar budućnosti?
Chapter 12: File System Implementation
Using non-volatile memory (NVDIMM-N) as block storage in Windows Server 2016 Tobias Klima Program Manager.
Need for Speed: Why Applications With No Database and No Services are Fast ARC334 Nick Randolph – Built to Roam.
Chapter 4 Threads.
Operating System I/O System Monday, August 11, 2008.
Installation and database instance essentials
I/O Manager, 64-bit Porting, and New Driver Models
Using a Gateway to Leverage On-Premises Data in Power BI
OPERATING SYSTEM OVERVIEW
OS Virtualization.
Chapter 3: Windows7 Part 2.
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Chapter 9: Virtual-Memory Management
CPSC 457 Operating Systems
What Happens if There is no Free Frame?
Chapter 3: Windows7 Part 2.
Chapter 9: Virtual Memory
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
Selecting a Disk-Scheduling Algorithm
CS703 - Advanced Operating Systems
Today’s agenda Hardware architecture and runtime system
Integrating DPDK/SPDK with storage application
Lecture Topics: 11/1 General Operating System Concepts Processes
B.Ramamurthy Chapter 2 : Appendix
Threads Chapter 4.
Computer Organization
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Windows Device Portal Hirsch Singhal Program
Windows Azure Hybrid Architectures and Patterns
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment. Phone:
Page Cache and Page Writeback
Chapter 13: I/O Systems.
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

Microsoft Build 2016 9/12/2018 5:05 AM Using non-volatile memory (NVDIMM-N) as byte-addressable storage in Windows Server 2016 Tobias Klima Program Manager © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

The Case for Byte-Addressability Problem Storage Class Memory (NVDIMM-N) performance is not optimal in block mode (software overhead) Opportunity Utilize NVDIMM-N in byte-addressable (DAX) mode to achieve full performance potential Approach Memory-Map files on DirectAccess (DAX) volumes NVDIMM-N supported in WS 2016 Exposes Block Interface (like a Disk), as well as byte-addressability option (DAX Volume) SCM Traditional Storage PCIe CPU SATA SAS NVDIMM-N NVMe AHCI HBA Memory

DirectAccess Architecture Memory Mapped Region Overview App has direct access to SCM via existing memory-mapping semantics Updates directly modify SCM, Storage Stack not involved DAX volumes identified through new flag Characteristics True device performance (no software overhead) Byte-Addressable Filter Drivers relying on I/O may not work or attach – no I/O, new volume flag AV Filters can still operate (Windows Defender already updated) Block Mode Application DirectAccess Application Application requests memory-mapped file Load/Store Operations Standard File API User Mode Kernel Mode DirectAccess Setup Path SCM-Aware File System (NTFS - DAX) DirectAccess Data Path SCM Bus Driver SCM Disk Driver Enumerates NVDIMM Load/Store Operations SCM Memory Mapped Region

Using DAX in WS 2016 DAX Volume Creation DAX Volume Identification Microsoft Build 2016 9/12/2018 5:05 AM Using DAX in WS 2016 DAX Volume Creation Format n: /dax /q Format-Volume –DriveLetter n –IsDAX $true DAX Volume Identification Is it a DAX volume? call GetVolumeInformation(“C:\”, ...) check lpFileSystemFlags for FILE_DAX_VOLUME (0x20000000) Is the file on a DAX volume? call GetVolumeInformationByHandleW(hFile, ...) © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Using DAX in WS 2016 Memory Mapping Microsoft Build 2016 9/12/2018 5:05 AM Using DAX in WS 2016 Memory Mapping HANDLE hMapping = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL); LPVOID baseAddress = MapViewOfFile(hMapping, FILE_MAP_WRITE, 0, 0, size); memcpy(baseAddress + writeOffset, dataBuffer, ioSize); FlushViewOfFile(baseAddress, 0); OR … use non-temporal instructions for NVDIMM-N devices for better performance RtlCopyMemoryNonTemporal(baseAddress + writeOffset, dataBuffer, ioSize ); © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Efficiency Gains with DAX Volumes Outdated Assumptions Storage is no longer “slow” Creating, Tracking, Queueing, Completing I/O costs CPU cycles (context switches) Past tricks to speed up storage (caching, async I/O, queues), now slow us down Direct Access NTFS Volume Mode (Regular vs. DAX) decided at Format Time No I/O, no queueing, no async reads/writes – just load/stores Flush user data via existing memory mapping APIs (FlushViewOfFile) … Or – use non-temporal instructions on NVDIMM-N Efficiency from DAX Less context switches on highly contested data structures Additional CPU cycles for more useful work

NVDIMM-N Block vs. DAX Performance Tobias Klima Hardware Provided By:

Adapting Apps for DAX – NVML Overview Helper Library making use of SCM easier Maintained on GitHub, http://pmem.io/ Abstracts OS specific dependencies Provides: key/value stores, logs, flushing, persistent heap, … Use Case Alternative to handling flushing or creating SCM-aware data structures yourself NVML on Windows Work underway to port NVML to Windows

Call to Action Technical Resources Microsoft Build 2016 9/12/2018 5:05 AM Call to Action Consider memory-mapped I/O on NVDIMM-N How would you change your app, if you could do fast, reliable, synchronous updates? What data(structures) do your apps use frequently? Which need the lowest possible access latencies? Technical Resources Memory Mapping - https://msdn.microsoft.com/en-us/library/ms810613.aspx GetVolumeInformation - https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993(v=vs.85).aspx GetVolumeInformationByHandleW - https://msdn.microsoft.com/en-us/library/windows/desktop/aa964920(v=vs.85).aspx Re-visit Build on Channel 9. Continue your education at Microsoft Virtual Academy online. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

9/12/2018 5:05 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.