Virtualize and share non-volatile memories in user space

Virtualize and share non-volatile memories in user space
复制标题

DOI:
10.1007/s42514-020-00019-8
复制
发表时间:
2020-02
影响因子:
0.9
通讯作者:
C. Chou;Jaemin Jung;A. Reddy;Paul V. Gratz;Doug Voigt
C. Chou;Jaemin Jung;A. Reddy;Paul V. Gratz;Doug Voigt
中科院分区:
--
文献类型:
--
作者:
C. Chou;Jaemin Jung;A. Reddy;Paul V. Gratz;Doug Voigt

文献摘要

被引文献

相似文献

新兴的非易失性存储器(NVM)具有类似DRAM的低延迟以及存储设备的非易失性等吸引人的特性。最近,字节可寻址的、连接存储器总线的NVM已变得可用。本文解决了将更小、更快的字节可寻址NVM与更大、更慢的存储设备(如SSD)相结合的问题,以创建可在多个应用程序之间同时共享的更大、更快的字节可寻址NVM的印象。本文提出了一种用于虚拟和共享NVM的用户空间库vNVML。VNVML为应用程序提供类似事务的内存语义,以确保写入顺序、持久性和跨系统故障的持久性保证。VNVML利用DRAM进行读缓存以提高性能,并有可能减少写入NVM的次数,从而延长NVM的生命周期。用C语言实现了vNVML,并用实际工作负载进行了评估,表明vNVML允许应用程序高效地共享NVM,无论是在单个操作系统中还是在使用类似码头的容器时都是如此。评估结果显示,vNVML在为应用程序提供扩展的虚拟NVM空间并允许应用程序安全共享虚拟NVM的同时,产生的开销不到10%。
Emerging non-volatile memory (NVM) has attractive characteristics such as DRAM-like low-latency together with the non-volatility of storage devices. Recently, byte-addressable, memory bus-attached NVM has become available. This paper addresses the problem of combining a smaller, faster byte-addressable NVM with a larger, slower storage device, such as SSD, to create the impression of a larger and faster byte-addressable NVM which can be shared across multiple applications concurrently. In this paper, we propose vNVML, a user space library for virtualizing and sharing NVM. vNVML provides for applications transaction-like memory semantics that ensures write ordering, durability, and persistency guarantees across system failures. vNVML exploits DRAM for read caching to improve performance and potentially to reduce the number of writes to NVM, extending the NVM lifetime. vNVML is implemented in C and evaluated with realistic workloads to show that vNVML allows applications to share NVM efficiently, both in a single OS and when docker-like containers are employed. The results from the evaluation show that vNVML incurs less than 10% overhead while providing the benefits of an expanded virtualized NVM space to the applications, and allowing applications to safely share the virtual NVM.