블록 서브할당
Block suballocation블록 서브할당은 일부 컴퓨터 파일 시스템의 기능으로, 큰 블록 또는 할당 단위를 사용하면서 큰 파일의 끝에 있는 "슬랙" 공간을 효율적으로 사용할 수 있습니다. 그렇지 않으면 내부 [1]단편화에 사용할 수 없게 됩니다.
fragment를 지원하지 않는 파일 시스템에서 이 기능은 일반적으로 여러 파일의 "tail" 또는 마지막 부분 블록을 단일 블록에 패킹함으로써 수행되므로 테일 머지 또는 테일 패킹이라고도 합니다.
근거
파일 시스템은 설계를 단순화하고 최악의 경우 단편화를 제한하기 위해 디스크를 동일한 크기의 블록으로 분할했습니다.블록 크기는 하드 디스크 섹터의 크기로 인해 일반적으로 512바이트의 배수입니다.일부 기존 파일 시스템에서 파일을 할당할 경우 전체 블록만 개별 파일에 할당할 수 있습니다.그러나 파일 크기가 파일 시스템 블록 크기의 배수가 아닌 경우가 많기 때문에 이 설계는 기본적으로 파일의 마지막 블록(테일이라고 함)이 블록의 일부만 차지하게 되어 내부 플래그멘테이션(외부 플래그멘테이션과 혼동하지 않음)이라고 하는 결과를 초래합니다.파일 시스템에 작은 파일이 많이 저장되어 있으면 이러한 공간 낭비가 심각할 수 있으며 성능을 향상시키기 위해 더 큰 블록 크기를 사용하려고 할 때 매우 중요합니다.FFS 및 기타 파생 UNIX 파일시스템은 fragment를 지원하여[citation needed] 이 영향을 크게 완화합니다.
서브할당 방식
블록 서브할당은 테일블록을 분할하여 다른 파일의 fragment를 저장할 수 있도록 함으로써 이 문제에 대처합니다.
일부 블록 서브할당 방식에서는 바이트 수준에서 할당을 수행할 수 있지만 대부분은 단순히 블록을 작은 블록으로 나눕니다(일반적으로 2의 제곱).예를 들어 38KiB 파일을 32KiB 블록을 사용하여 파일 시스템에 저장하는 경우 파일은 보통 저장을 위해 두 블록(64KiB)에 걸쳐집니다. 두 번째 블록의 나머지 26KiB는 사용되지 않는 여유 공간이 됩니다.단, 8KiB 블록 서브할당에서는 파일은 두 번째 블록의 6KiB만을 차지하고, 2KiB(8KiB 서브할당 블록 중)는 느슨하게 유지되며, 나머지 24KiB는 다른 파일을 위해 블록에서 해방됩니다.
테일 패킹
일부 파일 시스템은 이 사용되지 않는 공간을 활용하도록 설계되었으며 여러 파일의 꼬리를 하나의 공유 테일 블록에 넣을 수 있습니다.처음에는 파일 시스템의 단편화가 현저하게 증가하는 것처럼 보일 수 있지만, 최신 운영 체제의 리드어헤드 기능을 통해 부정적인 영향을 완화할 수 있습니다.짧은 파일을 다룰 때는 여러 개의 테일이 서로 가까이 붙어 읽을 수 있기 때문에 디스크 검색이 도입되지 않습니다.이러한 파일 시스템은 테일 패킹이 특정 상황에서 가치가 있는지 여부를 판단하기 위해 휴리스틱스를 사용하는 경우가 많으며, 조각 모음 소프트웨어는 보다 진화된 휴리스틱을 사용할 수 있습니다.
효율성.
대부분의 파일이 블록 크기의 절반보다 짧은 시나리오(예: 작은 소스 코드 파일 또는 작은 비트맵 이미지 폴더)에서 테일 패킹을 사용하면 테일 [2]패킹을 사용하지 않는 파일 시스템에 비해 스토리지 효율성이 2배 이상 향상될 수 있습니다.
이는 디스크 공간을 절약할 뿐만 아니라 참조 위치가 높기 때문에 읽어야 할 데이터가 줄어들고 페이지 캐시 효율이 높아지기 때문에 성능이 향상될 수 있습니다.그러나 이러한 이점은 [3]구현의 복잡성 증가에 의해 무효화될 수 있습니다.
2015년 현재[update] 블록 하위 할당을 지원하는 가장 널리 사용되는 읽기/쓰기 파일 시스템은 Btrfs 및 FreeB입니다.SD UFS2[4](블록 레벨의 플래그멘테이션이라고 불립니다).한때 인기가 많았던 라이저FS와 Reiser4는 더 이상 [citation needed]일반적이지 않습니다.
일부 읽기 전용 파일 시스템은 블록을 전혀 사용하지 않기 때문에 암묵적으로 공간을 하위 할당 파일 시스템만큼 효율적으로 사용하고 있습니다. 예를 들어 파일 시스템은 아카이브 형식보다 두 배 더 높습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 미국 특허 6,041,407 (기본 특허)
- ^ Hans Reiser (2001). "Hard Disk usage, ReiserFS and Ext2fs". Archived from the original on 13 November 2006. Retrieved 14 December 2006.
- ^ Hans Reiser (2001). "ReiserFS file system design". Archived from the original on 13 November 2006. Retrieved 14 December 2006.
- ^ Hervey, Allen (20 June 2005). "Introduction to FreeBSD, PacNOG I Workshop, Additional Topics, UFS2 and Soft Updates make for a powerful combination" (PDF). PacNOG I. p. 23. Retrieved 22 July 2012.
- Daniel Robbins (1 August 2001). "Advanced filesystem implementor's guide, Part 2". Common threads, IBM. Retrieved 14 December 2006.