11. 아이노드

파일 시스템이 실제 파일과 이를 관리하는 데이터베이스로 구성되어 있다는 것을 기억하십니까? 이 데이터베이스는 리눅스에서 inode 가 작동하는 방식의 기본 구성 요소인 inode 테이블로 알려져 있습니다.

리눅스 Inode 란 무엇인가

Inode(인덱스 노드의 약자) 는 이 테이블의 항목입니다. 모든 파일과 디렉터리는 고유한 inode를 가집니다. 이는 다음과 같이 파일에 대한 모든 것을 설명합니다.

  • 파일 유형 (예: 일반 파일, 디렉터리, 문자 장치)
  • 소유자
  • 그룹
  • 접근 권한
  • 타임스탬프: mtime(마지막 수정), ctime(마지막 속성 변경), atime(마지막 접근)
  • 파일에 대한 하드 링크 수
  • 파일 크기
  • 파일에 할당된 블록 수
  • 파일 데이터 블록에 대한 포인터 (가장 중요!)

본질적으로, i node는 파일 이름과 실제 내용을 제외한 모든 메타데이터를 저장합니다.

Inode 생성 및 할당

파일 시스템이 생성될 때 inode 를 위한 공간도 할당됩니다. 알고리즘은 디스크 볼륨 및 기타 요소를 기반으로 필요한 inode 공간의 양을 결정합니다. 이전에 디스크 공간 부족 오류를 본 적이 있을 것입니다. inode 에서도 동일한 일이 발생할 수 있지만 덜 일반적입니다. inode 가 부족하면 새 파일을 만들 수 없습니다. 데이터 저장은 데이터 블록과 데이터베이스 (inode 테이블) 모두에 의존합니다.

시스템에 남아 있는 inode 수를 확인하려면 df -i 명령을 사용하십시오. 이는 많은 수의 작은 파일을 관리하는 시스템 관리자에게 중요한 확인 사항입니다.

Inode 정보 보기

linux inode는 고유한 번호로 식별됩니다. 파일이 생성되면 종종 순차적으로 inode 번호가 할당됩니다. 그러나 새 파일이 이전 파일보다 더 낮은 inode 번호를 받는 것을 발견할 수 있습니다. 이는 삭제된 inode 번호가 새 파일에 재사용될 수 있기 때문에 발생합니다. inode 번호를 보려면 ls -li를 실행하십시오.

pete@icebox:~$ ls -li
140 drwxr-xr-x 2 pete pete 6 Jan 20 20:13 Desktop
141 drwxr-xr-x 2 pete pete 6 Jan 20 20:01 Documents

이 명령 출력의 첫 번째 필드가 inode 번호입니다. 또한 stat 명령을 사용하여 파일의 i node에 대한 자세한 정보를 볼 수 있습니다.

pete@icebox:~$ stat ~/Desktop/
  File: ‘/home/pete/Desktop/’
  Size: 6               Blocks: 0          IO Block: 4096   directory
Device: 806h/2054d      Inode: 140         Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/   pete)   Gid: ( 1000/   pete)
Access: 2016-01-20 20:13:50.647435982 -0800
Modify: 2016-01-20 20:13:06.191675843 -0800
Change: 2016-01-20 20:13:06.191675843 -0800
 Birth: -

I-Node 가 데이터에 연결되는 방식

데이터는 디스크에 저장되지만 단일 연속 블록에 저장되어 있지 않을 가능성이 높습니다. 이때 inode linux 구조가 필수적입니다. Inode 는 파일의 실제 데이터 블록을 가리킵니다. 일반적인 파일 시스템 (구현은 다양함) 에서 각 inode 는 15 개의 포인터를 포함합니다. 처음 12 개 포인터는 데이터 블록을 직접 가리킵니다. 13 번째 포인터는 더 많은 포인터가 포함된 블록을 가리킵니다. 14 번째와 15 번째 포인터는 더 깊이 중첩된 포인터 블록을 가리킵니다. 이는 혼란스러워 보일 수 있지만, 이 구조 덕분에 i node는 고정된 크기를 유지하면서 다양한 크기의 파일을 참조할 수 있습니다. 작은 파일은 직접 포인터를 사용하여 빠르게 액세스할 수 있으며, 더 큰 파일은 중첩된 포인터를 통해 위치가 지정됩니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽함을 만듭니다! 리눅스 파일 시스템 및 파일 관리에 대한 이해를 강화하기 위한 실습 랩이 있습니다.

  1. 리눅스에서 파일 및 디렉터리 관리 - 파일 및 디렉터리 생성, 제거, 복사 및 이동을 연습하고, 기호 링크 및 하드 링크를 생성하면서 inode 를 분석해 보세요.
  2. 리눅스 파일 시스템 탐색 - pwd, cd, ls와 같은 필수 셸 명령을 사용하여 리눅스 파일 시스템을 탐색하는 기본 기술을 배우세요.
  3. 리눅스에서 파일 및 명령 찾기 - find, locate, whereis, which, type를 사용하여 리눅스에서 파일 및 명령을 찾는 필수 기술을 마스터하세요.

이 랩들은 실제 시나리오에서 개념을 적용하고 리눅스 파일 시스템 관리에 대한 자신감을 키우는 데 도움이 될 것입니다.

퀴즈

시스템에 남아 있는 inode 수를 어떻게 확인합니까? (대소문자를 구분하여 영어로 답변하십시오.)