최근 업데이트: 2014년 7월 5일
들어가기에 앞서
먼저 TRIM 기능이 무엇인지 궁금하신 분들은 이 팁을 적용하기에 앞서 TRIM이 어떤 기능이며, SSD 사용자들이 이 기능을 사용하는 이유가 쉽게 잘 설명되어 있는 'SSD에서 TRIM은 무엇인가' 글을 참고해 주십시요. 또, 아무 문제 발생없이 팁이 잘 적용되는 것이 일반적인 경우지만 그래도 OS X 구동과 관련된 중요 시스템 파일을 다루기 떄문에 시스템에 문제가 발생할 가능성을 완전히 배제할 수 없음을 사전에 인지해 주셨으면 좋겠습니다.
목차
0. 들어가며
1. Chameleon SSD Optimizer
2. Trim Enabler
3. 터미널 명령어
들어가며
마이크로소프트 윈도우가 TRIM 기능을 일치감치 지원하기 시작한 반면 OS X은 비교적 최근인 스노우 레퍼드 10.6.8 버전부터 TRIM 기능이 도입되기 시작했습니다. 게다가 맥북에어나 레티나 맥북프로같이 SSD가 맥의 기본 사양이거나, 애플스토어에서 CTO 옵션을 통해 SSD를 장착한 경우에만 TRIM 기능을 '공식적으로' 지원하며, 써드파티 SSD 제품을 사용자가 임의로 장착한 경우 이 기능이 기본적으로 비활성화 되어있습니다. (스노우 레퍼드에서 라이언으로 넘어갈 때 혹시 TRIM 지원 범위가 써드파티 제품군까지 확대하지 않을까 하는 희망도 있었지만, 마운틴 라이언 GM 버전이 나온 지금까지도 브랜드에 따른 기능 제한이 아직 개방되지 않았습니다.)
다행히 사용자가 수동으로 TRIM 기능을 활성하 하는 다양한 방법들이 등장했고, 거의 대부분의 SSD 제품에 문제없이 적용할 수 있습니다. 최근에 새로 공개된 Chameleon SSD Optimizer 프로그램과 함께 기존부터 많이 알려져 있는 TRIM Enabler와 사용자가 터미널에서 직접 명령어를 입력하는 방법을 같이 정리해봤습니다.
TRIM 기능을 예전에 이미 한 번 활성화한 경우라도 시스템 업데이트를 한 경우나, 스노우 레퍼드나 라이언에서 마운틴 라이언으로 OS X을 완전히 갈아엎은 경우에도 TRIM 기능이 원상복구(비활성화)되기 때문에 이번에 OS X을 업데이트 하시는 분들이라면 잊지 마시고 TRIM 기능을 다시 살려주셔야 합니다.
먼저 사용중인 맥의 시스템 리포트에서 TRIM 기능이 활성화되어 있는지 그 여부를 먼저 확인해 주십시오.
TRIM 지원이 '예'인 경우 이미 TRIM이 활성화 되어 있다는 의미이며, '아니오'인 경우 아래 팁 중 하나를 선택해 TRIM 기능을 활성화해주시면 됩니다.
Chameleon SSD Optimizer
뒤에 소개할 두 방법에 비해 비교적 최근에 공개된 툴이라 인지도는 높지 않습니다만 프로그램의 이름처럼 TRIM 기능 활성화 뿐만 아니라 SSD와 관련된 다양한 부가 기능을 폭넓게 지원하고 있습니다. ▼
상단 툴바에 가지런히 나열된 4개의 아이콘을 볼 수 있는데, 첫번째 아이콘은 프로그램의 가장 주요 기능인 TRIM 기능의 활성화와 관련된 기능을 담고있습니다. 먼저 창 좌측 하단에 있는 자물쇠를 풀어 준 후 왼편에 있는 커다란 스위치를 ON쪽으로 드래그하면 TRIM 기능을 간단히 켜줄 수 있습니다. 오른쪽 상단의 More Disk Info 버튼은 현재 사용중인 SSD의 정보를 보여주는 기능이며, Repair Permission 버튼은 메인 볼륨에 저장된 파일의 권한을 복구 시켜주는 기능입니다.
두번째 아이콘은 SSD의 시리얼 정보와 펌웨어, SATA 3/6 연결 여부, 그리고 S.M.A.R.T 정보등을 표시해 주며, SSD의 온도센서가 OS X에 인식되는 제품의 경우 SSD의 현재 온도가 표시됩니다. (온도 정보는 SSD 제품마다 지원 여부가 다릅니다.) ▼
세번째 아이콘은 OS X의 특성들을 조절하는 고급 기능들이 들어가 있습니다. SSD의 경우 디스크 쓰기 횟수가 SSD의 수명과 반비례하는 특성이 있기 때문에 디스크 쓰기 횟수 줄일 수 있는 다양한 방법을 제공하고 있습니다. 단, SSD의 성능과 수명을 위해 시스템의 다른 부분이 불편해 질 수 있기 때문에 아직 맥과 OS X 사용이 익숙하지 않으신 분들이나 시스템 기본 특성을 변경하지 않으실 들은 가급적 원상태 그대로 놔두시는 것이 좋습니다. 또 '확인' 과정 없이 스위치를 움직이는 순간 특성이 바로 바뀌기 때문에 각별한 주의가 필요합니다. ▼
맥북프로의 경우 기기의 흔들림을 감지하는 모션 센서가 로직보드에 장착되어 있습니다. 이를 이용해 맥북프로에 강한 충격이 가해지거나 과도한 흔들림이 감지되는 경우 HDD의 작동을 일시 중지해(=헤드 파킹) HDD 파일내 데이터를 보호합니다. 하지만 맥에서 HDD를 제거하고 SSD를 장착하면 사실상 기능 자체가 유명무실해지기 때문에 Sudden Motion Sensor 스위치를 OFF로 놓아 모션 센서의 작동을 완전히 꺼줄 수 있습니다. ON에 두어도 일반적인 상황에서는 전혀 문제는 없지만 센서가 켜져 있는 경우 흔들림이 많은 환경에서 SSD IO 속도가 다소 감소한다는 보고가 있어 이렇게 센서 걔폐 옵션을 제공하는 것 같습니다. 혹, 메인베이에 HDD를 그대로 둔 채로 ODD를 제거하고 그 자리에 세컨베이(옵티베이)와 함께 SSD를 장착하신 분들은 이 옵션을 반드시 ON 상태로 놔두셔야 합니다.
그 밑의 Disable Local TM은 타임캡슐이나 타임머신용 외장하드가 맥에 연결되어 있지 않을 때 타임머신 저장본을 내장 저장 장치에 1차적으로 백업해 두었다 추후 타임머신에 연결되면 이 백업본을 타임머신에게 넘겨주는 OS X의 기본 특성을 비활성화하는 기능입니다. 타임머신용 외장 하드에 맥이 연결이 되지 않은 상태라 할지라도 시스템 환경설정에서 타임머신을 켜두신 경우 파일의 변화를 감지해 지속적으로 백업본이 생성되는데, 디스크 쓰기 횟수에 따라 수명과 성능이 감소하는 것을 조금이나마 더 연장해 줄 수 있습니다. 이 스위치를 ON으로 놓으면 로컬 백업본 생성을 막고 타임머신이 연결되어 있을 때만 백업 작업을 진행합니다. 아래 Disable Time Machine은 타임머신 기능 자체를 켜고 끄는 기능입니다.
OS X은 파일을 (수정하지 않고) 읽기만 해도 파일을 엑세스 한 시간 정보를 기록해 두는데 NOATIME를 ON으로 스위치를 옮기면 이런 작업이 생략되기 때문에 SSD에 파일을 쓰고 지우는 횟수가 줄어드는 효과를 볼 수 있습니다. (= SSD의 성능 유지 및 수명 연장에 긍정적인 효과)
Set Sleep Mode에서 A 모드는 전원이 항상 안정적으로 공급되는 데스크탑의 특성에 기인해 맥이 잠자기에 들어갈 떄 메모리내의 내용을 SSD에 저장하지 않는 데스크탑 맥의 기본값입니다. B 모드는 A 모드와는 반대로, 랩탑계열 맥의 기본값이며, 잠자기 상태 중에 배터리가 소진되더라도 시스템 상태를 잠자기 전으로 그대로 복원할 수 있도록 메모리의 내용을 SSD에 미리 복사를 해 놓는 방식입니다. C 모드는 메모리 내의 내용을 SSD에 저장하긴 하지만 전원 절약을 위해 메모리에 공급되는 전력을 차단합니다. (메모니 내의 정보는 삭제됨) 잠자기시 메모리에 전원을 공급해주지 않아도 되어 전력 소모를 줄일 수 있지만 램보다 느린 하드의 속도로 인해 잠자기 상태에서 일반 상태로 돌아오는데 다소 시간이 걸린다는 단점이 있습니다.
그 아래 Disable Sleep Image는 Set Sleep Mode와 유사한 기능으로 ON으로 스위치를 옮기면 잠자기시 메모리의 백업이미지가 SSD에 저장되지 않습니다. 따라서 Set Sleep Mode를 A에 두는 것이나, Set Sleep Mode를 B에 두고 Disable Sleep Image를 ON하시는 것이나 근본적으로 동일한 기능을 수행합니다.
카멜레온 다운로드
Trim Enabler
OS X 10.8.5 베타 버전을 설치하고 Trim 기능을 켜기 위해 간만에 Trim Enabler를 실행했더니 새로운 업데이트가 있다는 안내 화면이 나타났습니다. 버전 숫자가 2.2에서 3.0으로 껑충 뛴 '메이저' 업데이트인데, 기존에 모든 기능이 무료로 제공되던 것과는 달리 고급 기능이 도입되면서 앱이 부분 유료화로 바뀌었습니다. 핵심적인 기능은 새 버전에서도 계속 무료로 제공되지만, 새로 추가된 고급 기능을 사용하기 위해서는 10불 상당의 Pro 라이선스를 구매해야 합니다.
올드 앤 뉴
Trim Enabler 3.0의 가장 눈에 띄게 달라진 부분은 바로 iOS 7에서 그대로 가져온 듯한 플랫한 앱 디자인입니다. ▼
OS X용 프로그램이 iOS의 인터페이스 가이드라인을 따르고 있는 것인데… 개발자가 너무 앞서가고 있지 않나 하는 생각이 듭니다. 실제로 다른 OS X용 앱들과 썩 조화롭지 않은 모습을 보여주지만, 자주 실행할 필요가 없는 프로그램이니 크게 거슬린다거나 하지는 않는 것 같습니다.
새로 바뀐 디자인과 함께 메뉴 막대를 통해 앱을 이용할 수 있게 된 부분도 달라진 인터페이스 중의 하나입니다. ▼
Trim이 꺼져 있거나 디스크에 이상이 있을 경우 사용자에게 피드백을 주기 위한 기능 때문이 메뉴 막대 지원이 추가된 것 같은데, 사용자가 원할 시 메뉴 막대에서 창을 "뜯어내" 기존처럼 독립된 창의 형태로 이용할 수 있습니다. ▼
Trim Enabler가 제공하는 기능들은 다섯 가지 카테고리로 나뉘어져 있으며, 이중 가장 핵심이 되는 Trim 기능이 첫 화면에 나타납니다. 그 외 나머지 기능은 창 상단에 있는 탭을 클릭해 접근할 수 있습니다.
S.M.A.R.T. 정보 (Pro 버전에서만)
두 번째 탭은 S.M.A.R.T. 기능과 관련된 것으로 해당 기능을 통해 SSD나 HDD의 전반적인 건강 상태를 확인할 수 있습니다. 저장 장치는 사용 시간이 길어질 수록 점점 이상 징후가 나타나기 시작하는데, 중요한 자료의 유실을 막으려면 예방 차원에서 S.M.A.R.T. 정보를 주기적으로 모니터링 해주는 것이 좋습니다. ▼
다만 Trim 활성화 기능과 달리 해당 기능은 10불 상당의 Pro 버전 라이선스를 구매했을 때만 이용할 수 있습니다. ▼
기존 사용자 분들의 궁금증을 해결해 드리기 위해 '마루타'가 되어 보았습니다... ▼
Trim Enabler 3.0의 S.M.A.R.T. 란에는 저장 장치의 온도와 건강 상태는 물론 기존 버전에서는 확인이 불가능 했던 웨어 레벨링(Wear Leveling) 카운트, CRC 에러 카운트 등 표시되는 정보의 양이 상당히 많이 늘어났습니다. 또한, 현재 제 시스템에서는 테스트는 불가능하지만, 제작사에 따르면 디스크에 문제가 발생할 조짐이 보이면 데이터 소실을 막기 위해 사용자에게 피드백을 주는 기능이 마련되어 있다고 합니다. ▼
구 버전도 S.M.A.R.T. 관련 기능이 갖춰져 있지만, 표시되는 정보가 매우 부실한 편입니다. ▼
트윅 기능 (Pro 버전에서만)
트윅 탭을 통해 SSD 성능과 수명에 관련된 기능을 스위치 조작으로 간단히 켜고 끌 수 있습니다. 대부분 터미널 명령어로도 구현 할 수 있는 기능들이지만, 적용 방법이나 상태 파악을 간소화했다는 게 장점인 것 같습니다. 시스템의 민감한 부분을 건드리는 이런 기능들은 경우에 따라 부작용이 발생할 여지가 있으니 사용에 앞서 만전을 기하시기 바랍니다. ▼
맥북프로의 경우 기기의 흔들림을 감지하는 모션 센서가 로직보드에 달려 있습니다. 이를 이용해 맥북프로에 강한 충격이 가해지거나 과도한 흔들림이 감지되는 경우 HDD의 작동을 일시 중지해(=헤드 파킹) 하드디스크드라이브(HDD) 내 데이터를 보호합니다. 하지만 맥에서 HDD를 제거하고 SSD를 장착하면 사실상 기능 자체가 유명무실해지기 때문에 Sudden Motion Sensor 스위치를 OFF로 놓아 모션 센서의 작동을 완전히 꺼줄 수 있습니다. ON에 두어도 일반적인 상황에서는 전혀 문제는 없지만 센서가 켜져 있는 경우 흔들림이 많은 환경에서 SSD IO 속도가 다소 감소하고 배터리를 조금 더 많이 사용한다는 보고가 있어 이렇게 센서 걔폐 옵션을 제공하는 것 같습니다. 혹, 메인베이에 HDD를 그대로 둔 채로 ODD를 제거하고 그 자리에 세컨베이(옵티베이)와 함께 SSD를 장착하신 분들은 이 옵션을 반드시 ON 상태로 놔두시는 것이 좋습니다.
그 아래 Disable Sleep Image는 시스템이 잠자기에 들어갈 때 메모리 속에 내용을 SSD에 저장하지 않도록 하는 기능입니다. 메모리 보다 속도가 느린 SSD에서 데이터를 읽어올 필요가 없기 때문에 시스템이 잠자기 상태에서 더 빨리 깨어나고, SSD의 여유 공간이 크게 늘어난다는 장점이 있지만, 맥북 휴대시 배터리가 모두 소진되어 버리면 램 속의 데이터가 모두 지워지면서 작업 상태가 모두 날라갈 수 있다는 단점이 있습니다.
Disable Local Time Machine은 타임캡슐이나 타임머신용 외장하드가 맥에 연결되어 있지 않을 때 타임머신 저장본을 내장 저장 장치에 1차적으로 백업해 두었다 추후 타임머신에 연결되면 이 백업본을 타임머신에게 넘겨주는 OS X의 기본 특성을 비활성화하는 기능입니다. 이 스위치를 ON으로 놓으면 로컬 백업본 생성을 막고 타임머신이 연결되어 있을 때만 백업 작업을 진행합니다. 쓰기 작업을 줄여 SSD의 수명을 조금 더 연장하려는 시도 인것 같지만, 타임머신의 효용성이 저하되는 부분이 있어 사용에 주의가 필요합니다.
성능 벤치마크 기능 (Pro 버전만)
SSD 및 HDD의 읽기 쓰기 성능을 간단히 체크할 수 있는 기능입니다. 주기적으로 벤치마크를 수행해 성능 저하 여부를 점검할 수 있습니다. 아래는 퓨전 드라이브가 구성된 제 맥북프로의 디스크 성능을 측정한 것인데, 읽기 속도는 비교적 우수한 편이지만, 쓰기 속도는 예전보다 많이 떨어진 것으로 나타나고 있습니다. 개인적으로 성능 측정에서 끝낼 것이 아니라 시간 순서에 따라 벤치마크 결과를 저장하고 보여주는 기능이 있었으면 더 좋지 않았을까 생각힙니다. ▼
설정 (모든 버전에서 이용 가능)
매번 OS X을 업데이트할 때 마다 Trim 패치를 해주는 것을 깜빡하는 사용자를 알림 기능이 갖춰져 있습니다. 그밖에 화면에 표시되는 온도 단위를 설정할 수 있는 스위치와 맥을 부팅할 때 TrimEnabler를 같이 실행할 지 여부를 결정할 수 있는 스위치가 마련되어 있습니다. ▼
코멘트
고급 기능에 한해 (부분) 유료화가 적용되었지만, 2.X 버전의 핵심 기능은 새 버전에서도 여전히 무료로 이용하실 수 있습니다. 사실 새로 추가된 고급 기능들이 크게 매력적으로 다가오지는 않지만, SSD를 기본 탑재한 맥의 점유율이 점점 늘어남에 따라 Trim Enabler의 입지도 계속 줄어들 텐데 개발자를 격려하고 응원하는 차원에서 Pro 버전 라이선스를 구매하는 것도 나쁘지 않을 것 같습니다.
Trim Enabler 구 버전을 사용하고 계신 분들은 앱 내 업데이트 기능이나 다음 링크를 통해 으로 3.0 버전을 내려받으실 수 있습니다.
Trim Enabler 다운로드
터미널 명령어
그래픽 인터페이스 없이 터미널에 직접 TRIM 활성화 명령어를 입력하는 방법은 OS X이나 터미널 사용이 익숙하지 않은 분들이라면 다소 어렵게 느껴지실 수 있지만 단순히 복사+붙여넣기 수준이라 생각만큼 그리 어렵지 않습니다.. 또 TRIM 기능을 활성화하는 각각의 절차와 그 절차에 대한 시스템의 응답을 눈으로 바로 확인 할 수 있는 장점도 있습니다. 단, 일부 SSD의 경우 터미널 명령어 방식으로 TRIM이 제대로 활성화되지 않는 경우도 있으니 이 경우엔 앞의 두 프로그램을 한 번 이용해 보시기 바랍니다.
1) 먼저 시스템 파일 중 TRIM 기능을 담당하는 IOAHCIBlockStorage.kext파일을 백업합니다.
sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /IOAHCIBlockStorage.original
2) TRIM 기능을 활성하 하기 위해 아래 명령어를 입력해 줍니다.
OS X 매버릭스 10.9.4
sudo perl -pi -e 's|(^\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
OS X 마운틴 라이언 10.8.3부터 OS X 매버릭스 10.9.3까지
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
OS X 마운틴 라이언 10.8.1부터 10.8.2까지
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x4D)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
OS X 마운틴 라이언 10.8.0, OS X 라이언 10.7.4 및 그 이전 버전
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
3) 시스템에 등록된 kext 캐시 정보를 리빌드 하기 위해 다음 명령어를 차례대로 입력해 줍니다.
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches
4) 맥을 재부팅하고 TRIM이 성공적으로 활성화 되었는지 확인합니다.
** 혹시나 문제가 발생해 원래 IOAHCIBlockStorage.kext 를 복원해야 하는 경우 아래 명령어를 입력해 주시면 됩니다.
sudo cp /IOAHCIBlockStorage.original /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage