TRIM Enabler는 어떻게 작동합니까?


8

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

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

답변:


9

트림 인 에이 블러는 다음 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

1
이 물건을 어떻게 찾습니까?! TRIM Enabler를 실행하여 IOAHCIBlockStorage 파일을 "패치"한 다음 (관리자 권한으로) 잠그면 부작용이 발생합니까? 물론 새로운 PCIe SSD (MacBook에는없는)도 지원할 수 없지만 향후 업데이트로 인해 패치가 취소되지는 않습니까?
알렉산더-복원 모니카

내 최선의 추측 : 파일을 편집 할 수 없도록 잠그는 경우에도 업데이터는 파일을 새 파일로 완전히 바꿉니다. 전체 폴더에서 루트에 대한 쓰기 권한을 제거해야합니다. 이 특정 경우 폴더에 쓸 수 없으므로 설치 관리자가 실패한다고 가정합니다. 제 생각에는 문제가되지 않습니다. 업데이트 후 Trim Enabler를 시작하고 패치를 다시 적용하십시오.
Chrisii

@Chrisii 이것이 요세미티에서 작동하는지 알고 있습니까? kext 서명을 변경합니까?
thepen

@thepen 아직 테스트하지는 않았지만 파일을 수정하면 kext 서명이 변경되므로 kext 서명 확인을 비활성화해야합니다 (자세한 내용은 여기 cindori .org / trim-enabler-and-yosemite )
Chrisii

2

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

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


Apple이 새로운 ssd 드라이브 (WWDC에서 발표 한 새로운 ppcie ssd에 대한 생각)를 지원하기 위해 언급 된 커널 확장을 업데이트하기로 결정할 때 경로는 일반적으로 업데이트시 재설정됩니다.
Chrisii 2016 년

2

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 내구성을 높입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.