Computer Engineering and Systems Group Electrical and Computer Engineering SCMFS: A File System for Storage Class Memory



Similar documents
A Study of Application Performance with Non-Volatile Main Memory

Managing Storage Space in a Flash and Disk Hybrid Storage System

Flexible Storage Allocation

SOFORT: A Hybrid SCM-DRAM Storage Engine for Fast Data Recovery

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Filesystems Performance in GNU/Linux Multi-Disk Data Storage

Storage Class Memory Support in the Windows Operating System Neal Christiansen Principal Development Lead Microsoft

Flash-Friendly File System (F2FS)

Full and Para Virtualization

NV-DIMM: Fastest Tier in Your Storage Strategy

Virtuoso and Database Scalability

File Systems Management and Examples

Memory Channel Storage ( M C S ) Demystified. Jerome McFarland

Enabling Technologies for Distributed Computing

Taking Linux File and Storage Systems into the Future. Ric Wheeler Director Kernel File and Storage Team Red Hat, Incorporated

Topics in Computer System Performance and Reliability: Storage Systems!

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION

Chapter 6, The Operating System Machine Level

Datacenter Operating Systems

Oracle Cluster File System on Linux Version 2. Kurt Hackel Señor Software Developer Oracle Corporation

DSS. Diskpool and cloud storage benchmarks used in IT-DSS. Data & Storage Services. Geoffray ADDE

Chapter 11: File System Implementation. Operating System Concepts 8 th Edition

NV-Heaps: Making Persistent Objects Fast and Safe with Next-Generation, Non-Volatile Memories Joel Coburn

COS 318: Operating Systems

Enabling Technologies for Distributed and Cloud Computing

System Software for Persistent Memory

File Systems for Flash Memories. Marcela Zuluaga Sebastian Isaza Dante Rodriguez

A PRAM and NAND Flash Hybrid Architecture for High-Performance Embedded Storage Subsystems

Memory Management under Linux: Issues in Linux VM development

DFS: A File System for Virtualized Flash Storage

09'Linux Plumbers Conference

Operating Systems CSE 410, Spring File Management. Stephen Wagner Michigan State University

Virtual Machines. COMP 3361: Operating Systems I Winter

File System Management

Distributed File Systems

Maximizing VMware ESX Performance Through Defragmentation of Guest Systems. Presented by

ViewBox: Integrating Local File System with Cloud Storage Service

Operating System Components

Using Linux as Hypervisor with KVM

A Data De-duplication Access Framework for Solid State Drives

Ryusuke KONISHI NTT Cyberspace Laboratories NTT Corporation

Linux kernel support to exploit phase change memory

Computer Architecture

On Benchmarking Popular File Systems

Informatica Data Director Performance

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

Scaling from Datacenter to Client

Main Memory Data Warehouses

Lecture 16: Storage Devices

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Database Hardware Selection Guidelines

hybridfs: Integrating NAND Flash-Based SSD and HDD for Hybrid File System

PERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0

Linux Kernel Architecture

COS 318: Operating Systems. Virtual Memory and Address Translation

& Data Processing 2. Exercise 2: File Systems. Dipl.-Ing. Bogdan Marin. Universität Duisburg-Essen

A Deduplication File System & Course Review

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

UBI with Logging. Brijesh Singh Samsung, India Rohit Vijay Dongre Samsung, India

Violin: A Framework for Extensible Block-level Storage

Lecture 17: Virtual Memory II. Goals of virtual memory

High-Performance Processing of Large Data Sets via Memory Mapping A Case Study in R and C++

NVRAM-aware Logging in Transaction Systems

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications. Jürgen Primsch, SAP AG July 2011

An Exploration of Hybrid Hard Disk Designs Using an Extensible Simulator

Benchmarking Cassandra on Violin

Indexing on Solid State Drives based on Flash Memory

Parallels Virtuozzo Containers

Encrypted File Systems. Don Porter CSE 506

Quantifying Hardware Selection in an EnCase v7 Environment

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 5 Storage Devices

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

Measuring Cache and Memory Latency and CPU to Memory Bandwidth

ProTrack: A Simple Provenance-tracking Filesystem

Client-aware Cloud Storage

Pushing the Limits of Windows: Physical Memory Mark Russinovich (From Mark Russinovich Blog)

Linux Performance Optimizations for Big Data Environments

Where is the memory going? Memory usage in the 2.6 kernel

Vormetric and SanDisk : Encryption-at-Rest for Active Data Sets

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture

DualFS: A New Journaling File System for Linux

Lecture 11. RFS A Network File System for Mobile Devices and the Cloud

Chapter 11: File System Implementation. Operating System Concepts with Java 8 th Edition

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

W4118 Operating Systems. Instructor: Junfeng Yang

nvm malloc: Memory Allocation for NVRAM

Solid State Drive Architecture

Transcription:

SCMFS: A File System for Storage Class Memory Xiaojian Wu, Narasimha Reddy Texas A&M University

What is SCM? Storage Class Memory Byte-addressable, like DRAM Non-volatile, persistent storage Example: Phase Change Memory

PCM Attributes From Numonyx

Hardware hierarchy Memory Storage CPU RAM DISK/SSD Storage Class Memory

How to use SCM as storage? External interfaces change slower than internals. Provide consistent APIs, e.g., POSIX Name space Directory-based file systems

How to use SCM as storage? Device level Use existing file system on RamDisk File system level Design a new file system

Use existing FS on Ramdisk Computer Engineering and Systems Group Applications User space C Libraries System Call Interfaces Kernel space VFS Ext2 Ext3 Btrfs Device Driver Generic Block layer Device Driver RamDisk Not necessary Hard Disk Flash Disk SCM

New FS on SCM Computer Engineering and Systems Group Applications User space C Libraries System Call Interfaces Kernel space VFS Remove page cache Ext2 Ext3 Btrfs scmfs How to design SCMFS? Generic Block layer Device Driver Hard Disk Device Driver Flash Disk SCM

Keep It Small and Simple Computer Engineering and Systems Group

Simplify the SCMFS Computer Engineering and Systems Group Block management in FS Allocate/De-allocate blocks Manage the resources on storage device Memory Management in OS Allocate/De-allocate memory pages Manage the memory resources

Indirect blocks in regular FSs Computer Engineering and Systems Group Direct blocks Indirect blocks Double indirect blocks Inode Meta

Keep files always contiguous Computer Engineering and Systems Group Inode Meta File data _start

Wrap up Re-utilize Memory Management (MM) module in O/S to do block management Implement the file system in Virtual Address Space Keep all the files contiguous in Virtual Address Space

Memory space layout Physical address space Metadata Mapping table FS space Page mapping Virtual address space Super block Inode table Files NVMALLOC_START NVMALLOC_END

SCMFS File system layout Super block Inode table r o o t dir1 file1 file2 Directory file Null file Ordinary file Active data Mapped but inactive data Unmapped space

Modify OS kernel to support SCMFS OS should be able to distinguish SCM from volatile DRAM Add a new address range type AddressRangeStorage to E820 table Add a new memory zone ZONE STORAGE Put memory range with AddressRangeStorage into this zone Add new kernel APIs nvmalloc()/nvfree()/nvmalloc_expand()/nvmalloc_shrink( ) Always operate in the zone ZONE STORAGE (physical address space) Always operate between NVMALLOC_START and NVMALLOC_END (total 2 47 )

More features Pre-allocation Allocate more space than needed Null files Garbage collection File system consistency Write ordering problem Cache, CPU instruction re-ordering Use clflush_cache_range to provide metadata consistency Combination of MFENCE and CLFLUSH. Flush the CPU cache periodically to provide data consistency.

Evaluation Environment 2.33GHz Intel Core2 Quad Processor Q8200 8GB RAM, 4GB is used as SCM. Linux 2.6.33 Benchmarks IoZone Workload on file data Postmark Workload on metadata Use Performance Counter to analyze the results

Simplicity Modification to OS consists of 300 SLOC. SCMFS consists of 2700+ SLOC (1/10th of Ext2FS)

Performance (IoZone Random) Computer Engineering and Systems Group

L2 Data Cache Miss Rate (IoZone Random)

Instruction Cache Miss Rate (IoZone Random)

Data TLB Misses (IoZone Random) SCMFS suffers from TLB misses.

Why higher TLB misses in SCMFS? Memory Map (x86_64) Scmfs works here, use small page size (4K) RamDisk works here, use big page size(2m) (=47 bits) user space 0000000000000000-00007fffffffffff hole caused by [48:63] sign extension (=47 bits)nvmalloc space ffff000000000000 ffff7fffffffffff (=40 bits) guard hole ffff800000000000 - ffff80ffffffffff (=64 TB) direct mapping of all phys. ffff880000000000 - ffffc7ffffffffff (=40 bits) hole ffffc80000000000 - ffffc8ffffffffff (=45 bits) vmalloc/ioremap space ffffc90000000000 - ffffe8ffffffffff (=40 bits) hole ffffe90000000000 - ffffe9ffffffffff (=40 bits) virtual memory map (1TB) ffffea0000000000 - ffffeaffffffffff (=512 MB) kernel text mapping, from phys 0 (=1536 MB) module mapping space ffffffff80000000 - ffffffffa0000000 ffffffffa0000000 - fffffffffff00000

Why higher TLB misses in SCMFS? 35000 2500000 Ext2fs Random write 30000 25000 20000 Ext2fs Random write SCMfs Random write 2000000 1500000 SCMfs Random write 15000 1000000 10000 5000 500000 0 8k 16k 32k 64k 128k256k512k 1m 2m 4m 8m 16m 0 4k 8k 16k 32k 64k 128k256k512k 1m 2m 4m 8m 16m Data TLB Misses Throughput(kbytes/s) Disable page size extension to use 4k page size everywhere

How to reduce Data TLB Misses? Larger page size Use linear mapping address for small files (<4kbytes) Pre-allocate huge page and manage space inside huge page

Performance (IoZone Sequential)

Multi-thread Performance (IoZone Random)

Does XIP mmap() perform best?

Multi-thread Performance (IoZone Random) read()/write() mmap()/bcopy() TLB misses read()/write() - 200(Ext2fs) or 4,000(SCMFS) mmap() - 2,000,000

Performance (postmark Random) SCMFS-1, original SCMFS. SCMFS-2, SCMFS-1 with space pre-allocation. SCMFS-3, SCMFS-2 with file system consistency.

Future work Reduce TLB misses. Simplify metadata operations. Defragmentation of virtual address space. Protection from malicious wearing out.

Related work A lot of papers on how to build large capacity main memory by using PCM BPFS A file system designed for non-volatile byteaddressable memory. Uses shadow paging techniques to provide fast and consistent updates. Requires architectural enhancements.

Conclusion SCMFS is designed for Storage Class Memory. SCMFS takes advantage of MMU. Design of File System should adapt to the change of hardware hierarchy. Performance depends on much more factors than ever. Thanks