F2FS- A New File System for Flash Storage

created : Thu, 02 Jul 2020 22:31:19 +0900
modified : Thu, 02 Jul 2020 22:35:15 +0900
f2fs paper

1. Introduction

a. Flash Memory의 한계점

b. Flash Memory 사용의 증가

c. Flash Memory에 대한 이해 부족으로 인한 단점

d. 기존의 연구

e. F2FS의 특징


2. Design and Implementation of F2FS

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/001cab83-197f-42b8-892b-0541b17acb77/layout.jpg

2.1 On-Disk Layout

Superblock(SB)

Checkpoint(CP)

Segment Information Table(SIT)

Node Address Table(NAT)

Segment Summary Area(SSA)

Main Area

2.2. File Structure

Node Structure

2.3. Directory Structure

2.4. Multi-Head Logging

Block의 종류

FTL(Flash Translation Layer) Algorithm

2.5 Cleaning

Foreground

Cleaning 단계

  1. Victim selection

    • 비어 있지 않은 sections 중 victim을 고른다.

    • greedy 방법과 cost-benefit 방법 2가지가 존재한다.

    • greedy 방법 : valid blocks 수가 가장 적은 section을 고른다. (Foreground)

    • cost-benefit 방법 : SIT(Segement Information Table)로 부터 last modification time을 가져와 section 안 segments의 평균을 매겨 section의 age를 매긴다 (cost = # valid blocks)

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d5cbabec-e5a7-422b-b522-5176649478b8/age.jpg

  2. Valid block identification and migration

    • SIT 로부터 segment 당 valid bitmap을 가져와서 valid blocks을 알아낸다.
    • SSA 로부터 parent node blocks을 알아낸다
    • Foreground로 돌아가고 있다면 free logs 에 옮긴다.
    • Background라면 page cache로 blocks을 옮기고 dirty로 표기한다.
  3. Post-Cleaning Process

    • victim section을 pre-free 라고 체크한 뒤 checkpoint를 만들어 저장한다.

논문을 읽으면서 궁금했던 점.

같이 보면 좋은 자료

http://csl.snu.ac.kr/courses/4190.568/2019-1/25-F2FS.pdf