Programming and Usage Models for Non-Volatile Memory ​Priya Sehgal ​MTS, Advanced Technology Group, Netapp

Programming and Usage Models for Non-Volatile Memory ​Priya Sehgal ​MTS, Advanced Technology Group, Netapp

Programming and Usage Models for Non-volatile Memory ​Priya Sehgal ​MTS, Advanced Technology Group, NetApp ​SDC India ​26th May 2016 1 © 2016 NetApp, Inc. All rights reserved. Agenda § Overview § SNIA NVM Programming Model and Ecosystem § File System Changes for NVM § Existing – Linux (ext4) § New – PMFS, BPFS § NVM Library – libpmem example 2 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- Non-Volatile Memory Technology • Persistent memory Cache • Short Access Speeds • Byte Addressable STT-MRAM, 3D XPoint (on DDR)? R/W (ns/ns) PCM, ReRAM, 3D XPoint (OPTANE) R/W (ns/us) NAND SSD R/W (us/us) Hard Disk Drive R/W (ms/ms) 3 © 2016 NetApp, Inc. All rights reserved Implications to Software § Persistence: Volatility a Virtue! § Application or OS panics because of an illegal/wrong persistent memory address § Ensure durability § Ensure ordering § Fast Access Speed § Software Stack overhead § Byte Addressable § Block-oriented softwares § Can leverage Load/Store [Caulfield, MICRO ‘10] 4 © 2016 NetApp, Inc. All rights reserved Roadblocks to Persistence MOV! Core Core Core L1 L1 L1 L1 L1 L1 L2 L2 L2 L3 Memory Controller Memory Controller NVDIMM NVDIMM 5 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- Instruction Level Support MOV! Core Core Core L1 L1 L1 L1 L1 L1 L2 L2 L2 CLFLUSH, CLFLUSHOPT, CLWB! L3 Memory Memory Controller Controller PCOMMIT! NVDIMM NVDIMM https://software.intel.com/sites/default/files/managed/b4/3a/319433-024.pdf 6 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- NVM Prog. Ecosystem 7 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- SNIA NVM Programming Model www.snia.org/sites/default/files/NVMProgrammingModel_v1r10DRAFT_0.pdf 8 © 2016 NetApp, Inc. All rights reserved SNIA NVM Programming Model 9 © 2016 NetApp, Inc. All rights reserved Ecosystem Overview 10 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- File System Changes 11 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- Intel’s PMFS § Design Goals § Efficient access to PM by apps § Optimize for byte addressability § Protect from stray writes § Contributions § Remove block layer and page cache - Enable direct access to PM via XIP (DAX) § Supports large pages § Atomic in-place update to metadata § Provides crash consistency § Fine grained undo logging § Leverage write-protect in kernel http://dl.acm.org/citation.cfm?id=2592814 12 © 2016 NetApp, Inc. All rights reserved Microsoft’s BPFS § Ensures file system consistency guarantees § Use copy-on-write up to root of file system § Problem: § Any change requires bubbling to the FS root § Small writes result in large copy overhead § Solution: § Uses Short-Circuit Shadow Paging § Adopt in-place and/or atomic update when possible § Uses byte-addressability and atomic 64b writes http://research.microsoft.com/pubs/81175/BPFS.pdf 13 © 2016 NetApp, Inc. All rights reserved Problem with CoW (Shadow Paging) Any small change results in large copy overhead file’s root pointer unnecessary copies A B A’ B’ 14 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- Short-Circuit Shadow Paging § In-place update when possible – save on copies § Appends committed by updating the file size file’s root pointer in-place update A B A’ B’ 15 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- Linux File System Support § Direct Access for Files (DAX) § Bypass page cache § Perform read/write directly to the storage device – Synchronous § Support from block driver § direct_access! § Examples: brd – RAM backed block device driver § Support from File System § Direct_IO functions – dax_do_io()! § Implementing mmap file operations for DAX files § Page fault functions § Examples: ext2, ext4 https://www.kernel.org/doc/Documentation/filesystems/dax.txt 16 © 2016 NetApp, Inc. All rights reserved Traditional vs. Optimized File Systems 17 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- NVM Library 18 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- NVM Library § library for using memory-mapped persistence, specifically for PM § Supports SNIA NVM API § Builds on Linux DAX § Provides a collection of libraries: § libpmem: low-level persistent memory support – persistent memory instructions for flushing changes to PM. § libpmemlog: pmem-resident log file (uses libpmem) § libpmemobj: transactional object store (uses libpmem) § And many more § Link: http://pmem.io/nvml/libpmem/ http://pmem.io/nvml/libpmem/ 19 © 2016 NetApp, Inc. All rights reserved Example using libpmem !/* create a pmem file */ ! !! !if ((fd = open("/pmem-fs/myfile", O_CREAT|O_RDWR, 0666)) < 0) { !! !!perror("open"); !! !!exit(1);!! !} !! !/* allocate the pmem */ !! !posix_fallocate(fd, 0, PMEM_LEN))! !! !/* memory map it */ !! !if ((pmemaddr = pmem_map(fd)) == NULL) { !! Force changes to NVM !!perror("pmem_map"); !! !!exit(1);!! !} !! Flush processor caches !!! !/* store a string to the persistent memory */ ! !! !strcpy(pmemaddr, "hello, persistent memory."); !! !/* flush above strcpy to persistence */! !pmem_persist(pmemaddr, PMEM_LEN); !! Wait for h/w buffers to drain ! !strcpy(pmemaddr, "hello again, persistent memory.");! !pmem_flush(pmemaddr, PMEM_LEN); !! !pmem_drain(); !! ! 20 © 2016 NetApp, Inc. All rights reserved Summary § Scratching the surface à more research going on areas such as remote memory access, security, etc. § Existing software (without changes) on NVM would result in: § Sub-optimal performance § Consistency/Durability issues § Usage Models § NVM Block Device w/ existing/modified file systems or direct access § NVM File Systems on NVM Driver § NVM Library (talks to NVM Filesystem) – libpmem § Persistent Memory Regions and Persistent heap § Manage using memory management unit § APIs: pmap, punmap, pmalloc, pfree § E.g., Mnemosyne, NV-Heaps 21 © 2016 NetApp, Inc. All rights reserved Thank you. 22 © 2016 NetApp, Inc. All rights reserved. References BPFS: http://research.microsoft.com/pubs/81175/BPFS.pdf [Caulfield, MICRO ‘10]: Moneta: A High-performance Storage Array Architecture for Next-generation, Non-volatile Memories, Adrian M. Caulfield, Arup De, Joel Coburn, Todor I. Mollov, Rajesh K. Gupta, and Steven Swanson, MICRO 43 Intel Manual: https://software.intel.com/sites/default/files/managed/b4/3a/319433-024.pdf [libpmem]: http://pmem.io/nvml/libpmem/ Linux DAX: https://www.kernel.org/doc/Documentation/filesystems/dax.txt Mnemosyne: http://research.cs.wisc.edu/sonar/papers/mnemosyne-asplos2011.pdf NV-Heaps: http://www.msr-waypoint.com/pubs/198372/Asplos2011_NVHeaps.pdf PMFS: http://dl.acm.org/citation.cfm?id=2592814 SNIA NVM Programming TWG: www.snia.org/sites/default/files/NVMProgrammingModel_v1r10DRAFT_0.pdf 23 © 2016 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL --- .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us