저널링 파일 시스템
log first변경할 메타데이터를 저널에 먼저 남기고 커밋 여부로 replay를 결정합니다.
inode 크기, 비트맵 변경 같은 의도를 기록합니다.
트랜잭션이 완성됐다는 표식을 씁니다.
실제 파일 시스템 위치에 반영합니다.
crash 뒤 커밋된 항목만 재적용합니다.
두 방식 모두 비정상 종료 후 파일 시스템 구조가 애매한 중간 상태로 남는 일을 줄이지만, 쓰기 순서와 복구 기준은 다릅니다.
변경할 메타데이터를 저널에 먼저 남기고 커밋 여부로 replay를 결정합니다.
inode 크기, 비트맵 변경 같은 의도를 기록합니다.
트랜잭션이 완성됐다는 표식을 씁니다.
실제 파일 시스템 위치에 반영합니다.
crash 뒤 커밋된 항목만 재적용합니다.
기존 블록을 덮지 않고 새 블록을 쓴 뒤 메타데이터 포인터를 갱신합니다.
수정 전 데이터와 메타데이터를 보존합니다.
수정본을 새로운 블록에 씁니다.
상위 메타데이터가 새 블록을 가리키게 합니다.
이전 포인터를 남겨 스냅샷을 효율적으로 만듭니다.
할당 비트맵, inode 크기, 디렉토리 엔트리 같은 파일 시스템 구조의 일관성입니다.
ordered, journal, writeback 모드나 체크섬 정책에 따라 데이터 위험이 달라집니다.
사용자 실수 삭제, 애플리케이션 버그, 랜섬웨어는 별도 백업 정책이 필요합니다.
저널링과 COW는 crash consistency를 다루는 장치입니다. 내 데이터가 최신인지, 오래 보관되는지는 fsync, 복제, 백업 정책까지 함께 봐야 합니다.