JFFS
JFFS![]() |
개발자 | Axis 통신 |
---|---|
풀네임 | 저널링 플래시 파일시스템 |
다른. | |
지원되는 운영 체제 | 리눅스 |
저널링 플래시 파일시스템(JFFS)은 Linux 운영체제상의 NOR 플래시 메모리 디바이스에서 사용하기 위한 로그 구조 파일시스템입니다JFFS2로 대체되었습니다.
설계.
쓰기 전에 플래시 메모리(특히 NOR 플래시)를 소거해야 합니다.소거 프로세스에는 몇 가지 제한이 있습니다.
- 지우기 속도는 매우 느립니다(일반적으로 지우기 블록당 1~100ms로, 같은 영역에서 데이터를 읽는 속도보다 10~10배35 느림).
- 플래시는 큰 세그먼트(보통 64KiB 이상)에서만 지울 수 있는 반면, 작은 블록(대부분 512바이트)에서 읽거나 쓸 수 있습니다.
- 플래시 메모리는 마모될 때까지 소거할 수 있는 횟수는 한정되어 있습니다(일반적으로 103~10회6).
이러한 제약이 결합되어 플래시 메모리에 대한 읽기 및 쓰기 액세스 패턴 간에 심각한 비대칭이 발생합니다.이와는 대조적으로 자기 하드 디스크 드라이브는 거의 대칭적인 읽기 및 쓰기 액세스를 제공합니다.읽기 속도와 쓰기 속도는 거의 동일하며(디스크 회전 속도에 의해 제한됨), 작은 블록 또는 섹터(일반적으로 512바이트 또는 4096바이트) 모두 읽기와 쓰기가 가능하며, 실제 횟수는 제한되지 않습니다.gnetic 미디어를 쓰고 다시 쓸 수 있습니다.
ext2 또는 FAT와 같은 기존 파일 시스템은 일반적으로 자기 미디어에서 사용하도록 설계되었으며, 수정 때마다 디스크에서 inode 및 디렉토리 등의 데이터 구조를 업데이트하여 데이터 구조를 인플레이스 방식으로 업데이트합니다.이러한 마모 레벨링이 집중되어 있지 않기 때문에 기존의 파일 시스템은 플래시 장치에서 읽기/쓰기 용도로 적합하지 않습니다.
JFFS는 플래시 디바이스를 원형 로그로 취급함으로써 마모 레벨링을 실시합니다.파일 및 디렉토리의 모든 변경 내용은 로그인 노드 끝에 기록됩니다.각 노드에는 메타데이터를 포함한 헤더가 먼저 기입되고, 그 후에 파일 데이터가 있는 경우 그 후에 기입된다.노드는 헤더 내의 오프셋포인터와 함께 체인으로 연결되어 있습니다.노드는 유효하게 시작되며 새로운 버전이 생성되면 사용되지 않게 됩니다.
파일 시스템에 남아 있는 빈 공간은 로그의 꼬리와 머리 사이의 간격입니다.이 값이 부족하면 가비지 컬렉터가 유효한 노드를 머리부터 꼬리까지 복사하고 사용되지 않는 노드를 건너뛰기 때문에 공간이 회수됩니다.
단점들
- 마운트 시 파일 시스템 드라이버는 inode 체인 전체를 읽고 메모리에 저장해야 합니다.이것은 매우 느릴 수 있습니다.JFFS의 메모리 소비량도 파일 시스템 내의 파일 수에 비례합니다.
- 순환 로그 설계는 파일 시스템의 모든 데이터가 정적 여부에 관계없이 다시 작성됨을 의미합니다.이로 인해 불필요한 소거 사이클이 많이 발생하고 플래시 미디어의 수명이 단축됩니다.
「 」를 참조해 주세요.
레퍼런스
원천
- Woodhouse, David. "JFFS2: The Journalling Flash File System, version 2". Sources.Redhat.com.