본문 바로가기
영문 위키피디아 번역

(번역) Trim (computing)

by 다움위키 2023. 12. 26.

trim command (ATA 명령 모음에서는 TRIM, SCSI 명령 모음에서 UNMAP이라고 함)은 운영 시스템에게 더 이상 '사용 중'으로 여겨지지 않는 데이터 블록을 솔리드-스테이트 드라이브 (SSD)에 알리는 것을 허용하고 따라서 내부적으로 지워질 수 있습니다.

Trim은 SSD가 도입된 직후에 도입되었습니다. SSD의 저-수준 작업은 하드 드라이브와 크게 다르기 때문에, 운영 시스템이 삭제와 포맷과 같은 작업을 처리하는 전형적인 방식은 SSD에서 쓰기 작업의 예상치 못한 점진적인 성능 저하를 초래했습니다. 트리밍은 SSD에게 가비지 수집을 보다 효율적으로 처리하는 것을 활성화하며, 그렇지 않으면 관련 블록에 대한 향후 쓰기 작업이 느려질 수 있습니다.

비록 일부 드라이브를 새로운 상태로 "재설정"하는 도구가 트리밍이 도입되기 전에 이미 사용 가능했지만, 그것들은 드라이브의 모든 데이터도 삭제하므로 지속적인 최적화에 사용할 수 없습니다. 2014년까지, 많은 SSD는 트리밍과 독립적으로 작동하는 내부 백그라운드 가비지 수집 메커니즘을 가졌었습니다. 비록 이것이 트림을 지원하지 않는 운영 시스템에서도 성능을 성공적으로 유지했지만, 그것은 증가된 쓰기 증폭의 관련된 결점과 플래시 셀의 마모라는 단점을 가졌었습니다.

TRIM은 shingled magnetic recording (SMR) 하드 드라이브에도 널리 사용됩니다.

Background

많은 파일 시스템이 삭제 작업을 데이터 블록을 "사용하지 않음"으로 플래그 지정함으로써 처리하는 방법 때문에, 저장 매체 (SSD와 기존 하드 드라이브)는 일반적으로 어떤 섹터/페이지가 실제로 사용 중이고 어떤 것이 여유 공간으로 여겨질 수 있는지 알지 못합니다. 예를 들어 덮어쓰기 작업과 달리, 삭제는 데이터를 포함하는 섹터에 대한 물리적 쓰기를 포함하지 않을 것입니다. 공통적인 SSD는 사용되지 않는 블록/섹터 목록을 포함하여 파일 시스템 구조의 지식을 가지지 않기 때문에, 저장 매체는 블록이 사용 가능하게 되었다는 사실을 인식하지 못합니다. 이것은 종종 삭제-취소 도구에게 전자 기계식 하드 디스크에서 파일을 복구하는 것을 활성화하지만, 운영 시스템에서 파일이 "삭제됨"으로 보고되었음에도 불구하고, 그것은 역시 운영 시스템이 나중에 그것이 여유 공간으로 여기는 섹터 중 하나에 쓰기 작업을 수행할 때, 저장 매체의 관점에서 효과적으로 덮어쓰기 작업이 됨을 의미합니다. 자기 디스크에 대해, 기존 데이터 덮어쓰기는 빈 섹터에 쓰는 것과 다르지 않지만, 일부 SSD는 가장 낮은 수준에서 작동하는 방식 때문에, 덮어쓰기는 데이터를 빈 페이지에 쓰는 것과 비교하여 상당한 오버헤드를 생성하여 잠재적으로 쓰기 성능을 저하시킵니다.

SSD는 전형적으로 4에서 16kiB의 페이지로 그룹화되고, 전형적으로 128에서 512페이지의 블록으로 그룹화되는 플래시 메모리 셀에 데이터를 저장합니다. 예제: 512 kiB 블록은 각각 4 kiB의 128 페이지를 그룹화합니다. NAND 플래시 메모리 셀은 오직 그것들이 비어 있을 때 직접 쓰일 수 있습니다. 만약 그것들이 데이터를 포함하는 것이 발생하면, 컨텐츠는 쓰기 작업 전에 반드시 지워져야 합니다. SSD 쓰기 작업은 단일 페이지에 수행될 수 있지만, 하드웨어 제한으로 인해, 지우기 명령은 항상 전체 블록에 영향을 미칩니다; 결과적으로, SSD에서 빈 페이지에 데이터를 쓰는 것은 매우 빠르지만, 한 번 이전에 쓴 페이지를 덮어써야 하는 경우 속도가 상당히 느려집니다. 페이지는 다시 쓰기 전에 그것에서 셀의 지움이 요구되지만, 오직 전체 블록이 지워질 수 있기 때문에, 덮어쓰기는 읽기-지우기-수정-쓰기 주기를 시작할 것입니다: 전체 블록의 컨텐츠가 캐시에 저장되고, 그런-다음 전체 블록이 SSD에서 지워지고, 그런-다음 덮어쓴 페이지가 캐시된 블록에 기록되고, 오직 그런-다음 전체 업데이트된 블록이 플래시 매체에 기록될 수 있습니다. 이 현상은 쓰기 증폭으로 알려져 있습니다.

Operation

TRIM 명령은 운영 시스템에게 이상 유효한 데이터를 포함하지 않는 페이지의 SSD를 알리는 것을 활성화합니다. 파일 삭제 작업에 대해, 운영 시스템은 파일의 섹터를 새 데이터를 위한 여유 공간으로 표시하고, 그런-다음 TRIM 명령을 SSD로 보낼 것입니다. 트리밍 후, SSD는 플래시 메모리 페이지에 새 데이터를 쓸 때 블록의 임의의 콘텐츠를 보존하지 않을 것이며, 쓰기 증폭이 줄어들고 (쓰기 횟수 감소), 쓰기 처리량이 높아지는 결과를 초래하고 (읽기-지우기-수정 순서가 필요 없음), 따라서 드라이브 수명이 늘어납니다.

SSD마다 명령을 약간 다르게 구현하므로, 성능이 다를 수 있습니다.

TRIM은 SSD에 LBA 영역을 유효하지 않은 것으로 표시하도록 지시하고 해당 영역에 대한 후속 읽기는 임의의 의미 있는 데이터를 반환하지 않을 것입니다. 아주 짧은 시간 동안, 데이터는 여전히 내부적으로 플래시에 상주할 수 있습니다. 어쨌든, TRIM 명령이 실행되고 가비지 수집이 발생한 후에는, 법의학 과학자라도 데이터를 복구할 수 있을 가능성이 거의 없습니다.

Implementation

Operating system support

TRIM 명령은 오직 드라이브가 그것을 구현하고 운영 시스템이 그것을 요청하면 이익이 있습니다. 아래 테이블은 각 주목할만한 운영 시스템과 명령을 지원하는 첫 번째 버전을 식별합니다. 추가적으로, ATA 표준에 TRIM 명령의 추가 전에 설계된 오래된 솔리드-스테이트 드라이브는 펌웨어 업데이트가 필요할 것이고, 그렇지 않으면 새 명령이 무시될 것입니다. 어쨌든, 모든 각 드라이브가 트리밍을 지원하도록 업그레이드될 수 있는 것은 아닙니다.

TRIM에 대한 지원은 역시 운영 시스템의 특정 파일 시스템 드라이버가 수행할 수 있는 기능에 따라 달라지는데, 왜냐하면 디스크의 어느 부분이 여유 공간인지 이해하는 프로그램만이 안전하게 명령을 실행할 수 있고, 시스템 수준에서 이 기능은 파일시스템 드라이버 자체에 놓이는 경향이 있기 때문입니다.

운영 시스템 지원된 시기 비고
DragonFly
BSD
May 2011  
FreeBSD 8.1 – July
2010
지원은 8.1에서 블록 장치 계층에 더해졌습니다. 파일시스템 지원은 UFS를 시작으로 FreeBSD 8.3 및 FreeBSD 9에 더해졌습니다. ZFS 트리밍 지원이 FreeBSD 9.2에 더해졌습니다. FreeBSD 10은 소프트웨어 RAID 구성에서 트리밍을 지원합니다.
NetBSD October
2012
 
Linux 2.6.28–25
December
2008
Discard 작업에 대한 초기 지원이 2.6.28에서 FTL NAND 플래시 장치에 대해 더해졌습니다. ATA TRIM 명령에 대한 지원이 2.6.33에 더해졌습니다. 모든 파일 시스템이 트림을 사용하는 것은 아닙니다. 트림 요청을 자동으로 실행할 수 있는 파일 시스템 중에는 ext4, Btrfs, FAT, GFS2, JFS, XFS, 및 NTFS-3G가 있습니다. 어쨌든, 일부 배포판에서, 지원되는 SSD에서 예약된 트리밍을 위해, 이것은 성능 문제로 인해 기본적으로 비활성화되어 있습니다. Ext3, NILFS2OCFS2는 오프라인 트리밍을 수행하기 위한 ioctl을 제공합니다. TRIM 사양은 트림 범위 목록을 지원에 대해 호출하지만, 커널 3.0에서 트림은 오직 더 느린 것인 단일 범위에서 호출됩니다.
많은 최신 리눅스 배포판에서, systemd는 fstrim.timer 단위를 제공하여, fstrim.timer를 활성화하면 fstrim.service를 매주 실행할 것입니다.
macOS 10.6.8–23
June 2011
비록 AHCI 블록 장치 드라이버가 10.6.6 (10J3210)에서 장치가 TRIM 작업을 지원하는지 여부를 표시하는 기능을 얻었지만, TRIM 작업이 IOStorageFamily을 통해 노출되고 파일 시스템 (HFS+)이 더해졌을 때, 0.6.8까지 기능 자체에 접근할 수 없었습니다. 10.10.4까지, Mac OS X은 기본적으로 Apple-브랜드 SSD에 대해서만 TRIM을 활성화했습니다; 타사 유틸리티는 다른 브랜드에서 트림을 활성하기 위해 사용할 수 있습니다. 이전 타사 TRIM 드라이버는 Yosemite 업데이트로 작동을 멈췄습니다. 이제 OS X Yosemite에서 작동하는 업데이트된 드라이버가 있습니다. Mac OS X 업데이트 10.10.4에서, Apple은 타사 SSD에서 TRIM을 활성화하기 위해 사용될 수 있는 명령줄 유틸리티, trimforce를 추가했습니다.
Microsoft
Windows
Windows 7
and Windows
Server 2008
R2 – October
2009
Windows 7은 처음에 병렬 ATA직렬 ATA를 포함한 AT Attachment 제품군의 드라이브에 대해서만 TRIM을 지원했었고, 장치 자체가 명령을 수락하더라도 Storport PCI-Express SSD를 포함한 임의의 다른 장치에 대해서는 이 명령을 지원하지 않았습니다. 기본 Microsoft 드라이버와 함께 TRIM 명령이 AHCI 및 레거시 IDE / ATA 모드의 Windows 7에서 작동하는 것으로 확인되었습니다. Windows 8과 그 이후의 Windows 운영 시스템은 NVMe를 기반으로 하는 PCI Express SSD에 대한 트림을 지원하고, USB Attached SCSI Protocol (UASP)를 포함하여 SCSI 드라이버 스택을 사용하는 장치에 대해 직렬 ATA에서 TRIM 명령과 완전히 유사한 unmap 명령을 지원합니다. . Microsoft는 PCIe SSD에 대해 TRIM을 포함하여 NVM Express 지원을 추가하는 Windows 7에 대한 업데이트를 출시했습니다. TRIM은 비활성화를 위해 DisableDeleteNotify 스위치를 구현하는 ReFSNTFS 둘 다에 대해 지원되는 것으로 알려져 있습니다. 출처는 다른 파일시스템에 대한 TRIM 지원이 존재하는지 여부에 동의하지 않습니다.
OpenSolaris July 2010  
Android 4.3 – 24
July 2013
장치가 1시간 이상 유휴 상태이고 80% 이상 충전되면 (충전기에 연결되면 30%), 최대 24시간마다 fstrim을 자동으로 실행합니다.

RAID issues

2017년 1월 당시, TRIM 명령에 대한 지원은 대부분의 하드웨어-기반 RAID 기술에서 구현되지 않습니다. 어쨌든, 소프트웨어 RAID 구현은 종종 TRIM에 대한 지원을 포함합니다.

Windows

Windows 10은 RAID 볼륨을 구성할 때 "드라이브 최적화" 옵션을 사용하여 SSD RAID 볼륨에서 TRIM을 지원합니다.

macOS

macOS RAID 드라이버는 TRIM을 지원하지 않습니다. 이것은 10.7부터 macOS 10.12.x까지의 모든 Mac OS X 버전에 해당됩니다.

타사 SoftRAID® 응용 프로그램을 사용할 때 타사 SSD 장치에 대한 TRIM 지원을 포함하여 RAID (0,1,4,5 & 10) 볼륨에 대해 TRIM이 지원됩니다. (주목: 비-Apple SSD 장치에 대한 TRIM은 터미널 명령 "sudo trimforce enable"을 사용하여 구체적으로 활성화되어야 합니다)

Linux

TRIM은 BIOS-지원 "가짜 하드웨어 RAID" 지원을 구현하고, 이제 RAID 배열에 놓이는 파일 시스템에서 임의의 TRIM 요청을 통과하는 리눅스 커널의 dmraid의 2011년 1월 이후 릴리스에서 RAID 볼륨과 함께 사용할 수 있습니다.

dmraid와 혼동해서는 안되며, 리눅스의 범용 소프트웨어 RAID 시스템, mdraid는 시스템이 파일시스템에서 mdtrim 유틸리티를 주기적으로 실행하도록 구성될 때 RAID 1 배열에서 일괄처리-기반 (파일 삭제 시 라이브가 아닌) TRIM을 실험적으로 지원합니다 (기본 TRIM 지원이 없는 ext3과 같은 것들도 포함). Red Hat Enterprise Linux 6.5 이상과 같은 이후 버전의 리눅스에서, mdraid는 실제 일괄-처리 작업이 아닌 실시간으로 TRIM 명령을 통한 전달을 지원합니다.

어쨌든, Red Hat은 대부분의 RAID 기술과 함께 SSD에서 소프트웨어 RAID 레벨 1, 4, 5, 6을 사용하지 말 것을 권장하는데, 초기화 중에 대부분의 RAID 관리 유틸리티 (예를 들어, 리눅스의 mdadm)가 체크섬 (또는 드라이브-대-드라이브가 RAID 1 및 10의 경우에서 입증함)이 제대로 작동하는지 보증하기 위해 장치에서 모든 블록에 쓰며, SSD에게 예비 영역 이외의 모든 블록이 사용 중이라고 믿게 하는 원인을 초래하여, 성능을 크게 저하시키기 때문입니다.

다른 한편으로, Red Hat은 SSD에서 LVM RAID에 대해 RAID 1 또는 RAID 10의 사용을 권장하는데, 왜냐하면 이들 레벨은 TRIM (리눅스 용어로 "discard")을 지원하고, LVM 유틸리티는 RAID 1 또는 RAID 10 볼륨 생성할 때 모든 블록에 쓰지 않기 때문입니다.

2010년 3월 잠시 동안, 사용자들은 Intel Rapid Storage Technology (RST) 9.6 드라이버가 RAID 볼륨에서 TRIM을 지원한다고 믿게 되었지만, Intel은 나중에 AHCI 모드 및 RAID 모드의 BIOS 설정에 대해 TRIM이 지원된다고 밝혔지만, 드라이브가 RAID 볼륨의 일부인 경우에는 그렇지 않았습니다.

2012년 8월 당시, Intel은 Rapid Storage Technology (RST) 11.2 드라이버를 갖는 7-시리즈 칩셋이 Microsoft Windows 7에서 RAID 0에 대한 TRIM을 지원함을 확인했습니다. 인텔은 6-시리즈 칩셋에 대한 지원을 확인하지 않았지만, RAID 0 볼륨의 TRIM은 수정된 RAID 옵션 ROM을 갖는 하드웨어 애호가에 의해 Z68, P67, 및 X79 칩셋에서 작동하는 것으로 나타났습니다. 6-시리즈 칩셋에 대한 공식 지원이 부족한 것은 기술적인 이유가 아니라 검증 비용 또는 소비자의 업그레이드를 유도하려는 시도 때문인 것으로 추측됩니다.

X79 칩셋을 갖는 마더보드에서 수정된 옵션 ROM에 대해 필요한 예외는 제조업체가 ROM 스위치를 추가하는 것입니다; 이것은 BIOS/UEFI 내부에 있는 RST 및 RST-E ROM을 모두 수반합니다. 이것은 RST-E ROM 대신 사용될 RST ROM을 허용하여, TRIM을 작동하도록 허용합니다. Intel은 ROM과 같은 버전의 드라이버를 사용함으로써 최상의 성능을 얻을 수 있다고 말합니다; 예를 들어, BIOS/UEFI가 11.0.0.0m 옵션 ROM을 가지면, 11.x 버전 드라이버가 사용되어야 합니다.

Enabling unsupported filesystems

파일 시스템이 자동으로 TRIM을 지원하지 않는 곳에서, 일부 유틸리티는 수동으로 트리밍 명령을 보낼 수 있습니다. 보통 그것들은 사용 가능한 블록을 결정하고 그런-다음 이들 목록을 일련의 트리밍 명령으로 드라이브에 전달합니다. 이들 유틸리티는 다양한 제조업체 (예를 들어 Intel, G.Skill) 또는 일반 유틸리티 (예를 들어, v9.17부터 리눅스의 hdparm "wiper", 또는 위에서 언급한 mdtrim)에서 사용할 수 있습니다. hdparm과 mdtrim은 모두 파일시스템에 큰 파일을 할당하고 할당된 물리적 위치를 확인함으로써 여유 블록을 찾습니다.

임의의 운영 시스템에서, 드라이브는 컴퓨터가 블록에 모두-영을 기록할 때를 감지하고, 영들의 블록을 기록하는 대신 해당 블록을 할당-해제 (트림)할 수 있습니다. 만약 할당 해제된 블록을 읽는 것이 항상 영들을 반환하며, 이 손쉬운 방법은 사용되지 않는 영역에 더 빠르게 쓰는 일반적인 이점 외에도 모두-영 블록의 더 빠른 쓰기 (및 읽기)를 제외하고 사용자에게 투명합니다. 운영 시스템은 파일 또는 여유 공간을 "지우기"하기 위해 모두-영을 쓰지 않지만, 일부 유틸리티는 그렇게 합니다.

Hardware support

ATA

TRIM 명령 사양은 International Committee for Information Technology Standards (INCITS)의 T13 기술 위원회에 의해 주도되는 AT Attachment (ATA) 인터페이스 표준의 일부로 표준화되어 왔습니다. TRIM은 ACS-2 사양 초안의 DATA SET MANAGEMENT 명령 (opcode 06h)에 따라 구현됩니다. ATA 표준은 병렬 (IDE, PATA)와 직렬 (SATA) ATA 하드웨어에서 모두 지원됩니다.

원래 ATA TRIM 명령의 약점은 대기열에 넣을 수 없는 명령으로 정의되고 따라서 대기열에 있는 읽기와 쓰기 작업의 정규 작업 부하와 쉽게 혼합될 수 없다는 것입니다. SATA 3.1은 이 문제를 해결하기 위해 대기 중인 TRIM 명령을 도입했습니다.

ATA IDENTIFY DEVICE 명령에서 반환된 SATA 워드 69와 169에 의해 정의된 다양한 유형의 TRIM이 있습니다:

  • 비-결정적 TRIM: TRIM 후 논리 블록 주소 (LBA)에 대한 각 읽기 명령은 다른 데이터를 반환할 수 있습니다.
  • 결정적 TRIM (DRAT): TRIM 후 LBA에 대한 모든 읽기 명령은 같은 데이터를 반환해야 하거나, 결정적이 됩니다.
  • TRIM 후 결정적 읽기 Zero (RZAT): TRIM 후 LBA에 대한 모든 읽기 명령은 영을 반환해야 합니다.

드라이브가 지원할 수 있는 DATA SET MANAGEMENT 명령당 최대 512-바이트 블록 수를 설명하는 SATA Word 105에 추가 정보가 있습니다. 전형적으로 기본값은 8 (또는 4kB)이지만 많은 드라이브는 TRIM에 대한 Microsoft Windows 하드웨어 요구 사항을 충족하기 위해 이 값을 1로 줄이며, 해당 명령 완료 시간은 20 ms 또는 8 ms × (LBA 범위 항목 수) 중 더 큰 것을 초과하지 않아야 하고, 항상 600ms 미만이어야 합니다.

개별 LBA 범위는 LBA 범위 항목이라고 하고 8 바이트로 표시됩니다. LBA는 LBA 범위 항목의 처음 6바이트로 표시되고 범위 길이는 나머지 2바이트로 표시되는 0부터 시작하는 카운터 (예를 들어 0=0 및 1=1)입니다. 만약 이-바이트 범위 길이가 영이면, LBA 범위 항목이 패딩으로 삭제됩니다. 이것은 장치가 지원하는 TRIM 범위의 각 512바이트 블록에 대해 최댓값은 32MB, 또는 2GB의 64개 범위임을 의미합니다. 만약 장치가 8에서 SATA Word 105를 지원하면 단일 TRIM (DATA SET MANAGEMENT) 명령으로 16GB를 트리밍할 수 있어야 합니다.

SCSI

SCSI는 UNMAP 명령 (TRIM의 완전한 아날로그)와 UNMAP 플래그 집합을 갖는 WRITE SAME 명령 (10 및 16 변형)을 제공합니다.

SD/MMC

MultiMediaCardSD ERASE (CMD38) 명령은 ATA TRIM 명령과 유사한 기능을 제공하지만, 지워진 블록을 영 또는 일로 덮어써야 함을 요구합니다. eMMC 4.5는 폐기된 블록의 내용이 불확실한 것 (즉, "don't care")으로 여겨질 수 있다는 점에서 ATA TRIM과 보다 밀접하게 일치하는 "discard" 하위-작업을 추가로 정의합니다.

NVM Express

NVM Express 명령 집합은 블록 범위 집합의 저장소 장치에 호스트의 의도를 암시하는 일반 Dataset Management 명령을 가집니다. 작업 중 하나, deallocate는 트림을 수행합니다. 그것은 역시 deallocate 힌트를 제공하고 디스크에 트림을 허용하고 영을 반환하는 Write Zeroes 명령을 가집니다.

Disadvantages

  • 일부 거부 가능한 암호화 계획은 전체 디스크를 임의의 가비지처럼 보이게 만드는 것을 포함합니다. TRIM을 사용하면 생성된 모두-영 (또는 모두-일) 블록이 사용되는 블록을 쉽게 나타내므로 이 그럴듯한 거부-가능성의 계층을 무효화합니다. TRIM을 비활성화하는 것도 의심스러울 수 있다는 주장이 있어 왔습니다.
  • TRIM 명령의 원래 버전은 T13 소위원회에 의해 대기열에 없는 명령으로 정의되어 왔고, 따라서 부주의하게 사용되면, 예를 들어, 각 파일 시스템 삭제 명령 후에 전송되면 막대한 실행 페널티를 초래할 수 있습니다. 대기열에 없는 명령의 본성은 드라이버에게 먼저 모든 미해결 명령이 완료될 때까지 기다렸다가 TRIM 명령을 실행하고, 그런-다음 일반 명령을 재개해야 하는 것을 요구합니다. TRIM은 SSD에서 펌웨어에 따라 완료하기 위해 많은 시간이 걸릴 수 있고, 가비지 수집 주기를 유발할 수도 있습니다. 이 페널티는 시스템 사용률이 최소일 때 시간에 배치 작업을 예약함으로써 모든 각 파일 삭제 시 트리밍이 아닌 일괄-처리된 TRIM을 주기적으로 수행하는 해결책에서 최소화될 수 있습니다. 이 TRIM 단점은 Queued TRIM Command의 도입으로 직렬 ATA 개정 3.1에서 극복되었습니다.
  • 대기 중인 TRIM에 대한 지원을 잘못 보고하거나 구현에 심각한 버그를 갖는 결함 있는 드라이브 펌웨어는 여러 장치, 특히 Micron 및 Crucial의 M500 및 Samsung의 840 및 850 시리즈에서 심각한 데이터 손상과 관련이 있습니다. 데이터 손상은 리눅스 운영 시스템 (2015년 7월 1일 당시 대기열 트림 지원이 있는 유일한 OS)에서 확인되었습니다.

이들 장치는 대기 중인 TRIM 명령 대신 이들 드라이브에 대기열에 없는 TRIM 명령 (ATA_HORKAGE_NO_NCQ_TRIM)을 강제로 보내기 위해 리눅스 커널의 libata-core.c에서 블랙리스트에 올라 있습니다:

  • Micron/Crucial M500 using all firmware versions including factory recertified SSDs
  • Micron M510 using firmware version MU01
  • Micron/Crucial M550 using firmware version MU01
  • Crucial MX100 using firmware version MU01
  • Samsung 840 and 850 series SSDs using all firmware versions

이 파일은 역시 TRIM이 문제될 때 잘못된 블록에 데이터를 잃게 하는 원인으로 인해 일반적으로 TRIM에 대해 SuperSSpeed S238을 블랙리스트에 올립니다.

libata-core.c는 역시 많은 드라이브가 그러는 것처럼, 그것들을 무시하는 것이 아니라 DRAT와 RZAT 플래그 (ATA_HORKAGE_ZERO_AFTER_TRIM)를 올바르게 구현하기 위해 하위-시스템의 유지 관리자에게 안정적으로 알려진 SSD를 나열하는 화이트리스트가 있습니다. 하이트리스트된 드라이브는 다음과 같습니다:

  • Crucial SSDs
  • Intel SSDs excluding the Intel SSD 510
  • Micron SSDs
  • Samsung SSDs
  • Seagate SSDs

External links