Yoon.s

파일시스템 [1] 종류, 구조, inode, 디렉터리 계층 구조 본문

인프라/linux

파일시스템 [1] 종류, 구조, inode, 디렉터리 계층 구조

yo_onHJ 2020. 7. 14. 14:21

디스크 기반 파일 시스템

  • ext(ext1) : 레미 카드가 개발한 파일 시스템 
    (inode의 수정과 데이터의 수정 시간 지원이 안됨, 링크드 리스트로 파일 시스템을 구성하여 복잡하고 파편화)
  • ext2 : ext 파일 시스템의 문제를 해결하기 위해 레미 카드가 개발, 확장성 고려.
            현재 매우 안정적. 
  • ext3 : ext2를 기반으로 스티븐 트위디가 개발하여 호환이 가능. 
            저널링 기능을 도입. (저널링: 디스크에 기록되는 데이터의 복구 기능 강화)
  • ext4 : 1EB 이상의 볼륨과 16TB 이상의 파일 지원, ext2, ext3와 호환성 유지
  • XFS : 실리콘그래픽스가 개발한 고성능 저널링 파일 시스템 (GNU GPL로 공개)

\파일 시스템 구조 (ext4)

1. 그룹 0 패딩 : 블록 그룹 0의 첫 1024B는 x86 부트 섹터와 부가 정보를 저장하는 특별한 용도로 사용

2. 슈퍼 블록

  • 전체 inode의 개수
  • 할당되지 않은 블록의 개수
  • 첫 번째 데이터 블록의 주소
  • 그룹당 블록의 개수
  • 파일 시스템의 상태
  • 전체 블록의 개수
  • 할당되지 않은 inode의 개수
  • 블록의 크기
  • 마운트 시간
  • 그룹 디스크립터의 크기

3. 그룹 디스크립터 : 슈퍼블록과 함께 다른 블록 그룹에 복사되어, 블록 그룹 0에 문제발생 시 복구하는데 사용

4. GDT 예약 블록 : 그룹 디스크립터의 확장을 위한 예비 공간

5. 데이터 블록 비트맵 : 블록 그룹에 포함된 데이터 블록의 사용 여부를 확인하는데 쓰임(1비트로 표현)

6. inode 비트맵 : inode 테이블의 항목이 사용중인지 표시(1비트로 표현)

7. inode 테이블과 데이터 블록 : 파일 정보를 inode에 저장하고 일반 파일은 데이터 블록에 파일 내용을 저장.

                                                디렉터리는 데이터 블록에 해당 디렉터리에 있는 파일/서브 디렉터리 정보를 저장

 

  

 

inode 구조

inode : 파일의 데이터 블록이 디스크 상의 어느 주소에 위치한지 등 파일의 중요한 정보를 가지고 있는 블록

(* ls -l 명령을 통해 inode의 파일 정보를 확인할 수 있습니다!! )

- 파일 종류, 파일 접근 권한, 파일 크기, 소유자, 소유 그룹, 접근 시간, 수정 시간, 링크 수

 

 

 

파일 시스템과 디렉터리 계층 구조 

1. 모든 디렉터리와 파일은 하나의 파일 시스템으로 구성

 

 

 

 

 

 

  하나의 파일 시스템으로 구성할 때는

  / 디렉터리에 해당 파일 시스템을 연결하면 된다.

 

 

 

 

 

 

2. 여러 파일 시스템으로 구성

 

 

 

 

  파일 시스템1을 / 디렉터리에, 

  파일 시스템2를 /usr 디렉터리에, 

  파일 시스템3을 /home 디렉터리에 연결

 

  일부 파일 시스템에 문제가 생기더라도 다른 파일

  시스템의 파일은 안전함 (파티션 나누는 것과 유사)

 

 ** 몇개로 분할했는지 궁금하면? 

     df -h로 확인하면 됩니다!!

Comments