{{위키데이터 속성 추적}}
{{파일 시스템 정보
| name = F2FS
| developer = [[삼성전자]], [[모토로라 모빌리티]], [[화웨이]]
| full_name = Flash-Friendly File System
| introduction_date = v3.8, 2012-12-20<ref>{{웹 인용
 | url=https://www.phoronix.com/scan.php?page=news_item&px=MTI1OTU
 | title=F2FS File-System Merged Into Linux 3.8 Kernel
 | author=[[Michael Larabel]]
 | date=2012-12-22
 | publisher=[[Phoronix]]
 | accessdate=2016-05-25}}</ref>
| introduction_os         = [[리눅스 커널|리눅스]]
| partition_id = 
| directory_struct = 멀티 레벨 해시 테이블
| file_struct = 비트맵 (여유 공간), 테이블
| bad_blocks_struct =
| max_file_size = 3.94 [[테라바이트|TB]]
| max_files_no = 볼륨 크기에 따라 다름
| max_filename_size = 255 바이트
| max_volume_size = 16 [[테라바이트|TB]]
| dates_recorded = 수정 (mtime), 특성 수정 (ctime), 접근 (atime)
| date_range = 
| date_resolution = 1 ns
| forks_streams = 
| attributes = POSIX, 확장 특성(extended attributes)
| file_system_permissions = POSIX, ACL
| compression =  아니오
| encryption = 예
| OS = [[리눅스]]
| website = {{URL|https://f2fs.wiki.kernel.org/}}
}}
'''F2FS'''(Flash-Friendly File System)는 [[삼성전자]]가 [[리눅스 커널]]을 위해 개발한 [[플래시 파일 시스템]]이다.<ref name="lwn-f2fs">{{웹 인용
| url=https://lwn.net/Articles/518718/
| title=f2fs: introduce flash-friendly file system
| author=Jaegeuk Kim
| date=2012-10-05
| accessdate=2016-05-25}}</ref>

F2FS를 개발한 동기는 파일 시스템을 모바일 장치부터 서버에 이르는 컴퓨터 시스템에 널리 사용되는 [[NAND 플래시 메모리]] 기반 스토리지 장치(예: [[솔리드 스테이트 디스크]], [[eMMC]], [[시큐어 디지털|SD]] 카드)의 특징을 염두에 둔 파일 시스템을 처음부터 만드는 것이다.

F2FS는 [[로그 구조 파일 시스템]] 접근법에 기초하여 설계되었으며 더 새로운 형태의 스토리지에 채택된다. F2FS의 개발자는 wandering tree의 [[눈덩이 효과]]라든지 high cleaning 부하와 같은 로그 구조 파일 시스템의 일부 알려진 문제<ref name="lwn-f2fs"/>를 해결한다고 언급하였다. 또, NAND 기반 기억 장치가 내부적인 플래시 메모리 관리 스킴에 따라 다른 특징(플래시 번역 계층, 즉 FTL 등)을 보이기 때문에 디스크 상의 설계 구성뿐 아니라 할당/cleaning 알고리즘을 선택하기 위한 다양한 매개변수를 지원한다.

== 기능 ==
* 멀티 헤드 로깅
* 디렉터리 항목에 대한 다단계 해시 테이블
* 정적 / 동적으로 신규 데이터 및 오래된 데이터 분리
* 적응 로깅 방식
* 구성 가능한 운영 단위
* 이중 체크포인트
* 롤백 및 롤포워드 복구
* 힙 스타일의 블록 할당
* [[TRIM|TRIM/FSTRIM]] 지원<ref>{{웹 인용
| url=http://www.gossamer-threads.com/lists/linux/kernel/2012038#2012038
| title=f2fs: introduce FITRIM in f2fs_ioctl
| author=Jaegeuk Kim
| date=2014-09-22}}</ref>
* 온라인 FS [[조각 모음]]/파일 조각 모음<ref>{{웹 인용
| url=https://www.mail-archive.com/linux-f2fs-devel%40lists.sourceforge.net/msg03139.html
| title=f2fs: support file defragment
| author=Chao Yu
| date=2015-10-26}}</ref>
* 인라인 xattrs/data<ref>{{웹 인용
| url=https://lkml.org/lkml/2013/8/26/159
| title=f2fs: add flags for inline xattrs
| author=Jaegeuk Kim
| date=2013-08-26}}</ref>/data<ref>{{웹 인용
| url=https://lwn.net/Articles/573408/
| title=f2fs: Enable f2fs support inline data
| author=Huajun Li
| date=2013-11-10}}</ref>/dir<ref>{{웹 인용
| url=https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg01641.html
| title=f2fs: support inline dir
| author=Chao Yu
| date=2014-09-24}}</ref>
* 오프라인 [[Fsck|파일시스템 검사]](불일치 확인 후 수정<ref>{{웹 인용
| url=https://lkml.org/lkml/2014/9/20/104
| title=f2fs-tools: release 1.4.0
| author=Jaegeuk Kim
| date=2014-09-20}}</ref>)
* [[원자 작업]]<ref>{{웹 인용
| url=https://www.spinics.net/lists/kernel/msg1834034.html
| title=f2fs: support atomic_write feature for database
| author=Jaegeuk Kim
| date=2014-09-25}}</ref>
* [[파일 시스템 수준 암호화]]<ref>{{웹 인용
| url=https://marc.info/?l=linux-kernel&m=143517753413580
| title=f2fs updates for v4.2
| author=Jaegeuk Kim
| date=2015-06-24}}</ref>
* 오프라인 크기 조절(Offline resizing)<ref>{{웹 인용
| url=https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg04247.html
| title=resize.f2fs: support to expand partition size
| author=Jaegeuk Kim
| date=2016-04-25}}</ref>
* 내부의 주기적인 데이터 플러시(Inner periodically data flush)<ref>{{웹 인용
| url=https://www.mail-archive.com/linux-f2fs-devel%40lists.sourceforge.net/msg03306.html
| title=f2fs: support data flush in background
| author=Chao Yu
| date=2015-12-17}}</ref>
* 익스텐트(extent) 캐시<ref>{{웹 인용
| url=https://www.mail-archive.com/linux-f2fs-devel%40lists.sourceforge.net/msg02024.html
| title=f2fs: enable rb-tree extent cache
| author=Chao Yu
| date=2015-01-25}}</ref>

== 각주 ==
{{각주}}

== 외부 링크 ==
* [http://elinux.org/images/1/12/Elc2013_Hwang.pdf Flash Friendly File System (F2FS), Embedded Linux Conference] (2013-02-22)
* [http://elinux.org/images/8/81/A_New_File_System_Designed_for_Flash_Storage_in_Mobile.pdf A New File System Designed for Flash Storage in Mobile, Embedded Linux Conference Europe] (2012-11-05)
* [https://web.archive.org/web/20150226070132/http://events.linuxfoundation.org/images/stories/pdf/klf2012_j_kim.pdf Flash Memory Filesystem, Korea Linux Forum] (2012-10-12)
* [https://lwn.net/Articles/518988/ LWN.net: An f2fs teardown] (2012-10-10)
* [https://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git The f2fs filesystem]
* [https://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git Userland tools for the f2fs filesystem]
* [https://f2fs.wiki.kernel.org/start F2FS wiki for developers]

{{파일 시스템}}

[[분류:임베디드 리눅스]]
[[분류:파일 시스템]]