클러스터
하드디스크의 읽기, 쓰기 작업은 섹터 단위로 이루어집니다.
하지만 섹터 단위로 입출력을 처리할 경우 용량이 큰 파일에 대하여 많은 시간이 요구됩니다.
보통 1섹터의 크기가 512 byte이므로 5,000 byte 크기의 데이터를 읽으려면 총 10번의 입출력(512 * 100 >= 5000)을 수행해야 하는 것입니다.
때문에 디스크의 입출력 처리 속도 효율을 향상시키기 위해 여러 개의 섹터를 묶어서 한 번에 처리하게 되고 이것을 클러스터 개념입니다.
예를 들어 10,000 byte 크기의 데이터를 읽을 때, 섹터 단위로 읽게 되면 20번(512 * 20 > 10,000) 읽어야 하지만, 클러스터 단위로 읽게 되면 3번(4,096 * 3 > 10,000)만 읽으면 되는 것입니다.
요약하자면 디스크의 입출력시간을 줄이기 위해 섹터를 여러 개로 묶어 시간을 절약하기 위해 도입된 개념입니다.
볼륨을 포맷할 때 클러스터의 크기를 지정할 수 있습니다. NTFS의 경우 일반적으로는 4,096 byte로 설정이 되어 있으며 default 크기는 파일 시스템에 따라, 또 볼륨의 크기에 따라 다르게 지정이 됩니다.
FAT32 파일 시스템의 클러스터 기본 크기
볼륨 크기 | 클러스터 크기 |
32 MB ~ 8 GB | 4 KB |
8 GB ~ 16 GB | 8 KB |
16 GB ~ 32 GB | 16 KB |
32 GB ~ | 32 KB |
NTFS 파일 시스템의 클러스터 기본 크기
볼륨 크기 | 클러스터 크기 |
7 MB ~ 512 MB | 512 Byte |
513 MB ~ 1 GB | 1 KB |
1 GB ~ 2 GB | 2 KB |
2 GB ~ | 4 KB |
일반적으로 하드 디스크의 경우 용량이 2 GB 이상이며 NTFS 파일 시스템을 사용하기 때문에 기본 클러스터 크기가 4KB(4,096 byte)로 설정이 되어 있습니다. (출처 : http://forensic-proof.com/archives/357)
파일의 속성 탭에서 해당 파일이 차지하고 있는 크기를 알 수 있습니다.
위 그림에서 크기는 파일의 실제 물리적 크기이고 디스크 할당 크기는 디스크에서 할당받은 클러스터의 크기 합을 의미하는 것입니다.
1.png의 실제 크기는 14,835 byte 이며, 디스크에 할당받은 크기는 16,384 byte인 것입니다. 즉 1.png는 디스크에서 총 4개의 클러스터를 할당받고 있는 것입니다. (4,096 * 4 = 16,384)
파일의 디스크 할당 크기는 클러스터 크기로 나누어 떨어지는 것을 알 수 있습니다.
파일의 크기가 클러스터보다 작은 경우에는 슬랙 공간이 많이 발생하기 때문에 비효율적이지만 그렇지 않다면 디스크의 입출력속도를 개선할 수 있다고 보면 되겠습니다. 그렇기 때문에 사용하는 용도에 따라 클러스터의 크기를 적절하게 조절하는 것이 좋겠습니다.
'DFIR > 기타 개념' 카테고리의 다른 글
VMware Drag and Drop File 경로 (0) | 2022.05.27 |
---|---|
Falcon NEO 디스크 이미징 수행 과정 (0) | 2022.01.10 |
디지털 포렌식 맛보기#2 (0) | 2021.07.06 |
디지털 포렌식 맛보기#1 (0) | 2021.06.27 |
디지털 포렌식과 해시(Hash) (0) | 2021.06.21 |