SSD에 관해 얘기할때 꼭 따라다니며 빠지지 않은. 손님이 있으니 바로 TRIM(이하 트림)이다.
트림이 작동하지 않으면 SSD가 느려지며 결국 포멧을 해야 한다. 라는 정도는 SSD사용자라면 누구나 아는
사항이며 윈도우 7이상과 리눅스 커널 3.0 이상에서는 자동으로 트림이 작동하나, 그 이하에서는
따로 트림을 작동 시켜줘야한다.
이렇게 시스템 포멧까지 하게 만드는 트림이란 대체 무엇인가?
먼저 OS의 데이터 삭제 알고리즘을 보자.
■■■■□ 이처럼 5개의 저장 공간이 있으며 앞에 4개는 데이터가 있는 상태다.
여기서 필요가 없어져서 앞에 두개의 데이터를 삭제 처리했을 경우. □□■■□ 이와 같이 변할 것이라고
생각하기 쉽지만, 데이터 값은 변함이 없다. 디스크 상태는 계속 해서■■■■□ 이며 앞에 2개의 공간을
사용할 수 있다는걸 OS가 알고 있다가 실제로 공간이 필요할 때 그 공간을 사용하게 되는 방식이다.
문제는 바로 여기서 발생하게 되는데. 처음에야 빈 공간이 얼마든지 있으니 빈공간을 사용하다 다 사용하면
삭제 처리된 공간을 사용하게 된다. 그런데 사실 데이터가 있는 상태니 있는 데이터를 먼저 삭제 한 후
새로운 데이터를 쓰게 되는 상황이 발생한다. 쉽게 요약하면 쓰기만 하면 되는 작업에서
삭제 후 쓰기를 해야 하는 상황이 발생하게 되는 것이다. SSD의 특성 상 삭제가 상당히 느리니.
당연히 시스템은 점점 느려지게 되는 것이다.
트림을 활성화 하면 유저가 삭제 처리한 공간을 유저가 다시 사용하게 될 때까지 방치 하는것이 아니라
시스템에 영향이 가지 않을 선에서 삭제 처리된 데이터를 실제로 삭제해 유저가 다음에 사용할 때를
대비한다.
그러면 하드디스크는 왜 트림이 필요 없으며, 데이터 삭제의 알고리즘이 저렇듯 실제로 데이터를 남겨 놓는
이유에 대해 간단하게 알아보자.
데이터 삭제의 알고리즘이 데이터를 실제로 삭제하지 않는 건, 그럴 필요가 없었기 때문이다.
HDD의 경우 똑같은 상황일 경우 SSD와는 다르다. SSD는 위에 언급한 것처럼 삭제 후 쓰기를 해야 하지만.
HDD는 덮어쓰기를 해 버림으로 그 공간에 데이터가 있던 없던 전혀 문제가 되지 않는다.
SSD가 덮어쓰기가 안되는 이유
SSD는 셀에 전자를 채우는 걸로 데이터를 나타낸다. 예를 들어 전자가 있으면 1 없으면0 (회사마다 다름)
즉 물리적으로 존재하는 셀에 무언가를 덮어 씌우는 건 불가능하다. 물이 가득 든 물컵에 더 이상 물을
채울 순 없다.
[polldaddy rating=”7739789″]
[…] 읽으시기 전(대체 TRIM이 뭐길래)글을 읽으시면 도움이 […]