What is FFS?

less than 1 minute read

What is FFS?

고전적인 유닉스 기반 파일시스템은 아래 Figure 1과 같이 | superblock | bitmap | inode table | data block |으로 구성된다.

img Figure 1. General Filesystem Structure

이 naive한 설계는 파일시스템이 사용됨에 따라서 성능의 문제를 겪게되는데 fragmentation이 심해짐에 따라 하드디스크의 읽기 지연이 점점 늘어가는 현상이 대표적인 문제라고 할 수 있다.

Figure 2는 이러한 문제를 극복하기 위해 설계된 FFS(Fast File System)의 개념을 보여주고 있다. 기본적인 아이디어는 데이터의 공간 지역성(spacail locality)를 이용하여 관련 데이터를 동일 실린더 그룹(cyliner gourp)안에 배치시킴으로써 파일 참조시 디스크 탐색을 최소화 하는 것이다.

img Figure 2. Example of FFS, Ext 4

Which filesystem falls into the category of FFS?

가장 대표적인 FFS 파일시스템은 ext 2/3/4, 그리고 XFS가 있다.

What problems does FFS have in mobile Devices?

대부분의 모바일 기기는 NAND Flash 혹은 이것을 기본 building block으로 사용하고 있는 eMMC 혹은 UFS를 사용하고 있다. 이러한 NAND Flash는 FFS 설계의 기본 전제인 ‘하드 디스크’와 근본적으로 성격이 다르기 때문에 FFS방식으로 설계된 파일시스템은 Flash 기반 저장장치에서 최적화된 성능을 낼 수 없다.

Then, what’s alternative for this FFS?

LFS(Log File System)!

Leave a comment