Ext4 파일 시스템이란 무엇인가요?

what is ext4 file system

네 번째 확장 파일 시스템(Ext4)은 Ext3의 문제를 해결하기 위해 만들어진 리눅스의 기본 파일 시스템입니다. 해당 파일 시스템은 이전 버전과 호환되는 Ext3의 확장으로 처음 출시되었습니다. 나중에 안정성을 위해 제작자는 소스 코드를 분리하기로 결정하고 모든 개발 작업이 그곳에서 완료되었습니다. 구글은 또한 안드로이드 2.3에서 Ext4를 사용하기로 결정했습니다. 이 기사에서는 Ext4의 호환성, 역사, 기능 및 다른 리눅스 파일 시스템과의 비교에 대해 읽을 수 있습니다.

무료 다운로드

윈도우 XP/비스타/7/8/10/11 용

무료 다운로드

맥OS X 10.10 이상 용

1부. Ext4 파일 시스템 호환성

Ext4 파일 시스템은 우분투 및 데비안과 같이 널리 사용되는 리눅스 배포판의 기본 파일 시스템으로 사용되었습니다. 해당 파일 시스템은 공식적으로 윈도우 및 맥OS와 호환되지 않지만, 이 제한을 해결할 수 있는 방법이 있습니다.

윈도우 사용자에게는 여러 가지 선택지가 있습니다. 타사 앱을 사용하거나 WSL 2를 사용하거나 NTFS로 변환할 수 있습니다. 윈도우에서 Ext4를 시작하는 방법 문서의 단계를 확인하세요.

맥 사용자는 이 파일 시스템에 대한 접근 권한을 부여하는 맥FUSE, 가상 머신 호스트 또는 타사 앱과 같은 도구를 사용할 수 있습니다. 다음은 맥OS에서 Ext4 파일을 시작하고 접근하는 방법에 대한 튜토리얼입니다.

2부. EXT 파일 시스템의 역사

ext4 chronology

Minix

Minix는 1987년 Andrew S. Tanenbaum에 의해 그의 책 "운영체제 설계 및 구현"의 교육 도구로 처음 만들어졌습니다. 오늘날, Minix는 6,000줄 미만의 코드로 구성된 텍스트 중심의 OS입니다. MINIX의 가장 유명한 특징 중 하나는 각 장치 드라이버가 독립된 사용자 모드 과정으로 실행되는 마이크로커널의 예입니다. 드라이버의 버그로 인해 전체 시스템이 다운될 수 없기 때문에 이 구조는 보안과 신뢰성을 높여줍니다.

오늘날 MINIX는 일반적으로 GNU/Linux 역사의 각주로 알려져 있습니다. 이 파일 시스템은 Linus Torvalds가 리눅스를 개발하도록 동기를 부여했으며 그의 초기 작업 중 일부는 MINIX에서 작성되었습니다. MINIX 파일 시스템을 지원하기로 한 Torvalds의 초기 결정은 상상할 수 있는 거의 모든 파일 시스템에 대한 리눅스 커널의 지원을 담당합니다.

EXT

최초의 EXT 파일 시스템(확장)은 Rémy Card에 의해 구성되었으며 Minix 파일 시스템의 크기 제한을 극복하기 위해 1992년 리눅스 운영 체제와 함께 출시되었습니다. 즉각적인 구조적 수정은 Berkeley 빠른 파일 시스템(FFS)이라고도 알려진 유닉스 파일 시스템(UFS)을 기반으로 하는 파일 시스템의 메타데이터에 대한 것이었습니다.

이 파일 시스템에는 심각한 문제가 있었고 EXT2 파일 시스템으로 빠르게 대체되었기 때문에 정보가 제한되어 있습니다.

EXT2

Ext2 파일 시스템은 처음에 매우 성공적이었습니다. 고객들은 몇 년 동안 리눅스 배포판에서 Ext2를 사용하며 만족했습니다. EXT2 파일 시스템은 기본적으로 EXT 파일 시스템과 매우 유사한 메타데이터 구조를 가지고 있습니다. 그러나, EXT2는 향후 사용을 위해 메타데이터 구조 사이에 남은 디스크 공간의 양을 고려할 때 더 간단합니다.

파일 시스템 EXT2는 Minix와 유사하게 설치된 하드 드라이브의 첫 번째 섹터에 최소한의 부트 레코드와 파티션 테이블을 갖는 부트 섹터를 포함합니다. 또한, 부트 섹터가 완료된 후에는 일정량의 예약된 디스크 공간이 표시됩니다. 이 예약된 공간은 부트 레코드와 종종 다음 실린더 경계에 있는 첫 번째 HDD 파티션 사이의 공간에 걸쳐 있습니다.

cylinder group structure in ext file systems

EXT3

EXT3 파일 시스템은 파일 업데이트 작업 중에 발생한 부적절한 종료로 인해 손상된 디스크 구조를 fsck 프로그램이 완전히 복구하는 데 필요한 엄청난 시간을 극복하려는 명시적인 목표를 가지고 있었습니다. EXT 파일 시스템에 추가된 단 하나의 기능은 파일 시스템에 수행될 변경 사항을 미리 기록하는 저널링 기능이었습니다.

저널링 기능은 오류 후 하드 드라이브에서 불일치를 확인하는 데 필요한 시간을 며칠에서 최대 몇 분으로 줄여줍니다. 몇 년 동안 사용자 시스템이 충돌된 문제가 많이 보고되었습니다. 세부 정보는 전체 기사를 차지할 정도로 많지만, 많은 문제들은 자가발생적이었고 시스템 장애가 아니었습니다. EXT 파일 시스템의 저널링 기능이 부팅 복구 시간을 단축시켰습니다.

EXT4

EXT4에서는 데이터 할당을 고정된 블록에서 범위(extent)로 변경했습니다. 하드 드라이브의 시작 및 끝 위치는 범위를 설명합니다. 이 기능은 하나의 iNode 포인터 항목에 물리적으로 인접한 긴 파일을 설명함으로써 더 큰 파일의 위치를 정의하는 데 필요한 포인터 수를 크게 줄일 수 있습니다. EXT4는 수많은 초기 PC 파일 시스템처럼 새롭게 생성된 파일을 디스크에 분산시켜 디스크의 한 위치에 몰리지 않도록 하여 단편화를 줄입니다.

파일 할당 알고리즘은 실린더 그룹 사이에서 파일을 가능한 한 고르게 분산시키고, 필요한 경우 불연속적인 파일 범위를 다른 파일에 가능한 가깝게 유지하여 헤드 탐색 및 회전 대기 시간을 최소화하도록 설계되었습니다.

inode in ext4 file system

Ext2-Ext4 파티션에서 데이터를 복구하기 위해, 원더쉐어 리커버릿을 사용할 수 있습니다.

recoverit datat recovery

원더쉐어 리커버릿 - 리눅스에서 소중한 데이터를 복구하세요.

5,481,435 명이 다운로드했습니다.

리커버릿은 비어 있는 불량 섹터의 데이터 손실, 하드 드라이브의 손상, 실수로 인한 영구 삭제 등으로 인한 데이터를 복구할 수 있습니다.

이 소프트웨어는 매우 쉽게 사용할 수 있으며 미리보기 기능도 지원하여 올바른 파일을 복구하는지 확인할 수 있습니다.

1000개 이상의 파일 형식을 복구할 수 있습니다: DOC/DOCX, XLS/XLSX, PDF, JPG, HEIF, HTML, INDD, EPS, MP4, MP3, zip 등.

3부. Ext4의 기능

  • 파일 시스템 크기: Ext4는 최대 1 엑비바이트 크기의 파일 시스템 및 최대 16 테비바이트 크기의 파일을 지원합니다. ext3 파일 시스템은 최대 16 TB의 파일 시스템 크기와 최대 2 TB의 파일 크기만 지원합니다.
  • 범위: 범위라는 개념은 "물리적 블록의 연속"을 의미합니다. 대용량 파일은 여러 개의 "범위"로 나누어집니다. 파일은 크기가 아닌 '단일 범위'에 할당되므로 블록의 간접 매핑을 피할 수 있습니다. 각 iNode는 파일의 최대 4개 범위를 저장하고 나머지는 Htree에서 색인화합니다. 따라서 범위는 순차적인 블록 할당으로 인한 단편화를 줄이고 성능을 향상시킵니다.
  • 지연 및 다중 블록 할당: 다중 블록 할당 (mballoc)은 ext3에서처럼 하나씩 할당하는 대신 단일 작업으로 파일에 여러 블록을 할당합니다. 이 기능은 "블록 할당기"를 여러 번 호출하는 오버헤드를 줄이고 메모리 할당을 최적화합니다. 지연 할당 기능에서는 함수가 데이터를 한 번에 할당하지 않고 디스크에 쓰는 경우 해당 데이터가 캐시에 저장됩니다. 지연 할당은 캐시를 "플러시" 한 후에만 캐시에 있는 모든 데이터를 작성합니다. 이 기법을 "플러시 할당"이라고 합니다.
  • 온라인 조각 모음 및 fsck 속도: ext4 시스템에서는 위에서 언급한 기술 덕분에 조각화 속도가 더 낮습니다. 하지만 이는 0% 조각화를 의미하지는 않습니다. 필요할 경우 "e4defrag" 도구를 사용하여 온라인으로 조각 모음을 수행할 수 있습니다.
  • 저널 checksumming: Ext4는 저널 블록의 상태를 확인하기 위해 저널 checksumming을 사용합니다. 이 기능은 데이터 손상을 방지하기 위해 사용됩니다. 오버헤드가 발생하는 경우 ext4에서 저널링 모드를 끌 수 있습니다.
  • Inodes/타임스탬프: ext4 파일 시스템은 기본적으로 256바이트 크기의 큰 inode를 사용하며, ext3는 inode에 대해서는 128바이트만 사용합니다. ext3의 경우 타임스탬프 정확도는 초 단위 대신 나노초 단위로 저장됩니다.
  • 이전 버전과의 호환성: 커널이 ext4 파일 시스템을 지원하는 경우 OS를 포맷하거나 다시 설치하지 않고도 Ext3 파일 시스템을 ext4로 쉽게 마이그레이션할 수 있습니다.

4부. Ext4의 장점과 단점

장점

다른 디스크/LUN을 활용하여 더욱 만족스러운 성능을 얻을 수 있습니다. 이렇게 하면 처리 로그를 한 저장공간에 두고 데이터 파일을 다른 저장공간에 저장할 수 있어 데이터베이스의 성능을 향상시킬 수 있습니다. 디스크 I/O 집약적인 웹 기반 응용 프로그램과 비교할 수 있습니다.

보호 수준을 높이거나 성능이나 안정성에 보다 세부적으로 영향을 미치는 다양한 시작 옵션을 사용할 수 있습니다.

공간을 따로 관리할 수 있습니다. 따라서 다른 응용 프로그램에 영향을 주지 않는 공간을 채우는 악성 응용 프로그램이 있을 수 있습니다.

특정 파티션의 조각화는 다른 파티션과는 별개로 처리됩니다.

파일 시스템의 성능을 보조 없이 촬영, 시작, 시작취소, 포맷, 조각화, 모니터링할 수 있습니다.

특정 볼륨에 암호화를 할 수 있습니다.

필요에 따라 볼륨을 시작할 수 있습니다.

단점

파일 시스템은 관리 오버헤드를 증가시킵니다.

필요 이상으로 더 많은 디스크 공간을 낭비하는 경우가 더 많아질 수 있습니다.

디스크가 가득 찬 상태로 인한 사고가 더 많아질 수 있습니다.

서로 다른 볼륨에서 실행되는 애플리케이션의 일관된 스냅샷을 생성하는 것이 더 어렵습니다.

약간 더 많은 리소스를 사용합니다.

볼륨 유형에 따라(MS-DOS 레이블, LVM, btrfs ...) 다른 볼륨을 축소하여 한 볼륨에서 공간을 효과적으로 할당할 수 없는 경우가 있을 수 있습니다.

5부. Ext4 작업

  • Ext4 파일 시스템에 파일 생성

Ext4에서 파일을 만들려면 mkfs.ext4 명령을 사용하여 Ext4 파일 시스템으로 파티션을 포맷해야 합니다.

~]# mke4fs -t ext4 blockdevice

mkfs.ext4 command output

이 명령어에서 블록 장치는 생성할 ext4 파일 시스템을 포함할 파티션입니다.

e4label 명령을 사용하여 파티션에 레이블을 지정합니다:

~]# e4label<블록_장치>new-label

시작 지점을 만들고 새 파일 시스템을 해당 시작 지점에 시작합니다:

~]# mkdir /mount/point

~]# mount block_device /mount/point

  • Ext4 파일 시스템 시작 및 매개변수 설정

사용자는 기본 옵션을 사용하거나 매개변수를 설정하여 Ext4 파일 시스템을 시작할 수 있습니다. 기본 설정을 사용하는 명령어는 다음과 같습니다:

~]# mount block_device /mount/point

파일에 매개변수를 설정하려면 tune2fs 명령을 사용하세요. 이 명령으로 설정할 수 있는 일부 매개변수는 다음과 같습니다:

볼륨 레이블 설정: 다음 명령줄과 유사한 tune2fs와 함께 -L 옵션을 사용합니다. sudo tune2fs -L Label_Name /dev/sda2

파일 시스템 매개 변수 나열: 다시 한 번 다음 명령줄과 동일한 tune2fs와 함께 -L 옵션을 사용합니다. sudo tune2fs -l /dev/sda2

  • Ext4 파일 시스템 크기 조정

사용자는 명령줄에서 크기를 조정할 Ext4 파일 시스템에 대해 기본 블록 장치의 크기가 충분한지 확인해야 합니다. 파일 크기를 변경하려면 resize4fs 명령을 사용하십시오.

~]# resize4fs block_devicenew_size

  • Ext4 파일 시스템 조각화

일부 Ext4 파일은 범위 옵션으로 만들어지므로 e4defrag를 사용하여 조각화를 수행할 수 있습니다. 조각화 수준을 확인하려면 다음 명령줄을 사용하세요.

sudo e4defrag -c /path/to/myfiles

어떤 경우에는 조각화 점수가 0이므로 조각화가 필요하지 않습니다. 그러나 이를 수행하려면 다음 명령줄을 사용하십시오.

e4defrag /path/to/myfiles

무료 다운로드

윈도우 XP/비스타/7/8/10/11 용

무료 다운로드

맥OS X 10.10 이상 용

6부. Ext4 VS 기타 리눅스 파일 시스템

리눅스는 Ext4, XFS, Btfrs, ZFS, JFS 및 NTFS와 같은 다양한 파일 시스템을 지원합니다. 각 유형의 파일 시스템은 서로 다른 문제를 해결하며 제한 사항이 있습니다.

리눅스 파일 시스템
출시일
개발자
이상적인 사용
제한 사항
Ext4 2008년 12월 Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh 단일 읽기 또는 쓰기 스레드를 사용하는 응용 프로그램에 사용 보안삭제 기능이 없음
XFS 2000년 5월 Silicon Graphics, Red Hat 고성능이 요구되는 대형 컴퓨팅 시스템 및 시스템에 사용하기에 가장 적합 느린 메타데이터 작업
Btrfs 2009년 3월 페이스북, Fujitsu, Fusion-IO, 인텔, 리눅스 Foundation, Netgear, Oracle Corporation, Red Hat, STRATO AG, 그리고 오픈수세 내결함성, 관리, 데이터 보호 등의 장애물에 대응하는 데 사용하면 가장 적합 높은 수준의 데이터 단편화
ZFS 2006년 6월 썬 마이크로시스템즈 일련의 드라이브 또는 풀에 걸쳐 있는 파일 시스템 생성 데이터 오류가 발생한 경우 RAM 상태를 확인하지 못함
JFS 2001년 6월 IBMet al. 저널링된 메타데이터의 일관성 유지 JFS 파티션을 축소할 수 없음
각 파일 시스템 유형은 다른 문제를 해결하며 제한 사항도 있습니다. 1993 마이크로소프트 정전 시 데이터 손실 방지 안드로이드 및 맥OS와의 호환성 문제

컴퓨터에 어떤 리눅스 파일 시스템을 사용해야 하는지는 아래의 비디오 가이드에서 알 수 있습니다:

무료 다운로드

윈도우 XP/비스타/7/8/10/11 용

무료 다운로드

맥OS X 10.10 이상 용

자주 묻는 질문

다양한 성능 테스트에서 ext4 파일 시스템이 NTFS 파티션보다 여러 개의 읽기-쓰기 작업을 더 빠르게 실행할 수 있다는 결론을 도출한 것으로, 이러한 테스트가 실제 성능을 나타내지는 않지만 이를 일부 근거로 사용할 수 있습니다.

Ext4 파일 시스템 포맷은 리눅스에 기본적으로 적용되며 윈도우 운영 체제에서는 기본적으로 지원하지 않지만 이를 해결할 수 있는 방법이 있습니다.

윈도우가 Ext4를 읽을 수 없는 주요한 이유는 해당 파일 시스템을 위한 드라이버가 만들어지지 않았기 때문입니다.

인터넷에는 Ext4 파일 시스템 포맷이 FAT32(심지어 NTFS)보다 훨씬 빠르다는 성능 테스트가 있습니다.