Bcachefs

Bcachefs
Bcachefs
개발자켄트 오버스트리트
소개했다2015년 8월 21일; 8년 전 (2015-08-21)
구조물들
디렉토리 내용하이브리드 B+ 트리
파일할당범위
불량 블럭녹화없음
특징들
기록한 날짜수정(mtime), 속성 수정(ctime), 액세스(time), 생성(crtime)
특성확장속성
파일 시스템
허가.
POSIX(+ ACL(xattrs))
투명한
압축.
네.
투명한
암호화
네.
카피 온 라이트(copy-on-write)네.
다른.
지원됨
운영 체제
리눅스
웹사이트bcachefs.org

Bcachefs는 Linux 기반 운영 체제를 위한 COW(Copy-on-write) 파일 시스템입니다.그것의 주요 개발자인 Kent Overstreet는 2015년에 그것을 처음 발표했고, 그것은 6.7을[1] 시작으로 리눅스 커널에 추가될 것입니다.이것은 ZFS나 Btrfs의 현대적인 기능, ext4나 XFS의 속도와 성능과 경쟁하기 위한 것입니다.2022년 12월 기준으로 "안정적"이라고 자칭하고 있습니다.[2]

특징들

Bcachefs는 Linux 기반 운영 체제를 위한 COW(Copy-on-write) 파일 시스템입니다.[3]Features include caching,[4] full file-system encryption using the ChaCha20 and Poly1305 algorithms,[5] native compression[4] via LZ4, gzip[6] and Zstandard,[7] snapshots,[4] CRC-32C and 64-bit checksumming.[3]RAID 구성을 포함하여 블록 장치를 확장할 수 있습니다.[5]

이전 버전의 Bcachefs는 리눅스용 블록 계층 캐시 시스템인 Bcache의 모든 기능을 제공했으며, Bcachefs는 코드의 약 80%를 공유합니다.[8]2021년 12월 현재 블록 계층 캐시 기능이 삭제되었습니다.[7]

데이터 구조 수준에서 bcachef는 다른 많은 최신 파일 시스템처럼 B-트리를 사용하지만 비정상적으로 큰 노드 크기는 256KiB로 기본 설정됩니다.이러한 노드는 내부적으로 로그 구조화되어 하이브리드 데이터 구조를 형성하므로 업데이트 시 노드를 다시 쓸 필요가 줄어듭니다.[9]스냅샷은 COW 트리를 복제하는 방식이 아니라 파일 시스템 개체에 버전 번호를 추가하는 방식으로 구현됩니다.[10]COW 기능과 버킷 할당기사용하면 쓰기 구멍이나 IO 단편화 없이 RAID를 구현할 수 있습니다.[7]

역사

주요 개발은 Bcache의 개발자인 Kent Overstreet에 의한 것으로, 그는 Bcache가 된 아이디어에 대한 "원형"이라고 설명합니다.오버스트리트는 Bcache를 대체할 Bcache를 의도하고 있습니다.[8]Overstreet는 Bcache의 개발자들이 Bcache의 코드 기반이 "진화되고 있다"는 것을 깨달으면서 Bcache의 개발이 시작되었다고 말했습니다.이 파일 시스템은 일반 용도의 POSIX 파일 시스템에 포함되었으며, 이 파일 시스템을 사용하면 "정말 깨끗하고 우아한 디자인"이 가능합니다.2013년에 Bcache가 메인 라인 리눅스 커널에 합병된 후 얼마 후, Overstreet는 Google에서 Bcachefs에서 정규직으로 일하기 위해 직장을 떠났습니다.[3]

몇 년간의 자금 지원 없이 개발된 후, 오버스트리트는 2015년에 Bcachefs를 발표했고, 그 시점에서 그는 코드를 "어느 정도의 기능 완성"이라고 불렀고, 테스터와 기고자들을 불러들였습니다.그는 이 파일 시스템을 xt4XFS와 같은 파일 시스템의 속도와 성능을 갖춘 ZFS나 Btrfs와 같은 현대적인 기능을[11] 갖춘 고급 파일 시스템으로 만들고자 했습니다.[3]2017년 현재 오버스트리트는 파트레온을 통해 Bcachefs 개발을 위한 재정적 지원을 받고 있습니다.[5]

2018년 중반부터 온디스크 포맷이 정착되었습니다.[8]메인 라인 리눅스 커널에 Bcachef를 포함시키기 위한 패치가 검토를 위해 제출되었지만 아직 승인되지 않았습니다.[4]

2019년 중반까지 Bcachefs의 원하는 기능이 완료되었으며 LKML에 대한 관련 패치가 동료 검토를 위해 제출되었습니다.[12][13]2023년 9월, 파일 시스템은 리눅스 커널의 개발 트리인 리눅스-넥스트에서 병합되었으며, 여기서 새로운 기능들이 메인 라인 트리에 포함되기 전에 테스트되었습니다.[14]

2023년 10월, bcachefs는 리눅스 6.7 커널에 병합되었습니다.[15]

참고문헌

  1. ^ "kernel/git/torvalds/linux.git - Linux kernel source tree". git.kernel.org. Retrieved 2023-10-31.
  2. ^ "bcachefs". bcachefs.org.
  3. ^ a b c d 라라벨 2015.
  4. ^ a b c d 라라벨 2018.
  5. ^ a b c 바더 2017.
  6. ^ "Options — bcachefs documentation".
  7. ^ a b c Overstreet, Kent (18 Dec 2021). "bcachefs: Principles of Operation" (PDF). Retrieved 10 May 2023.
  8. ^ a b c 엣지 2018.
  9. ^ "Architecture". bcachefs.org.
  10. ^ "Snapshots". bcachefs.org.
  11. ^ 잭슨 2015.
  12. ^ LKML 2021.
  13. ^ LKML 2022.
  14. ^ "Bcachefs Merged Into Linux-Next". www.phoronix.com. Retrieved 2023-09-12.
  15. ^ "Bcachefs Merged Into The Linux 6.7 Kernel". www.phoronix.com. Retrieved 2023-10-31.

인용작품

외부 링크