저널링 파일 시스템(Journaling File System)이란?
간단하게 말하면 백업 및 복구 능력이 있는 FS(File System)
저널링 파일시스템은 파일시스템의 변화에 대한 흔적을 남기기때문에 fsck로 복구하는데 걸리는 시간이 그만큼 줄게 된다.
즉 시스템 손상으로 인해 복구를 진행할때 빠르게 복구를 처리하기 위해서 생겨났다고 보시면 됩니다
저널링
스토리지에 데이터를 저장하기 전에 Journal 영역에 데이터의 변경 이력을 저장하고,
스토리지 데이터 변경 내역을 저장하는 활동
- 목적: 시스템 장애 등 스토리지에 장애가 발생하였을 경우, 스토리지의 장애복구 과정을 빠른 시간에 원활하게 처리 할 수 있도록 하기 위함
- 기본적으로 FS는 메타데이터 블럭 + 데이터 블럭으로 나누어짐. JFS에서는 메타데이터 블럭과 일반 데이터 블럭에서의 저널링 유무에 따라 저널링 모드 설정 가능
동작 방식
사용자가 어떤 내용을 입력 또는 수정하면 그 내용을 바로 HDD에 저장하는 것이 아닌 해당 작업을 했다 (어떤 내용을 수정했다)라는 내용을 기록한다.
그리고 어떠한 이유로 갑자기 비정상적으로 종료되면 해당 기록을 확인하여 복구할 수 있습니다
장점
당연히 빠른 복구를 위해 개발된 파일 시스템으로 빠른 복구가 가능하다는 것이 장점입니다. (요즘은 기본 용량이 TB까지 가니...)
단점
- system call 수준에서만 일관성을 유지하기 때문에 write()를 여러번 사용하는 작업의 중간에 장애가 발생시에는 데이터의 복사본이 원본보다 작게 만들어질 수 있음
- 파일 시스템을 업데이트 할 때마다 로깅에 따른 오버헤드와 I/O 가 많아져 시스템 관리자는 파일 시스템 관리의 정책을 세워야 할 필요가 있을
저널링 파일 시스템 종류
- RFS(Reiser File System, 한스 라이저가 개발)
- XFS(eXtended File System, SGI사에서 개발)
- JFS(Journaling File System, IBM사에서 개발)
- ext3(Extension3, 리눅스 공동체에서 개발), ext4
ext4의 저널링 모드
- Journal Mode
- 메타데이터 변경, 데이터 변경에 대해 저널에 로그를 남김
- 장점: 각 파일에 대한 변경 여부를 가장 정확하게 유지 가능
- 단점: 저널 영역에 대한 추가적인 디스크 접근 많음. 즉 성능면에서는 가장 떨어짐
- Ordered Mode (default)
- 파일 시스템의 메타데이터 변경에 대해서만 저널에 로그를 남김
- 데이터 블록들을 먼저 기록 후 메타 데이터 저널링
- Write-back Mode
- 파일 시스템 메타데이터에 대한 변경만 로그를 남김
- 데이터와 메타데이터간 쓰기 순서가 보장되지 않음(Ordered Mode와의 차이점)