티스토리 뷰

728x90


 
 
파일 시스템 : 운영체제의 주요한 기능 중 하나로, 리눅스 커널에 존재하며 파일과 디렉터리의 집합을 구조적으로 관리하는 체계. 어떤 구조를 구성하여 파일과 디렉터리를 관리하느냐에 따라 다양한 형식의 파일 시스템이 존재.
 
 
리눅스 고유의 디스크 기반 파일 시스템
- ext(ext1) : 파일 시스템의 최대 크기 2GB, 파일 이름 길이 256B. inode의 수정과 데이터 수정 시간의 지원이 안되며, 파일 시스템이 복잡. 현재 리눅스에서는 사용하지 않음.
- ext2 : 파일 시스템의 최대 크기 32TB, ext3이 도입되지 전까지 리눅스의 표준 파일 시스템으로 사용되었음.
- ext3 : ext2와 호환 가능. 데이터의 복구 기능을 강화한 저널링 기능 도입. 파일 시스템의 최대 크기 2~32TB.
- ext4 : 1EB 이상의 볼륨과 16TB 이상의 파일을 지원. ext2와 ext3와 호환성 유지.
- XFS : 고성능 저널링 파일 시스템. 64bit의 파일 시스템으로 최대 16EB까지 지원.
 

 
 
현재 시스템이 지원하는 파일 시스템 확인하기:
/proc/filesystems 파일은 현재 커널이 지원하는 파일 시스템의 종류를 알려줌.
 
 
리눅스 파일 시스템의 기본 개념:
- 파일은 inode로 관리됨.
- 디렉터리는 단순히 파일의 목록을 가지고 있는 파일.
- 특수 파일(블록장치 파일, 문자장치 파일, 소켓 파일)을 통해 장치에 접근할 수 있음.
 
 
ext4 파일 시스템의 구조

효율적으로 디스크를 사용하기 위해 블록 집합(블록 그룹)으로 구분.
일반적으로 블록은 4KB이고 시스템의 설정에 따라 변경 가능.
 
블록 그룹 0 : 그룹 0 패딩과 슈퍼블록, 그룹 디스크립터를 가짐.
블록 그룹 a : 그룹 0 패딩이 없으나 슈퍼블록과 그룹 디스크립터에 대한 복사본을 가짐.
블록 그룹 b : 그룹 0 패딩, 슈퍼블록, 그룹 디스크립터가 없고 데이터 블록 비트맵으로 시작.
 
* 그룹 0 패딩 : 블록 그룹0의 첫 1,024B는 x86 부트 섹터와 부가 정보를 저장.
* 슈퍼블록 : 전체 inode 개수, 전체 블록 개수, 할당되지 않은 블록 개수, 할당되지 않은 inode 개수, 첫 번째 데이터 블록의 주소, 블록의 크기, 그룹당 블록의 개수, 마운트 시간, 파일 시스템의 생태, 그룹 디스크립터의 크기 등을 저장. 슈퍼블록에 문제가 생기면 전체 파일 시스템을 사용할 수 없게 되므로 다른 블록에 복사본을 저장.
* 그룹 디스크립터와 GDT 예약 블록 : 슈퍼블록의 다음에 위치. 블록 비트맵 주소, inode 비트맵 주소, inode 테이블 주소, 할당되지 않은 블록 개수, 할당되지 않은 inode 개수, 디렉터리 개수, 블록 비트맵, inode 비트맵 체크섬 등을 저장.
* 데이터 블록 비트맵 블록: 데이터 블록의 사용 여부를 비트 단위로 표시
* inode 비트맵 블록: inode 블록의 사용 여부를 비트 단위로 표시
* inode 테이블 블록 : 파일 관리에 필요한 정보를 저장. 파일 종류, 수정 시간, 파일 접근 권한, 링크 수, 파일 크기, 파일의 데이터가 저장된 데이터 블록 주소, 파일 소유자, 소유자 그룹 등을 저장. 파일마다 고유의 inode를 가지고 있으며 inode 번호로 구분.
* 데이터 블록 : 실제 데이터를 저장하기 위한 블록으로, 일반 파일의 데이터 블록에 파일 내용을 저장. 디렉터리 파일의 데이터 블록에는 파일이나 서브 디렉터리의 정보(파일명, inode 번호)를 저장하고, 기본적으로 현재 디렉터리(.)부모 디렉터리(..)가 존재.
 
 
inode의 구조

크게 파일 정보를 저장하는 부분(ls -l 명령으로 확인할 수 있는 정보)과 데이터 블록의 주소를 저장하는 부분(직접 블록, 간접 블록, 이중 간접 블록)으로 나누어짐. 직접 블록은 데이터 블록에 대한 주소를 직접 가지고 있고, 간접 블록과 이중 간접 블록에는 데이터 블록에 대한 주소를 가지고 있는 블록에 대한 주소를 가지고 있음.
 
 
파일 시스템과 디렉터리 계층 구조
- 한 파일 시스템으로 구성

/ 디렉터리에 하나의 파일 시스템을 연결.
 
- 여러 파일 시스템으로 구성

/ 디렉터리에 파일 시스템-1을, usr 디렉터리에 파일 시스템-2를, home 디렉터리에 파일 시스템-3을 연결. (마운트)
일부 파일 시스템에 문제가 생기더라도 다른 파일 시스템의 파일은 안전함. 윈도에서 C: D:로 파티션을 나누는 것과 유사.

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함