토픽 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