[include(틀:파일 시스템)] [목차] {{{+1 '''B'''-'''tr'''ee '''f'''ile '''s'''ystem}}} [[https://btrfs.wiki.kernel.org/index.php/Main_Page|Btrfs 위키]] == 개요 == ~~하필이면 악의 축~~[[오라클]], [[후지쯔]], [[레드햇]]에서 개발하는 [[유닉스]]/[[리눅스]]용 파일 시스템이다. == 특징 == * 가볍다. * B-Tree[* 자동으로 밸런싱이 가능한 데이터 정리 알고리즘. Binary tree 와는 다르다.] 기반 * '''Copy-On-Write'''[* 쉽게 말해 동일한 파일이면 저장소를 따로 더 지정하지 않는다. 물론, 다른 물리 드라이브로 옮길 경우엔 상황이 다르다. 이 기능 덕분에 스냅샷 관리가 가능하다.] * 빈 공간 캐시, inode 캐시 지원 * 자동 조각모음 * 공간 압축: 작은 파일들을 한 섹터에 몰아넣는다. * '''데이터 압축''': zlib, LZO, z-standard 압축 알고리즘 지원 * '''[[SSD]] 최적화''': [[TRIM]]과는 상관없다. [* mount 옵션에도 TRIM 활성화인 {{{discard}}}와 별개로 SSD 최적화 알고리즘 활성화를 위한 {{{ssd}}} 옵션이 있다.] * 자체 [[RAID]] 지원: 0, 1, 0+1, 10 지원. ~~5, 6은 개발중~~ 2016년 7월 부터 5,6 지원, 하지만 안정성이 떨어져 비추천 * 서브볼륨 관리: 각각의 서브볼륨을 파티션처럼 취급 가능 * 스냅샷 관리: 볼륨을 통째로 [[박제]]한다. 파일을 스냅샷으로 저장해두었던 상태로 쉽게 되돌릴수 있어 랜섬웨어 대응이나 백업 용도로 매우 좋으며, [[https://btrfs.wiki.kernel.org/index.php/Incremental_Backup|증분 백업]]도 지원한다. [[https://varins.com/library/server/file-recovery-btrfs-snapshot/|설정 예시]] * 파티션 테이블 지원: [[MBR]]이나 [[GPT]] 대신 [[https://wiki.archlinux.org/index.php/Btrfs#Partitioning|btrfs 자체를 파티션 테이블로 사용할 수 있다.]] * 데이터 중복제거(Data deduplication) == 주의사항 == * [[어드밴스드 포맷|4K로 정렬된 디스크]]에서 최적의 속도를 발휘한다. [[MBR]] 디스크는 섹터 정렬에 주의해야 한다. * swap 파일 기능은 [[리눅스]] 5.0 이상부터 사용이 가능하며, swap 파일의 Copy-On-Write를 비활성화해야 한다.[[https://wiki.archlinux.org/index.php/Swap#Swap_file_creation|btrfs에서의 swap 파일 생성 방법]] * [[LILO]]나 구버전 [[GRUB]]이나 구버전 리눅스 커널에서는 부트로더가 btrfs 파티션을 읽지 못하는 문제가 종종 있다. {{{btrfsprog}}}를 설치하고 initramfs를 다시 생성해도 안되는 경우 [[적절]]한 용량[* 일반적으로 256MB 정도가 좋다.]의 파티션을 하나 파서 {{{/boot}}}로 할당해 [[ext]](2/3/4)나 [[FAT32]]({{{vfat}}})로 포맷하고 여기다가 [[부트로더]]를 물려주면 해결된다. ~~{{{/boot}}} 디렉토리 파일들을 새로 판 파티션에 옮기는거 까먹으면 대략 낭패다. 잊지 말자!~~ ~~어차피 [[UEFI]] 쓰면 [[ESP]] 잡느라 FAT32 파티션 하나 파야 하는거 처음부터 UEFI로 설치하자~~ == 기타 == * B-tree 기반이기에 B-tree filesystem의 줄임말이지만 농담삼아 [[버터|'''B'''u'''t'''te'''r''']] '''f'''ile'''s'''ystem의 줄임말이라 하기도 한다. * 시작은 좀 뜬금없는 편이다. 한 IBM 연구원이 2007년에 만든 [[https://github.com/orodeh/bt|Copy-On-Write가 되는 B-Tree]]를 보고 오라클에서 냅다 주워와서 만들기 시작한 것. * 파일 시스템 개발 책임자가 ReiserFS[* BtrFS가 나오기 전 한때는 나름 유망한 파일 시스템이었으나, 2008년에 개발자인 Hans Reiser가 아내를 살해해서 감방에 간 이후로 프로젝트가 망했다.] 프로젝트에 참가한 이력이 있어서 ReiserFS의 특징이 일부 가미되어있다. * 최근에는 어느 정도 안정화가 되었으나, 아직 주요 기능인 Copy-On-Write 를 사용하면 성능 저하가 심하게 일어나는 등 아직 갈 길이 멀다. [[http://blog.pgaddict.com/posts/friends-dont-let-friends-use-btrfs-for-oltp|관련 링크]] * 넷기어, 시놀로지, [[EFM 네트웍스]][* 흔히 ipTIME으로 알려져 있다.] 등 [[NAS(저장장치)|NAS]] 제조사에서도 도입하였다. * [[https://www.phoronix.com/scan.php?page=article&item=btrfs-mount-linux49|리눅스 커널 4.9에서의 mount 옵션별 벤치마크]] [[분류:UNIX]][[분류:파일 시스템]]