TRIM Enabler는 어떻게 작동합니까? 사용하여 TRIM을 활성화했습니다.

최근에 OCZ (Thread Part) SSD를 구입하고 Trim Enabler 를 사용하여 TRIM을 활성화했습니다. 일부 소프트웨어 업데이트로 인해 TRIM이 비활성화되어 TRIM Enabler의 작동 방식이 궁금했습니다.

  • TRIM을 지원하기 위해 일부 기본 KEXT를 사용자 정의 KEXT로 바꾸거나 단순히 PLIST 설정을 토글합니까?
  • 어느 쪽이든, 잠겨있을 때 TRIM을 활성화 된 상태로 유지할 수있는 파일이 있습니까 (부정적 결과없이)?


답변

트림 인 에이 블러는 다음 Kext-File을 패치합니다.

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

ssd가 타사 또는 Apple 브랜드 SSD인지 확인합니다.

IOAHCI 헥스 / 아스키 뷰

파일에서 모든 ‘Apple’항목을 찾아 16 진 편집기 또는 터미널을 통해 패치하여 수동으로 트림을 활성화 할 수도 있습니다.

##1. Backup old file
    $sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

##2. Patch the file to enable TRIM support
    $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. Clear the system kernel extension cache

   $sudo kextcache -system-prelinked-kernel

   $sudo kextcache -system-caches


답변

내가 찾을 수있는 유일한 정보는 FAQ / blogpost 항목입니다

A : Trim Enabler는 앱이 닫히거나 제거 된 경우에도 백그라운드에서 작동하는 기본 OSX Trim 드라이버를 패치합니다. 이 패치는 시스템 업데이트시 재설정되므로 앱을 유지하는 것이 좋습니다.


답변

OCZ SSD는 포 그라운드 가비지 수집 기능이 내장 된 Sandforce 컨트롤러를 사용하여 블록을 지울 필요가 없어져 TRIM 지원에 대한 필요성을 줄입니다. 트림은 가비지 수집에 도움이 될 수 있습니다.

트림 VS 가비지 콜렉션

간단한 설명을 위해 플래시 메모리는 데이터를 쓸 수있는 페이지 그룹으로 구성됩니다. 페이지가 작성되면 지울 때까지 다시 쓸 수 없습니다. 그러나 페이지는 일반적으로 블록이라고하는 128 페이지 그룹 내에서만 지울 수 있습니다. 이전에 쓴 데이터를 대체하는 임의 쓰기의 경우 데이터 쓰기의 복잡성이 실제로 증가하기 시작합니다. 무작위 쓰기는 새 데이터를 이전에 지워진 페이지에 다른 곳에 배치하여 “유효하지 않은 데이터 패치”로 유효한 데이터 블록을 제거합니다. 이러한 패치에 새 데이터를 쓰려면 전체 블록 (128 페이지 모두)을 지워야합니다. 그러나 먼저 유효한 데이터가있는 모든 주변 페이지를 읽고 빈 페이지로 다시 써야합니다. 새로 지워진 빈 페이지 블록은 새 데이터를 저장할 준비가되었습니다.

[…] 모든 NAND 플래시 기반 SSD는 GC를 사용합니다. 일부는 포 그라운드 GC를 사용하고 일부는 백그라운드 또는 유휴 시간 GC를 사용합니다. 그들 사이의 차이점은 내 블로그 http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/에 나와 있습니다. 간단히 말해서 백그라운드 가비지 콜렉션은 쓰기 증폭 (WA)을 증가시키고 SSD를 더 빨리 마모시킵니다. Foreground GC는 달성하기 어렵고 현재 SandForce 컨트롤러 만 할 수 있다고 생각합니다

[…] TRIM은 사용되는 가비지 수집 종류에 관계없이 모든 SSD에 유리합니다. TRIM이 어떻게 생겨 났는지, 그리고 내 블로그 http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del…에 필요한 이유에 대해 이야기합니다 . TRIM 명령은 가비지 콜렉션 중에 무시할 수있는 데이터 페이지를 식별하기 위해 OS에서 SSD로 전송됩니다. OS가 동일한 섹터를 사용하여 새 파일을 저장할 때까지 SSD가 어떤 파일이 삭제되었는지 알 수 없지만 SSD는 이미 유효하지만 SS에 알려진 데이터를 가비지 수집하여주기를 낭비했습니다.

HDD에 삭제 명령이 없다는 것을 알고 있습니까? SSD에 TRIM이 필요한 이유

SSD TRIM 유지 몇 년 전 스토리지 업계는 TRIM이라는 새로운 SATA 명령을 작성하여 OS와 SSD 간 솔루션을 개발하고 개발했습니다. SSD가 일부 사람들이 믿는 것처럼 데이터를 즉시 지우도록 명령하는 것은 아닙니다. 실제로 TRIM 명령은 SSD에서 이전에 사용 된 주소가 더 이상 유효한 데이터를 가지고 있지 않다는 메시지를 OS의 메시지로 생각할 수 있습니다. SSD는 해당 주소를 가져와 자체 플래시 메모리의 내부 맵을 업데이트하여 해당 위치를 유효하지 않은 것으로 표시합니다. 이 정보를 통해 SSD는 더 이상 GC 프로세스 중에 유효하지 않은 데이터를 이동하지 않으므로 유효하지 않은 데이터를 새 플래시 페이지에 다시 쓰는 데 시간을 낭비하지 않아도됩니다. 또한 플래시의 쓰기주기 수를 줄여 SSD 내구성을 높입니다.


답변