컴퓨터

EXT 파일시스템의 핵심, Inode와 블록 주소 지정 방식

이까루 2025. 12. 5. 02:12
반응형

[OS/File System] EXT 파일시스템의 핵심, Inode와 블록 주소 지정 방식 정리

리눅스(Linux)의 대표적인 파일시스템인 EXT(Extended File System)는 파일을 어떻게 저장하고 관리할까요? 그 비밀은 바로 Inode(아이노드)라는 구조체에 숨어 있습니다.

오늘은 EXT 파일시스템이 파일의 크기에 따라 데이터를 저장하는 디스크 블록의 위치를 어떻게 효율적으로 찾아내는지, 직접 블록(Direct Block)과 간접 블록(Indirect Block)의 개념을 통해 알아보겠습니다.


1. Inode와 블록 포인터

Inode는 파일에 대한 메타데이터(소유자, 권한, 크기 등)와 함께 데이터가 실제 저장된 위치(주소)를 관리합니다. Inode 내부에는 블록 포인터 배열이 존재하는데, 이 포인터들이 가리키는 방식에 따라 파일 시스템의 성능과 용량 관리 효율이 결정됩니다.

EXT 파일시스템은 파일의 크기에 따라 주소 지정 방식을 달리하는 하이브리드 방식을 사용합니다.

 

출처- wikipedia

2. 작고 빠른 접근: 직접 블록 (Direct Block)

대부분의 시스템 파일이나 설정 파일처럼 용량이 작은 파일들은 직접 블록 방식을 사용합니다.

  • 동작 원리: Inode의 포인터가 실제 데이터가 저장된 디스크 블록을 직접 가리킵니다.
  • 장점: 중간 단계를 거치지 않고 포인터를 한 번만 따라가면 되므로 접근 속도가 매우 빠릅니다.
  • 특징: 보통 Inode 내의 처음 12개 포인터가 이 역할을 담당하며, 파일의 앞부분 데이터를 저장하는 데 사용됩니다.

💡 핵심: 작은 파일은 고속도로처럼 직통으로 연결하여 성능을 최적화합니다.

3. 용량의 확장: 간접 블록 (Indirect Block)

파일의 크기가 커져서 12개의 직접 블록만으로는 데이터를 다 담을 수 없게 되면, 시스템은 간접 블록 방식을 사용하기 시작합니다.

  • 동작 원리: Inode가 데이터 블록을 바로 가리키는 것이 아닙니다. 대신, '데이터 블록의 주소 목록(포인터들)이 적힌 인덱스 블록'을 가리킵니다.
  • 장점: 하나의 인덱스 블록 안에 수많은 데이터 블록의 주소를 담을 수 있어, 저장 가능한 파일의 용량이 대폭 늘어납니다.

4. 대용량 파일 지원: 이중/삼중 간접 블록 (Double/Triple Indirect)

파일 크기가 매우 커져서(예: 기가바이트, 테라바이트 단위) 단일 간접 블록으로도 부족할 때는 계층을 더 늘립니다.

  • 이중 간접(Double Indirect): 인덱스 블록이 가리키는 곳에 또 다른 인덱스 블록이 있고, 그제야 데이터 블록을 가리키는 방식입니다.
  • 삼중 간접(Triple Indirect): 위 과정을 세 번 거치는 구조입니다.
  • 효과: 이러한 계층적 구조(Tree 형태)를 통해 EXT 파일시스템은 초대용량 파일까지 문제없이 지원할 수 있습니다.

📝 요약 및 결론

EXT 파일시스템의 주소 지정 방식은 '성능'과 '확장성' 두 마리 토끼를 모두 잡기 위해 설계되었습니다.

구분 방식 용도 및 특징
직접 블록 Inode ➡️ 데이터 작은 파일용. 접근 속도가 가장 빠름.
간접 블록 Inode ➡️ 인덱스 ➡️ 데이터 중간 크기 파일용. 더 많은 데이터 연결 가능.
이중/삼중 Inode ➡️ 인덱스 ➡️ 인덱스... 대용량 파일용. 계층 구조로 거대 용량 지원.

결론적으로 EXT는 작은 파일에는 빠른 직접 접근을, 큰 파일에는 유연한 간접 접근을 제공함으로써 디스크 공간과 I/O 성능을 효율적으로 관리하는 스마트한 파일시스템입니다.


이 글이 도움이 되셨다면 공감과 댓글 부탁드립니다! 🚀

반응형