클러스터
저장매체의 물리적인 최소 단위는 1 섹터이다. 따라서 실제 하드디스크 컨트롤러에 의해 동작하는 단위도 섹터단위로 읽고 쓰인다. 하지만 현대의 파일시스템은 섹터 단위가 아닌 여러 섹터를 묶은 클러스터라는 개념으로 데이터를 관리한다. 이는 평균적인 파일 크기가 커진 상황에서 섹터 단위로 관리하는 것은 비효율적이기 때문이다.
윈도우에서는 포맷 시 위와 같이 클러스터의 크기를 설정할 수 있다. 클러스터의 크기를 지정하지 않을 경우 볼륨 크기에 따라 미리 정의된 클러스터 크기가 기본으로 할당된다.
볼륨 크기에 따른 기본 클러스터 크기는 다음과 같다.
FAT32에서의 기본 클러스터 크기
Volume Size | Cluster Size |
32MB - 8GB | 4KB |
8GB - 16GB | 8KB |
16GB - 32GB | 16GB |
32GB - | 32KB |
NTFS에서의 기본 클러스터 크기
Volume Size | Cluster Size |
7MB - 512MB | 512Byte |
513MB - 1GB | 1Byte |
1GB - 2GB | 2Byte |
2GB - | 4Byte |
볼륨 크기에 따라 클러스터 크기가 변하는 이유는 디스크의 효율을 고려한 결정이다. 다음 그림을 보면 클러스터의 크기는 4KB이다. 해당 클러스터 하에서 100Byte의 파일을 저장할 경우 실제 물리적인 공간은 100Byte를 차지하지만 클러스터라는 개념으로 인해 4KB가 해당 파일에 할당된다.
다음 그림은 768Byte의 데이터만 기록한 후 파일의 등록정보를 확인한 것이다. 768Byte만 기록되었음에도 불구하고 클러스터의 사용으로 인해 디스크 할당은 4KB가 된 것을 확인할 수 있다.