본문 바로가기
운영체제 OS

저널링 파일 시스템 (Journaling File System)

by 까망 하르방 2021. 2. 27.
반응형

저널링 파일 시스템이란?

특별한 데이터 구조체 혹은 데이터 영역에 시스템의 변경 사항들을 기록해 놓고,

이를 참조하여 파일 시스템에 변경 사항을 적용하기 전 변경점들을 추적한다.

이를 통해 저널링 파일 시스템은 정상 상태로 빠르게 복구할 수 있으며 내부 데이터의 손상 가능성을 줄인다.

※ 저널링Journaling이란? Stoarge에 데이터 변경 내역을 저장하는 활동

 

파일 시스템 이란?

파일 시스템은 데이터를 저장, 검색 및 처리하기 위해서 존재합니다.

이를 위해 파일 시스템은 내부의 모든 데이터가 조직화되어 있어야 하고 

저장된 데이터들을 액세스 가능한 상태로 관리하는 내부 데이터 구조를 가지고 있어야 한다.

이러한 데이터 관리용 자료구조를 메타데이터(Metadata) 라고 한다. 

ex) 접근권한, 디스크에서의 위치, 파일 생성 및 삭제, 디렉터리 생성 및 삭제, 파일 크기 등

      각 블록이 가용 가능한지 여부를 담는 비트맵이나

      Disk의 Bad Sector 정보 등을 저장하여 파일 시스템 운영에 활용

일반적으로 사용자는 파일 시스템 내 메타데이터에 직접적으로 관여하지 않고, 

특정 파일 시스템을 관리하는 드라이버가 관련 작업을 수행한다고 보시면 됩니다.

드라이버는 특정 파일 시스템 구조 및 메타데이터 관리 작업을 문제 없이 수행하지만, 

이를 위해 드라이버는 합리적이고 일관성을 유지하는, 손상되지 않은 상태의 메타데이터에 접근할 수 있어야 합니다.

그렇지 않을 경우 드라이버는 메타데이터를 인식하거나 처리할 수 없고, 상위의 사용자 역시 파일에 엑세스할 수 없습니다.

따라서 정상적인 파일 시스템 동작을 위해 시스템 내 모든 메타데이터는 무결성을 유지하여야 합니다.

 

등장 배경

파일의 입출력 속도를 높이기 위해 주 메모리에 있는 Buffer를 사용합니다.

보통 파일시스템에서 Disk Cache 사용해서 전체적인 성능향상을 위한 임시 Stoarge로 이용되고 있습니다.

하지만 Buffer를 사용함에 있어서도 Buffer가 Disk에 내용을 쓰기(Write) 전에 갑작스런 정전 등으로 인하여

시스템에 손상이 오는 경우, 재부팅 후에도 시스템이 비정상적일 수 있습니다.

 

물론, Cache에는 지워진 파일이 하드디스크에 남이 있는 경우, 

Database와 FileSystem은 정상적인 방식으로 시스템을 복구할 수 있습니다.

하지만 유닉스 파일 시스템(UFS, SCO, System V) 같은 경우 파일 시스템의 크기가 커짐에 따라

파일 시스템의 복구 시간이 많이 필요하게 됩니다.

이러한 처리 작업 시간은 용량이 큰 서버일 수록의 큰 성능 저하를 일으키기 때문에 Database 복구를 

빠르게 처리하기 위한 방법으로 저널링 파일시스템이 생겨나게 되었습니다.

 

<Q> Database와 저널링 파일시스템의 차이?

<A> 데이터베이스는 사용자와 제어할 Data의 기록을 남기고,

       저널링 파일 시스템은 단지 메타데이타만을 저장한다.

 

저널링 파일 시스템 종류

- ext3 (Extension3, 리눅스 공동체에서 개발, ext2 파일 시스템에서 패치하는 형식으로 개발 되고 있음)

- JFS (Journaling File System, IBM사의 독자적인 파일 시스템)

- XFS (eXtended File System, SGI사)

- reiserifs (Reiser File System)

※ 저널링 파일 시스템 종류

 

저널링 파일 시스템 종류

저널링 파일 시스템 종류 ext (eXtended file system): 리눅스 파일 시스템으로 사용, 암호화 지원 X ext2: 리눅스 파일시스템으로 사용 (ext를 대체하기 위해 고안)    서버의 비정상적 종료 후 재부팅시

zoosso.tistory.com

 

고려사항

저널링 파일 시스템은 로깅(Logging) 기능에 따라 파일 시스템이 데이터가 업데이트(Update) 될 때마다 

로깅에 따른 수많은 리소스(Resource)를 필요로 한다.

이러한 문제점이 발생하기 때문에 무조건 저널링 파일 시스템을 사용하는 것보다는 필요한 부분에 한해서만 사용한다.

ex) 데이터 일관성이 중요하며 잦은 업데이트가 발생하는 부분에 적합하다.

 

Reference

fsck (File System Check) 

 

fsck (File System Check)

fsck (File System Check) 리눅스 파일 시스템의 경우, 무결성을 검증하기 위해, fsck(file system check)를 지원합니다. fsck는 리눅스 부팅 시에 같이 시작하며, 시스템 내의 모든 로컬 파일 시스템을 검사합

zoosso.tistory.com

 

 

반응형

댓글