[Centos 7] Inode(아이노드)

2022. 11. 23. 15:08리눅스(Linux)

Inode

$ What is Inode?
   - 사용자 프로세스는 커널을 통하여 디스크의 파일을 접근한다
   - 이를 위해 커널 내에는 현재 사용 중인 파일에 대한 자료 구조를 유지한다
   - 커널 내에서 파일 시스템과 관련하여 중요한 자료 구조 중 하나는 Inode 이다
   - Inode는 해당 파일에 대한 대부분의 정보를 가진다

 

$ Inode의 내용
   - 파일의 소유권 및 이용핛 수 있는 여부에 대한 정보
   - 파일 내용이 들어있는 디스크 내의 물리적 주소
   - 파일의 링크 수
   - 파일의 형태
   - 파일의 크기
   - 파일의 만들어진 시간, 최근 사용시간, 최근 수정시간
   - Inode 의 최근 수정시간

 

$ Inode & File
파일의 생성
   -  새로운 파일이 만들어 지면 그에 해당하는 inode가 i-list 안에 만들어지며, 그 inode의 inumber 와 파일이름이 디렉터리에 등록된다

 

파일의 삭제
   - 파일을 삭제하면 그 파일에 대한 inode 의 파일 링크수가 하나 감소되고 디렉터리 entry 에서는 해당 파일의 inumber 가 zero 로 변한다.

   - Inode의 파일링크수가 zero 가 되면 파일의 디스크 블록은 free 가 되며 inode 는 dellocate 상태가 된다

 

$ 파일의 링크(Hard Link)
   - Hard Link 형식으로 파일을 링크시킬 경우는 디렉터리에 그 파일에 대한 새로운 이름이 등록되고, inumber는 본래 있던 파일의 inumber가 복사(동일한 Inode 사용) 된다. 

   - 이때 복사되는 파일의 inode 에서 파일의 링크수가 하나 증가된다

# ls -il 
합계 0 
384387 -rw-r--r-- 2 root root 0 4월 6 14:39 hardlink 
384387 -rw-r--r-- 2 root root 0 4월 6 14:39 inode_test

$ 파일의 링크(Symbol Link)
   - Symbol Link 형식으로 파일을 링크시킬 경우는 디렉터리에 그 파일에 대한 새로운 이름이 등록되고, 새로운 inode 를 생성하며 해당 inode는 원본 파일을 연결한다

# ls -il 
합계 0 
384387 -rw-r--r-- 2 root root 0 4월 6 14:39 hardlink 
384387 -rw-r--r-- 2 root root 0 4월 6 14:39 inode_test 
384388 lrwxrwxrwx 1 root root 10 4월 6 14:40 symbollink -
> inode_test

Hard Link & Symbol Link

 

# ln -s <link 대상파일명> <link 파일명> 
   - 명령어 형식(Symbol)
   
# ln <link 대상파일명> <link 파일명> 
   - 명령어 형식(Hard)