파일의 inode에는 파일의 메타데이터가 저장되어 있다. 이 메타데이터는 파일의 구성정보를 담고 있으며,
파일의 실제 내용은 포함되지 않는다. 파일의 내용은 데이터 블록에 저장되고, inode는 그 파일에 대한
정보만을 저장한다. 이 inode는 디스크에 메타데이터 영역에서 관리된다.
디렉토리 자체도 파일이기 때문에 inode를 갖는다. 리눅스의 파일시스템에서, 최상위 디렉토리인 / (루트 디렉토리)의 inode 번호는 시스템이 부팅될때 알고있다. 모든 파일 시스템은 / 디렉토리를 기준으로 트리 구조로 되어있기 때문에 루트 디렉토리의 inode 번호를 알면, 그 아래의 다른 디렉토리의 inode 번호를 찾을 수 있다.
예를들어 /home/hyukjin 디렉토리의 파일들을 조회하려면, 먼저 /home 디렉토리의 inode 번호를 찾고, 그 안에 있는
/home 디렉토리의 inode 번호를 찾고, 그 안에 있는 hyukjin 디렉토리의 inode 번호를 찾는 방식으로 진행된다.
즉, 상위 디렉토리의 inode 번호를 통해, 하위 디렉토리의 inode 번호를 찾을 수 있다.
디렉토리의 inode에는 파일이름과 해당 파일의 inode 번호를 연결하는 매핑정보가 저장된다.
즉 디렉토리의 inode는 디렉토리 내에 있는 파일들의 목록을 관리하는 역할을 한다.
cat file.txt 명령어를 실행할 때 리눅스 시스템에서 파일의 내용을 출력하는 과정은 다음과 같다.
1. 리눅스 파일시스템은 디렉토리 파일의 inode에서 파일이름과 inode번호의 매핑정보를 검색하여 file.txt가
어떤 inode 번호에 해당하는지 찾는다.
2. 파일의 inode 번호를 찾으면, 그 inode 번호를 사용하여 inode 테이블에서 해당 파일이 저장된 데이터 블록
위치저옵를 통해 디스크에서 읽어온다.
2025/04/02
하드링크
하드링크는 동일한 inode 번호를 가리키는 다른 파일을 생성하는 것이다. 즉 두개 이상의 파일이 동일한 데이터를 공유하는 방식이다.
하드링크(심볼릭 링크)
소프트 링크는 파일 경로만을 저장하는 링크이다. 소프트 링크 자체도 하나의 파일이며, 그 파일의 inode는 소프트 링크 자체의 inode에 대한 메타데이터를 포함한다. 메타데이터에는 원본 파일의 경로 정보가 저장된다.
예를 들어 ln -s 명령어로 생성된 소프트 링크는 원본 파일의 경로를 저장하며, 해당 경로에 접근할 수 있도록 한다. 반면, 하드 링크는 실제 파일의 inode를 참조하기 때문에 원본 파일이 삭제되어도 링크된 파일을 여전히 존재한다.
'리눅스' 카테고리의 다른 글
systemctl enable (0) | 2025.04.02 |
---|---|
Redis Master/Slave + HAProxy (0) | 2025.03.18 |
Nginx SSL/TLS ssl_preread & stream (1) | 2025.03.17 |
Redis Failover (0) | 2025.03.13 |
Vmware 네트워크 (0) | 2025.01.12 |