High Performance Solid State Storage Under Linux

Similar documents
High Performance SSDs Under Linux

Solid State Storage Technologies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

The Transition to PCI Express* for Client SSDs

MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices

FC-NVMe. NVMe over Fabrics. Fibre Channel the most trusted fabric can transport NVMe natively. White Paper

I/O. Disclaimer: some slides are adopted from book authors slides with permission 1

Solid State Storage is Everywhere Where Does it Work Best?

Performance Modeling and Analysis of Flash based Storage Devices

Solid State Storage Technologies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Comparing Performance of Solid State Devices and Mechanical Disks

Key Points. Rotational delay vs seek delay Disks are slow. Techniques for making disks faster. Flash and SSDs

[537] Flash. Tyler Harter

Storage Systems : Disks and SSDs. Manu Awasthi July 6 th 2018 Computer Architecture Summer School 2018

SSD/Flash for Modern Databases. Peter Zaitsev, CEO, Percona November 1, 2014 Highload Moscow,Russia

NVMFS: A New File System Designed Specifically to Take Advantage of Nonvolatile Memory

CPS104 Computer Organization and Programming Lecture 18: Input-Output. Outline of Today s Lecture. The Big Picture: Where are We Now?

Storage: HDD, SSD and RAID

Roadmap. CPU management. Memory management. Disk management. Other topics. Process, thread, synchronization, scheduling. Virtual memory, demand paging

Using Transparent Compression to Improve SSD-based I/O Caches

Fine Grained Linux I/O Subsystem Enhancements to Harness Solid State Storage

Why? Storage: HDD, SSD and RAID. Computer architecture. Computer architecture. 10 µs - 10 ms. Johan Montelius

SHRD: Improving Spatial Locality in Flash Storage Accesses by Sequentializing in Host and Randomizing in Device

Storage: HDD, SSD and RAID

Storage. Hwansoo Han

High Performance SSD & Benefit for Server Application

An FPGA-Based Optical IOH Architecture for Embedded System

The Non-Volatile Memory Verbs Provider (NVP): Using the OFED Framework to access solid state storage

Operating Systems. V. Input / Output. Eurecom

Solving the I/O bottleneck with Flash

White Paper. File System Throughput Performance on RedHawk Linux

SSDs Driving Greater Efficiency in Data Centers

Benchmarking Enterprise SSDs

How Hard Drives Work

Identifying Performance Bottlenecks with Real- World Applications and Flash-Based Storage

User Guide. Storage Executive Command Line Interface. Introduction. Storage Executive Command Line Interface User Guide Introduction

Storage Systems : Disks and SSDs. Manu Awasthi CASS 2018

CSE 451: Operating Systems Spring Module 12 Secondary Storage

Getting Real: Lessons in Transitioning Research Simulations into Hardware Systems

Exploring System Challenges of Ultra-Low Latency Solid State Drives

Chapter 6. Storage and Other I/O Topics

Optimizing Server Designs for Speed

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

SFS: Random Write Considered Harmful in Solid State Drives

How Flash-Based Storage Performs on Real Applications Session 102-C

NVMe Takes It All, SCSI Has To Fall. Brave New Storage World. Lugano April Alexander Ruebensaal

Arrakis: The Operating System is the Control Plane

Red Hat Gluster Storage performance. Manoj Pillai and Ben England Performance Engineering June 25, 2015

I/O Devices & SSD. Dongkun Shin, SKKU

From server-side to host-side:

Quiz: Address Translation

Choosing Hardware and Operating Systems for MySQL. Apr 15, 2009 O'Reilly MySQL Conference and Expo Santa Clara,CA by Peter Zaitsev, Percona Inc

Exploiting the benefits of native programming access to NVM devices

Memory-Based Cloud Architectures

L7: Performance. Frans Kaashoek Spring 2013

CSE 451: Operating Systems Spring Module 12 Secondary Storage. Steve Gribble

Linux Storage System Bottleneck Exploration

Introduction I/O 1. I/O devices can be characterized by Behavior: input, output, storage Partner: human or machine Data rate: bytes/sec, transfers/sec

Design Choices for FPGA-based SoCs When Adding a SATA Storage }

I/O Virtualization: Enabling New Architectures in the Data Center for Server and I/O Connectivity Sujoy Sen Micron

Falcon: Scaling IO Performance in Multi-SSD Volumes. The George Washington University

Enabling Cost-effective Data Processing with Smart SSD

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

IME Infinite Memory Engine Technical Overview

Virtio-blk Performance Improvement

Performance Consistency

Linux Kernel Extensions for Open-Channel SSDs

Beyond Block I/O: Rethinking

Moneta: A High-performance Storage Array Architecture for Nextgeneration, Micro 2010

CSE 120. Operating Systems. March 27, 2014 Lecture 17. Mass Storage. Instructor: Neil Rhodes. Wednesday, March 26, 14

VIRTUALIZING SERVER CONNECTIVITY IN THE CLOUD

NVMe over Fabrics. High Performance SSDs networked over Ethernet. Rob Davis Vice President Storage Technology, Mellanox

The Benefits of Solid State in Enterprise Storage Systems. David Dale, NetApp

On the Accuracy and Scalability of Intensive I/O Workload Replay

16:30 18:00, June 20 (Monday), 2011 # (even student IDs) # (odd student IDs) Scope

HP Z Turbo Drive G2 PCIe SSD

Mass-Storage. ICS332 - Fall 2017 Operating Systems. Henri Casanova

Linux multi-core scalability

Today: Secondary Storage! Typical Disk Parameters!

Shifting Gears with SSDs

A Flash Scheduling Strategy for Current Capping in Multi-Power-Mode SSDs

Lessons learned implementing a multithreaded SMB2 server in OneFS

Example Networks on chip Freescale: MPC Telematics chip

Preface. Fig. 1 Solid-State-Drive block diagram

IBM Spectrum NAS. Easy-to-manage software-defined file storage for the enterprise. Overview. Highlights

PRESENTATION TITLE GOES HERE

Filesystem Performance on FreeBSD

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568

Readings. Storage Hierarchy III: I/O System. I/O (Disk) Performance. I/O Device Characteristics. often boring, but still quite important

Comparing UFS and NVMe Storage Stack and System-Level Performance in Embedded Systems

Seagate Enterprise SATA SSD with DuraWrite Technology Competitive Evaluation

Systems Architecture II

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

ECE Enterprise Storage Architecture. Fall 2016

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware

Improving Performance using the LINUX IO Scheduler Shaun de Witt STFC ISGC2016

VSSIM: Virtual Machine based SSD Simulator

OpenFlow Software Switch & Intel DPDK. performance analysis

SOS : Software-based Out-of-Order Scheduling for High-Performance NAND Flash-Based SSDs

Gecko: Contention-Oblivious Disk Arrays for Cloud Storage

SSD/Flash for Modern Databases. Peter Zaitsev, CEO, Percona October 08, 2014 Percona Technical Webinars

Transcription:

High Performance Solid State Storage Under Linux Eric Seppanen, Matthew T. O Keefe, David J. Lilja Electrical and Computer Engineering University of Minnesota April 20, 2010

Motivation SSDs breaking through into new applications Why care about another SSD? Faster! 1M IOPS, GBps+ Units x1000 Source: Preliminary Gartner estimates, 12/09 2

Contents What's New: PCIe SSD. Performance. SSD Benchmarking: Goals, observations, and pitfalls. Fast SSDs and Linux: How to go fast? What needs changes. 3

Solid State Drive Hardware Micron PCIe SSD prototype CPU System Memory NAND flash storage PCI Express 1.0 x8 Chipset Onboard flash management AHCI compatible + Deep command queue PCIe SSD SATA HBA SATA Disk SATA SSD 4

Random Read Throughput PCIe SSD Real hardware! No simulations. SATA SSD 5

Random Write Throughput PCIe SSD SATA SSD 6

Part 2: SSD Benchmarking or, How Not to Fall Off a Cliff: 7

Measuring SSD Performance Be skeptical: use realistic but difficult workload. Test areas where SSDs perform poorly Don't measure an SSD like a disk. Account for new SSD performance factors Include parallelism in benchmark (beware of Bonnie, IOZone, traces) 8

SSDs and Parallelism Disk hardware only capable of reading/writing one location at a time; SSDs can be reading/writing many places at once. Disks hold multiple requests in a queue: i.e. SATA disks have a 32 command queue. SSDs can process requests in parallel; we'll still call it a queue, but it's not used as one. 9

SSD vs Disk Disks are well understood: seek time + rotational latency. SSDs have many more factors: Native block size Overprovisioning / empty space FTL tasks can be nondeterministic The difference between maximum and minimum performance can be huge. 10

SSD performance over time Disk SSD Earlier I/O displaces drive head (ms) Rotating platter causes latency (<1ms) a a Earlier I/O ties up buses and flash planes (<1ms) Earlier I/O causes Garbage Collection tasks to run (~15 sec?) Earlier I/O patterns caused data fragmentation (weeks?) Earlier I/O usage consumed empty space (months?) a a a a 11

Simplified Pessimistic Benchmark Test under difficult conditions: Use lots of parallel I/O Use random I/O Perform small transfers Fill the drive Measure steady state performance 12

Part 3: The Linux Kernel or, How to Reach a Million IOPS 13

Extracting Best Performance CPU to device relationship has changed. Allow everything in parallel. Kernel I/O layers add significant overhead. Interrupt management becomes very important. 14

CPUs and devices New problem: the number of operations handled by one device is so high, it can't be managed by a single CPU core. If multiple CPU cores are needed, this affects the architecture of the device and interface software. 15

Aggregation of Slow Devices CPU 0 Driver A CPU 1 Driver B Kernel CPU 2 Driver C CPU 3 Driver D Achieve high throughput and parallelism by adding more devices. HBA 0 HBA 1 HBA 2 HBA 3 It's possible to manage I/O submit/retire with a single CPU. Storage Storage devices devices Storage Storage devices devices Storage Storage devices devices Storage Storage devices devices 16

Consolidation Onto Fast Device CPU 0 CPU 1 CPU 2 CPU 3 Kernel Kernel, driver and device must perform parallel operations efficiently. driver Must be designed to interface with many CPUs. High-performance storage device 17

Linux I/O Architecture Application Linux I/O subsystem has layers that add latency and limits parallelism. Try bypassing layers to find performance bottlenecks. VFS Filesystems Block layer request request queue SCSI ATA driver device 18

Linux I/O Architecture, continued Bypass SCSI, ATA layers to reduce CPU overhead Application VFS Application VFS Bypass request queue layers Filesystems Block layer request Filesystems Block layer request Reduce CPU overhead request queue driver Get rid of disk oriented optimizations Skip locking that hurts parallelism SCSI driver device ATA device 19

Interrupt Management Problem 1: Interrupt load can overwhelm a single CPU. Solution: spread interrupt load over multiple CPUs. Local Memory CPU 0 Local Cache Cache miss CPU n Problem 2: Interrupts sent to a distant CPU can cause cache miss slowdowns. Start I/O I/O Completion Interrupt Solution: Redirect interrupt to nearby CPU if possible. High-performance storage device 20

Driver Evolution Block driver, 32 command queue, bypass request queue C E Block driver, 128 command queue, bypass request queue B D Block driver, 128 command queue Standard AHCI (32 command queue) A Block driver, 32 command queue 21

Driver Evolution A B C D E 22

Conclusions High performance SSDs can deliver significantly higher performance than commodity SSDs. Careful benchmarking is important to reveal worstcase performance. SSDs use parallelism to reach maximum performance. Linux kernel and driver improvements may be necessary to get best results. 23

End of Presentation Thank you 24