SSD TRIM
TRIM 이란 윈도우에서 파일을 지우면 SSD 에서도 실제로 파일을 지우는 기능입니다. SSD는 데이터를 쓰는 데에는 페이지 단위로 처리하고, 지우는데는 블록 단위로 처리를 하게 됩니다.
비어있지 않은(기존에 데이터가 남아 있는) 페이지에 데이터를 기록하기 위해선 반드시 먼저 해당 페이지의 데이터를 지워서(Erase) 비운 후 기록해야만 합니다. HDD 에선 간단하게 Overwrite 한 번으로 끝날 작업을 플래시 메모리에선 반드시 Erase -> Write 순으로 작업을 해야만 한다는 것이죠.
그래서 SSD 에서는 먼저 해당 블록의 전체 데이터를 SSD 내부의 캐쉬(DRAM)로 옮긴 후 블록을 비우고, 캐쉬에서 기존의 데이터와 새로운 데이터를 결합합니다. 그리고 최종적으로 이렇게 캐쉬에서 결합한 데이터를 다시 블록 전체에 기록해주는 과정을 거치게 됩니다.
TRIM 명령은 어차피 나중에 기록할 때 Erase 될 꺼 그냥 미리 적절히 Erase 시키는 것으로 운영체제로부터 이러한 정보를 받은 SSD 는 해당 파일이 담긴 페이지를 필요없는 쓰레기 페이지로 마크한 후, 적절한 알고리즘을 통해 적절한 시기에 해당 파일을 실제로 지워 페이지를 Empty 상태로 만듭니다. 이것이 바로 자동 TRIM 기능입니다.
SSD 에서는 가급적 제로필이나 통상적인 보안 삭제 도구를 통해 파일이나 공간을 삭제 하지 않는 것이 좋습니다. 자동 TRIM 기능이 켜져 있으면 알아서 자동으로 데이터가 지워지고, SSD 제조사에서 제공하는 Wiper 툴을 통해 수동 TRIM 을 진행해도 데이터가 지워집니다.
아래의 명령을 통해 자동 TRIM 여부를 확인할 수 있습니다.
fsutil behavior query DisableDeleteNotify
DisableDeleteNotify = 0 : TRIM 켜짐(활성)
DisableDeleteNotity = 1 : TRIM 꺼짐(비활성)
이러한 DisableDeleteNotify 값은 다시 아래의 명령을 통해 직접 설정할 수 있습니다. 이 때 해당 명령은 관리자 권한으로 실행되어야 합니다.
fsutil behavior set DisableDeleteNotify 0
(출처: 케플의 블로그 http://cappleblog.co.kr/503 )
오버 프로비저닝(Over Provisioning, OP)
오버 프로비저닝 공간은 웨어 레벨링, 가비지 컬렉션, 배드 블록 관리 등 SSD 를 운영하는데 필요한 핵심적인 기능들이 어떠한 상태에서도 원할하게 작동할 수 있도록 미리 마련된 예비 공간이라고 보시면 됩니다. 이렇게 오버 프로비저닝 공간이 마련되면 SSD 는 해당 오버 프로비저닝 공간을 활용하여 웨어 레벨링, 가비지 컬렉션과 같은 핵심 기능들을 최적화하게 됩니다. 이를 통해 SSD 의 성능이 항상 일정하게 유지되도록 해주고 수명 연장에도 도움을 주는 것이죠.
흔히 사용되는 용량을 기준으로 120GB 제품은 128GB 에서 8GB 가 모자라고, 250GB 제품은 256GB 에서 6GB 가 모자라며, 500GB 제품은 512GB 에서 12GB 가 모자라죠?
그렇게 모자란 공간이 내부 오버 프로비저닝 공간으로 활용되고 있다고 보면 됩니다.
일반 데이터 공간과 오버 프로비저닝 공간이 따로 분리되어 있지 않고, 관리 프로그램을 통해 수동으로 설정하거나, 일반 데이터 공간에서 일부 공간이 미리 설정된 "어떠한 조건"에 맞으면 자동으로 해당 공간을 오버 프로비저닝 공간으로 사용하는 구조를 가지고 있습니다.
SSD 관리 프로그램에서 오버 프로비저닝 공간을 설정하는 것을 도와주는 경우, 파티션 축소(볼륨 축소)를 통해 확보된 할당되지 않은 공간을 오버 프로비저닝 공간으로 설정합니다.
중요한 것은 SSD 에서는 웨어 레벨링 및 가비지 컬렉션과 같은 핵심적인 작업들이 원할하게 이뤄질 수 있도록 일정한 공간이 유지되어야 한다는 겁니다.
아울러
AHCI 모드 설정은 꼭 설정하시길 바랍니다. SSD 자체가 AHCI 모드에 최적화되어 있습니다.
댓글 없음:
댓글 쓰기