솔직히 말해, 자신의 컴퓨터에 어떤 파일 시스템을 사용할지 진지하게 고민하는 사람은 생각보다 많지 않습니다.
윈도우와 macOS 사용자에게는 살펴볼 이유가 거의 없습니다. 두 운영체제는 각각 NTFS와 HFS+라는 사실상 유일한 선택지만 제공하기 때문입니다. 반면 리눅스는 다양한 파일 시스템 옵션을 갖추고 있으며, 현재 기본값으로 채택된 것은 제4 확장 파일 시스템(Ext4)입니다.
그런데 최근에는 기본 파일 시스템을 B-트리 파일 시스템(Btrfs)으로 바꾸자는 움직임이 꾸준히 이어지고 있습니다. 과연 Btrfs가 더 나은 선택일까요? 그리고 언제쯤 주요 배포판들이 전환에 나설까요?
파일 시스템은 무엇을 하는가?

폴더와 서랍장 같은 실물 정리 체계와 마찬가지로, 디지털 파일 시스템은 파일을 관리하는 역할을 합니다. 운영체제가 사용 중이 아닌 데이터를 어떻게 저장할지, 어떤 정보(메타데이터라고 부릅니다)를 데이터에 함께 기록할지, 누가 또는 어떤 프로그램이 데이터에 접근할 수 있는지 등을 통제합니다.
파일 시스템은 항상 백그라운드에서 작동합니다. 운영체제 커널의 다른 구성 요소와 마찬가지로 일상적인 사용에서는 거의 모습을 드러내지 않죠. 파일 관리에 쓰이는 애플리케이션인 파일 관리자 역시, 그 아래에서 어떤 파일 시스템이 돌아가고 있는지와 무관하게 거의 동일한 방식으로 작동합니다.
다만 파일 시스템은 코드로 구현하기 매우 복잡한 분야입니다. 개발자들은 더 많은 기능을 담아내면서도 효율성을 높이기 위해 끊임없이 시스템을 개선하고 있습니다.
왜 파일 시스템을 바꾸려 하는가?
어떤 코드도 모든 용도에 완벽하게 맞을 수는 없으며, 파일 시스템도 예외가 아닙니다. 파일 시스템마다 빛을 발하는 영역이 다릅니다. 대표적인 예가 FAT(File Allocation Table) 파일 시스템으로, 사실상 모든 현대 운영체제가 지원합니다.
USB 메모리와 SD 카드가 FAT 방식을 사용하는 이유도 여기에 있습니다. 리눅스, 윈도우, macOS 등 어떤 운영체제를 쓰든 컴퓨터가 해당 미디어를 읽을 수 있기 때문입니다.
하지만 요즘 FAT은 이후에 개발된 다른 파일 시스템들에 비해 안정성과 성능이 떨어집니다. 그래서 FAT은 휴대용 저장 매체에서는 흔히 보이지만, 하드 드라이브의 데이터를 관리하는 데에는 쓰이지 않습니다. 한편 애플은 어쩌면 놀랍지 않게도 자사 기기에서만 작동하는 파일 시스템을 만드는 것으로 유명합니다.
현재 리눅스의 파일 시스템
대부분의 데스크톱 리눅스(배포판, 줄여서 '디스트로'라고 부릅니다)는 기본적으로 ext4를 사용합니다. ext4는 ext3의 개선형이고, ext3는 그 이전 버전인 ext2의 개선형입니다.
ext4는 매우 견고한 파일 시스템으로 입증되었지만, 낡은 코드베이스 위에 세워져 있다는 한계가 있습니다. 일부 리눅스 사용자들은 ext4가 단독으로 처리하지 못하는 기능들을 찾습니다. 이런 요구를 충족시켜 주는 별도 소프트웨어도 존재하지만, 파일 시스템 차원에서 직접 처리할 수 있다면 성능 면에서 훨씬 유리합니다. 바로 이 점 때문에 Btrfs에 대한 기대가 커지고 있는 것입니다.
ext4의 장점과 단점

ext4의 한계치는 여전히 인상적입니다. ext4로 만들 수 있는 최대 볼륨/파티션 크기는 1 엑시바이트로, 약 1,152,921.5TB에 해당합니다. 최대 파일 크기는 16 테비바이트, 즉 약 17.6TB인데, 이는 일반 소비자가 현재 구매할 수 있는 어떤 하드 드라이브보다도 훨씬 큰 용량입니다.
ext4는 여러 가지 기법을 활용해 ext3 대비 속도 향상을 이뤄낸 것으로 알려져 있습니다. 대부분의 현대적인 파일 시스템과 마찬가지로 저널링(journaling) 파일 시스템이기도 합니다. 즉, 파일이 디스크의 어느 위치에 있는지, 그리고 디스크에 어떤 변경이 일어났는지를 '저널'에 기록해 둡니다.
하지만 이런 다양한 기능에도 불구하고, ext4는 투명한 압축, 투명한 암호화, 데이터 중복 제거(deduplication)를 지원하지 않습니다. 스냅샷은 기술적으로 지원되긴 하지만 실험적인 수준에 머물러 있습니다.
실제로 ext4 개발에 핵심적인 역할을 한 개발자 시어도어 초(Theodore Ts'o)는 ext4를 1970년대 구식 기술에 기반한 임시방편적인 릴리스로 평가하며, Btrfs가 더 나은 미래를 제공한다고 언급한 바 있습니다. 물론 그 발언은 십수 년 전의 일입니다.
Btrfs의 장점과 단점

Btrfs는 '버터 FS(Butter FS)', '베터 FS(Better FS)', 'B-트리 FS(B-Tree FS)' 등으로 읽을 수 있는, 처음부터 새롭게 설계된 비교적 최신 파일 시스템입니다. 개발자들은 파일 시스템에 스토리지 풀링(pooling), 스냅샷, 체크섬 같은 추가 기능을 포함시키고자 했고, 그래서 Btrfs가 탄생했습니다.
프로젝트는 오라클에서 시작되었지만, 이후 페이스북, 넷기어, 레드햇, SUSE 등 주요 기업들도 개발에 참여했습니다.
Btrfs의 향상된 기능은 일반 소비자에게도 도움이 되지만, 일부 기능은 기업 환경에서 더 큰 가치를 발휘합니다. 이런 기능은 내구성이 높은 하드 드라이브까지 요구하는 까다로운 사용 사례를 위한 것입니다.
방대한 데이터베이스를 갖춘 대규모 프로그램을 운용하는 조직이라면, 여러 하드 드라이브에 걸쳐 하나처럼 이어진 파일 시스템 덕분에 데이터 통합이 훨씬 수월해질 수 있습니다. 데이터 중복 제거는 데이터가 실제로 차지하는 공간을 줄여주며, 하나의 넓은 파일 시스템만 미러링하면 되므로 데이터 미러링 작업도 단순해집니다.
물론 모든 것을 미러링하지 않아도 되도록 여러 파티션을 직접 나누는 선택도 가능합니다. Btrfs의 최대 파티션 크기는 16엑시바이트이며, 최대 파일 크기 역시 16엑시바이트입니다.
Btrfs는 여러 하드 드라이브에 걸쳐 확장될 수 있음을 고려하면, ext4보다 16배나 많은 드라이브 공간을 지원한다는 점은 분명한 강점입니다.
리눅스 배포판들은 전환했는가?
Btrfs는 2013년부터 리눅스 커널의 안정적인 일부로 자리 잡았으며, 오늘날에도 하드 드라이브를 이 파일 시스템으로 포맷해 사용할 수 있습니다. 그럼에도 Btrfs가 리눅스의 기본 파일 시스템이 된 적은 없습니다. 대부분의 배포판은 여전히 ext4를 기본값으로 유지하고 있습니다.
그 이유는 무엇일까요? 파일은 하드 드라이브에 담긴 가장 중요한 데이터입니다. 개인 데이터는 대체 불가능합니다. 운영체제는 재설치하고 앱은 다시 내려받을 수 있지만, 백업이 없다면 한번 잃어버린 파일은 영영 돌아오지 않습니다. 그렇기 때문에 수백만 명의 사용자에게 기본값으로 적용하기 전에 파일 시스템의 신뢰성이 충분히 검증되는 것이 필수적입니다.
ext4는 늙고 다소 낡았다고 평가받을 수 있지만, 동시에 회복탄력성과 신뢰성을 입증해 온 시스템이기도 합니다. 정전으로 컴퓨터가 갑자기 꺼지더라도, ext4는 높은 확률로 저장된 데이터를 무사히 지켜냈습니다.
대부분의 사용자에게 이런 상황야말로 가장 중요한 판단 기준입니다. 문제는 순조로울 때 파일 시스템이 얼마나 잘 작동하느냐가 아니라, 문제가 생겼을 때 어떻게 행동하느냐에 있습니다.
그럼에도 전환의 시점이 되었다고 판단한 주요 배포판이 하나 있습니다. openSUSE는 이제 운영체제가 설치되는 /root 파티션의 기본값으로 Btrfs를 사용합니다. 다만 개인 파일이 보관되는 /home 파티션에는 Btrfs 대신 XFS 파일 시스템을 선택했습니다.
결국 전환은 예상만큼 순조롭게 진행되지 않았다는 뜻입니다. 하지만 우리가 Wayland 디스플레이 서버에서 봐 왔듯이, 새로운 기술이 리눅스 생태계 전반에 퍼지는 데에는 때때로 긴 시간이 필요합니다.