압축, 암호화 및 다음과 같은 기능을 지원하는 ext4 파일 시스템에 대해 읽고 있습니다.범위디스크 공간을 절약하는 데 사용됩니다. 익스텐트란 무엇이며 디스크 공간 절약에 얼마나 효과적입니까?
답변1
범위는 대용량 파일의 데이터 블록을 추적하는 데 필요한 메타데이터의 양을 줄입니다. 아이디어는 파일을 구성하는 각 개별 블록의 목록을 저장하는 것이 아니라 각 연속 블록 범위의 첫 번째 블록과 마지막 블록의 주소만 저장하는 것입니다. 이러한 연속적인 데이터 블록 범위(및 이를 나타내는 숫자 쌍)를 호출합니다.범위.
파일의 처음 몇 블록의 주소는 inode에 저장되지만 inode 크기는 고정되어 있으므로 이는 작은 파일에만 작동합니다. ext2 또는 ext3에서는 대용량 파일을 사용해야 합니다.간접 차단inode 자체에 맞지 않는 블록 주소 목록의 나머지 부분을 저장합니다. 즉, 인덱스 노드에는 블록 목록이 포함된 블록의 주소가 포함됩니다. 이들은 호출됩니다간접 차단. 이러한 추가 블록은 일반적으로 범위를 사용할 때 필요하지 않습니다. 범위를 저장하려면 설명하는 블록 범위의 크기에 관계없이 일정한 양의 공간이 필요하기 때문입니다.
매우 조각난 파일에는 여전히 추가 메타데이터 블록(ext4가 호출하는 것)이 필요할 수 있습니다.범위 노드) 긴 범위 목록을 저장하기 위해 사용되지만 일반적으로 필요한 것보다 여전히 훨씬 적습니다.
그러나 메타데이터 크기의 감소는 일반적으로 파일 크기에 비해 상당히 작습니다. 범위의 주된 목적은 공간 자체를 절약하는 것이 아니라 성능을 향상시키는 것(조각화를 줄이고 읽고 쓸 메타데이터 블록을 줄여서)입니다.
답변2
~에서http://ext2read.blogspot.ch/2010/03/how-ext4-extents-work-earlier-ext2-and.html:
초기 Ext2와 Ext3에는 파일 크기 제한이 있었습니다. 32비트 블록 번호를 사용하여 데이터 블록에 액세스합니다. 따라서 최대 파일 크기 제한은 2^32 * 블록 크기(예: 4k**) = 16TB*입니다. 또한, 거쳐야 하는 간접 참조의 양이 많기 때문에 대용량 파일에 대한 액세스 시간이 느립니다. Ext4 파일 시스템은 매우 큰 파일을 지원할 수 있으며 블록 주소를 지정하는 데 48비트가 있습니다. 또한 범위를 사용하여 데이터를 저장하므로 대용량 파일의 액세스 시간이 더 빨라집니다.
데이터 블록의 정보는 inode 구조의 i_data에 저장됩니다. 익스텐트가 없는 시스템에서는 처음 12개 항목에 처음 12개 데이터 블록의 블록 번호가 포함됩니다. 그런 다음 간접 블록의 블록 번호를 포함합니다. 이 블록에는 데이터를 가리키는 블록 번호 배열이 포함되어 있습니다. 마찬가지로 이중 간접 블록과 삼중 간접 블록이 있습니다. 따라서 매우 큰 파일에서 데이터를 가져와야 하는 경우 이러한 간접적인 방법을 거쳐야 합니다.