기본지식

[스토리지] 디스크 조각 모음

꾸적꾸적 2025. 5. 14. 16:08

디스크 조각 모음이란, 스토리지에서 쓰고 남은 부분을 정리하는 방식 이다.

쉽게 말하면 저렇게고, 조금 더 깊게 들어가자면 아래와 같다.

 

예를 들어 HDD에 아래 표처럼 10개의 파트가 나누어져있다고 가정해보자.

그리고 하나당 2GB를 담당하여 총 40GB의 HDD라고 가정한다.

(물론 지금 HDD는 보통 4096바이트를 사용한다

이를 4K HDD 라고 한다.)

(이유는 UEFI같은 다양한 이유가 있는데, 이건 추후)

OS OS      
         
         
         

보통 위와 같이 OS가 가장 앞단에 설치가 되고,(4GB로 가정)

이후 36GB의 여유공간이 남게된다.

 

이제 데이터를 저장해볼건데,

데이터의 종류로는 이미지, 영상, 문서 등 다양한 것들이 있겠지만,

A : 4GB 영화

B : 9GB 게임 이라고 가정해보자.

그렇다면 HDD는 아래와 같이 공간을 할당한다.

OS OS A A B
B B B B B
         
         

그러면, 공간 하나당 2GB를 차지한다고했으니,

A는 딱맞게 2개,

B는 1GB를 더 차지하게 되지만, 총 5개의 공간을 차지한다.

(B는 1GB의 여유 데이터를 못쓰게 된다.)

 

어찌됬건 위와 같이 된 상황에서

A를 다 보고 삭제했다는 가정을 추가해보자.

OS OS   ←B
B B B B  
         
         

A 공간이 사라지고, 저렇게 빈 공간이 생기게 된다.

 

문제는 여기서 발생한다.

데이터를 삭제하건 저장하건,

HDD는 물리적으로 플래터에 기록하는 방식인데,

기록한 마지막 부분에서 기록을 하는 핀이 멈추게된다.

 

즉, 지금 플래터에 기록하는 핀이 위치한 곳은 화살표 위치.

(B와 A가 사라진 마지막 사이 작대기 위치)

 

그럼 여기서 용량을 최대한 효율적으로 사용하기 위해 단편화 기술이 적용된다.

 

※ 단편화란(Fragmentation)?

파일을 연속적으로 저장하는게 원칙이지만,

그렇게 해버린다면 중간에 지워진 부분을 사용할수 없거나,

다음 섹터까지 이동시간이 매우 길어질 수 있음.

ex. 예를들어, A가 삭제된 위치부터 플래터의 가장 마지막까지의 거리가

저렇게 40개의 표가 아니라 수만 수십만이 가볍게 넘어간다고 가정한다면

엄청나게 길어지게되고 시간도 그만큼 늘어난다.

따라서, 현재 핀이 위치하는 곳에서 가장 가까우면서

HDD에 저장할 수 있는 용량이 남은 섹터에 저장하는 방식을 의미한다.

 

위를 예로 들자면, A라는 4GB 섹터가 비워져있고,

B이후에 저장하는것보다 A위치가 가까운 상태이며,

C라는 파일이 1GB밖에 안된다면

OS OS C   B
B B B B  
         
         

 

OS 바로 옆에 저장된다.

(물론, 이 경우에도 2GB 섹터에 1GB만 들어가서 1GB의 손해는 발생한다.)

 

이제 문제는 다음인데,

D라는 4GB크기의 파일을 저장해야한다.

이 경우, C와 B 사이에는 섹터 하나만 남았기 때문에 2GB 밖에 남지않았다.

그렇다면 자연스레 B 뒤의 자리에 저장해야한다.

OS OS C   B
B B B B D
D        
         

 

그럼 당연히 저렇게 저장이 될건데,

이후 계속해서 저장하다보면 아래와 같은 상황이 발생할 수 있다.

 

OS OS C   B
B B B B D
D E E E E
E E   F F

 

이렇게 됬다고 가정하자.

그러면 C 오른쪽, E 오른쪽에 총 4GB가 남지만 멀리 떨어져있기도 하고,

한번에 4GB로 쓰기에는 사용하기가 힘들다.

(물론 지금은 저장방식이 나눠서 되는 방식이 있지만, 없다고 가정한다.)

 

이 경우, 용량은 남아있지만 쓰기 힘든 상태이므로 전체적으로 자리를 정리하는것이

디스크 조각 모음이다.

디스크 섹터들의 위치를 다시 재정렬하여 빈 공간을 채우고,

빈 공간을 한쪽으로 몰아서 쓰기 편하게 하는 방식을 의미한다.

 

즉, HDD와 같은 비휘발성 물리디스크의 경우에는 해당 방식이 매우 효과적이지만,

SSD와 같은 반도체 저장방식의 경우에는 효과가 떨어지고,

오히려 이 경우에는 R/W를 많이 하기 때문에 수명만 떨어지는 단점이 존재한다.