F2FS: A File System for Flash Storage

undefined
 
F2FS:
A File System for
Flash Storage
 
 
Introduction
 
NAND flash memory is broadly used
However, NAND flash has the following limitations
Erase before write
Limited write cycles per erase block
NAND flash does not work well with random writes
Can cause internal fragmentations and degrade sustained
SSD performance
Random write patterns are common
Facebook mobile app (150% more random than sequential
writes)
WebBench (70% more random than sequential writes)
Due to the use of SQLite
 
Main F2FS Design Points
 
Based on LFS
Use zone > section > segment units
Allocate storage in segments
Clean in sections
Aligned with FTL operational units
 
Main F2FS Design Points
 
Use node address table <node ID, address> to solve the
wandering tree problem (see slides 8 & 9)
LFS appends data <data> and index block  <index block,
data 
address
>
It’s index map block <index map, index block 
address
> also
needs to be updated
Instead, index block and index map store data node 
ID
and index block node 
ID
Only the node address table needs to be updated
 
Main F2FS Design Points
 
Multi-headed logging
Separate hot and cold data
Runs multiple log segments concurrently
Appends data and metadata to separate log segments
Exploits parallelism
Adaptive logging
Use append to convert random writes into sequential ones
When the storage is near full, use threaded logging
Fsync acceleration and roll-forward recovery
 
On-Disk Layout
 
F2FS splits a volume into six areas (see slide 7)
Superblock
Checkpoint
Segment information table (SIT) contains validity bitmap
Node address table (NAT) for nodes stored in the main
area
Segment summary area (SSA) stores parent inode number
and its node/data offsets
Main area stores 4KB blocks
A node contains indices of data blocks
Data block contains directory or file data
 
On-Disk Layout
 
LFS Update
 
F2FS Update with Node
Translation Table
 
Directory Structure
 
4KB directory entries
Bitmap with <slot, name> pairs
Slot contains hash value, inode number, file length, file
type
A directory file uses multi-level hash tables
 
Multi-head Logging
 
Maintains six log areas
Three levels of temperatures
Hot, warm, and cold
 
Cleaning
 
Foreground
 
Triggered when not
enough space
Picks sections with the
fewest valid segments
Migrate immediately
 
Background
 
Triggered periodically
Uses cost-benefit policy
Also considers the age
of sections
Lazy migration
Merges segments and
leaves them in memory
 
Fsync optimization
 
Write data blocks and their direct node blocks only
Excluding other node or metadata blocks
Leverage checkpoints to recover
 
Performance
 
Compared to ext4
3x for iozone
2x for SQLite
Slide Note
Embed
Share

F2FS, a file system designed for flash storage, addresses the limitations of NAND flash memory including erase-before-write, limited write cycles, and efficiency with random writes. Its main design points focus on using zone, section, and segment units for storage allocation and cleaning, as well as implementing multi-headed logging and adaptive logging strategies for improved performance. The on-disk layout of F2FS divides a volume into six key areas for storage management.

  • F2FS
  • File System
  • Flash Storage
  • NAND Flash
  • Storage Management

Uploaded on Sep 27, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. F2FS: A File System for Flash Storage

  2. Introduction NAND flash memory is broadly used However, NAND flash has the following limitations Erase before write Limited write cycles per erase block NAND flash does not work well with random writes Can cause internal fragmentations and degrade sustained SSD performance Random write patterns are common Facebook mobile app (150% more random than sequential writes) WebBench (70% more random than sequential writes) Due to the use of SQLite

  3. Main F2FS Design Points Based on LFS Use zone > section > segment units Allocate storage in segments Clean in sections Aligned with FTL operational units

  4. Main F2FS Design Points Use node address table <node ID, address> to solve the wandering tree problem (see slides 8 & 9) LFS appends data <data> and index block <index block, data address> It s index map block <index map, index block address> also needs to be updated Instead, index block and index map store data node ID and index block node ID Only the node address table needs to be updated

  5. Main F2FS Design Points Multi-headed logging Separate hot and cold data Runs multiple log segments concurrently Appends data and metadata to separate log segments Exploits parallelism Adaptive logging Use append to convert random writes into sequential ones When the storage is near full, use threaded logging Fsync acceleration and roll-forward recovery

  6. On-Disk Layout F2FS splits a volume into six areas (see slide 7) Superblock Checkpoint Segment information table (SIT) contains validity bitmap Node address table (NAT) for nodes stored in the main area Segment summary area (SSA) stores parent inode number and its node/data offsets Main area stores 4KB blocks A node contains indices of data blocks Data block contains directory or file data

  7. On-Disk Layout

  8. LFS Update

  9. F2FS Update with Node Translation Table

  10. Directory Structure 4KB directory entries Bitmap with <slot, name> pairs Slot contains hash value, inode number, file length, file type A directory file uses multi-level hash tables

  11. Multi-head Logging Maintains six log areas Three levels of temperatures Hot, warm, and cold Type Node Temperature Hot Warm Cold Hot Warm Cold Objects Direct node blocks for directories Direct node blocks for files Indirect node blocks Directory entry blocks Data blocks Data blocks moved by cleaning Multimedia file data Data

  12. Cleaning Foreground Background Triggered when not enough space Triggered periodically Uses cost-benefit policy Picks sections with the fewest valid segments Also considers the age of sections Migrate immediately Lazy migration Merges segments and leaves them in memory

  13. Fsync optimization Write data blocks and their direct node blocks only Excluding other node or metadata blocks Leverage checkpoints to recover

  14. Performance Compared to ext4 3x for iozone 2x for SQLite

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#