1. 클러스터 크기(Cluster Size)
파일 시스템에서 말하는 클러스터란 디스크에 파일을 저장하는 단위를 뜻합니다. 예를 들어 530KB짜리 파일을 저장하는 경우 디스크의 클러스터 크기가 4KB라면 530/4=132.5, 즉 클러스터 133칸인 532KB를 사용하게 되고, 클러스터 크기가 64KB라면 530/64=8.28125 즉 클러스터 9칸인 576KB를 사용하게 됩니다.
클러스터가 작으면 낭비하는 공간(slack)이 줄어들어 디스크를 효율적으로 사용할 수 있는 반면, 다루어야 하는 클러스터 수가 많아져서 속도는 느려진다는 단점이 있습니다. 이 글에서는 클러스터를 기존보다 크게 조정함으로써 하드디스크 공간을 어느 정도 희생하더라도 속도 향상을 꾀하는 것이 목표입니다. 아래는 NTFS로 포맷된 OS 파티션(C:)을 기본값인 4KB에서 64KB로 늘리는 방법입니다.
큰 클러스터(64KB) : 클러스터 수가 적어서 속도가 빠르다(133칸 vs 9칸)
2. 클러스터 크기 조정 방법
클러스터 크기를 조정하는 가장 간단한 방법은 하드디스크를 처음 포맷할 때 설정하는 것입니다. 하지만 이미 하드디스크를 사용하는 중이라 포맷이 힘들다면 다소 복잡한 단계를 거쳐야하는데, 다음 모든 과정에 자신이 없다면 무리하게 시도하지 마시고, 일단 기억만 하셨다가 나중에 포맷할 일이 생기면 그때 적용하시기 바랍니다.
1) 디스크 오류 검사
클러스터 크기 조정은 아주 민감한 작업이므로 디스크에 문제가 없는 상태에서 진행해야 합니다. 이 절차를 소홀히 했다가는 본 과정에서 에러가 발생하면서 자료를 모두 날려버릴 수도 있습니다.
2) 파티션 백업 및 복구용 CD 확보
마찬가지로 예방 차원에서 파티션을 백업합니다. Norton Ghost나 Acronis True Image Home 중에서 편한대로 하시되, 복구용 디스켓이나 복구용 CD(시만텍 복구 디스크, 아크로니스 부팅용 복구 미디어, Hiren's BootCD 등)도 필수로 있어야합니다. 만약 OS 파티션을 작업하다가 에러가 발생하면 윈도우 부팅조차 되지 않기 때문입니다.
3) 클러스터 크기 조정
본격적인 과정입니다. 자료를 살린 채로 클러스터 크기를 조정하기 위해서는 PowerQuest PartitionMagic이나 Acronis Disk Director Suite가 필요합니다. 저는 아크로니스 디스크 디렉터로 작업했지만 파티션매직도 과정은 동일합니다.
이 과정에서 정전이나 물리적 충격, 또는 디스크에 오류가 존재하면 저장되어있던 자료를 읽지 못하게 됩니다. 2번 과정에서 백업한 이미지로 파티션을 복구한 뒤에 처음부터 다시 시작하세요.
4-1) 벤치마크(성능)
실제로 성능 향상이 이루어졌는지 확인하는 과정입니다. 왼쪽이 4KB 클러스터, 오른쪽이 64KB 클러스터입니다. 수치상으로는 약 5~15% 향상된 걸로 나오네요.
4-2) 벤치마크(용량 효율)
다음으로는 용량 효율을 비교해보겠습니다.
OS용 파티션은 수 KB 미만의 작은 파일이 대부분을 차지하기 때문에 낭비되는 용량(slack)이 엄청나게 큰 것을 볼 수 있습니다. 1KB짜리 파일을 저장하더라도 64KB가 필요하기 때문에 나머지 63KB는 그냥 사라지는 것이지요. 실제 데이터 크기(15.8GB)와 저장된 크기(18.2GB)를 비교하면 약 15%가 낭비되는 것으로 나옵니다.
반면에 고용량 파일로 채워진 저장용 파티션은 낭비가 거의 없습니다. 실제 데이터가 501GB로 OS 파티션의 데이터보다 훨씬 크지만 낭비되는 공간은 0.4% 미만입니다. 즉 저용량 파일과 고용량 파일의 비율에 따라 낭비율이 결정되는데, 약간의 통계학적 지식만 이용하면 쉽게 예상해볼 수 있습니다.
낭비 용량 = (64-계급값)*도수
계급 | 계급값 | 파일 수 | 비율 | 낭비 용량 |
---|---|---|---|---|
~ 1KB 미만 | 0.50KB | 8,394개 | 16.4% | 520.53MB |
1KB 이상 ~ 2KB 미만 | 1.50KB | 3,492개 | 6.8% | 213.13MB |
2KB 이상 ~ 4KB 미만 | 3.00KB | 3,876개 | 7.6% | 230.89MB |
4KB 이상 ~ 8KB 미만 | 6.00KB | 5,290개 | 10.3% | 299.63MB |
8KB 이상 ~ 16KB 미만 | 12.00KB | 7,192개 | 14.0% | 365.22MB |
16KB 이상 ~ 32KB 미만 | 24.00KB | 5,219개 | 10.2% | 203.87MB |
32KB 이상 ~ 64KB 미만 | 48.00KB | 4,800개 | 9.4% | 75.00MB |
64KB 이상 ~ | - | 12,940개 | 25.3% | 404.38MB |
총계 | - | 51,203개 | 100.0% | 2,313MB |
실제 | - | 2,406MB |
3. 덧붙여서
클러스터가 크면 좋다는 사실은 알고 있지만 용량 낭비가 심하다는 점 때문에 적용을 꺼려하던 분들을 위해서 정확한 수치를 제공했습니다. OS 파티션의 경우 절충안으로 16KB만 설정하는 것도 적당하다고 생각합니다.
제가 테스트한 HDD는 WD6400AAKS와 WD10EADS 모델로 일반적인 하드디스크입니다. RAID0 구성이나 SSD, 플래시 메모리에도 물론 적용할 수는 있지만, 클러스터가 크면 빠르다는 결론만 같을 뿐, 다른 이론적 접근이 추가로 필요합니다.
그리고 어디까지나 개인적으로 실험한 결과이기 때문에 10%라는 수치가 과장되었을 수도 있는데, 다른 벤치마크 결과들을 보더라도 일반적으로 속도가 5~10% 향상되는 것으로 나타납니다.