우분투에서 SSD Trim 활성화하기

맥북 에어가 처음 세상에 나왔을 때만해도 SSD는 아무나 접근할 수 없는 고가의 물품이었지만 최근에 컴퓨터를 구매하신 적이 있으시다면 SSD가 달려있는 컴퓨터는 하나씩 있으실 겁니다.SSD는 하드 디스크와 달리 속도 면에서 매우 유리하죠. 아이패드나 스마트폰 등에 들어가는 플래시 메모리처럼 전기 신호를 사용하기 때문에 별도로 돌아가는 기계적인 원판(Disk)이 필요하지 않습니다. 고장도 덜나고, 전기도 덜먹고 발열도 훨씬 덜하죠.그런데 SSD를 쓰다보면 어느 순간부터 쓰기 속도가 크게 느려지는 경향이 있습니다. 바로 Garbage Data와 관련된 문제입니다. SSD와 하드디스크 간의 저장 방식의 차이 때문에 발생하는 이슈입니다. 하드디스크는 운영체제 상에서 데이터를 삭제하면 데이터가 있던 자리는 빈공간이 됩니다. 이 빈공간에 다시 데이터를 쓰고 할 수 있죠. 그렇지만 SSD는 운영체제 상에서 데이터를 삭제하면 데이터가 있던 자리는 비어있다는 표시만 될 뿐 실제로 빈공간이 되지 않습니다. 이 자리에 다시 데이터를 쓰려면 기존에 있던 데이터를 지우고 다시 써야합니다. 만약 공간이 많이 비어있다면 그냥 다른 자리에 쓰면 되지만, 이 공간이 가득 차게 되면 속도가 느려지는 것이죠.어려우시죠-_-;; 저도 어렵습니다. 30명이 있는 교실을 생각해보면 조금 쉽습니다. 하드디스크 방식이라면 데이터를 지울 때 학생들을 교실 밖으로 불러내어 빈 자리를 만듭니다. 여기엔 학생을 앉히든 무엇을 하든 가능하죠. SSD라면 데이터를 지울 때 학생을 불러내지 않고 학생이 아니라는 이름표만 바꿔 답니다. 그리고 이 자리에 새로운 학생을 앉히려면 원래 앉아있던 학생을 밖으로 불러내고 앉혀야 하기 때문에 어느 순간부터 쓰기 속도가 느려지는 것입니다.이런 문제를 방지하기 위해 운영체제에서는 주기적으로 SSD에서 데이터를 비워내주는 작업을 해주고 있는데 그 작업이 Trim입니다. 윈도에서는 제조사들의 별도 드라이버를 통해서 윈도7부터 가능했고, 맥OSX에서는 10.6 Snowleopard 부터 가능했죠. 우분투에서도 Trim이 그동안 안되던 것은 아닙니다만 기본적으로 세팅이 되어있지 않았습니다. 이것은 우분투 14.04에서도 마찬가지죠.우분투 14.04에서는 Trim을 사용하려면 두가지 방법이 있습니다. 한가지는 수동이고 한가지는 자동이죠.1. 먼저 수동 방법부터 보겠습니다. 우분투 14.04에서는 Trim이 기본적으로 탑재되어있다는 이야기가 나왔었는데요, 정확히 말하면 Trim 명령어가 기본 탑재되어있을 뿐이지 Trim이 자동으로 실행되지는 않습니다.1) 터미널에서 아래 명령어를 실행합니다.sudo fstrim / -v2) 그러면 아래와 같은 결과가 출력될겁니다./: 0 bytes were trimmed3) 테스트를 위해 엄청 커다란 파일을 복사했다가 삭제하고 위 명령어를 다시 실행해보면 /: 62124259 bytes were trimmed이런 식으로 나올겁니다.2. 위 방법으로 하면 수동으로 가능하지만 매우 귀찮은 일이죠 -_- 다른 운영체제에서는 자동으로 하고 있는 일을 우분투에서 수동으로 할 이유가 별로 없습니다. 자동으로 하기 위해서는 fstab에 discard 옵션을 붙여주면 됩니다.1) 터미널에서 아래 명령어를 실행합니다.sudo gedit /etc/fstab2) 텍스트 파일 내용 중 마운트된 파티션에 아래와 같은 내용을 찾습니다.(/ 외에 다른 디스크를 사용 중이시면 더 많이 있을 수 있습니다.)# / was on /dev/sda4 during installationUUID=16a1639f-b12f-4d12-9a12-543cc104e7ce / ext4 errors=remount-ro 0 13) 위 내용을 아래와 같이 변경해줍니다.(마운트하는 파티션에 discard 옵션을 붙여줍니다.)# / was on /dev/sda4 during installationUUID=16a1639f-b07f-4d55-9a67-500cc104e7ce / ext4 errors=remount-ro


,discard


0 1위 파일을 저장하고 재부팅합니다.그런 다음 1. 에서 했던 것처럼 큰 파일을 생성한 다음에 삭제해보고 sudo fstrim / -v 명령을 실행해봅니다. Trim이 제대로 작동하고 있다면 Trim 할게 없기 때문에 아래와 같이 나올겁니다./: 0 bytes were trimmed덧. 혹시 우분투에서 Trim을 활성화하기 위해 더 좋은 방법을 알고 계시면 제보 부탁드립니다 +_+