ext란?
리눅스 계열 OS에서 사용하는 파일 포맷이다.
ext(ext1)
- 리눅스 운영체제를 목표로 만들어진 첫 번째 파일 시스템
- Extended File System을 줄여 extfs 또는 ext로 쓴다.
- MFS(MINIX File System)의 한계를 극복하기 위해 만들어졌다.
- MFC의 파일 시스템 최대 크기는 64MB -> ext의 파일 시스템 최대 크기는 2GB
- MFC의 파일 이름 최대 길이는 14byte -> ext의 파일 이름 최대 길이는 255byte
- 사용하면 할수록 파일 시스템이 조각화된다는 단점이 존재
ext2
- ext의 문제 해결을 위해 나온 파일 시스템
- 점점 많이 쓰이게 되면서, 현재 아주 안정한 파일 시스템이 되었음
- 255자까지의 긴 파일 이름을 지원
- 파일시스템의 최대 크기는 블록 사이즈에 따라 2TiB ~ 32 TiB이다
- 서브 디렉토리 개수 제한은 32768개이다.
Block 크기 |
파일 크기 제한 |
파일 시스템 크기 제한 |
1KiB |
16648 MiB(약 16 GiB) |
2048 GiB (2TiB) |
2KiB |
256 GiB |
8192 GiB (8TiB) |
4KiB |
2048 GiB(2 TiB) |
16384 GiB (16 TiB) |
8KiB |
65568 GiB (약 64 TiB) |
32768 GiB (32 TiB) |
ext3
- 2001년 11월에 Linux 2.4.15에 추가되었다.
- ext2에 있던 기능에 추가적으로 저널링, 온라인 파일 시스템 증대, 큰 디렉토리를 위한 HTree 인덱싱 등의 기능이 추가되었다.
- ext2 기반으로 만들었으므로, ext2 파일 시스템을 자료 손실 없이 ext3 파일 시스템으로 바꿀 수 있다.
- 저널링? 주 파일 시스템을 수정 전에 저널에 수정 사항을 먼저 기록해 놓음으로써, 전원이 갑자기 나가거나 시스템 충돌이 났을 때 데이터 손실 가능성을 줄일 수 있게 해준다.
- 아이노드 동적 할당, 다양한 블록 크기 지원등의 기능이 부족하다
- extends 기능도 지원하지 않는다.
- 온라인 조각모음 프로그램이 없다.
- 오프라인 조각모음 프로그램이 있으나, 이를 사용하기 위해선 ext2 파일 시스템으로 변환시켜야 하며, ext3의 새로 추가된 기능을 인식하지 못해 자료가 손상될 수 있다.
- 저널링을 할 때 체크섬을 검사하지 않는다.
- 한 디렉토리 당 서브 디렉토리 개수 제한은 31998개이다.
Block 크기 |
파일 크기 제한 |
파일 시스템 크기 제한 |
1KiB |
16 GiB |
< 2TiB |
2KiB |
256 GiB |
< 4TiB |
4KiB |
2 TiB |
< 8 TiB |
8KiB |
2 TiB |
< 32 TiB |
ext4
리눅스 2.6.19에서 공개됨. 특징은 아래와 같다.
- 큰 파일 시스템 : 1EB까지의 볼륨과 16 TB까지의 파일을 지원
- Extents : ext2, ext3의 block mapping 방식 대신 extends 방식을 새로 사용. 이는 큰 파일 처리를 개선하고 조각화 현상을 줄여준다.
- 호환성 : ext2,ext3를 ext4 방식으로 마운트하여 성능이 향상된 상태로 사용할 수 있다. 반대로 ext4는 ext3 방식으로 마운트될 수 있다. 하지만 extends를 사용하는 ext4 파티션은 ext3 방식으로 마운트 될 수 없다.
- 저널 체크섬 : ext3 파일 시스템에 없었던 저널 체크섬 기능이 추가됨으로서, 파일 시스템 손상 가능성이 더 줄었다.
- 32000개 서브 디렉토리 제한이 깨짐 : 서브 디렉토리 개수 제한이 32000개에서 64000개로 늘어남
- 온라인 조각모음 : ext4는 ext3에서 지원하지 않았던 온라인 조각모음을 지원한다.
- 빠른 파일 시스템 검사 : ext4는 디스크 검사를 할 때 사용하지 않는 부분은 건너뜀으로써 시스템 검사를 빨리 할 수 있다.
- 파일스탬프 향상 : 타임스탬프가 초 단위가 아닌 나노초 단위로 재어진다.
- 영속적 선행 할당 : 디스크 공간을 프로그램이 실제로 사용하기 전에 할당해야 한다면 대부분의 파일 시스템은 아직 사용하지 않은 공간에 0을 기록함으로써 선행 할당을 하나, ext4는 이렇게 하지 않고도 선행 할당을 할 수 있다.
- 지연 할당 : ext4는 디스크 공간 할당을 마지막까지 지연하므로 성능이 향상된다.
-
그 외 : Multiblock allocator, 파일 복구 기능 추후 구현 가능성 등
여기아래부터