트림

From Hidden Wiki
Jump to navigation Jump to search

Trim

손질, 관리를 뜻하는 영단어. 대대적인 보수가 아닌 작은 단위로 잘라내는 등의 손을 봐서 상태를 호전시키는 것을 말한다. 예를 들어 모발을 크게 자르는 것이 아닌 모발 끝을 살짝 다듬는 경우나 정원수의 가지치기 같은 것에 쓸 수 있는 단어.

SSD의 기능

트림 (Trim; TRIM; Trim (computing))

SSD를 효율적으로 이용하기 위한 기능.

기본적으로 윈도우하드디스크[* 사실 옛날 플로피디스크에서부터 내려온 방법이다.]에 최적화된 파일 삭제 방식을 이용한다. 파일 삭제 명령을 내리면 파일 정보 테이블에서 연결 링크만 끊고 파일의 내용은 따로 삭제하지 않으며,[* 덤으로 이러한 작동구조 때문에 복구 프로그램을 쓸 수 있다.][* 그래서 HDD의 파일을 삭제하거나 이동할때는 빨리 되는 반면, 파일을 복사하거나 파일전송의 경우가 오래 걸린다.] 이후 새 파일을 기록할 때는 디스크에 그냥 내용을 덮어씌우는 식으로 이용한다. 하드디스크는 특성상 재기록에 의한 부하 및 수명 문제가 거의 없어서 문제가 없는 방식이다.

조금 더 자세히 들어가자면, 파일 정보 테이블은 컴퓨터에서 관리되며, 이 테이블의 링크는 컴퓨터만 알고있고 디스크는 알지 못한다. 따라서, 어떤 파일이 지워졌는지를 디스크는 알지 못한채 영원히 덮어쓰기만 수행하는것이다. 다시 말해 컴퓨터는 어떤 특정한 데이터를 지웠고, 해당 위치에 새로운 데이터를 기록한다고 생각하지만, 디스크는 어떤 특정한 데이터가 계속 유효한 데이터인데, 내용이 변경되어 "수정되었다"라고 생각한다는 것이다.

문제는, SSD에서 이용하는 플래시 메모리는 하드디스크와 다르게 데이터를 덮어씌울 수 없고, 셀의 정보를 완전히 지웠다가 다시 기록해야 한다. 그러나 불행히도 SSD는 기존의 하드디스크의 명령을 그대로 이용하는 시스템으로 제안되었기 때문에, 파일 정보 테이블에서만 연결 링크가 끊어진다. 더군다나 기존의 하드디스크에서는 이러한 "연결 링크의 끊어짐"이라는 정보를 하드디스크로 알려줄 필요가 없었기 때문에 알려줄 방법이 존재하지 않은 채 SSD의 도입을 맞이하게 되었다. 하지만, SSD 환경에서는 만약 파일링크만 날리고 데이터를 지우지 않는다면 이후 재기록시 먼저 데이터 셀을 지우는 작업을 추가로 해야해서 SSD의 쓰기속도가 저하된다. 이러한 속도 저하를 막으려면 미리 실제 데이터 셀을 지우는 작업을 해야한다. 이것이 trim이다. 자세한 작동원리와 개념은 [[1]] 참고.

해당 링크의 내용을 보완설명 하자면, trim은 두 가지 정책으로 나눠진다. 기본적으로 동일한 부분은, 컴퓨터로부터 SSD가 끊어진 링크의 데이터를 받는다는 것이다. 첫 번째 정책은 SSD의 링크 테이블만 끊는 방법이다. SSD는 자체적으로 파일 정보 테이블을 가지고 있다. 이것은 컴퓨터의 파일 정보 테이블과는 별도의 테이블로 SSD가 내부의 데이터 관리를 위해서 독자적으로 관리하는 테이블이다. 첫 번째 trim 정책에서는 이 테이블에서 링크의 데이터를 끊어두고, 실제 데이터는 "언젠가" 지워진다. 앞서 참조된 링크의 내용에서는 데이터가 사라짐을 목격했다고 하였으나, 최근의 SSD는 실제 데이터가 지워지지 않았어도, SSD 내부의 파일 정보 테이블의 링크가 끊어져있으면 데이터가 지워져있다고 ~~가라로~~알려준다.

두 번째 정책은 실제로 데이터를 지우는 방법이다. 이 방법은 앞서 언급한 셀의 정보를 지우는 부담을 안고 가기에 성능적인 문제점이 있다. 그러나, 첫 번째 정책과는 다르게 정말로 데이터가 지워져있으므로 바로 쓰기가 가능한 장점이 있다. 일장일단이 명확한 방법이므로 확실하게 SSD 내부의 데이터 및 여유공간 관리가 가능한 상황에서는 첫 번째 방법보다 이득을 볼 때가 있고, 이득을 보기 위해서는 제약사항이 필요하다는 것을 알 수 있다.

SSD가 처음 보급되기 시작했을 때는 운영체제에서 SSD의 특성을 제대로 지원하지 못하고 그냥 보통 하드디스크 다루듯이 이용해서 속도와 수명에 악영향을 끼쳤지만, 윈도우 7 이후의 운영체제는 trim을 지원하고 기타 SSD의 특성을 최대한 활용하여 좀 더 효율적으로 이용할 수 있게 되었다.

참고로 옵테인 메모리는 TRIM을 쓰지 않는다. 플래시 메모리와는 달리 구조가 RAM에 가깝기 때문.

설명

TRIM컴퓨팅에서 운영 체제가 어느 블록의 데이터가 더 이상 사용되지 않고 내부적으로 삭제될 수 있는지를 솔리드 스테이트 드라이브 (SSD)에 알려주는 명령이다. TRIM은 대개 대문자 그대로 사용하지만 명령어 이름이지 두문자어는 아니다.[1]

TRIM은 SSD가 전통적인 하드 디스크의 알맞은 대안으로 자리잡힌 직후에 도입되었다. SSD의 낮은 수준의 동작이 기존 하드 드라이브와 상당히 다른 까닭에 운영 체제가 삭제와 포맷과 같은 작업을 관리하는 일반적인 방식이 SSD의 예기치 않은 쓰기 성능 저하로 이어졌다.[2] TRIM은 차후 쓰기 속도를 상당히 떨어트리는 쓰레기 수집 오버헤드를 SSD가 미리 관리할 수 있게 한다.[3]

TRIM이 도입되기 이전에 일부 드라이브를 깨끗한 상태로 초기화하는 도구들이 존재했으나, 이 도구들은 드라이브의 모든 데이터를 지워야 했기 때문에 최적화 이용에는 실용적이지 못했다.[4] 최근에 출시되는 SSD들은 TRIM과 독립적으로 운용되는 내부 유휴/백그라운드 쓰레기 수집 매커니즘을 포함하고 있다. 다시 말해, TRIM을 지원하지 않는 운영 체제에서도 SSD의 성능을 성공적으로 유지시켜 주지만, 쓰기량의 증대와 플래시 셀의 마모의 단점이 있다.[5]

관련 문서

참조

  1. Template:웹 인용
  2. Template:웹 인용
  3. Shimpi, Anand Lal. (2009-03-18). p. 10.
  4. Shimpi, Anand Lal. (2009-03-18). p. 11.
  5. Template:웹 인용