본문 바로가기

나름컴공이라공/Linux Kernel

Linux Kernal Internal > Ch5 파일시스템과 가상 파일시스템(3)

☆★☆2016.01.14 작성☆★☆
☆★☆참고책 _리눅스 커널 내부구조(저자_백승재, 최종무)☆★☆

 

5. Ext2 파일시스템

 

 

ex) inode 2를 가진 '/' 디렉터리를 보면, i_mode 필드에서 이 파일이 디렉터리라는 것과 데이터 블록이 20번이고,

20번 데이터 블록에서는 inod 11인 일반파일 file1.c와 inode 12인 디렉터리 mydir가 있다는 것을 알 수 있다.

 

 

 

 

* 디스크 성능을 높이기 위해 서로 관련된 inode와 디스크 블록들을 인접한 실린더에 유지

-> 디스크 탐색시간을 줄이기 위해 이런 실린더를 블록 그룹으로 정의

- 파티션 : Boot block(부트스트랩 코드 존재), Block Group 0~N

- Block Group : Super Block, Group Descriptor, Datablock Bitmap, Inode Bitmap, Inode Table, Data blocks

(Super Block, Group Descriptor는 중요한 데이터 -> 각 블록 그룹마다 중복해서 기록)

 

-> 실제 파티션에 Ext2 파일시스템을 구축하면,

- inode table과 data blocks 내에 빈 공간을 관리하기 위해 비트맵을 사용(datablock bitmap, inode bitmap)

 

6. Ext3 파일시스템과 Ext4 파일시스템

-> Ext3 파일시스템은 Ext2 파일시스템의 성능 향상을 위한 기능 추가, 기본적으로 호환성을 위해 대부분 자료구조가 Ext2와 같도록 설계

 

* Ext3 파일시스템

- hash 기반 Htree 기술 도입 -> Ext2 : 단순 연결 리스트

- Journaling 기능 지원 : Journal(파일시스템에 데이터를 기록하기 전 데이터를 저널에 기록하고 실제 파일시스템에는 나중에 복사),

Ordered(메타데티어에 한해 저널을 사용, 사용자 데이터는 실제 파일시스템에 기록),

Writeback(ordered과 비슷, 쓰기 순서가 보장되지 x)

- online-resizing : 시스템 가용 시간 향상(LVM을 이용해 파티션의 용량을 동적으로 늘릴 수 있음)

 

* Ext4 파일시스템

- 선 할당 기법(preallocation) : 파일시스템의 일관성, 속도 향상 위해 파일 생성시 미리 일정 블록을 할당(물리적인 연속적 블록 할당)

- 지연 할당 기법(Delayed allocation) : 자유 블록 카운트만 갱신, 실제 할당은 미루는 기법

- extent 기반 블록 유지 : 대용량 파일의 메타데이터를 줄일 수 있음

ex) 500번부터 50개의 블록을 연속 할당시, 500, 501, 502,,,549까지 번호를 각각 지정 -> (500, 50)

- journaling checksum

- 대용량 파일 시스템과 큰 크기 파일 지원

- 온라인 단편화 제거 지원