JFFS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
JFFS는 플래시 메모리의 제약 사항을 극복하기 위해 설계된 파일 시스템이다. 플래시 메모리는 느린 지우기 속도, 큰 세그먼트 단위의 지우기, 제한된 지우기 횟수 등의 특징을 가지며, JFFS는 이러한 특징을 고려하여 웨어 레벨링을 구현한다. JFFS는 플래시 장치를 순환 로그로 취급하여 파일 및 디렉터리 변경 사항을 노드 형태로 기록하고, 오프셋 포인터를 사용하여 노드를 연결한다. 로그의 꼬리와 머리 사이의 공간이 부족해지면 쓰레기 수집을 수행하여 공간을 확보한다. JFFS는 마운트 시 모든 inode 체인을 읽어 들여 메모리 소모가 크고, 순환 로그 방식 때문에 불필요한 삭제 사이클이 발생하여 플래시 수명을 단축시키는 단점이 있다.
더 읽어볼만한 페이지
JFFS - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
종류 | 로그 구조 파일 시스템 |
개발자 | 엑시스 커뮤니케이션스 |
운영 체제 | 리눅스 |
영어 명칭 | Journalling Flash File System |
2. 설계
JFFS는 플래시 메모리의 특성을 고려하여 설계되었다. 플래시 메모리는 데이터를 쓰기 전에 반드시 지워야 하며, 지우는 동작은 느리고 큰 세그먼트(KiB) 단위로 이루어지며 횟수 제한이 있다. 이러한 제약 때문에 ext2와 같은 기존의 파일 시스템들은 플래시 메모리에 적합하지 않았다.
JFFS는 이러한 문제를 해결하기 위해 플래시 장치를 순환 로그(circular log)로 취급하고, 웨어 레벨링을 적용하여 쓰기 횟수를 분산시킨다. 또한, 가비지 컬렉션을 통해 여유 공간을 확보한다.
2. 1. 플래시 메모리의 제약
플래시 메모리는 마그네틱 디스크와는 달리 몇 가지 제약 사항이 있다. 특히 플래시 메모리의 어떤 부분을 지우는 것은 다음과 같은 특징을 가진다.- 쓰기 동작을 하기 전에 필요한 동작이다.
- 느린 동작이다.
- 비교적 큰 세그먼트(보통 64 KiB 혹은 그 이상)에 대해서 행해지는 동작이다.
- 일정 회수 이하로만 가능한 동작이다. (보통 백만 번 이하)
ext2와 같은 파일 시스템들은, 대개 파일 시스템용 자료 구조들을 자체 공간을 사용하는 방식(in-place 방식)으로 업데이트한다. 수정 동작 후 행해지는, 아이노드(inode) 및 디렉터리 등과 같은 자료 구조들 업데이트가 그 예시이다. 웨어 레벨링의 결여(디스크 수명을 생각하지 않음) 때문에, 전통적인 파일 시스템은 플래시 장치에 적당하지 않다.
2. 2. 순환 로그 방식
JFFS는 플래시 메모리의 제약 사항을 극복하기 위해 순환 로그 방식을 사용한다. 플래시 메모리는 쓰기 전에 반드시 지워야 하며, 지우는 동작은 느리고, 비교적 큰 세그먼트 단위로만 가능하며, 횟수 제한이 있다.ext2와 같은 기존 파일 시스템은 파일 시스템 자료 구조를 자체 공간을 사용하는 방식(in-place)으로 업데이트하기 때문에 웨어 레벨링이 부족하여 플래시 장치에 적합하지 않다.
JFFS는 플래시 장치를 일종의 순환 로그(circular log)로 취급하여 웨어 레벨링을 제공한다. 파일 및 디렉터리에 대한 모든 변경 사항은 로그의 꼬리(tail)에 노드 형태로 기록된다. 각 노드는 파일 메타데이터를 담고 있는 헤더와 데이터(존재하는 경우)로 구성된다. 노드들은 오프셋 포인터를 통해 체인처럼 연결된다. 노드는 처음에는 "유효"(valid) 상태였다가 새로운 버전이 생성되면 "쓸모없음"(obsolete) 상태가 된다.
로그의 꼬리와 머리(head) 사이의 공간이 파일 시스템의 남은 공간(free space)이다. 이 남은 공간이 부족할 경우, JFFS는 쓰레기 수집을 수행한다. 쓰레기 수집 과정에서 유효한 노드는 로그의 꼬리쪽으로 복사되고, 쓸모없는 노드는 건너뛰어 디스크 공간을 확보한다.
2. 3. 가비지 컬렉션
파일 시스템에 남아 있는 여유 공간이 많이 부족할 경우, JFFS는 가비지 컬렉션을 수행한다. 가비지 컬렉션 동작 중 머리부터 시작해 유효한 노드들은 로그의 꼬리쪽으로 보내고 쓸모없는 노드들은 그냥 지나친다. 그렇게 함으로써 디스크 공간을 확보한다.3. 단점
JFFS는 다음과 같은 단점을 가지고 있다.
- 마운트할 때, JFFS 드라이버는 모든 inode 체인을 읽어 메모리에 올리고 유지해야 한다. 이 작업은 시간이 오래 걸릴 수 있다. JFFS의 메모리 사용량은 파일 개수에 비례한다.
- 순환 로그를 사용하기 때문에, 데이터가 고정되어 있는지 여부에 관계없이 다시 기록해야 한다. 따라서 불필요한 삭제(erase) 사이클이 발생하여 플래시 장치의 수명이 단축된다.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com