1. 개요
저널링 파일 시스템에 쓰이는 데이터 저널링은 실제 파일을 변경하기 전 미리 변경사항을 받아둔 다음 반영하는 방식이다.전문적인 개념을 잘 모르겠다면 저널리즘과 속기를 연상하면 된다. 속기(저널링) 후 보도(저널리즘)하는 방식과 유사하기 때문이다.[1]
JFS(IBM), NTFS(Windows), ext3(Linux), ext4(Linux), HFS+(macOS) 등의 파일 시스템이 사용한다.
입출력 속도, 장애 복구에 이점이 있다.[2]
2. 상세
데이터 저널링은 journal write, journal commit, checkpoint의 3단계로 나뉜다.각각 비유를 하자면 다음과 같다.
- Journal Write: 블로그에 글을 쓰기 전, 개인 컴퓨터에 글을 써 놓고 저장한다.
- Journal Commit: 컴퓨터에 써 놓은 글을 블로그 에디터에 입력한다. (저장 아직)
- Checkpoint: 저장/발행을 누른다.
(여기서 글을 정확하게 다 적어놓으면 physical logging, 대강 개요만 짰다면 logical logging)
[1] 어원으로 보자면 journ은 "하루, 일과시간(프랑스어 jour)"을 의미하고, 일종의 기록의 "단위"가 되어 "일지"를 (journey - 어디를 다녀오면 며칠간의 "여행일지"를) 기록할 때 쓰는 단어가 된다. journal 은 정기간행물이 된다. 여튼 무언가 있었던 일을 이벤트마다 기록해두는 것에 저널링이란 단어를 쓴다.[2] 쓸데없는 기록이 늘어나기 때문에 플래시 메모리 입장에서는 쓰기수명저하의 원인으로 치부되기도 한다. 이에 따라 USB 메모리는 NTFS보다 저널링 기능이 없는 FAT, exFAT으로 포맷하는 것을 추천하는 편이다. FAT 테이블이 깨져서 모든 파일을 잃고 이후 NTFS로 포맷해서 쓰는 사람도 있으니, 선택은 자유.