flash-friendly file system (f2fs) · log-structured file system approach for flash storage •...

24
Flash-Friendly File System (F2FS) Feb 22, 2013 Joo-Young Hwang ([email protected]) S/W Dev. Team, Memory Business, Samsung Electronics Co., Ltd.

Upload: vandiep

Post on 09-Aug-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Flash-Friendly File System (F2FS)

Feb 22, 2013

Joo-Young Hwang

([email protected])

S/W Dev. Team, Memory Business, Samsung Electronics Co., Ltd.

Page 2: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Agenda

• Introduction

• FTL Device Characteristics

• F2FS Design

• Performance Evaluation Results

• Summary

2/24

Page 3: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Introduction

• NAND Flash-based Storage Devices

– SSD for PC and server systems

– eMMC for mobile systems

– SD card for consumer electronics

• The Rise of SSDs

– Much faster than HDDs

– Low power consumption

Source: March 30th, 2012 by Avram Piltch, LAPTOP Online Editorial Director

3/24

Page 4: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Introduction (cont’d)

• NAND Flash Memory

– Erase-before-write

– Sequential writes inside the erase unit

– Limited program/erase (P/E) cycle

• Flash Translation Layer (FTL)

– Conventional block device interface: no concern about erase-before-write

– Address Mapping, Garbage collection, Wear Leveling

• Conventional file systems and FTL devices

– Optimizations for HDD good for FTL?

– How to optimize a file system for FTL device?

4/24

Page 5: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Storage Access Pattern in Mobile Phones

• Sequential Write vs. Random Write

– Sequential write is preferred by FTL devices.

Reference: Revisiting Storage for Smartphones, Kim et al., USENIX FAST 2012

5/24

Page 6: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Log-Structured File System Approach for Flash Storage

• Log-structured File System (LFS)[1] fits well to FTL devices.

– Assume the whole disk space as a big log, write data and metadata sequentially

– Copy-on-write: recovery support is made easy.

Metadata Area

User Data Area

Metadata Area

Logical

Block

Address

Time

[non LFS]

1

2

3

4

5

6

7

8

Time

User-data Area

+ Metadata Area

[LFS]

1

2

3

4

5

6

7

8

[1] Mendel Rosenblum and John K. Ousterhout. 1992. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst. 10, 1

(February 1992), 26-52.

6/24

Page 7: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Conventional LFS

C

P

S

B

Inode

Map

Dir Inode

Directory data

File data

Indirect

Pointer block

Segment

Summary

Segment

Usage

File Inode

File data …

Used for cleaning

Fixed location, but separated One big log

Direct

Pointer block

•Wandering tree problem

•Performance drop at high utilization

due to cleaning overhead

7/24

Page 8: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

FTL Block Device

• FTL Functions

– Address Mapping

– Garbage Collection

– Wear Leveling

8/24

Page 9: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Address Mapping in FTL

• Address Mapping Methods

– Block Mapping

– Page Mapping

– Hybrid Mapping (aka log block mapping)

– BAST (Block Associative Sector Translation)

– FAST (Fully Associative)

– SAST (Set Associative)

• Merge (GC in Hybrid Mapping)

– Commit of log to data blocks

– Merge log blocks and data block to form up-

to-date data blocks

– Merge types

– Full merge

– Partial merge

– Switch merge: most efficient!

Free

Block Free

Block

Log

Block

Data

Block

Free

Block

Data

Block Data

Block

Log

Block

Data

Block Data

Block Data

Block Data

Block

Log

Block

Log

Block

Data

Block Data

Block Data

Block Data

Block

Log

Block

Data block group #1 Data block group #2

Log block group #1 Log block group #2

[SAST Example – 2 log blocks per 4 data blocks]

Data

Block

Log

Block

Copy

valid pages Free

Block

9/24

Page 10: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

FTL Device Characteristics

• FTL operation unit

– Superblock – simultaneously erasable unit

– Superpage - simultaneously programmable unit

• Implications for segment size

10/24

Page 11: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

FTL Device Characteristics (cont’d)

• FTL device may have multiple active log blocks

• Implications for multi-headed logging

11/24

Page 12: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

F2FS Design Overview

• FTL friendly Workload Pattern

– To drive FTL to do switch merge in most cases

• Avoiding Metadata Update Propagation

– Introduce indirection layer for indexing structure

• Efficient Cleaning using Multi-head Logs and Hot/Cold Data Separation

– Write-time data separation more chances to get binomial distribution

– Two different victim selection policies for foreground and background cleaning

– Automatic background cleaning

• Adaptive Write Policy for High Utilization

– Switches write policy to threaded logging at right time

– Graceful performance degradation at high utilization

12/24

Page 13: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

On-Disc Structure

• Start address of main area is aligned to the zone* size

• Cleaning operation is done in a unit of section

– Section is matched with FTL GC unit.

• All the FS metadata are co-located at front region.

Check

point

Area

Segment

Info.

Table

(SIT)

Node

Address

Table

(NAT)

Superblock 0

Superblock 1

Segment Number

(1 segment = 2MB)

Segment

Summary

Area

(SSA)

Main Area

2 segments

Per 2044GB

of main area

0.4% over

main area

0.2% over

main area Hot/Warm/Cold

node segments

Hot/Warm/Cold

data segments

0 1 2 …

Section

Zone Zone

Section Section Section Section Section Section

Zone Zone

Section

FS Metadata Area: Update in place Main Area: Logging

* Block size = 4KB

13/24

Page 14: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Addressing Wandering Tree Problem

C

P

S

B NAT

Dir Inode

Directory data

File data

Indirect

Node

Segment

Summary

(SSA)

Segment Info.

Table (SIT)

File Inode

File data …

Fixed location Multiple logs

Direct

Node

-Direct node blocks for dir

-Direct node blocks for file

-Indirect node blocks

-Dir data

-File data

-Cleaning data

Translated by NAT

14/24

Page 15: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

File Indexing Structure

Direct [929] Indirect [2]

Double [2]

Triple [1]

928

929 1946 1947 2964

2965 3982 2075613

About 3.94 TB

for 4KB block

15/24

Page 16: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Cleaning

• Hot/cold data separation is a key to reducing cleaning cost.

– Static (at data writing time)

– Dynamic (at cleaning time)

• Hot/cold separation at data writing time based on object types

– Cf) hot/cold separation at cleaning time requires per-block update frequency information.

Type Update frequency Contained Objects

Node

Hot Directory’s inode block or direct node block

Warm Regular file’s inode block or direct node block

Cold Indirect node block

Data

Hot Directory’s data block

Warm Updated data of regular files

Cold

Appended data of regular files,

moved data by cleaning,

multimedia file’s data

16/24

Page 17: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Cleaning (cont’d)

• Dynamic hot/cold separation at background cleaning

– Cost-benefit algorithm for background cleaning

• Automatic Background Cleaning

– Kicked in when I/O is idle.

– Lazy write: cleaning daemon marks page dirty, then flusher will issue I/Os later.

17/24

Page 18: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Adaptive Write Policy

• Logging to a clean segment

– Need cleaning operations if there is no clean segment.

– Cleaning causes mostly random read and sequential writes.

• Threaded logging

– When there are not enough clean segments

– Don’t do cleaning, reuse invalidated blocks of a dirty segment

– May cause random writes (but in a small range)

18/24

Page 19: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Performance (Panda board + eMMC)

seq. Read seq. Write rand. Read rand. Write

EXT4 30.753 17.066 5.06 4.15

F2FS 30.71 16.906 5.073 15.204

0

5

10

15

20

25

30

35

Ban

dwid

th (

MB

/s)

CPU ARM Cortex-A9 1.2GHz

DRAM 1GB

Storage Samsung eMMC 64GB

Kernel Linux 3.3

Partition Size 12 GB

seq.create seq.stat seq.delete rand.create rand.stat rand.delete

EXT4 692 1238 1370 663 1250 915

F2FS 631 7871 10832 620 7962 5992

0

2000

4000

6000

8000

10000

12000

File

s /

sec

[ iozone ]

[ fs_mark ] [ bonnie++ ]

[ System Specification ]

19/24

Page 20: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Evaluation of Cleaning Victim Selection Policies

• Setup

– Partition size: 3.7 GB

– Create three 1GB files, then updates 256MB randomly to each file

• Test

– One round: updates 256MB randomly to a file

– Iterate the round 30 times

20/24

Page 21: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Evaluation of Adaptive Write Policy

• Setup

– Embedded system with eMMC 12GB partition

– Creating 1GB files to fill up to the specified utilization.

• Test

– Repeats Iozone random write tests on several 1GB files

21/24

Page 22: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Lifespan Enhancement

• Wear Acceleration Index (WAI) : total erased size / total written data

• Experiment

– Write 12GB file sequentially.

– Randomly update 6GB of the file.

Ext4 F2FS

Seq Write (12GB) 1.37 1.32

Random Write (6GB) 10.70 2.29

Total 4.48 1.65

22/24

Page 23: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Performance on Galaxy Nexus

CPU ARM Coretex-A9 1.2GHz

DRAM 1GB

Storage Samsung eMMC 16GB

Kernel 3.0.8

Android ver. Ice Cream Sandwich

Items Ext4 F2FS Improv.

Contact sync time

(seconds) 431 358 20%

App install time

(seconds) 459 457 0%

RLBench (seconds) 92.6 78.9 17%

IOZoneWith

AppInstall

(MB/s)

Write 8.9 9.9 11%

Read 18.1 18.4 2%

Items Ext4 F2FS Improv.

Contact sync time

(seconds) 437 375 17%

App install time

(seconds) 362 370 -2%

RLBench (seconds) 99.4 85.1 17%

IOZone With

AppInstall

(MB/s)

Write 7.3 7.8 7%

Read 16.2 18.1 12%

< Clean > < Aged >

23/24

Page 24: Flash-Friendly File System (F2FS) · Log-Structured File System Approach for Flash Storage • Log-structured File System (LFS) [1] fits well to FTL devices. – Assume the whole

Summary

• Flash-Friendly File System

– Designed for FTL block devices (not for raw NAND flash)

– Optimized for mobile flash storages

– Can also work for SSD

• Performance evaluation on Android Phones

– Format /data as an F2FS volume.

– Basic file I/O test: random write performance 3.7 times of EXT4

– User scenario test: ~20% improvements over EXT4

24/24