본문 바로가기

저널링

File System - Ext (13) 계속해서 Ext 파일시스템의 데이터 구조체들을 알아보자. [해시 트리] Ext 파일시스템에서 디렉토리의 엔트리들을 정렬하기 위해 사용하는 알고리즘으로, 각 노드는 디렉토리의 각 블록이다. 노드에는 노드 기술자라는 데이터 구조체가 있는데 노드 기술자는 다음 계층의 블록을 알려주는 역할을 한다. 노드 기술자는 헤더와 엔트리로 나누어 지는데 헤더는 디렉토리 엔트리 다음에 위치한다. [그림 1 - 노드 기술자 헤더 오프셋] 노드 기술자 엔트리는 노드의 최소 해시 값과 노드의 디렉토리 블록을 저장하고 있다. [그림 2 - 노드 기술자 엔트리 오프셋] 첫 번째 노드 기술자 엔트리의 경우 최소 해시 값이 0이어야만 해서 해시 값이 설정되지 않는다. 이러한 이유로 첫 번째 노드 기술자 엔트리의 구조는 [그림 2]와 조.. 더보기
File System - Ext (6) 이번 글에서는 파일시스템 마지막 참조 모델인 응용 프로그램 참조 모델에 대해서 알아 보도록 하겠다. Ext 파일시스템에서는 응용 프로그램 참조 모델에 속하는 기능이 저널링 기능 밖에는 없다. [저널링] 저널링 기능은 파일시스템의 손상을 대비하여 복구를 위해 파일시스템의 변경사항을 기록 해두는 기능으로 설명을 할 수 있다. Ext에서 저널은 슈퍼블록에서 그 위치를 지정하여 주기 때문에 파일시스템 어느 곳이든 위치 할 수 있지만 보통 inode 8을 사용한다. 슈퍼 블록에는 저널을 위한 호환 설정 필드가 있는데 이 값을 어떻게 설정 하는가에 따라 로컬 저널 기능의 활성 여부를 결정 할 수 있다. 만약 로컬 저널 기능을 비 활성화로 설정하면 외부 저널을 사용 할 수 있다. 하지만, 이 저널의 데이터는 로컬에 .. 더보기
File System - NTFS (11) 이번 글에서는 마지막 참조 모델인 응용 프로그램 참조 모델에 해당하는 NTFS 데이터를 알아 볼 것이다. 다른 파일시스템들과는 다르게 NTFS는 많은 응용프로그램 수준의 기능을 지원한다. 여기서 알아볼 기능들은 디스크 할당, 저널링, 변경 저널링 기능이다. 이러한 기능들은 파일시스템에서 필수적으로 필요한 기능들은 아니지만, 사용자의 편의성등을 위해 제공되는 기능들이다. 지금부터 하나씩 알아보도록 하자. [디스크 할당] 이 기능은 사용자 별로 사용 할 수 있는 공간을 할당 하는 기능으로, 할당 정보의 일부는 파일시스템 메타데이터 파일로 저장되는데, NTFS 3.0 버전을 전후로 3.0 이전 버전에서는 MFT 열 번째 엔트리인 \$Quota에 저장되었고 이후 버전에서는 \$Extend 디렉토리에 존재하였다... 더보기