In this work, we develop the log-structured filesystem that is free from garbage collection. There are two key technical ingredients: IPLFS, a log-structured filesystem for infinite partition, and Interval Mapping, a space-efficient LBA-to-PBA mapping for infinite filesystem partition. In IPLFS, we separate the filesystem partition size from the physical storage size and set the size of the logical partition large enough so that there is no lack of free segments in the logical partition during SSD’s lifespan. This allows the filesystem to write the updates in append-only fashion without reclaiming the invalid filesystem blocks. We revise the metadata structure of the baseline filesystem, F2FS, so that it can efficiently handle the storage partition with 2^64 sectors. We develop Interval Mapping to minimize the memory requirement for the LBA-to-PBA translation in FTL. Interval Mapping is a three level mapping tree. It maintains mapping only for actively used filesystem region. With Interval Mapping, the FTL can maintain the mapping for the 264 sector range with almost identical memory requirement with the page mapping whose LBA range is limited by the size of the storage capacity. We implement the IPLFS on Linux kernel 5.11.0 and prototype the Interval Mapping in OpenSSD. By eliminating the filesystem level garbage collection, IPLFS outperforms F2FS by up to 12.8× (FIO) and 3.73× (MySQL YCSB A), respectively.
본 논문은 쓰레기 수집을 하지 않는 로그 구조 파일 시스템을 제안한다. 논문은 크게 두 부분으로 구성된다. 무한한 파티션을 위한 로그 구조 파일 시스템인 IPLFS와, 무한한 파일시스템 파티션에서 논리 블록 주소와 물리 블록 주소를 공간 효율적으로 맵핑해주는 Interval Mapping이다. IPLFS는 물리적 저장장치의 크기와 파일시스템의 논리 파티션을 분리하여, 플래시 저장장치의 수명동안 새로운 세그먼트가 부족하지 않을 만큼 논리 파티션의 크기를 충분히 크게 잡는다. 이로써 파일시스템은 무효한 파일 시스템 블록을 회수하지 않고, 오로지 추가하는 방식의 쓰기가 가능해진다. 우리는 로그 구조 파일 시스템인 F2FS의 메타 데이터 구조를 수 정하여서, 264개의 섹터의 저장장치 공간을 효율적으로 다룰 수 있도록 하였다. 우리는 플래시 변환 계층에서 논리 블록 주소와 물리 블록 주소의 변환에 사용되는 메모리 사용을 최소화하기 위해서 Interval Mapping을 개발하였다. Interval Mapping은 3개의 계층으로 이루어진 맵핑 트리로, 파일시스템에서 사용되는 영역의 맵핑만 관리한다. Interval Mapping을 사용하면, 플래시 변환 계층은 페이지 맵핑과 거의 동일한 크기의 메모리로 2^64개의 섹터 영역의 맵핑을 관리할 수 있다. 우리는 리눅스 커널 5.11.0 위에 IPLFS를 구현하였고, OpenSSD위에 Interval Mapping 프로토 타입을 구현하였다. IPLFS는 파일시스템 차원의 쓰레기 수집을 제거함으로써, FIO와 MySQL YCSB A에서 F2FS에 보다 각각 12.8배, 3.73배 더 높은 성능을 보였다.