콘텐츠로 이동

저널링 파일 시스템 (Journaling File System)

Jan 27, 2026 · Updated Feb 10, 2026

저널링 파일 시스템은 파일 시스템의 변경 사항을 **실제 반영하기 전에 별도의 로그(저널)**에 먼저 기록하는 기법이다. 시스템이 갑자기 꺼지더라도 저널을 보고 빠르게 일관성을 복구할 수 있다.

문제 상황을 쉽게 설명하면: 파일을 저장하는 도중에 전원이 꺼졌다고 하자. 메타데이터(파일 크기, 블록 위치)는 갱신되었는데 실제 데이터는 기록되지 않았다면, 파일 시스템이 불일치 상태에 빠진다. 이를 복구하려면 fsck로 디스크 전체를 검사해야 하는데, 대용량 디스크에서는 수십 분에서 수 시간이 걸린다.

저널링의 핵심은 먼저 기록하고, 나중에 반영하는 것이다.

WAL 동작 순서
1 저널에 기록
변경할 내용을 저널 영역에 순차 기록
2 커밋 마크
저널 항목이 완전히 기록되었음을 표시
3 체크포인팅
저널의 내용을 실제 파일 시스템에 반영
4 저널 항목 삭제
반영 완료된 항목을 제거하여 공간 확보

크래시가 발생하면:

  • 커밋 전: 저널 항목 폐기 (변경 없었던 것으로 처리)
  • 커밋 후, 체크포인팅 전: 저널을 재생(replay)하여 파일 시스템에 반영
  • 체크포인팅 후: 이미 반영 완료, 복구 불필요
모드저널링 대상데이터 순서 보장안전성성능
Journal메타데이터 + 데이터보장가장 안전가장 느림
Ordered메타데이터만데이터 먼저 기록 보장안전보통 (기본 모드)
Writeback메타데이터만보장 안 함낮음가장 빠름
  • Journal 모드: 모든 변경이 저널을 거치므로 가장 안전하지만, 데이터를 두 번 쓰기 때문에 성능이 절반으로 떨어진다.
  • Ordered 모드: 메타데이터만 저널링하되, 메타데이터 기록 전에 데이터가 먼저 디스크에 기록되도록 순서를 보장한다. ext3/ext4의 기본 모드이다.
  • Writeback 모드: 메타데이터만 저널링하고 데이터 기록 순서를 보장하지 않는다. 가장 빠르지만, 크래시 시 파일에 이전 데이터(stale data)가 노출될 수 있다.

저널은 순차 쓰기(sequential write)로 기록되므로 랜덤 쓰기보다 훨씬 빠르다. 실제 파일 시스템 반영은 비동기적으로 처리할 수 있어, 전체적인 쓰기 성능이 향상된다.

ext4 파일 시스템 생성 시 저널링 모드 지정:

Terminal window
# ext4 파일 시스템 생성 (기본: ordered 모드)
mkfs.ext4 /dev/sda1
# 저널 모드로 마운트
mount -o data=journal /dev/sda1 /mnt/safe
# writeback 모드로 마운트 (성능 우선)
mount -o data=writeback /dev/sda1 /mnt/fast
# 저널 상태 확인
dumpe2fs /dev/sda1 | grep -i journal