F2FS
보이기
개발사 | 삼성전자, 모토로라 모빌리티, 화웨이 |
---|---|
정식 명칭 | Flash-Friendly File System |
도입 | v3.8, 2012-12-20[1] - 리눅스 |
구조 | |
디렉터리 내용 | 멀티 레벨 해시 테이블 |
파일 할당 | 비트맵 (여유 공간), 테이블 |
제약사항 | |
최대 볼륨 크기 | 16 TB |
최대 파일 크기 | 3.94 TB |
최대 파일 수 | 볼륨 크기에 따라 다름 |
최대 파일 이름 길이 | 255 바이트 |
기능 | |
날짜 사용 권한 | 수정 (mtime), 특성 수정 (ctime), 접근 (atime) |
날짜 정밀도 | 1 ns |
특성 | POSIX, 확장 특성(extended attributes) |
파일 시스템 권한 | POSIX, ACL |
투명한 압축 | 아니오 |
투명한 암호화 | 예 |
기타 | |
지원 운영 체제 | 리눅스 |
웹사이트 | f2fs |
F2FS(Flash-Friendly File System)는 삼성전자가 리눅스 커널을 위해 개발한 플래시 파일 시스템이다.[2]
F2FS를 개발한 동기는 파일 시스템을 모바일 장치부터 서버에 이르는 컴퓨터 시스템에 널리 사용되는 NAND 플래시 메모리 기반 스토리지 장치(예: 솔리드 스테이트 디스크, eMMC, SD 카드)의 특징을 염두에 둔 파일 시스템을 처음부터 만드는 것이다.
F2FS는 로그 구조 파일 시스템 접근법에 기초하여 설계되었으며 더 새로운 형태의 스토리지에 채택된다. F2FS의 개발자는 wandering tree의 눈덩이 효과라든지 high cleaning 부하와 같은 로그 구조 파일 시스템의 일부 알려진 문제[2]를 해결한다고 언급하였다. 또, NAND 기반 기억 장치가 내부적인 플래시 메모리 관리 스킴에 따라 다른 특징(플래시 번역 계층, 즉 FTL 등)을 보이기 때문에 디스크 상의 설계 구성뿐 아니라 할당/cleaning 알고리즘을 선택하기 위한 다양한 매개변수를 지원한다.
기능
[편집]- 멀티 헤드 로깅
- 디렉터리 항목에 대한 다단계 해시 테이블
- 정적 / 동적으로 신규 데이터 및 오래된 데이터 분리
- 적응 로깅 방식
- 구성 가능한 운영 단위
- 이중 체크포인트
- 롤백 및 롤포워드 복구
- 힙 스타일의 블록 할당
- TRIM/FSTRIM 지원[3]
- 온라인 FS 조각 모음/파일 조각 모음[4]
- 인라인 xattrs/data[5]/data[6]/dir[7]
- 오프라인 파일시스템 검사(불일치 확인 후 수정[8])
- 원자 작업[9]
- 파일 시스템 수준 암호화[10]
- 오프라인 크기 조절(Offline resizing)[11]
- 내부의 주기적인 데이터 플러시(Inner periodically data flush)[12]
- 익스텐트(extent) 캐시[13]
각주
[편집]- ↑ Michael Larabel (2012년 12월 22일). “F2FS File-System Merged Into Linux 3.8 Kernel”. Phoronix. 2016년 5월 25일에 확인함.
- ↑ 가 나 Jaegeuk Kim (2012년 10월 5일). “f2fs: introduce flash-friendly file system”. 2016년 5월 25일에 확인함.
- ↑ Jaegeuk Kim (2014년 9월 22일). “f2fs: introduce FITRIM in f2fs_ioctl”.
- ↑ Chao Yu (2015년 10월 26일). “f2fs: support file defragment”.
- ↑ Jaegeuk Kim (2013년 8월 26일). “f2fs: add flags for inline xattrs”.
- ↑ Huajun Li (2013년 11월 10일). “f2fs: Enable f2fs support inline data”.
- ↑ Chao Yu (2014년 9월 24일). “f2fs: support inline dir”.
- ↑ Jaegeuk Kim (2014년 9월 20일). “f2fs-tools: release 1.4.0”.
- ↑ Jaegeuk Kim (2014년 9월 25일). “f2fs: support atomic_write feature for database”.
- ↑ Jaegeuk Kim (2015년 6월 24일). “f2fs updates for v4.2”.
- ↑ Jaegeuk Kim (2016년 4월 25일). “resize.f2fs: support to expand partition size”.
- ↑ Chao Yu (2015년 12월 17일). “f2fs: support data flush in background”.
- ↑ Chao Yu (2015년 1월 25일). “f2fs: enable rb-tree extent cache”.
외부 링크
[편집]- Flash Friendly File System (F2FS), Embedded Linux Conference (2013-02-22)
- A New File System Designed for Flash Storage in Mobile, Embedded Linux Conference Europe (2012-11-05)
- Flash Memory Filesystem, Korea Linux Forum (2012-10-12)
- LWN.net: An f2fs teardown (2012-10-10)
- The f2fs filesystem
- Userland tools for the f2fs filesystem
- F2FS wiki for developers