기사에서Linux 파일 시스템 분석작성자: M. Tim Jones 저는 Linux가 모든 파일 시스템을 공통 객체 세트의 관점에서 본다는 것을 읽었습니다.슈퍼 블록,인덱스 노드,디렉토리 항목그리고문서. 이 단락의 나머지 부분에서는 위의 내용을 설명하지만 이 설명은 그다지 만족스럽지 않습니다.
누군가 나에게 이 용어를 설명해 줄 수 있나요?
답변1
우선, 나는 이것이 귀하의 질문에 있는 용어 중 하나가 아니라는 것을 알고 있습니다.메타데이터. 간단히 말해서 메타데이터는 위키피디아에서 훔쳐온 것이며 데이터에 관한 데이터입니다. 즉, 메타데이터에는 데이터에 대한 정보가 포함됩니다. 예를 들어, 내가 자동차를 소유하고 있다면 자동차에 대한 일련의 정보를 갖고 있지만 해당 정보는 자동차 자체의 일부가 아닙니다. 등록번호, 제조사, 모델, 제조연도, 보험 정보 및 기타 정보. 이 모든 정보를 종합적으로 메타데이터라고 합니다. 앞으로 보게 되겠지만 Linux 및 UNIX 파일 시스템에서는 메타데이터가 여러 조직 수준에 존재합니다.
이것슈퍼 블록기본적으로 파일 시스템 메타데이터는 파일 시스템 유형, 크기, 상태 및 기타 메타데이터 구조(메타데이터의 메타데이터)를 정의하는 정보입니다. 슈퍼블록은 파일 시스템에 매우 중요하므로 각 파일 시스템에 대해 여러 개의 중복 복사본에 저장됩니다. 슈퍼블록은 파일 시스템의 매우 "고수준" 메타데이터 구조입니다. 예를 들어, 파티션의 슈퍼 블록 /var이 손상된 경우 운영 체제는 문제가 있는 파일 시스템(/var)을 마운트할 수 없습니다. 일반적으로 이 경우 fsck
슈퍼블록의 대체 백업 복사본을 자동으로 선택하고 파일 시스템 복원을 시도하는 이를 실행해야 합니다 . 백업 복사본 자체는 파일 시스템 전체에 분산된 블록 그룹에 저장되며, 첫 번째 복사본은 파티션 시작 부분에서 1블록 오프셋에 저장됩니다. 이는 수동 복구가 필요한 경우 중요합니다. 다음 명령을 사용하면 ext2/ext3/ext4 슈퍼블록 백업에 대한 정보를 볼 수 있으며, dumpe2fs /dev/foo | grep -i superblock
이는 수동으로 복원을 시도할 때 유용합니다. dumpe2fs 명령이 다음 줄을 출력한다고 가정해 보겠습니다 Backup superblock at 163840, Group descriptors at 163841-163841
. 이 정보와 파일 시스템 구조에 대한 기타 지식을 사용하여 이 슈퍼블록 백업을 사용해 볼 수 있습니다 /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo
. 이 예에서는 블록 크기를 1024바이트로 가정합니다.
하나인덱스 노드파일 시스템에 있거나 파일 시스템에 존재하며 파일에 대한 메타데이터를 나타냅니다. 명확하게 말하면 Linux 또는 UNIX 시스템의 모든 개체는 실제 파일, 디렉터리, 장치 등입니다. inode에 포함된 메타데이터에는 사람이 인식할 수 있는 파일 이름이 없으며 이는 나중에 중요해질 것입니다. Inode에는 본질적으로 소유권(사용자, 그룹), 액세스 모드(읽기, 쓰기, 실행 권한), 파일 유형 및 파일 내용이 포함된 데이터 블록에 대한 정보가 포함되어 있습니다.
ㅏ디렉토리 항목inode 번호를 파일 이름과 연결하여 inode와 파일을 함께 고정하는 접착제입니다. 디렉토리 항목은 또한 디렉토리 캐시에서 역할을 하며, 더 빠른 액세스를 위해 가장 자주 사용되는 파일을 이상적으로 보존합니다. 파일 시스템 순회는 디렉터리와 해당 파일 간의 관계를 유지하므로 dentry의 또 다른 측면입니다.
ㅏ문서, 인간이 단어를 볼 때 일반적으로 생각하는 것 외에도 실제로는 논리적으로 관련된 임의의 데이터 덩어리입니다. 위의 추적을 위해 수행된 모든 작업을 고려하면 상대적으로 지루합니다.
나는 몇 문장만으로는 이러한 개념에 대한 완전한 설명을 제공할 수 없다는 것을 잘 알고 있으므로 필요한 경우 더 자세한 내용을 문의하시기 바랍니다.
답변2
문서
파일은 특정 순서로 배열된 바이트 묶음일 뿐입니다. 이것이 일반 사람들이 파일의 내용이라고 부르는 것입니다. Linux는 파일을 열 때 파일이 저장된 위치와 해당 파일을 사용하는 프로세스에 대한 데이터를 보유하는 파일 개체도 생성합니다. 파일이 닫히면 파일 객체(파일 데이터 자체는 아님)가 삭제됩니다.
인덱스 노드
inode("인덱스 노드"의 약자)는 Linux에 저장된 파일의 속성 집합입니다. 모든 파일에는 inode가 있습니다(일부 파일 시스템의 경우 정보가 파일 시스템 전체에 분산되기 때문에 Linux는 자체 inode를 생성해야 함). inode는 파일 소유자, 파일 크기, 파일을 열 수 있는 사람과 같은 정보를 저장합니다. 각 inode에는 파일 시스템 파티션에 고유한 번호도 포함되어 있습니다. 이는 inode가 설명하는 파일의 일련 번호와 같습니다.
덴트리
dentry("디렉터리 항목"의 약자)는 Linux 커널이 디렉터리의 파일 계층 구조를 추적하는 데 사용하는 것입니다. 각 디렉토리 항목은 inode 번호를 파일 이름 및 상위 디렉토리에 매핑합니다.
슈퍼블록
슈퍼블록은 파일 시스템의 고유한 데이터 구조입니다(손상을 방지하기 위해 여러 복사본이 존재하지만). 수퍼블록은 어떤 inode가 최상위 디렉터리인지, 사용 중인 파일 시스템 유형 등 파일 시스템에 대한 메타데이터를 보유합니다.
답변3
슈퍼 블록, 인덱스 노드(또는인덱스 노드), 디렉토리 항목(또는디렉토리 항목) 마침내,문서개체는 다음의 일부입니다.VFS(가상 파일 시스템) 또는 가상 파일 시스템 스위치. VFS의 목적은 클라이언트 응용 프로그램이 균일한 방식으로 다양한 유형의 구체적인 파일 시스템에 액세스할 수 있도록 하는 것입니다.
VFS의 주요 객체 간의 관계
하나인덱스 노드Unix/Linux 파일 시스템의 데이터 구조입니다. Inode는 일반 파일, 디렉터리 또는 기타 파일 시스템 개체에 대한 메타데이터를 저장합니다. Inode는 파일과 데이터 간의 인터페이스 역할을 합니다. inode는 파일이나 디렉터리를 참조하거나 다른 객체에 대한 심볼릭 링크를 참조할 수 있습니다. 여기에는 고유 번호(i-번호), 파일 속성(날짜, 크기, 읽기/쓰기 권한 포함) 및 파일 위치에 대한 포인터(파일 이름 및 파일 데이터 아님)가 포함됩니다. 이는 DOS/Windows 세계의 FAT 테이블에 해당합니다.
프로그램, 서비스, 텍스트, 이미지 등은문서. 입력 및 출력 장치, 그리고 일반적으로 모든 장치가 고려됩니다.문서, 시스템에 따라.
이것슈퍼 블록파일 시스템에 대한 상위 수준 메타데이터의 컨테이너입니다. 슈퍼블록은 디스크(실제로는 중복성을 위해 디스크의 여러 위치)와 메모리에 존재하는 구조입니다. 이는 파일 시스템의 관리 매개변수(예: 총 블록 수, 여유 블록, 루트 inode)를 정의하므로 디스크 파일 시스템 작업을 위한 기반을 제공합니다.
Dentry는 파일과 Inode 사이의 인터페이스입니다. 디렉토리 항목은 또한 디렉토리 캐시에서 역할을 하며, 더 빠른 액세스를 위해 가장 자주 사용되는 파일을 이상적으로 보존합니다.
답변4
이 용어는 Linux에만 국한된 것이 아니라 파일 시스템에만 적용됩니다. 현재 Unix 및 Unix 계열 시스템에서 사용되는 대부분의 파일 시스템은 슈퍼블록 및 inode 관용구를 정의한 원래 Unix 파일 시스템에서 파생되거나 영감을 받았습니다. Linux는 또한 슈퍼블록 및/또는 inode 개념 없이 여러 파일 시스템을 마운트할 수 있으며, 가장 일반적인 것은 FAT입니다. 다른 하나는 슈퍼블록을 사용하지 않는 ZFS입니다.