Ext4 디스크 검사가 NTFS보다 훨씬 빠른 이유는 무엇입니까?


12

오늘 컴퓨터를 다시 시작한 상황에서 디스크의 일관성을 검사해야한다고 말했습니다. 약 10 분 후 ( "1 %"완료), 나는 포기하고 집에 갈 때 달려 나가기로 결정했습니다.

비교를 위해 가정용 컴퓨터는 모든 파티션에 Ext4를 사용하며 디스크 검사 (1 주일에 한 번 정도 실행)는 몇 초 밖에 걸리지 않습니다. 빠른 디스크 검사가 우선 순위라는 것을 기억하지만 어떻게 그렇게 할 수 있는지 모르겠습니다.

Ext4는 어떻게 디스크 검사를 그렇게 빨리 수행합니까? NTFS가 나온 후 (~ 10 년 전)이 작업을 수행하는 데 엄청난 혁신이 있습니까?

참고 : NTFS 디스크는 ~ 300GB이고 Ext4 디스크는 ~ 500GB입니다. 둘 다 반이 가득 찼습니다.


2008 R2가 출시 된 이후 Windows chkdsk에 NTFS 볼륨을 부팅하지 않았습니다. 수만 개의 Lucene 색인 파일을 잠그는 동일한 NTFS 볼륨에 액세스하는 여러 노드가있는 CSV 클러스터에서도 마찬가지입니다. 꽤 인상적입니다.
Brain2000

시작시 Chkdsk가 실행 중이면 OS에서 파일 시스템 메타 데이터 불일치, 심각한 문제가 발생했음을 의미합니다. Chkdsk는 시간이 많이 걸리는 작업 인 "가능한 경우 모든 디스크 섹터의 ​​불량 여부 확인 및 복구"플래그와 함께 호출되었을 가능성이 높습니다. 일상적인 fsck 검사는 확실히 그렇게하지 않습니다.
kreemoweet

답변:


11

성능 차이에 대한 두 가지 주요 이유와 두 가지 가능한 이유가 있습니다. 첫째, 주된 이유 :


ext4와 NTFS의 성능 향상

다양한 벤치 마크 에서 실제 ext4 파일 시스템은 NTFS 파티션보다 다양한 읽기 / 쓰기 작업을 더 빠르게 수행 할 수 있다고 결론지었습니다 . 이러한 테스트는 실제 성능을 나타내지는 않지만 이러한 결과를 추정하여 한 가지 이유로 사용할 수 있습니다.

ext4가 실제로 더 나은 성능을 보이는 이유는 NTFS가 다양한 이유 때문일 수 있습니다. 예를 들어, ext4는 지연 할당을 직접 지원합니다. 다시 말하지만 성능 향상은 사용중인 하드웨어에 따라 결정되며 특정 경우 완전히 무시 될 수 있습니다.

파일 시스템 검사 요구 사항 감소

ext4 파일 시스템은 다른 동등한 저널링 파일 시스템 (예 : NTFS)보다 빠른 파일 시스템 검사 를 수행 할 수 있습니다. Wikipedia 페이지에 따르면 :

ext4에서는 할당되지 않은 블록 그룹과 inode 테이블의 섹션이 그와 같이 표시됩니다. 이를 통해 e2fsck는 검사에서 이들을 완전히 건너 뛰고 ext4가 지원하는 크기의 파일 시스템을 검사하는 데 걸리는 시간을 크게 줄입니다. 이 기능은 Linux 커널 버전 2.6.24에서 구현됩니다.


그리고 지금, 가능한가지 이유 :


파일 시스템 검사 유틸리티

특정 응용 프로그램은 실제로 "체크"상태를 수행하기 위해 파일 시스템에서 다른 루틴을 실행할 수 있습니다. Linux 에서는 fsck 유틸리티 를 사용하고 Windows 에서는 chkdsk 유틸리티 를 사용하면 쉽게 알 수 있습니다 . 이러한 응용 프로그램은 파일 시스템마다 다른 운영 체제에서 작성됩니다. 가능한 원인 으로이 문제를 제기 이유는 각 운영 체제의 하위 수준 시스템 호출이 다르기 때문에 두 가지 운영 체제를 사용하여 유틸리티를 직접 비교하지 못할 수 있습니다.

디스크 조각화

이것은 이해하기 쉽고 파일 시스템의 차이점을 이해하는 데 도움이됩니다. 파일에 보유하는 모든 디지털 데이터는 동일하지만, 방법 이 하드 드라이브에 저장됩니다 파일 시스템은 파일 시스템에서 매우 다르다. 파일 조각화는 액세스 속도를 분명히 높여 속도 차이가 더 커질 수 있습니다.


1
혼란스러운 점은 두 번째 포인트가 처음에는 가장 큰 영향을 미치는 것처럼 보이지만 Ext4 파티션은 NTFS 파티션이 사용하는 공간만큼 사용 공간이 훨씬 빠르다는 것입니다. 나는 EXT4의 성능 향상이 빠르게뿐만 아니라 확인 할 가능성이 높습니다 생각하지만, EXT4가 아닌 훨씬 빠른 NTFS가 아닌 (확실히 내가 파일 시스템 검사에서 볼 크기 차이의 몇 배).
Brendan Long

무슨 의미인지 잘 모르겠습니다. 일반적으로 파일 내용은 대부분의 최신 파일 시스템 (ext4 및 NTFS 포함)의 색인보다 훨씬 더 많은 공간을 차지합니다. 파일 시스템은 내용을 다르게 저장하기 때문에 ( 어떤 경우에는 언급했듯이 ) 더 높은 성능을 제공합니다.
획기적인

실제로 혼란스러워하는 것은 실제로 Ext4 파티션의 용량이 NTFS 파티션의 총 용량보다 많기 때문에 Ext4 파티션이 몇 초 만에 확인하기 때문에 실제로 확인 된 부분의 크기는 거의 같아야한다는 것입니다. 한 시간이 걸립니다.
Brendan Long

1
@Brendan 내 대답의 첫 번째 링크를 보면 일부 사람들은 실제로 ext4 대 NTFS를 사용하는 드라이브에서 파일 읽기가 더 빠르다는 것을 알게되었습니다. 에서 개최 된 디지털 데이터를하더라도 파일이 동일하다 , 그것은됩니다 같은 방법으로 저장되지 디스크를. 그러나 NTFS에 몇 시간 이 걸리는 경우 드라이브의 각 섹터를 확인하고있을 가능성이 있으므로 ext4 파일 시스템 검사에서 일부 대체 검사를 건너 뛰는 경우가 있습니다 (큰 속도 차이 설명). 전체 디스크 표면보다는 각 파일을 확인하는 것이 훨씬 빠릅니다.
획기적인

1
이 답변은 질문과 관련이없는 ext4 대 NTFS 대화 지점 목록입니다. 저널 된 파일 시스템은 일반적인 조작에서 점검 할 필요가 없습니다. 자동 확인은 무언가 잘못되었음을 의미합니다. 무엇이 잘못되었는지 알지 못하면 검사가 왜 그렇게 느린 지 알 수 없습니다. ext4의 주간 점검과 비교하면 사과와 오렌지를 비교하는 것입니다.
benrg

3

내 이해에서 ext4는 현재 데이터가 존재하지 않는 열린 inode의 최대 연속 간격에 데이터를 쓰려고합니다. 이는 개별 파일의 전체 내용이 대부분 단일 연속 트랙에있는 대부분의 경우 해당 파일을 읽어야 할 때 대기 시간을 크게 줄이므로 드라이브 헤드는 데이터가 포함 된 모든 블록을 찾을 때 수행 할 작업이 줄어 듭니다. 그 하나의 파일을 구성합니다.

NTFS (ext4)는 여전히 조각화 될 수는 있지만 NTFS와 마찬가지로 읽기 / 쓰기 성능에 심각한 영향을 줄 수있는 것은 아닙니다. NTFS에서는 데이터가 헤드 경로의 첫 번째 열린 블록에 기록됩니다.

따라서 헤드가 놓여 있고 열린 블록이있는 곳에는 가능한 한 많은 양의 데이터를 쓴 다음 헤드가 다른 파일에 액세스하기 위해 디스크의 다른 부분으로 이동해야 할 때 디스크의 다른 위치에 기록합니다. 다른 파일이 여전히 작성되는 동안 방금로드 한 프로그램에서 파일을 열어야합니다.
이는 파일이 크면 별도의 트랙에서 서로 분리 된 블록으로 확산 될 가능성이 높으며 NTFS에 대해 조각 모음이 자주 필요한 이유입니다.

또한 데이터가 지속적으로 디스크에서 연중 무휴 24 시간 읽히고 읽히는 서버에서 더 많은 I / O가 진행되므로 서버가 일반적으로 사용하지 않는 이유는 무엇입니까?

또한 확실하지 않지만 chkdsk각 파일의 무결성을 확인하면 (내가 믿고 믿는 fsck) NTFS에서 조각화에 대해 방금 설명한 것으로 인해 속도가 느려집니다.


NTFS chkdsk 나 ext4 fsck 모두 파일 데이터를 읽지 않습니다. 체크섬이나 무결성을 확인할 수있는 다른 방법이 없기 때문에 의미가 없습니다.
benrg

1

Windows는 시작할 때 NTFS 볼륨을 확인할 필요가 없습니다. 그렇다면 심각한 BSOD 나 정전보다 훨씬 심각한 문제가 발생한 것입니다. 파일 시스템 메타 데이터가 손상된 경우 일부 데이터가 손상되었을 가능성이 있습니다. 디스크 검사는이를 감지 할 수 없습니다. 그것의 유일한 목적은 추가적인 부패를 피하는 것입니다.

KB2854570 에는 이러한 문제가 발생할 수있는 몇 가지 이유가 나와 있습니다. 하나는 볼륨이 마운트 된 OS를 최대 절전 모드로 전환하고 볼륨의 내용을 수정 한 다음 볼륨이 다시 연결된 최대 절전 모드에서 다시 시작하는 것입니다. 그렇게하면 자동 데이터 손상 가능성이 높습니다.

왜 ext4 파일 시스템이 일주일에 한 번 자체 검사를했는지 모르지만, 아마도 매주 반복되는 위기로 인한 것이 아닐 것입니다. 전체 정합성 검사가 아닌 일상적인 위생 검사를 수행 한 것일 수 있습니다.


1
오랫동안, 대부분의 Linux 배포에서는 N 번째 파일 시스템 마운트마다 자동 fsck 검사가 표준이었습니다. 요즘에는이 옵션이 기본적으로 꺼져 있습니다.
kreemoweet

0

UNIX / Linux Ext2 / Ext3 / Ext4 기술은 페인트 스프레이와 달리 자기 데이터 비트를 내려 놓는 NTFS에 비해 훨씬 더 강력한 자기 비트 비트를 NTFS에 배치하기 때문입니다. NTFS는 Ext2 / 3 / 4처럼 조각 모음이 거의 필요없는 일반 "조각 모음"이 필요합니다. 그렇게 간단합니다. 유닉스 / 리눅스 드라이브에서 무언가가 필요한 경우, OS는 단단히 고정 된 데이터 비트의 팁을 어디에서 픽업해야 하는지를 정확히 알고있는 반면 NTFS는 드라이브 디스크 전체를 스크램블링해야합니다. NTFS 저널 시스템은 매우 잘 작동하지만, 헤드는 탁구를 내려 놓고 자기 비트를 집어 들고 있습니다. 이중 FAT 파일 시스템은 잘 작동하지만 단일 비트의 부셸을 수집하기 위해 지옥 에이커를 모두 실행 해야하는 경우 전체 비트 열을 필요로하지 않고 선택할 수 있으면 훨씬 빠릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.