메뉴 닫기

파일 시스템

♦ 파일시스템의 정의

파일 시스템이란 통상 하드 디스크나 CD-ROM같은 실제 자료 보관 장치를 사용하여 파일의 물리적 소재를 관리하는 것이라고 말 할 수 있습니다.

네트워크 프로토콜을 수행하는 클라이언트를 통하여 파일서버상의 자료로의 접근을 제공하는 방식과 가상의 형태로써 접근 수단만이

존재하는 방식도 파일시스템의 범위에 포함될 수 있습니다.(디렉토리 서비스나 레지스트리와는 의미가 약간 다름)

파일시스템


 

♦ 확장 파일 시스템(Extended file system)

  • ext

리눅스 초기에 사용되던 파일 시스템이며 호환성이 없다.(ext2의 원형)

  • ext2

ext3가 개발되기 전까지 가장 많이 사용된 파일시스템으로 리눅스 파일시스템 대부분의 기능을 제공하는 파일 시스템이다.

특히 ext2는 뛰어난 안정성과 속도의 파일시스템으로 자리잡았다.(Block mapping방식)

  • ext3

ext2 파일시스템에 저널링(Journaling)을 지원하도록 확장된 파일시스템이다. 현재 리눅스에 가장 많이 사용되고 있다.(Block mapping방식)

ext4

ext3파일시스템을 확장한 파일시스템으로 extent라는 기능을 제공하여, 파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당 할 수 있도록하여, 파일의 접근속도 향상 및 단편화를 줄이도록 설계된 파일시스템. (extends방식)


♦ ext2 파일시스템의 구조

ext2 파일시스템은 비교적 속도가 빠르고 UFS(Unix File System)을 기반으로 필요한 기능을 추려서, 보다 단순하게 만들어졌다.

아래는 ext2 파일시스템의 레이아웃이다.

Ext2_파일시스템의_레이아웃

ext2 파일시스템은 부트섹터와 여러 개의 블록그룹으로 구성. (블록이란 파일시스템에서 데이터를 저장하는 단위이며, 메모리에서 I/O작업을 한 번 거칠 때 읽거나 쓰는 단위)

파일시스템을 생성할 때 블록크기 지정 가능

블록그룹레이아웃

각 블록그룹에는 파일시스템을 구성하는 정보들이 담겨져 있다. 가장 마지막의 블록그룹을 제외하고는 모든 블록 그룹들이 같은 블록의 개수를 가지며, 여기에 파일이름, metadata, 파일데이터가 기록된다.

  • 블록그룹(Block Group)

EXT2_1

 블록그룹은 블록들의 모임이며, OS커널이 같은 파일에 속하는 데이터 블록은 같은 블록 그룹에 저장하려고 노력하기 때문에 파일의 단편화를 줄일 수 있다.

파일 시스템의 전체적인 정보는 슈퍼 블록과 그룹 디스크립터 테이블에 저장된다.

슈퍼 블록과 그룹 디스크립터 테이블은 0번 블록 그룹의 정보만을 사용하지만 주요 데이터이기 때문에 손상될 경우를 대비하여 모든 블록 그룹에 사본이 저장되어 있다.


♦ ext3 파일시스템의 구조

기존 ext2는 Cache에 저장되어 있는 데이터들을 디스크로 저장하는 도중 만약 시스템이 다운되거나 여러 가지 문제가 발생할 경우 파일 시스템이 손상되는 단점을 가지고 있었다. 이를 위해 ext2는 fsck(file system check)라는 파일 시스템 복구 기능을 제공한다. 하지만 이 복구 방법은 복구하는데 시간이 많이 소요된다. 또한 fsck 동안에는 시스템을 사용할 수 없다. ext3 파일시스템은 이러한 단점을 보완하기 위하여 저널링이라는 기능을 추가해서 소개된 파일 시스템이다. 따라서 기본적인 ext2와 동일하고 ext2 파일 시스템과 호환된다. 특히 ext3 파일 시스템에서 주목할 만한 것은 바로 Journaling 이라는 기술이다.

ext3의 경우에는 온라인 조각모음 프로그램이 존재하지않으며, 오프라인으로 진행을 해야하는데 이를 위해선 ext2로 전환을 시켜준 후 해야하는 것이 ext3의 단점이라고 할 수 있다.

또한 ext2로 전환 후 조각모음을 진행 하더라도 ext3에서 추가된 기능들을 인식하지 못해 자료가 손상 될 수 있다.

저널링 진행 시 체크섬을 실시하지 않으며, 서브디렉토리의 갯수 제한은 32000개로 제한되고 있다.

[toggle title=”저널링이란?”]저널링 파일 시스템이란 백업 및 복구 능력이 있는 파일시스템을 말한다 디스크에있는 인덱스가 갱신되기 전에 관련 내용이 로그에 기록되기 때문에 서버의 다운으로 인덱스에 이상이 생기더라도 재 부팅시 운영체제가 로그를 보고 인덱스의 재작성 및 복구가 가능하며 fsck보다 빠르고 안정적인 복구기능을 제공하는 기술.[/toggle]


 ♦ ext4 파일시스템의 구조

ext4는 Mingming Cao, Andreas Dilger, Alex Tomas, Dave Kleikamp, Theodore Ts’o, Eric Sandeen, Sam Naghshineh와 그 외 여러 사람에 의해 ext3를 바탕으로 하여 개발되었습니다. 2006년 8월 10일 리눅스 2.6.19에서 Unstable 버전이 공개되었으며, 2008년 8월 21일에 Stable 버전이 공개되었습니다.

16TB까지 지원이 가능하며 추가적으로 옵션을 주게 된다면 16TB ~ 이상의 용량까지 지원이 가능하다.

extends 방식의사용으로 큰 파일 처리를 개선하고 조각화 현상을 줄여주며,

ext2, ext3 파일시스템을 ext4방식으로 마운트하여 사용할 수 있다.

ext3에서는 없었던 저널링 체크섬이 추가 됨으로써 파일시스템의 손상율이 줄어 듦, 또한 서브디렉토리의 갯 수 제한이 64000개로 늘어남.

ext3에서는 지원하지 않았던 온라인조각모음또한 지원이 가능하며, ext4의 경우에 디스크 검사를 진행할 시 사용하지 않는 부분은 건너뜀으로써 시스템 검사 진행 속도가 빨라짐.

영속적인 선행 할당이 가능하다 이는 디스크공간을 프로그램이 사용하기 전에 파일시스템은 사용하지 않은 공간에 0을 기록함으로써 선행 할당을 진행하지만 ext4는 이렇게 하지 않고도 선행 할당이 가능하다.

ext4의 경우 디스크공간 할당을 마지막까지 지연하므로 성능이 향상 됩니다. 

 

[polldaddy rating=”7739789″]

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x