WIKI
Btrfs
Btrfs
Copy-on-Write와 체크섬을 사용하는 Linux 파일시스템의 구조와 장단점은 무엇인가.
Scope
핵심 질문
Btrfs는 Copy-on-Write, checksum, subvolume과 multi-device 기능을 어떻게 결합하는가?
Research
핵심 근거
- Btrfs는 Linux의 Copy-on-Write filesystem으로 data와 metadata checksum, snapshot, subvolume을 제공한다.
- multi-device profile로 RAID1 계열 redundancy를 구성할 수 있다.
- scrub은 저장된 checksum을 검증하고 정상 replica가 있으면 손상 block을 복구할 수 있다.
Draft
Btrfs는 Linux에서 filesystem과 일부 volume management 기능을 함께 제공하는 Copy-on-Write filesystem이다.
Copy-on-Write
기존 block을 직접 덮어쓰기보다 변경된 데이터를 새 위치에 기록한 뒤 metadata pointer를 바꾼다. 이 구조 덕분에 snapshot을 빠르게 만들 수 있다.
Checksum
기본적인 checksummed 데이터와 metadata는 checksum으로 silent corruption을 검출할 수 있고, 검증된 정상 복사본이 있으면 손상된 block을 복구할 수 있다. 단, NOCOW(+C)는 NODATASUM을 동반하므로 해당 파일의 데이터는 scrub에서 checksum으로 검증되지 않는다. 이 경우 mirror만으로 올바른 데이터 복사본을 판별할 수 없다. 관련 예외는 Btrfs scrub 문서를 참고한다.
Subvolume과 Snapshot
Subvolume은 독립적인 filesystem tree처럼 관리할 수 있고 snapshot은 block을 즉시 복사하지 않고 기존 extent를 공유한다.
Multi-device
여러 디스크에 data와 metadata를 분산할 수 있다. profile은 전통적인 hardware RAID와 완전히 같은 개념이 아니며 chunk 단위 배치로 동작한다.
핵심
Btrfs의 강점은 snapshot과 checksum, multi-device를 Linux filesystem 하나에서 통합한다는 데 있다. 대신 recovery와 RAID profile 특성을 정확히 이해해야 한다.