리눅스

#6-2 리눅스 파일 시스템

sundori 2025. 1. 9. 14:19

파일 시스템(File System)

리눅스의 ext2 파일 시스템 구조 설명 (Block Group 기반)

리눅스에서 사용되는 ext 파일 시스템(ext2, ext3, ext4)은 디스크를 효율적으로 관리하기 위해 Block Group이라는 구조를 도입했다. 디스크를 여러 Block Group으로 나누어 관리함으로써 대규모 파일 시스템에서도 성능과 안정성을 유지할 수 있다. 이를 단계적으로 설명하면 다음과 같다:

 

Disk Drive
MBR Reserved Partition 1 Partition 2 Partition N
디스크 드라이브와 파티션
  • Disk Drive: 데이터를 저장할 물리적 장치.
  • MBR (Master Boot Record): 디스크의 첫 번째 섹터에 위치하며, 부팅 관련 정보와 파티션 정보를 포함.
  • Reserved: 특정 시스템이나 부트 로더에서 사용하기 위해 예약된 공간.
  • Partition: 디스크를 논리적으로 나눈 영역으로, 각각 독립적으로 파일 시스템을 가질 수 있음.

...

파일 시스템 생성(포맷 작업)

포맷 작업 중 파일 시스템의 구조가 생성되며, ext2 파일 시스템의 경우 아래와 같은 구성 요소가 만들어진다.

Format(mkfs)    ↓

...

Partition N(File System)
Boot Block Block Group 0 Block Group 1 Block Group 2 Block Group N
ext2 파일 시스템의 구요 구조
포맷 작업을 통해 파일 시스템은 다음과 같은 구성 요소를 가지게 된다:

(1) Boot Block 
  • 파일 시스템의 시작 부분에 위치하며, 부팅 관련 데이터를 저장.
부팅 시 중요한 정보를 제공하며, 실제 파일 데이터 저장과는 관련 없음.

(2)Block Group 구조
ext 파일 시스템은 디스크를 여러 Block Group으로 나눠 데이터를 관리한다.
  • Block Group: 파일 시스템을 일정 크기의 단위로 나눈 논리적 그룹.
    • 각 Block Group은 동일한 구조를 가지며, 독립적으로 파일 데이터와 메타데이터를 관리.

 

 

Block Group N
Super Block Group Descriptors Block Bitmap Inode Bitmap Inode Table Data Blocks
Block Group 내부 구성
Block Group은 다음과 같은 주요 구성 요소를 포함한다:


(1) Super Block

  • 파일 시스템의 전체적인 정보를 저장.
  • 저장 내용:
    • 파일 시스템 크기.
    • 사용 가능한 블록 수.
    • 사용 가능한 아이노드 수.
    • 블록 크기.
    • 파일 시스템 상태(정상/오류).
(2) Group Descriptors

  • Block Group에 대한 정보를 저장하는 테이블.
  • 각 Block Group의 데이터 블록, 아이노드 테이블, 블록 비트맵 위치 등을 참조.

(3) Block Bitmap

  • 해당 Block Group에서 사용 중인 데이터 블록과 비어 있는 데이터 블록을 관리.
  • 각 블록의 사용 상태를 비트로 표현:
    • 0: 비어 있음(사용 가능).
    • 1: 사용 중.

(4) Inode Bitmap
  • 해당 Block Group에서 사용 중인 아이노드와 비어 있는 아이노드를 관리.
  • 각 아이노드의 상태를 비트로 표현:
    • 0: 비어 있음(새 파일 생성 가능).
    • 1: 사용 중.
(5) Inode Table

  • 파일과 디렉토리의 메타데이터를 저장하는 구조.
  • 아이노드에 저장되는 정보:
    • 파일 크기.
    • 소유자 및 권한.
    • 파일 생성 및 수정 시간.
    • 데이터 블록 주소(파일 내용이 저장된 위치).
(6) Data Blocks
  • 실제 파일 데이터가 저장되는 영역.
  • 텍스트, 이미지, 비디오와 같은 파일 내용이 이곳에 저장됨.
  • 디렉토리의 경우, 파일 이름과 아이노드 번호의 매핑 정보를 저장.

 

데이터 접근 과정

  1. 파일 요청 → 디렉토리에서 파일 이름 확인.
  2. 디렉토리 블록에서 파일 이름과 연결된 아이노드 번호를 찾음.
  3. Inode Bitmap에서 아이노드를 참조하여 메타데이터 확인.
  4. 데이터 블록 주소를 통해 실제 파일 내용에 접근.

ext 파일 시스템은 데이터를 Block Group 단위로 관리하여 성능과 안정성을 높인다.

  • 각 Block Group에는 Super Block, Group Descriptors, Block Bitmap, Inode Bitmap, Inode Table, Data Blocks가 포함된다.
  • 이러한 구조는 대규모 파일 시스템에서 데이터를 효율적으로 관리하고 빠르게 접근할 수 있도록 설계되었다.

이 구조는 ext2, ext3, ext4로 발전하면서 유지되었으며, ext4는 특히 대규모 데이터와 고성능 서버 환경에 적합하도록 추가적인 기능이 포함되었다.

'리눅스' 카테고리의 다른 글

#6-1 리눅스 파일 시스템  (0) 2025.01.09
#5-2 리눅스 부팅과 셧다운  (0) 2025.01.09
#5-1 리눅스 부팅과 셧다운  (1) 2024.12.15
#4 리눅스 디렉터리  (0) 2024.12.15
#3 리눅스의 구조  (0) 2024.12.15