🏷️저널링
- 저널링은 파일시스템이 깨지는 것과 같은 시스템 장애를 방지하기 위해 어디까지 정상 처리됐고, 어디서부터 재실행하면 되는지 알 수 있도록 저널을 남겨두는 기능이다.
- 리눅스의 ext4 파일 시스템은 저널링 기능을 갖추고 있다.
- 저널 영역은 user가 인식할 수 없는 메타 데이터다.
- 나뉘어 질 수 없어(indivisible) 연속적으로 처리되어야 하는 원자적인(atomic) 처리(transaction) 목록들이 저널 영역에 작성된다.
- 이 처리 목록을 저널 로그라고 한다.
- 그 후, 저널 영역을 바탕으로 실제로 파일 시스템의 내용을 업데이트한다.
- 저널링은 ext4나 XFS같은 파일 시스템에서만 사용되는 것은 아니다
- 여러 DB에서 REDO Log나 WAL(Write Ahead Log) 등으로 불리며 데이터를 처리하는 곳이면 거의 대부분 사용된다.
📌파일 시스템 저널링 동작 방법
- 다음은 /dir2/file3를 /dir1/로 옮기는(
mv
) 처리다.
1. 저널 영역을 생성한다.

2. 저널 영역에 처리할 내용을 기록한다. (저널 로그 업데이트)

3. 저널 로그를 바탕으로 1번 처리를 수행한다.

4. 이어서 2번 처리를 수행한다.

5. 저널 영역을 지운다.

📌시스템 장애 방지
- 저널 로그 업데이트 중에 전원이 끊어지면, 저널 영역의 데이터만 지워지기 때문에 실제 데이터는 처리 전과 같다.
- 실제 데이터를 업데이트하는 중에 전원이 끊어지면, 저널 로그를 그냥 처음부터 다시 수행하면 된다.