linux file system

system/linux 2010. 1. 31. 03:51

리눅스 파일시스템의 종류

 

 

1. EXT (EXT1)

리눅스 운영 체제를 목표로 만들어진 첫 번째 파일 시스템으로 Extended File System을 줄여 EXTFS또는 EXT로 부른다.

EXT는 R'emy Card가 MFS(MINIX File System)의 한계를 위해 만들었으며, 1992년 4월에 구현되어 Linux 0.96c에 추가 되었다.

 

MFS는 파일 시스템의 최대 크기가 64MB였지만, EXT에서는 2GB로 늘어났으며,

파일 이름 최대 길이도 MFS는 14byte 또는 30byte였지만 EXT는 255byte까지 지원한다.

 

분리접근,아이노드(inode)수정, 자료 수정 타임스탬프 등의 기능을 지원하지 않으며, 프리 블록과 아이노드의 트랙을 다루기 위해

연결 리스트를 사용했기 때문에 사용하면 할수록 리스트가 뒤죽박죽이 되고 파일 시스템이 조각화된다는 단점이 있었다.

 

 

 

2. EXT2

EXT2는 R'emy Card가 1993년 1월에 알파 버전을 공개한 파일 시스템이다.

정식 이름은 Second Extended File System 이며 EXT의 문제를 해결하기 위해 나왔다.

 

EXT파일 시스템 코드를 바탕으로 하여 많은 재구성과 개선이 있었으며 나중에 있을 개선도 고려해 만들어져 점점 많이 쓰게 되면서

버그도 고쳐지고 계속해서 새로운 기능이 추가되어, 현재의 아주 안정적인 파일 시스템이 되었다.

 

- 255자 까지의 긴 파일 이름을 지원

- 세 타임 스탬프를 지원

- 확장이 쉬움

- EXT에 있었던 여러 단점들 (분리 접근, 아이노드 수정 미지원등) 개선

 

파일 시스템의 최대 크기는 블록 사이즈에 따라 2TiB ~ 32 TiB이며, 서브 디렉토리 개수 제한은 32768개 이다.


 

 

 

3. EXT3

EXT3는 Stephan Tweedie가 개발하여 2001년 11월에 Linux 2.4.15에 추가 되었다.

EXT2에 저널링, 온라인 파일 시스템 증대, 큰 디렉토리를 위한  HTree 인덱싱 등의 기능이 추가 되었다.

EXT2 파일 시스템을 바탕으로 만들어 졌기 때문에, EXT2 파일 시스템을 자료 손실 없이 EXT3 파일 시스템으로 바꿀수 있다.

 

EXT3의 저널링은 주 파일 시스템을 수정하기 전에 저널에 수정 사항을 먼저 기록해 놓는다.

이렇게 함으로써, 전원이 갑자기 나가거나 시스템 충돌이 일어났을 때 데이터 손실 가능성을 줄일 수 있다.

 

EXT2 파일 시스템과의 호환을 목표로 설계 되어 구조가 EXT2파일 시스템과 비슷하기 때문에

아이노드의 동적 할당, 다양한 블록 크기등과 같은 기능이 부족하며 Extends 기능도 지원하지 않는다.

 

또 다른 단점은 온라인 조각모음 프로그램이 없다는 것이다.

오프라인 조각모음 프로그램이 있기는 하지만, 이를 사용하기 위해서는 EXT2 파일 시스템으로 변환 시켜야 하며,

EXT3에서 EXT2로 변환 후 조각모음을 하면 조각모음 프로그램이 EXT3의 새로 추가한 기능을 인식하지 못해 자료가 손상될수 있다.

EXT3는 조각모음이 필요없다는 주장이 있는데, FAT 시스템보다는 덜 조각화 되기는 하지만 계속된 사용으로 인해 EXT3도 조각화 될 수 있다. 이는 EXT4에서 다시 조각모음 프로그램이 만들어지는 계기가 된다.

 

EXT3 파일 시스템은 또한 저널링을 할 때 체크섬을 검사하지 않는다.

한디렉터리당 서브 디렉터리 개수제한은 31998개 이다.

 


 

4. EXT4

EXT4는 EXT3를 바탕으로 하여 Mingming Cao, Andreas Dilger, Alex Tomas, Dave Kleikamp, Theodore Ts'o, Eric Sandeen과

그외 여러 사람들에 의해  개발 되었다.

 

2006년 8월 10일 리눅스 2.6.19에서 Unstable 버전이 공개되었으며, 2008년 8월 21일에 stable 버전이 공개 되었다.

 

- 1 EB까지의 볼륨과 16TB까지의 파일을 지원 (대형파일 시스템)

- EXT2, EXT3의 Block Mapping방식 대신 Extends방식을 새로 사용 (큰 파일 처리를 개선하고 조각화 현상을 줄임)

- EXT2, EXT3를 EXT4 방식으로 마운트하여 성능이 향상된 상태로 사용할 수 있으며, ext4는 ext3 방식으로 마운트 될 수 있다.

  그러나 Extends를 사용하는 EXT4파티션은 EXT3방식으로 마운트 될 수 없다.

- EXT3 파일 시스템에 없었던 저널 체크섬 기능이 추가됨으로써, 파일 시스템 손상 가능성이 더 줄어들었다.

- 서브 디렉터리 개수 제한이 32000개에서 64000개로 증가

- EXT3에서 지원하지 않았던 온라인 조각모음을 지원할 수 있습니다.

- 디스크 검사를 할 때 사용하지 않는 부분은 건너뜀으로써 빠른 시스템 검사 지원

- 타임스탬프가 초 단위가 아닌 나노초 단위로 재어지며, ext2, ext3에서는 1901년 12월 14일 ~ 2038년 1월 18일을 지원했지만

  ext4에서는 1901년 12월 14일 ~ 2514년 4월 25일을 지원한다.

- 디스크 공간을 프로그램이 실제로 사용하기 전에 할당해야 한다면 대부분의 파일 시스템은 아직 사용하지 않은 공간에 기록함으로써

  선행 할당을 하지만, ext4는 이렇게 하지 않고도 선행 할당을 할 수 있다. (영속적 선행할당)

- 디스크 공간 할당을 마지막까지 지연하므로 성능이 향상됨

- 그외 Multiblock allocator, 파일 복구 기능 추후 구현 가능성 등

 


'system > linux' 카테고리의 다른 글

리눅스보안 - 필수 보안  (0) 2010.07.21
리눅스 기본 명령어  (0) 2010.06.29
rz // sz  (0) 2010.06.29
리눅스 명령어 총집합  (0) 2010.01.27
Linux 파일의 종류-  (0) 2010.01.06
: