왜 ext2와 후속 버전에서 조각 모음이 필요하지 않습니까?


답변:


9

ext4 파일 시스템이 조각화를 점검하는 한 가지 방법은 지연된 할당 프로세스 (ext4의 기본 할당 모드)입니다.

지연된 할당은 쓰기 시간까지 새로 작성된 파일 데이터 블록과 파일 시스템의 디스크 블록에 대한 매핑을 지연시켜 작동합니다.

각 파일의 총 블록 수 (또는 최소한의 야구장)가 알려진 경우 파일에 대해 대부분의 블록을 동시에 할당하여 작동합니다. 이를 통해 블록 할당 자 ( mballocMMK의 답변에서 언급)는 파일을 넣을 수있는 적당한 크기의 여유 공간을 찾는 작업을 더 잘 수행 할 수 있습니다.


이것은 실제로 ext4 드라이버 의 기능 일뿐 입니다. 지금, 만약 내가 모르는 아주 기술적으로 말하면 그 것은 (적어도 같은 옵션을 이전 FS를 마운트 할 수있는 부분 ). 여전히 DELALLOC은 ext4로만 표시 됩니다 .
mirh

8

ext3 파일 시스템에는 각 블록마다 디스크에 대한 블록 할당자가 있으므로 조각화가 발생할 수 있습니다.

그러나 ext4 파일 시스템에는 디스크에 블록 쓰기를 지연시킬 수있는 다중 블록 할당자가있어 연속 된 쓰기가 가능하도록 한 번에 하나의 디스크 청크에 여러 블록을 할당 할 수 있습니다. 조각화가 발생할 가능성이 적습니다 (아직도 가능합니다)


6

적어도 Ext2 (그리고 Ext3은 확실하지 않지만)에서는 조각 모음을 막을 수있는 디스크 포맷 / 구조에는 아무것도 없습니다.

조각 모음이 필요하지 않은 것은 구현 수준에 있으며 OS마다 다릅니다. 즉, 구현에 따라 Ext2의 파일이 조각화되거나 조각화되지 않을 수 있습니다.

조각화를 피하면 물리적 블록 할당이 지연되기 때문일 수 있습니다. 즉, 일부 구현 레벨에서 파일 시스템은 디스크에 기록 / 커밋 될 때까지 데이터를 캐시하고 논리 블록 번호를 통해 액세스합니다. 데이터가 디스크에 최종적으로 기록 될 때 물리적 블록을 할당해야합니다. 할당 알고리즘은 데이터에 대해 다수의 연속 가능한 이용 가능한 물리 블록을 할당 할 수 있거나 할당하지 않을 수있다.

도움이 되었기를 바랍니다.


실제로 e2defrag 유틸리티가 있으며 무작위로 작성된 파일이 많은 전체 디스크에 필요할 수 있습니다. ext4의 지연된 할당자는 이것을 덜 가능하게 만듭니다. 그러나 ext2조차도 일종의 지연된 할당 / 기록이 있었기 때문에 MS-DOS®의 기본 할당 자보다 조각 모음 유틸리티를 실행하는 것이 덜 필요했습니다.
mirabilos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.