F2FS(Flash-Friendly File System)는 삼성전자리눅스 커널을 위해 개발한 플래시 파일 시스템이다.[2]

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.wiki.kernel.org

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]

각주 편집

  1. Michael Larabel (2012년 12월 22일). “F2FS File-System Merged Into Linux 3.8 Kernel”. Phoronix. 2016년 5월 25일에 확인함. 
  2. Jaegeuk Kim (2012년 10월 5일). “f2fs: introduce flash-friendly file system”. 2016년 5월 25일에 확인함. 
  3. Jaegeuk Kim (2014년 9월 22일). “f2fs: introduce FITRIM in f2fs_ioctl”. 
  4. Chao Yu (2015년 10월 26일). “f2fs: support file defragment”. 
  5. Jaegeuk Kim (2013년 8월 26일). “f2fs: add flags for inline xattrs”. 
  6. Huajun Li (2013년 11월 10일). “f2fs: Enable f2fs support inline data”. 
  7. Chao Yu (2014년 9월 24일). “f2fs: support inline dir”. 
  8. Jaegeuk Kim (2014년 9월 20일). “f2fs-tools: release 1.4.0”. 
  9. Jaegeuk Kim (2014년 9월 25일). “f2fs: support atomic_write feature for database”. 
  10. Jaegeuk Kim (2015년 6월 24일). “f2fs updates for v4.2”. 
  11. Jaegeuk Kim (2016년 4월 25일). “resize.f2fs: support to expand partition size”. 
  12. Chao Yu (2015년 12월 17일). “f2fs: support data flush in background”. 
  13. Chao Yu (2015년 1월 25일). “f2fs: enable rb-tree extent cache”. 

외부 링크 편집