Bcachefs
Bcachefs개발자 | 켄트 오버스트리트 |
---|---|
소개했다 | 2015년 8월 21일; | (
구조물들 | |
디렉토리 내용 | 하이브리드 B+ 트리 |
파일할당 | 범위 |
불량 블럭 | 녹화없음 |
특징들 | |
기록한 날짜 | 수정(mtime), 속성 수정(ctime), 액세스(time), 생성(crtime) |
특성 | 확장속성 |
파일 시스템 허가. | POSIX(+ ACL(xattrs)) |
투명한 압축. | 네. |
투명한 암호화 | 네. |
카피 온 라이트(copy-on-write) | 네. |
다른. | |
지원됨 운영 체제 | 리눅스 |
웹사이트 | bcachefs |
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를 발표했고, 그 시점에서 그는 코드를 "어느 정도의 기능 완성"이라고 불렀고, 테스터와 기고자들을 불러들였습니다.그는 이 파일 시스템을 xt4나 XFS와 같은 파일 시스템의 속도와 성능을 갖춘 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]
참고문헌
- ^ "kernel/git/torvalds/linux.git - Linux kernel source tree". git.kernel.org. Retrieved 2023-10-31.
- ^ "bcachefs". bcachefs.org.
- ^ a b c d 라라벨 2015.
- ^ a b c d 라라벨 2018.
- ^ a b c 바더 2017.
- ^ "Options — bcachefs documentation".
- ^ a b c Overstreet, Kent (18 Dec 2021). "bcachefs: Principles of Operation" (PDF). Retrieved 10 May 2023.
- ^ a b c 엣지 2018.
- ^ "Architecture". bcachefs.org.
- ^ "Snapshots". bcachefs.org.
- ^ 잭슨 2015.
- ^ LKML 2021.
- ^ LKML 2022.
- ^ "Bcachefs Merged Into Linux-Next". www.phoronix.com. Retrieved 2023-09-12.
- ^ "Bcachefs Merged Into The Linux 6.7 Kernel". www.phoronix.com. Retrieved 2023-10-31.
인용작품
- Baader, Hans-Joachim (2017-03-17). "Neue Version von Bcachefs bringt Verschlüsselung" [New version of bcachefs brings encryption]. Pro-Linux (in German). Retrieved 2018-11-23.
- Edge, Jake (2018-05-23). "An update on bcachefs". LWN.net. Archived from the original on 2018-06-01. Retrieved 2018-11-22.
- Jackson, Joab (2015-08-21). "Former Google engineer revs up a new Linux filesystem". PC World. Retrieved 2018-11-22.
- Larabel, Michael (2015-08-21). "A New Linux File-System Aims For Speed While Having ZFS/Btrfs-Like Features". Phoronix. Archived from the original on 2015-08-23. Retrieved 2018-11-22.
- Larabel, Michael (2018-05-09). "Bcachefs File-System Is Working On Going Upstream In The Linux Kernel". Phoronix. Archived from the original on 2018-07-09. Retrieved 2018-11-22.
- LKML (2019-06-10). "bcachefs status update (it's done cooking; let's get this sucker merged)". Linux Kernel Mailing List.
- LKML (2021-11-04). "bcachefs status update - current and future work". Linux Kernel Mailing List. Retrieved 2021-12-02.
- LKML (2022-02-16). "bcachefs". Linux Kernel Mailing List. Retrieved 2022-09-14.