Learning
토픽 61 / 85·파일 시스템, I/O, 시스템 구조

Journaling 파일시스템

Journaling 파일시스템

파일시스템 메타데이터 변경을 저널(로그)에 먼저 기록한 후 실제 디스크에 반영하는 기법으로, 시스템 크래시 시 저널을 재생하여 파일시스템 일관성을 빠르게 복구

목적: 크래시 복구, 일관성 보장, 빠른 복구(fsck 불필요), 데이터 무결성

특징: Write-Ahead Logging, 트랜잭션 기반, 메타데이터 저널링, Commit, 재생(Replay)

구성요소: 저널 영역(Journal), 메타데이터 블록, 데이터 블록, 트랜잭션, Commit 레코드

동작 과정: ① 파일 연산 시작 → ② 변경 사항을 저널에 기록(메타데이터) → ③ Commit 레코드 기록 → ④ 실제 디스크에 반영 → ⑤ 저널 엔트리 제거

크래시 복구: 부팅 시 저널 확인 → Commit된 트랜잭션 재생(Replay) → 일관성 복구(수 초), fsck(수 시간) 불필요

저널링 모드

  • Journal(Full): 메타데이터 + 데이터 모두 저널링, 가장 안전, 느림
  • Ordered(기본): 메타데이터만 저널링, 데이터 먼저 쓰기 후 메타데이터, ext3/ext4 기본
  • Writeback: 메타데이터만 저널링, 순서 보장 안 함, 빠름, 데이터 손실 가능

성능 영향: 이중 쓰기(저널+실제), I/O 증가, Ordered 모드로 완화

장점: 빠른 복구(저널 재생), 일관성 보장, fsck 불필요, 안정성

단점: 쓰기 성능 저하(이중 쓰기), 저널 공간, 복잡도

적용사례: ext3/ext4(Linux), XFS, JFS, NTFS, APFS, 데이터베이스 WAL

비교: Journaling(저널/빠른복구) vs Non-Journaling(fsck/느린복구) vs CoW(Copy-on-Write/Btrfs)

연관: ext4, 파일시스템, 트랜잭션, fsck, Write-Ahead Logging