반응형

유닉스 & 리눅스 파일시스템 종류

유닉스의 파일시스템에서 슈퍼블럭(Superblock)은 디스크의 크기와 같은 파일시스템에 관한 일반적인 정보를 저장하는 곳을 말한다. 이곳의 정확한 정보는 파일시스템에 영향을 미친다.

아이노드(Inode)는 파일 이름을 제외한 파일에 관한 모든 정보를 저장하는 곳을 말한다.


1. EXT2 파일시스템 : 리눅스를 위한 확장성있고 강력한 파일시스템으로 ext의 상위버전으로

파일에 들어 있는 데이터의 데이터 블록에 저장되며 데이터 블록의 크기는 같고 ext2 파일시스템의 크기는 mke2fs 명령을 통하여 파일시스템이 만들어질 때 결정된다.


<ext2 파일시스템의 특징>

* 파일시스템의 모든 정보를 슈퍼블럭과 Group Descriptor Table에 저장한다.


* ext2는 Boot Sector와 Block Group으로 구성되며 Block Group은 파일시스템 손상시 데이터를 복원한다.


* Block은 윈도우 클러스터와 같은 개념으로 1k-4k로 설정이 가능하며 파일시스템 생성시 그 크기를 정할 수 있다.


파일시스템이 효율과 퍼포먼스에 중점을 두고 디자인된 파일시스템으로 예기치 않은 시스템 상의 재난으로부터 FSCK(File System Check)라는 파일시스템 복구 기능을 제공한다.


2. EXT3 파일시스템 : 데이터의 신뢰성이 강화되었고 사용자가 직접 데이터 보호 유형과 수준을 결정할 수 있는 파일시스템을 말한다. 특히 저널링(Journaling) 기술은 데이터를 디스크에 쓰기 전에 로그에 데이터를 남겨 시스템의 비정상적인 셧다운에도 로그를 사용해 FSCK 보다 빠르고 안정적인 복구기능을 제공하는 기술이다.


2. EXT4 파일시스템 : 리눅스의 저널링 파일시스템 중 하나로 ext3 파일시스템의 향상된 버전이다.

<ext4 파일시스템의 특징>

* 대형 파일 시스템 : 최대 1엑사바이트의 볼륨과 최대 16테라바이트의 파일을 지원한다. 현재 e2fsprogs는 16테라바이트의 파일 시스템만 다룰 수 있지만, 보다 큰 드라이브를 지원하기 위한 개발이 진행 중이다.


* Extent : Extent는 ext2와 ext3에 쓰이던 전통적인 블록 매핑(Block mapping) 방식을 대체하기 위한 것이다. Extent는 인접한 물리적 블록의 묶음으로, 대용량 파일 접근 성능을 향상시키고 단편화를 줄인다.


* 하위 호환성 : ext3와 ext2에 대한 하위 호환성이 있어서 ext3와 ext2 파일 시스템을 ext4로 마운트 하는 것이 가능하다. 이는 성능을 조금 향상시킬 수 있는데, ext4의 새 기능 중 새로운 블록 할당 알고리즘 같은 것은 ext3와 ext2에서도 사용될 수 있기 때문이다. ext3는 ext4 파일 시스템을 마운트할 수 있는 ext4에 대한 부분적인 상위 호환성이 있지만 ext4 파티션이 ext4의 중요한 새 특징인 Extents를 사용한다면,  ext3로 마운트는 불가능하다.


* 지연된 할당 : ext는 지연된 할당이라고도 알려진, allocate-on-flush 라는 파일 시스템 성능 기술을 사용한다. 이는 데이터가 디스크에 쓰여지기도 전에 블록을 할당하는 다른 파일 시스템과는 다르게 데이터가 디스크에 쓰여지기 전까지 블록 할당을 지연시킨다.

따라서 실제 파일 크기에 기반하여 블록 할당을 결정함으로 인해 향상된 블록 할당이 가능하게 되어 하나의 파일에 대한 블록이 여러 곳으로 분산되는 현상을 막는다.

이는 다시 디스크 이동을 최소화 시킴으로써 성능을 향상 시킨다.


* 32,000개의 하위 디렉터리 제한 없음 : ext3에서 하위 디렉터리의 수는 32,000개로 제한되어 있다. 이 제한은 ext4에서 64,000개로 늘어났으며 ‘dir_nlink’기능은 이보다 더 큰 개수도 허용한다.


EXT2,3,4 파일시스템의 장단점


구분

EXT2

EXT3

EXT4

장점

* 시스템이 손상될 경우 FSCK 기능을 이용 복구 가능


* 다른 리눅스 파일시스템 대비 비교적 간단 명료함

* 사용자가 직접 데이터 보호 유형과 수준 결정 가능


* EXT2에 비해 빠른 속도의 작업 가능


* 저널링 기능을 사용해 더 빠르고, 안정적인 복구 가능


* 자동 압축 및 안정성


* 향상된 파일 이름 저장 및 길이 지원

* ext3 보다 더욱 큰 용량을 지원


* 대용량 파일 접근 성능을 강화한 Extent 기능 제공


* ext2, ext3 파일시스템에 대한 하위 호환성이 있음


* 하위 디렉터리 수가 64,000개로 증가

단점

* /var 디렉토리와 같이 새로운 자료가 쌓이는 곳에 취약

* Jfs, ext4, XFs와 같이 extents 기능 지원 불가


* Checksum 검사하지 않음

* 지연된 할당과 데이터 유실 가능성




반응형

'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글

칼리리눅스 한글 언어 설정 방법  (0) 2017.07.28
네임서버(DNS) 서버  (0) 2017.07.26
리눅스 스케쥴러 cron  (0) 2017.07.16
리눅스 원격파일 전송 명령어 scp  (0) 2017.07.14
리눅스 TCP Wrapper  (0) 2017.07.14

+ Recent posts