기존 플래시 메모리 기반 파일 시스템의 한계
- 기존에 제안된 대표적인 플래시 메모리 기반 파일 시스템 : JFFS, JFFS2, YAFFS 등.
-
NOR 플래시 메모리를 위해 설계된 JFFS는 garbage collection을 통해 각 메모리 블록의 데이터 삭제 횟수를
균등하게 유지하고, 가용 메모리 용량을 효율적으로 관리. 그러나 garbage collection으로 인한 빈번한 데이터 삭제는
오히려 플래시 메모리의 수명을 단축시킴.
- NAND 플래시 메모리를 위한 JFFS2는 JFFS의 문제점을 개선하기 위해
새로운 garbage collection 알고리즘을 제안하였으나, 데이터 삭제 횟수를 균등하게 관리하기 위해 각 블록의 데이터를
이동하는 과정에서 여전히 많은 횟수의 삭제 동작을 수행.
- YAFFS는 JFFS2와 같이 NAND 플래시 메모리를 위한
것으로, 각 블록에 연속적인 숫자를 할당함으로써 파일 시스템의 마운트 후 램(RAM)으로 복구하는 과정이 기존의 파일 시스템에
비해 빠름. 그러나 YAFFS는 기존의 파일 시스템에 비해 메모리 쓰기 과정에서 제약이 커짐.
UBIFS: UBI file system
-
기존의 플래시 메모리 파일 시스템과 달리 특정 플래시 메모리의 종류에 제한 받지 않는 UBIFS가 Nokia에 의해 개발됨.
UBIFS는 다양한 플래시 메모리에 접근하기 위한 API를 제공하는 Memory Technology Devices(MTD)를 통해
플래시 메모리를 추상화 함으로써 파일 시스템과 플래시 메모리간의 의존성을 제거함. 또한, Unsorted Block
Images(UBI)를 기반으로 함으로써 wear-leveling, 불량 블록 관리, 동적 볼륨 관리 등이 가능.
UBIFS 는 JFFS2 파일 시스템이 가지고 있는 장점인 동적 압축, 전원 차단에 대한 내성 및 복구 가능성 등을 유지함과 동시에 마운트 성능 개선, 대용량 파일 처리 성능 개선, 쓰기 성능 개선 등을 목표로 하여 오픈 소스로 개발되었고, 008년 10월 리눅스 커널 2.6.27 이후로 현재 리눅스 운영체체에 탑재 됨.