Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

WBOY
풀어 주다: 2023-12-31 22:18:29
앞으로
978명이 탐색했습니다.

외부

전체 이름은 Linux 확장 파일 시스템인 extfs입니다. Ext2는 2세대 파일 확장 시스템인 Ext3/Ext4 등을 의미하지만 모두 Ext2의 업그레이드 버전이지만 로그 기능이 추가되어 있습니다. 상호 이익이 되므로 Ext2를 인덱스 파일 시스템이라고 하고 Ext3/Ext4를 저널 파일 시스템이라고 합니다.

참고: Linux는 NFS(네트워크 파일 시스템) 및 Windows의 Fat 파일 시스템을 포함한 다양한 파일 시스템을 지원합니다.

Linux에서 지원하는 파일 시스템 확인: ls -l /lib/modules/$(uname -r)/kernel/fs

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

Linux에서 지원하는 파일 시스템 보기(메모리에 로드됨): cat /proc/filesystems

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

핵심 디자인

데이터 영역

이러한 요소는 비교적 안정적이며 디스크를 포맷한 후에 수정됩니다.

1. 아이노드(인덱스 노드)
파일 권한, 속성 및 데이터가 있는 블록 번호를 기록합니다. 각 파일에는 단 하나의 inode가 있습니다. 각 inode는 자체 번호를 갖습니다.

2. 블록(데이터 블록)
저장된 파일 내용은 데이터 블록이라고도 합니다. 각 블록에는 고유한 번호가 있습니다. Ext2에서 지원하는 단위 블록 용량은 1k, 2k, 4k뿐입니다.

참고: inode 기록을 용이하게 하기 위해 디스크 포맷 후 블록 크기가 고정되었습니다. 각 블록은 하나의 파일 데이터만 저장할 수 있으며, 파일이 너무 크면 여러 블록을 차지하게 되고, 파일이 너무 작으면 블록의 나머지 공간을 사용할 수 없어 디스크 공간이 낭비됩니다. 따라서 디스크를 파티션한 후 파일 시스템을 포맷하기 전에 파일 시스템의 예상 용도에 대해 신중하게 생각해 보십시오.

메타데이터

이러한 요소는 파일 시스템 상태를 유지하도록 설계되었으며 주로 파일 시스템의 동적 구성 정보를 나타내며 설명 정보입니다.

1. 슈퍼블록

파일 시스템의 전체 용량, 사용량, 남은 용량, 아이노드/블록 크기, 파일 시스템의 형식 및 관련 정보 등 파일 시스템(파일 시스템)의 전반적인 정보를 기록합니다.

주의 사항: 전체 파일 시스템의 모든 기본 정보는 슈퍼 블록에 기록됩니다. 크기는 일반적으로 1024Bytes이므로 복구하는 데 많은 시간이 걸립니다. ! !

2. 블록 그룹

디스크 용량이 수백 G에 도달하면 포맷할 때 inode와 블록이 매우 커질 것입니다. Ext 파일 시스템은 포맷할 때 블록 그룹 개념을 도입합니다. 독립적인 inode/블록/수퍼블록을 유지하고 고정된 수의 블록을 가지며 기본 하위 파일 시스템 그룹으로 나뉩니다.

주의 사항: 슈퍼 블록은 파일 시스템에 너무 중요하지만 파일 시스템에는 슈퍼 블록이 하나만 있으므로 슈퍼 블록을 포함하는 첫 번째 블록 그룹 외에도 후속 블록 그룹에 백업 슈퍼 블록이 포함될 수 있습니다. 슈퍼블록의 실패 지점.

3. 블록 비트맵(블록 비교 테이블)

블록은 하나의 파일에서만 사용할 수 있습니다. 새 파일을 추가할 때 파일 데이터를 기록하려면 반드시 새 블록을 사용해야 합니다. 그렇다면 어떤 블록이 새로운 블록인지 빠르게 확인하는 방법은 무엇입니까? 이미 사용된 블록은 무엇입니까? 블록 비트맵은 사용된 블록 번호와 사용되지 않은 블록 번호를 모두 기록하도록 설계되었습니다. 마찬가지로, 파일을 삭제할 때 먼저 블록 비트맵에서 해당 블록 번호를 찾은 다음 플래그를 사용되지 않음으로 업데이트하고 마지막으로 블록을 해제합니다.

inode 비트맵(inode 비교표)

사용된 inode 번호와 사용되지 않은 inode 번호를 기록한다는 점을 제외하면 블록 비트맵과 동일한 설계 개념이므로 여기서는 설명하지 않습니다.

그룹 설명자

각 섹션(블록 그룹)의 시작과 끝 부분에 블록 번호를 설명하고, 각 섹션(inodemap, 블록맵, inode 테이블) 사이의 블록 번호를 설명하세요.

현재 시스템에서 포맷된 모든 장치 목록: blkid

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

포맷된 장치를 선택하고 파일 시스템 세부 정보를 확인하세요. dumpe2fs /dev/vda1

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해

참고: 위의 Magic 서명은 0xEF53이며, 이는 디스크 파티션이 ext2 및 ext3 파일 시스템임을 나타냅니다. 파일 시작 부분의 매직과 유사하게 파일 형식을 결정할 수 있습니다.

요약

Ext 제품군은 Linux에서 가장 널리 지원되는 완전한 파일 시스템입니다. 디스크를 포맷한 후 모든 inode/블록/메타데이터 및 기타 데이터가 추가 수정 없이 시스템을 직접 사용할 수 있도록 계획되었습니다. 구성은 최고의 기능이기도 하지만 가장 중요한 단점이기도 합니다. 디스크 용량이 클수록 포맷 속도가 느려집니다. xfs를 기본 파일 시스템으로 선택했습니다.

위 내용은 Linux의 표준 파일 시스템(Ext2/Ext3/Ext4)에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿