강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터1급 : 파일시스템 ext2의 특징

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 파일시스템 ext2의 특징






1) ext2의 특



Minix 파일 시스템은 리눅스가 처음으로 사용한 파일 시스템이었다.

 

 

 

 

하지만 여러 가지 제약 조건이 있었고 그 성능 또한 좋지 못한 단점이 있었다.

 

 

 

 

이를 보안하기 위해 제시된 파일 시스템이 확장 파일 시스템(EXT, Extended File System)이다.

 

 

 

 

특히 이 파일 시스템은 리눅스 전용으로 설계되어 19924월 소개되었다.

 

 

 

 

하지만 여러 가지 문제점을 가지고 있어 이를 보완했으나 여전히 여러 가지 문제점이 존재했다.

 

 

 

 

그래서 다시 ext 파일 시스템을 보완하기 위해서 1993년에 추가된 것이 바로 2차 확장 파일 시스템(ext2, Extended File System)이다.

 

 

 

 

ext2 파일 시스템은 자신이 위치하고 있는 논리적인 파티션을 블록으로 다시 나누게 된다.

 

 

 

 

이 블록 그룹들은 파일 시스템에서 무결성의 핵심을 이루는 정보를 중복해서 저장히여 실제 파일과 디렉토리를 정보와 데이터 블록으로 가진다.

 

 

 

 

블록 그룹들이 파일 시스템에 대한 무결성 정보를 중복해서 가지고 있는 이유는 파일 시스템이 예기치 않은 시스템상의 재난으로부터 파일 시스템을 복구하기 위해서이다.

 

 

 

 

ext2 아이노드(Inode)

 

ext2 파일 시스템은 모든 파일을 EXT2 파일 시스템에서 가장 기본이 되는 단위인 각각의 아이노드에 의해서 표현한다.

 

 

 

 

또한 아이노드는 각각을 구분할 수 있는 고유 번호를 가지게 되는데, 이러한 아이노드의 역할은 파일의 데이터가 저장된 블록의 위치 파일에 대한 접근 권한, 파일의 최종 수정 시간, 파일의 종류 등의 정보를 저장하는 것이다.

 

 

 

 

그리고 아이노드는 아이노드 테이블(Inode table)에 저장되며 아이노드에 저장되는 정보의 항목은 다음과 같다.

 

 

 

모드(Mode)

모드(Mode)에는 아이노드가 속한 파일에 대한 정보와 파일에 대한 접근 권한 정보가 저장된다.

 

 

 

 

ext2에서 아이노드는 단지 하나의 파일, 디렉토리, 심볼릭 링크, 블록 장치, 문자 장치 등만을 나타낸다.

 

 

 

소유자 정보(Owner Information)

소유자 정보(Owner Information)는 파일과 디렉토리에 대한 소유자와 그룹에 대한 식별자를 나타낸다.

 

 

 

 

소유자 정보를 사용하여 파일이나 디렉토리에 대한 접근 권한을 관리할 수 있다.

 

 

크기(Size)

크기(Size)는 파일의 크기 정보를 저장한다.

 

 

 

 

파일에 대한 크기 정보는 바이트 단위로 저장된다.

 

 

타임 스탬프(Time Stamps)

타임 스탬프는 아이노드가 생성된 시간과 최종적으로 수정을 가한 시간에 대한 정보를 저장한다.

 

 

 

데이터 블록(Data Block)

데이터 블록은 아이노드가 지정하고 있는 데이터 블록에 대한 포인터를 저장한다.

 

 

 

 

데이터 블록에는 총 15개의 포인터가 존재하는데, 이 포인터들 중에서 선행의 12개 포인터는 해당 아이노드가 지정하고 있는 데이터에 대한 실제 블록의 포인터 정보를 가지고 있고, 나머지 3개의 포인터는 높은 수준의 간접 연결에 대한 정보를 가지고 있다.

 

 

 

 

아이노드는 또한 실제로 존재하지 않지만 시스템의 장치에 접근할 수 있는 특별한 장치 파일의 표현에도 사용된다.

 

 

 

 

리눅스 시스템의 /dev 디렉토리 안에 위치하는 파일들이 그것들이다.

 

 

 

 

ext2 슈퍼 블록(Super Block)

 

슈퍼 블록은 해당 파일 시스템의 기본적인 크기나 형태에 대한 정보를 저장한다.

 

 

 

 

파일 시스템 관리자는 이 슈퍼 블록의 정보를 이용하여 파일 시스템을 활용하고 유지할 수 있다.

 

 

 

 

 

 

매직 넘버(Magic Number)

 

매직 넘버는 마운트하는 소프트웨어에게 ext2 파일 시스템의 슈퍼 블록임을 확인하게 하는 값이다.

 

 

 

 

현재 ext2 파일 시스템에서 매직 넘버값은 0xEF53이다.

 

 

 

개정 레벨(Revision Level)

 

개정 레벨은 메이저 레벨(Major Level)과 마이너 레벨(Minor Level)로 구성되어 있으며, 개정 레벨의 역할은 마운트 프로그램이 어떤 특정한 버전에서만 지원되는 기능이 이 파일 시스템에서 지원되는 지에 대한 확인을 위해 사용된다.

 

 

 

 

또한 개정 레벨은 기능 호환성 항목을 포함하여 마운트 프로그램이 해당 파일 시스템에서 안정적으로 사용할 수 있는 기능이 무엇인지를 판단할 수 있는 기준을 제공한다.

 

 

 

 

마운트 횟수(Mount Count)와 최대 마운트 횟수(Maximum Mount Count)

 

 

시스템은 마운트 횟수와 최대 마운트 횟수의 두 가지 정보를 이용하여 파일 시스템 전체를 검사할 필요가 있는 지를 확인할 수 있다.

 

 

 

 

마운트 횟수는 마운트가 실행될 때마다 1씩 그 값이 증가하며 만약 마운트 횟수가 최대 마운트 횟수에 도달하게 되면 시스템은 e2fsck를 실행하라는 메시지를 내보낸다.

 

 

 

 

 

 

블록 그룹 번호(Block Group Number)

블록 그룹 번호는 슈퍼 블록 복제본을 가지고 있는 블록 그룹의 번호를 나타낸다.

 

 

 

 

블록 크기(Block Size)

블록 크기는 파일 시스템의 블록 크기를 표시한다.

 

 

블록 크기는 바이트 단위로 표시된다.

 

 

 

그룹당 블록 수(Blocks per Group)

 

그룹당 블록 수는 하나의 그룹에 속한 블록의 수를 나타낸다.

 

 

 

 

이 수는 블록의 크기와 마찬가지로 파일 시스템을 만들 때 결정된다.

 

 

 

프리 블록(Free Block)파일 시스템 내부적으로 존재하는 프리 블록(Free Block)의 수를 나타낸다.

 

 

 

프리 아이노드(Free Inode)파일 시스템 내부적으로 존재하는 프리 아이노드(Free Inode)의 수를 나타낸다.

 

 

 

첫 아이노드(First Inode)파일 시스템 내부적으로 존재하는 첫 번째 아이노드의 번호를 나타낸다.

 

 

 

 

리눅스 시스템에서 EXT2 파일 시스템의 첫 번째 아이노드는 ‘/’ 디렉토리에 대한 디렉토리 엔트리를 나타낸다.

 

 

 

ext2 그룹 기술자(Group Descriptor)그룹 기술자는 각각의 블록 그룹을 기술하는 자료 구조이다.

 

 

 

 

그룹 기술자는 슈퍼 블록(Super Block)과 같이 중복되게 블록 그룹에 복제되어 파일 시스템의 파괴에서 안정적인 복구를 지원한다.

 

 

 

 

각 그룹의 기술자에 저장되는 정보 항목은 다음과 같다.

 

 

 

블록 비트맵(Blocks Bitmap)블록 비트맵은 블록 그룹에서 블록의 할당 상태를 나타내 주는 비트맵으로 그 수는 블록의 수와 동일하다.

 

 

 

 

블록 비트맵은 블록을 할당하거나 해제할 경우 참고되는 정보이다.

 

 

 

아이노드 비트맵(Inode Bitmap)아이노드 비트맵은 블록 그룹에서 블록의 아이노드 할당 상태를 나타내 주는 비트맵으로 그 수는 블록 비트맵(Block Bitmap)과 같이 블록의 수와 동일하다.

 

 

 

 

아이노드 비트맵은 아이노드를 할당하거나 해제할 경우 참고되는 정보이다.

 

 

 

아이노드 테이블(Inode Table)아이노드 테이블은 블록 그룹의 아이노드 테이블에서 시작 블록을 나타내며 그 수는 블록의 수와 동일하다.

 

 

 

이 외에도 프리 블록 개수(Free Block Count), 프리 아이노드 개수(Free Inode Count), 사용된 디렉토리 개수(Used Directory Count)가 있다.

 

 

 

 

그룹 기술자(Group Descriptor)는 연속적으로 나타나서 전체적으로 하나의 그룹 기술자 테이블을 형성하게 된다.

 

 

 

 

각 블록 그룹(Block Group)에는 슈퍼 블록 바로 뒤에 그룹 기술자 테이블 전체가 위치하게 된다.

 

 

 

 

하지만 EXT2 파일 시스템에서 실제로 사용되는 것은 블록 그룹이 ‘0’인 첫 번째 복사본이다.

 

 

 

 

나머지는 예상치 못한 시스템의 손상에 대비해 시스템 복구를 위해 준비하고 있을 뿐이다.

 

 

 

ext2 디렉토리ext2 파일 시스템에서 디렉토리는 파일 시스템상에서 파일에 대한 접근 경로를 생성하고 저장하는 특별한 의미의 파일로 취급된다.

 

 

 

 

각각의 디렉토리는 디렉토리 엔트리 목록으로 나타낸다.

 

아이노드(Inode)아이노드(Inode)는 디렉토리 엔트리에 해당하는 아이노드를 나타낸다.

 

 

 

 

아이노드 값은 블록 그룹의 아이노드 테이블에 저장되어 있는 아이노드 배열에 대한 인덱스 값이다.

 

 

 

이름 길이(Name Length)이름 길이(Name Length)는 디렉토리 엔트리의 길이를 바이트로 나타낸 것을 의미한다.

 

 

 

이름(Name)이름(Name)은 디렉토리 엔트리의 이름을 나타낸다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  171 명