ChunkStash: Speeding Up Storage Deduplication using Flash Memory

Similar documents
Speeding Up Cloud/Server Applications Using Flash Memory

Reducing Replication Bandwidth for Distributed Document Databases

DELL EMC DATA DOMAIN SISL SCALING ARCHITECTURE

Part II: Data Center Software Architecture: Topic 2: Key-value Data Management Systems. SkimpyStash: Key Value Store on Flash-based Storage

A DEDUPLICATION-INSPIRED FAST DELTA COMPRESSION APPROACH W EN XIA, HONG JIANG, DA N FENG, LEI T I A N, M I N FU, YUKUN Z HOU

Integrating Flash Memory into the Storage Hierarchy

Deduplication Storage System

Design Tradeoffs for Data Deduplication Performance in Backup Workloads

Sparse Indexing: Large-Scale, Inline Deduplication Using Sampling and Locality

Deduplication File System & Course Review

Scalable and Secure Internet Services and Architecture PRESENTATION REPORT Semester: Winter 2015 Course: ECE 7650

Purity: building fast, highly-available enterprise flash storage from commodity components

dedupv1: Improving Deduplication Throughput using Solid State Drives (SSD)

COS 318: Operating Systems. NSF, Snapshot, Dedup and Review

SHHC: A Scalable Hybrid Hash Cluster for Cloud Backup Services in Data Centers

Delta Compressed and Deduplicated Storage Using Stream-Informed Locality

Reducing Replication Bandwidth for Distributed Document Databases

Data Reduction Meets Reality What to Expect From Data Reduction

Reducing Replication Bandwidth for Distributed Document Databases

The What, Why and How of the Pure Storage Enterprise Flash Array. Ethan L. Miller (and a cast of dozens at Pure Storage)

WAN Optimized Replication of Backup Datasets Using Stream-Informed Delta Compression

The Logic of Physical Garbage Collection in Deduplicating Storage

Parallelizing Inline Data Reduction Operations for Primary Storage Systems

Rethinking Deduplication Scalability

Design Tradeoffs for Data Deduplication Performance in Backup Workloads

BloomStore: Bloom-Filter based Memory-efficient Key-Value Store for Indexing of Data Deduplication on Flash

Azor: Using Two-level Block Selection to Improve SSD-based I/O caches

Reducing The De-linearization of Data Placement to Improve Deduplication Performance

CS3600 SYSTEMS AND NETWORKS

Lazy Exact Deduplication

Zero-Chunk: An Efficient Cache Algorithm to Accelerate the I/O Processing of Data Deduplication

Understanding Primary Storage Optimization Options Jered Floyd Permabit Technology Corp.

NetApp Data Compression, Deduplication, and Data Compaction

HPDedup: A Hybrid Prioritized Data Deduplication Mechanism for Primary Storage in the Cloud

The Effectiveness of Deduplication on Virtual Machine Disk Images

Can t We All Get Along? Redesigning Protection Storage for Modern Workloads

DEBAR: A Scalable High-Performance Deduplication Storage System for Backup and Archiving

A study of practical deduplication

LSM-trie: An LSM-tree-based Ultra-Large Key-Value Store for Small Data

Storage Efficiency Opportunities and Analysis for Video Repositories

SILT: A Memory-Efficient, High- Performance Key-Value Store

Improving throughput for small disk requests with proximal I/O

Flashed-Optimized VPSA. Always Aligned with your Changing World

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

Contents Part I Traditional Deduplication Techniques and Solutions Introduction Existing Deduplication Techniques

Accelerating Restore and Garbage Collection in Deduplication-based Backup Systems via Exploiting Historical Information

In-line Deduplication for Cloud storage to Reduce Fragmentation by using Historical Knowledge

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, March 18, ISSN

DASH COPY GUIDE. Published On: 11/19/2013 V10 Service Pack 4A Page 1 of 31

PS2 out today. Lab 2 out today. Lab 1 due today - how was it?

FGDEFRAG: A Fine-Grained Defragmentation Approach to Improve Restore Performance

SSDs in the Cloud Dave Wright, CEO SolidFire, Inc.

C has been and will always remain on top for performancecritical

Introducing Tegile. Company Overview. Product Overview. Solutions & Use Cases. Partnering with Tegile

White paper ETERNUS CS800 Data Deduplication Background

Database Architecture 2 & Storage. Instructor: Matei Zaharia cs245.stanford.edu

Cheap and Large CAMs for High Performance Data-Intensive Networked Systems- The Bufferhash KV Store

CS370 Operating Systems

Distributed caching for cloud computing

HICAMP Bitmap. A Space-Efficient Updatable Bitmap Index for In-Memory Databases! Bo Wang, Heiner Litz, David R. Cheriton Stanford University DAMON 14

Main Memory (Part II)

CSE 4/521 Introduction to Operating Systems. Lecture 23 File System Implementation II (Allocation Methods, Free-Space Management) Summer 2018

Disks and Files. Storage Structures Introduction Chapter 8 (3 rd edition) Why Not Store Everything in Main Memory?

System and Algorithmic Adaptation for Flash

An Application Awareness Local Source and Global Source De-Duplication with Security in resource constraint based Cloud backup services

CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

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

The Fusion Distributed File System

A Scalable Inline Cluster Deduplication Framework for Big Data Protection

RPE: The Art of Data Deduplication

Deduplication and Incremental Accelleration in Bacula with NetApp Technologies. Peter Buschman EMEA PS Consultant September 25th, 2012

LEVERAGING FLASH MEMORY in ENTERPRISE STORAGE

Data Storage and Query Answering. Data Storage and Disk Structure (2)

Alternative Approaches for Deduplication in Cloud Storage Environment

SoftNAS Cloud Performance Evaluation on AWS

UCS Invicta: A New Generation of Storage Performance. Mazen Abou Najm DC Consulting Systems Engineer

Banshee: Bandwidth-Efficient DRAM Caching via Software/Hardware Cooperation!

File system internals Tanenbaum, Chapter 4. COMP3231 Operating Systems

Improving Backup and Restore Performance for Deduplication-based Cloud Backup Services

I-CASH: Intelligently Coupled Array of SSD and HDD

SoftNAS Cloud Performance Evaluation on Microsoft Azure

P-Dedupe: Exploiting Parallelism in Data Deduplication System

DEC: An Efficient Deduplication-Enhanced Compression Approach

Application-Aware Big Data Deduplication in Cloud Environment

Efficient Deduplication Techniques for Modern Backup Operation

Online Deduplication for Databases

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

Operating Systems. Lecture File system implementation. Master of Computer Science PUF - Hồ Chí Minh 2016/2017

TIBX NEXT-GENERATION ARCHIVE FORMAT IN ACRONIS BACKUP CLOUD

MIGRATORY COMPRESSION Coarse-grained Data Reordering to Improve Compressibility

Chapter 12: File System Implementation

Presented by: Nafiseh Mahmoudi Spring 2017

DBMS Data Loading: An Analysis on Modern Hardware. Adam Dziedzic, Manos Karpathiotakis*, Ioannis Alagiannis, Raja Appuswamy, Anastasia Ailamaki

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Functional Partitioning to Optimize End-to-End Performance on Many-core Architectures

Benefits of Storage Capacity Optimization Methods (COMs) And. Performance Optimization Methods (POMs)

Chapter 12: Query Processing

April 2010 Rosen Shingle Creek Resort Orlando, Florida

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts

SMORE: A Cold Data Object Store for SMR Drives

Transcription:

ChunkStash: Speeding Up Storage Deduplication using Flash Memory Biplob Debnath +, Sudipta Sengupta *, Jin Li * * Microsoft Research, Redmond (USA) + Univ. of Minnesota, Twin Cities (USA)

Deduplication of Storage Detect and remove duplicate data in storage systems e.g., Across multiple full backups Storage space savings Faster backup completion: Disk I/O and Network bandwidth savings Feature offering in many storage systems products Data Domain, EMC, NetApp Backups need to complete over windows of few hours Throughput (MB/sec) important performance metric High-level techniques Content based chunking, detect/store unique chunks only Object/File level, Differential encoding

Impact of Dedup Savings Across Full Backups Source: Data Domain white paper

Deduplication of Storage Detect and remove duplicate data in storage systems e.g., Across full backups Storage space savings Faster backup completion: Disk I/O and Network bandwidth savings Feature offering in many storage systems products Data Domain, EMC, NetApp Backups need to complete over windows of few hours Throughput (MB/sec) important performance metric High-level techniques Content based chunking, detect/store unique chunks only Object/File level, Differential encoding

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 Hash 4 2 0-2 -4 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 Hash 4 2 0-2 -4 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 Hash 4 2 0-2 -4 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 Hash 4 2 0-2 -4 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 Hash 4 2 0-2 -4 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 Hash 4 2 0-2 -4 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 If Hash matches a particular pattern, Declare a chunk boundary 4 2 0-2 -4 Hash 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 If Hash matches a particular pattern, Declare a chunk boundary 4 2 0-2 -4 Hash 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 If Hash matches a particular pattern, Declare a chunk boundary 4 2 0-2 -4 Hash 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 If Hash matches a particular pattern, Declare a chunk boundary 4 2 0-2 -4 Hash 0 2 4 6

Content based Chunking Calculate Rabin fingerprint hash for each sliding window (16 byte) 001 110 3 Chunks If Hash matches a particular pattern, Declare a chunk boundary 4 2 0-2 -4 Hash 0 2 4 6

How to Obtain Chunk Boundaries? Content dependent chunking When last n bits of Rabin hash = 0, declare chunk boundary Average chunk size = 2 n bytes When data changes over time, new chunks correspond to new data regions only Compare with fixed size chunks (e.g., disk blocks) Even unchanged data could be detected as new because of shifting How are chunks compared for equality? 20-byte SHA-1 hash (or, 32-byte SHA-256) Probability of collisions is less than that of hardware error by many orders of magnitude

Container Store and Chunk Parameters Chunks are written to disk in groups of containers Each container contains 1023 chunks New chunks added into currently open container, which is sealed when full Average chunk size = 8KB, Typical chunk compression ratio of 2:1 Average container size 4MB Data Container Container Store Chunk A Chunk B... Chunk X Chunk Y... Chunk A Chunk B... 1023 chunks Slide 19

Index for Detecting Duplicate Chunks Chunk hash index for identifying duplicate chunks Key = 20-byte SHA-1 hash (or, 32-byte SHA-256) Value = chunk metadata, e.g., length, location on disk Key + Value 64 bytes Essential Operations Lookup (Get) Insert (Set) Need a high performance indexing scheme Chunk metadata too big to fit in RAM Disk IOPS is a bottleneck for disk-based index Duplicate chunk detection bottlenecked by hard disk seek times (~10 msec)

Disk Bottleneck for Identifying Duplicate Chunks 20 TB of unique data, average 8 KB chunk size 160 GB of storage for full index (2.5 10 9 unique chunks @64 bytes per chunk metadata) Not cost effective to keep all of this huge index in RAM Backup throughput limited by disk seek times for index lookups 10ms seek time => chunk lookups per second => 800 KB/sec backup throughput Container No locality in the key space for chunk hash lookups Prefetching into RAM index mappings for entire container... to exploit sequential predictability of lookups during 2 nd and subsequent full backups (Zhu et al., FAST 2008)

Storage Deduplication Process Schematic Chunk (RAM) (Chunks in currently open container) (RAM) Chunk Index Index on on Flash HDD HDD HDD

Speedup Potential of a Flash based Index RAM hit ratio of 99% (using chunk metadata prefetching techniques) Average lookup time with on-disk index Average lookup time with on-flash index Potential of up to 50x speedup with index lookups served from flash

ChunkStash: Chunk Metadata Store on Flash Flash aware data structures and algorithms Random writes, in-place updates are expensive on flash memory Sequential writes, Random/Sequential reads great! Use flash in a log-structured manner Low RAM footprint Order of few bytes in RAM for each key-value pair stored on flash FusionIO 160GB iodrive 3x

ChunkStash Architecture RAM write buffer for chunk mappings in currently open container Chunk metadata organized on flash in logstructured manner in groups of 1023 chunks => 64 KB logical page (@64-byte metadata/ chunk) Prefetch cache for chunk metadata in RAM for sequential predictability of chunk lookups Chunk metadata indexed in RAM using a specialized space efficient hash table Slide 25

Low RAM Usage: Cuckoo Hashing High hash table load factors while keeping lookup times fast Collisions resolved using cuckoo hashing Key can be in one of K candidate positions Later inserted keys can relocate earlier keys to their other candidate positions K candidate positions for key x obtained using K hash functions h 1 (x),, h K (x) In practice, two hash functions can simulate K hash functions using h i (x) = g 1 (x) + i*g 2 (x) System uses value of K=16 and targets 90% hash table load factor Insert X

Low RAM Usage: Compact Key Signatures Compact key signatures stored in hash table 2-byte key signature (vs. 20-byte SHA-1 hash) Key x stored at its candidate position i derives its signature from h i (x) False flash read probability < 0.01% Total 6-10 bytes per entry (4-8 byte flash pointer) Related work on key-value stores on flash media MicroHash, FlashDB, FAWN, BufferHash Slide 27

RAM and Flash Capacity Considerations Whether RAM of flash size becomes bottleneck for store capacity depends on key-value size At 64 bytes per key-value pair, RAM is the bottleneck Example 4GB of RAM 716 million key-value pairs (chunks) @6 bytes of RAM per entry At 8KB average chunk size, this corresponds to 6TB of deduplicated data At 64 bytes of metadata per chunk on flash, this uses 45GB of flash Larger chunk sizes => larger datasets for same amount of RAM and flash (but may tradeoff with dedup quality) Slide 28

Further Reducing RAM Usage in ChunkStash Approach 1: Reduce the RAM requirements of the keyvalue store (work in progress) Approach 2: Deduplication application specific Index in RAM only a small fraction of the chunks in each container (sample and index every i-th chunk) Flash still holds the metadata for all chunks in the system Prefetch chunk metadata into RAM as before Incur some loss in deduplication quality Fraction of chunks indexed is a powerful knob for tradeoff between RAM usage and dedup quality Index 10% chunks => 90% reduction in RAM usage => less than 1-byte of RAM usage per chunk metadata stored on flash And negligible loss in dedup quality!

Compare with Sparse Indexing Scheme Sparse indexing scheme (FAST 2009) Chop incoming stream into multi-mb segments, select chunk hooks in each segment using random sampling Use these hooks to find few segments seen in the recent past that share many chunks How does ChunkStash differ? Uniform interval sampling No concept of segment; all incoming chunks looked up in index Match incoming chunks with sampled chunks in all containers stored in the system, not just those see in recent past Slide 30

Performance Evaluation Comparison with disk index based system Disk based index (Zhu08-BDB-HDD) SSD replacement (Zhu08-BDB-SSD) SSD replacement + ChunkStash (ChunkStash-SSD) ChunkStash on hard disk (ChunkStash-HDD) Prefetching of chunk metadata in all systems Three datasets, 2 full backups for each BerkeleyDB used as the index on HDD/SSD

Performance Evaluation Dataset 2 1.2x 65x 3.5x 1.8x 25x 3x Slide 32

Performance Evaluation Dataset 3 Slide 33

Performance Evaluation Disk IOPS Slide 34

Indexing Chunk Samples in ChunkStash: Deduplication Quality (1/64) (1/16) (1/8) Slide 35

Indexing Chunk Samples in ChunkStash: Backup Throughput Slide 36

Flash Memory Cost Considerations Chunks occupy an average of 4KB on hard disk Store compressed chunks on hard disk Typical compression ratio of 2:1 Flash storage is 1/64-th of hard disk storage 64-byte metadata on flash per 4KB occupies space on hard disk Flash investment is about 16% of hard disk cost 1/64-th additional storage @10x/GB cost = 16% additional cost Performance/dollar improvement of 22x 25x performance at 1.16x cost Further cost reduction by amortizing flash across datasets Store chunk metadata on HDD and preload to flash Slide 37

Summary Backup throughput in inline deduplication systems limited by chunk hash index lookups Flash-assisted storage deduplication system Chunk metadata store on flash Flash aware data structures and algorithms Low RAM footprint Significant backup throughput improvements 7x-60x over over HDD index based system (BerkeleyDB) 2x-4x over flash index based (but flash unaware) system (BerkeleyDB) Performance/dollar improvement of 22x (over HDD index) Reduce RAM usage further by 90-99% Index small fraction of chunks in each container Negligible to marginal loss in deduplication quality