fbpx
维基百科

Trim命令

Trim命令ATA命令集中称为TRIMSCSI命令集英语SCSI command中称为UNMAP),它使操作系统能通知固态硬盘(SSD)哪些数据块已不再考虑使用,可以被内部擦除。[1]

Trim命令几乎是与SSD同时推出的。这是因为SSD的底层操作方式与传统机械硬盘有着显著不同,若操作系统沿用传统方法处理诸如删除和格式化等操作,会导致SSD的写入性能发生下降。[2]Trim(意为修整、修剪、裁剪)使SSD能更有效地完成垃圾收集的工作,而不用牺牲对存储块的写入速度。[3]

尽管在引入Trim命令前,有些工具(比如“Reset”命令)已经可以将驱动器“重置”为空状态,但这些操作会删除驱动器上的所有数据,因而无法用于持续性优化。[4]许多SSD拥有厂商自己的后台垃圾收集机制,这些工具和Trim命令互相独立,使不支持Trim命令的操作系统能完成与之类似的工作,却依然存在写入放大的现象,往往也会导致存储块寿命过早地衰减。[5]

快閃記憶體磁碟機特有的問題

因为许多文件系统以标记数据块为“未使用”来处理删除操作,[6][7]而非真正“清空”数据,因此存储介质(传统硬盘、SSD)通常不知道哪个扇区/页是正在使用,哪些可被认作空闲空间,这与重写(rewrite)操作不同,删除操作不涉及对数据所在扇区/页的物理写入。SSD等存储介质通常不负责管理文件系统(例如未使用的数据块/扇区表),也无法获知哪些数据块/扇区已经可用。这使反删除英语Undelete工具能通过更底层的方法,从传统的机械硬盘上恢复文件,[8]因为尽管操作系统报告用户文件已被“删除”,并腾出了存储空间。但在存储介质上,文件所在的扇区只有在下一次写入时,旧数据才会被覆盖,从存储介质的角度看,“删除”操作更接近于“重写”。对于机械磁盘来说,这与写入空扇区没有区别,但因为SSD最底层的一些特性,与将数据写入空页相比,重写会有显著的开销,从而潜在地削弱写入性能。[9]

SSD在闪存单元中通常以4-16kB为一组来存储数据(称之为页),每128-512kB的页组合成更大的一组(称之为块或数据块)。举例来说,某一品牌的SSD将4kB的数据组合成一页,其数据块大小是512kB,每一数据块包含128个页。NAND闪存单元只能在处于空状态时写入。如果它们包含数据,则执行写操作前必须擦除其内容。SSD一次写入最少一页,但由于硬件限制,擦除数据时将会抹除整个数据块;[10]因此将数据写入到SSD上的空页时非常快,而写入已有数据的页就会明显变慢。这是因为页被再次写入前需要擦除数据,但SSD只能擦除一整个数据块,随后把数据块中的其他数据以改写的方式(按“读取、擦除、修改、写入”的方式)完成;[11]整个块的内容会先存储在缓存中,然后在SSD中擦除整个块,再将改写的页写入到缓存的块,最后再将更新的块写入闪存介质。这种现象也称写入放大[12][13]

操作

TRIM命令使SSD可以从操作系统处得知哪一部分数据将永远不会被访问。对于删除操作,操作系统会将整个数据块标记为可用于新数据,然后向SSD发送TRIM命令。SSD完成这一操作后,在新的数据写入这一页时,SSD将刷新整个块的数据,而不保留块中其他页原本的内容,从而缓解写入放大现象(写入次数更少),并提供更高的写入吞吐量(不需要执行读取、擦除、修改),还能显著延长驱动器寿命。

不同的SSD实现的方式有所不同,因此性能可能也有所差异。

TRIM命令通知SSD从LBA(Logical Block Addressing)区域上标记为无效,从逻辑层上对该区域进行读取将不会返回有效数据。从物理层面看,数据仍可能短时间驻留在闪存内部,SSD彻底完成垃圾回收的工作之后,恢复数据几乎是不可能的;[14]这不同于机械硬盘中被删除的数据可能被数据恢复

实现

操作系统支持

Trim仅在支持它的操作系统上有效。下表列出了各个重要的操作系统支持该命令的首个版本。此外,在TRIM命令添加到ATA标准之前设计的旧款固态驱动器需要更新固件(如果有)才能支持Trim,否则将忽略这个新命令。

操作系统 支持始自 备注
DragonFly BSD 2011-052011年5月[15]
FreeBSD 2010-078.1 - 2010年7月[16] 在8.1中的块设备层中添加了支持。文件系统支持在FreeBSD 8.3和FreeBSD 9中添加,随Unix文件系统(UFS)而来。[17]ZFSTrim支持在FreeBSD 9.2中添加。[18][19]FreeBSD 10支持在软件RAID上配置Trim。[20]
NetBSD 2012-102012年10月[21]
Linux 2008-12-252.6.28–2008年12月25日[22] 最初在2.6.28中添加了对FTL NAND闪存设备的discard(丢弃)操作符的支持。对ATA TRIM命令的支持在2.6.33中添加。[23]

并非所有文件系统都能使用trim。可以自动发出修剪请求的文件系统有Ext4[24]Btrfs[25]FATGFS2英语GFS2JFS[26]XFS[27]但是由于性能问题,在受支持SSD上进行定期修剪默认情况下已被禁用[28][29]Ext3NILFS2英语NILFS2OCFS2英语OCFS2提供Ioctl来执行离线修剪。TRIM规范称支持修剪特定范围列表,但截至内核3.0,修剪仅能较慢地逐个调用单个范围。[30]

MacOS 2011-06-2310.6.8–2011年6月23日[31] 尽管AHCI块设备驱动程序在10.6.6 (10J3210)中得到了显示设备是否支持TRIM操作的功能[32],该功能本身仍不可用,直至10.6.8暴露通过IOStorageFamily执行TRIM操作,以及文件系统(HFS+)的支持。[來源請求]直到10.10.4,Mac OS X只为苹果品牌的SSD原生启用TRIM;第三方实用程序可使其适用于其他品牌。旧的第三方TRIM驱动程序在Yosemite更新时已停止工作。[33] 现已有更新的适用于OS X Yosemite的驱动程序。[34][35] 在Mac OS X更新10.10.4(页面存档备份,存于互联网档案馆)中,苹果公司添加了一个命令行使用工具trimforce,它可以用于为第三方SSD启用TRIM。[36]
Microsoft Windows 2009-10Windows 7和Windows Server 2008 R2 - 2009年10月[37][38] Windows 7最初支持的TRIM仅适用于包括ATASATA的AT Attachment系列中的驱动器,并不对任何其他包括Storport PCI-Express SSD设备支持此命令,即使即使设备本身将接受该命令。[39]已确认Windows 7上AHCI和旧有IDE/ATA模式下的原生微软驱动支持TRIM命令。[40]Windows 8及之后版本的Windows操作系统支持基于NVMe的PCI Express SSD的trim,以及来自SATA的TRIM命令完全模拟的unmap命令,用于使用SCSI驱动程序堆栈的设备。微软已为Windows 7发布一个KB2990941(页面存档备份,存于互联网档案馆)更新,这在使用DISM集成到Windows 7安装程序时增加NVM Express的支持,包括对PCIe SSD设备的TRIM。
OpenSolaris 2010-072010年7月[41]
Android 2013-74.3[42] - 24 July 2013[43] 每24小时自动运行fstrim,仅在设备已空闲至少1小时并且电量80%(如果已连接充电器则30%)时执行。[42]

RAID问题

截至2017年1月 (2017-01),大多数基于硬件的RAID技术未实现TRIM命令的支持。但是,软件实现的RAID通常提供了TRIM支持。

Windows:

Windows 10为SSD RAID卷在配置一个RAID卷时通过“优化驱动器”选项提供了TRIM支持。

Mac OS:

macOS RAID驱动程序不支持TRIM。自Mac OS X 10.7至macOS 10.12.x的所有版本均是如此。

对于使用第三方SoftRAID®应用程序的RAID(0,1,4,5和10)卷支持TRIM,包括使用非苹果品牌SSD设备的TRIM支持。 (注:非苹果品牌的SSD设备必须使用终端命令“sudo trimforce enable”来启动TRIM)

Linux:

2011年1月以后的Linux内核中dmraid英语Device mapper的发布版本已实现BIOS辅助的“假硬件RAID”支持,并且现在通行来自RAID阵列上的文件系统的任何TRIM请求。[44]


不同于dmraid,Linux的常规目的软件RAID系统mdraid英语Mdadm有实验性的基于批处理(而不是在文件删除时实时)的TRIM,当系统配置为定期在RAID 1阵列上的文件系统上运行mdtrim实用工具(包括ext3等没有原生TRIM支持的文件系统)。[45]在Linux的稍晚版本(例如Red Hat Enterprise Linux 6.5和beyond)中 mdraid支持实时、实际传递TRIM命令,而不是作为一个批处理作业。[46]

但请注意,紅帽公司建议不要在大多数RAID技术的SSD上使用软件RAID 1、4、5和6,因为大多数RAID管理实用工具(例如Linux的mdadm)在初始化期间会在设备上写入所有块以确保校验和(或RAID 1/10情况下的驱动器到驱动器验证)运作正常,而这导致SSD认为除备用区域以外的所有块都在使用中,从而显著降低性能。[47]

另一方面,Red Hat推荐在SSD上为LVM RAID使用RAID 1或RAID 10,因为这些级别支持TRIM(在Linux术语中称为"discard"),并且LVM实用工具在创建时不会写入所有块到RAID 1或RAID 10卷。

在2010年3月的一小段时间内,用户被误导相信英特尔快速存储技术(RST)9.6驱动程序支持RAID卷上的TRIM,但后来英特尔澄清说,TRIM支持AHCI模式和RAID模式的BIOS设置,但不支持RAID卷的驱动器。[48]

截至2012年8月,英特尔确认,使用快速存储技术(RST)11.2驱动程序的7系列芯片组支持微软Windows 7中的RAID 0的TRIM。[49]虽然英特尔没有确认支持6系列芯片组,RAID 0卷上的TRIM已展示为在Z68、P67和X79芯片组上可用,通过由硬件发烧友修改的RAID选项ROM英语Option ROM[50]据推测,缺乏对6系列芯片组的官方支持是由于验证成本[51]或企图鼓励消费者升级[52],而不是出于技术原因。

在使用X79芯片组的主板上需要修改选项ROM的例外是制造商添加了ROM开关;这需要RST和RST-E ROM存在于BIOS/UEFI内。这允许使用RST ROM而不是RST-E ROM,从而允许TRIM工作。[53]英特尔指出,使用与ROM版本相同的驱动程序可以实现最佳性能。例如,如果BIOS/UEFI具有11.0.0.0m选项ROM,则应使用11.x版本的驱动程序。[54]

为不支持的操作系统使用

在使用不支持自动TRIM的文件系统时,某些实用工具可以手动发送Trim命令。通常它们将确定哪些块为空闲,然后将该列表以一系列的Trim命令传递给驱动器。这些实用程序可从各制造商(例如Intel、[55]G.Skill[56])或作为一般实用程序(例如Linux的hdparm英语hdparm自v9.17起,[57][58]或者如上所述的mdtrim)。

硬件支持

ATA

TRIM命令规范[59]已被标准化为AT Attachment接口标准的一部分,由国际信息技术标准委员会英语International Committee for Information Technology Standards(INCITS)的技术委员会T13所领导。[60] TRIM根据DATA SET MANAGEMENT(数据集管理)命令(操作码06h)实现,ACS-2规范草案。[61]ATA标准被并行(IDE、PATA)和串口(SATA)ATA硬件所支持。

原版ATA TRIM命令的缺点是它被定义为不可排队命令,因此不能轻松地与正常的、排队的读和写操作混合。SATA 3.1引入了一个排队的TRIM命令来纠正这一点。[62]

ATA IDENTIFY DEVICE命令返回的SATA Words 69和169定义了不同类型的TRIM。

  • 非确定性TRIM:TRIM后每个对邏輯區塊位址(LBA)的读取命令可能返回不同的数据。
  • 确定性TRIM(DRAT):TRIM后对LBA的所有读取命令都返回相同的数据,或者变为确定的。
  • TRIM(RZAT)后确定性读零:TRIM后对LBA的所有读取命令都将返回零。

在SATA字105中有额外信息,描述驱动器可以在每个数据集管理命令(DATA SET MANAGEMENT)支持最多多少个512字节的数据块。通常此值默认为8(或4kB),但许多驱动器将其减少到1,以满足微软Windows硬件要求对TRIM的部分——该命令完成时间不应超过20 ms或者8 ms × (LBA范围项的数量),且两者中的较大者应始终小于600 ms。[63]

各LBA范围被称为一个LBA范围条目,并由八个字节表示。 LBA由LBA范围条目的前6个字节表示,范围长度是由剩下两个字节表示的一个从零开始的计数器。如果两个字节组成的范围长度为零,那么LBA范围条目应视作填充而丢弃。[64]这意味着以512字节为TRIM块范围支持的设备,该最大值为64个32 MB,也就是2 GB。如果设备在SATA字105处设为8,则它应该能在单个TRIM(数据集管理)命令中修整16GB。

SCSI

SCSI提供了UNMAP命令(TRIM的完全模拟),以及带有UNMAP标志集的WRITE SAME命令(10和16个变量)。[65]

SD/MMC

多媒體記憶卡SD ERASE(CMD38)命令提供了与ATA TRIM命令类似的功能,但它要求擦除的块用0或1重写。eMMC 4.5进一步定义了一个“discard”(丢弃)子操作,从而更紧密的配合ATA TRIM,因为丢弃的块的内容可以被认为是不确定的(即“不在乎”的)。

缺点

  • 在使用加密时,TRIM命令的相关信息将揭露哪些块正在使用,哪些没有。[66]
  • TRIM命令的原始版本已被T13小组委员会英语T13 subcommittee定义为非排队命令,因此执行不当可能造成大量的错误执行。例如,如果它在操作系统的每个删除命令后发出,该命令的非排队性质将要求驱动程序先等待所有未完成的命令完成,然后发出TRIM命令,最后再继续正常命令。TRIM可能需要很长时间才能完成,这取决于SSD中的固件,并还可能触发垃圾收集周期。[來源請求]这种缺陷可以用定期执行批量TRIM的解决方案来最小化,而不是在每次文件删除时执行修剪,批量处理任务可以在系统利用率最小时调度。这项TRIM缺点已在Serial ATA修订3.1中解决,其中引入了排队的TRIM命令。[67][68]
  • 排队的TRIM命令已在多款设备中涉及严重的数据损坏,最显著的是Micron的M500、[69]Crucial的M500、以及Samsung 8**系列。[70]在2015年7月1日,Linux操作系统在这些设备上的数据损坏已得到确认。[71]

这些设备已被列入Linux内核中libata-core.c的黑名单,从而强制发送非排队的TRIM命令到这些设备,而不是排队的TRIM命令:[72]

  • Micron M500,所有固件版本(仅MU07之前有此问题,但Linux尚未跟进)
  • Crucial M500,所有固件版本,包括工厂重新认证的SSD(仅MU07之前有此问题,但Linux尚未跟进)
  • Micron M510,固件版本MU01
  • Micron M550,固件版本MU01
  • Crucial M550,固件版本MU01
  • Crucial MX100,固件版本MU01
  • 三星SSD 8**系列,所有固件版本

此文件也已将SuperSSpeed S238列入常规TRIM的黑名单,因为发出TRIM会导致错误的块丢失数据。[72][73]

libata-core.c还有一个列出子系统维护者已确认正确实现DRAT和RZAT标志(flags)的SSD,这不同于许多忽略它们的驱动器。白名单中的设备如下:

  • Crucial多款SSD
  • Intel多款SSD(不包括Intel SSD 510)
  • Micron多款SSD
  • 三星多款SSD
  • 希捷多款SSD[74]

参见

  • 数据残留英语Data remanence

参考资料

  1. ^ Intel High Performance Solid State Drive - Advantages of TRIM. Intel.com. Intel. 2010-09-14 [2012-02-21]. (原始内容于2016-03-06). 
  2. ^ Shimpi, Anand Lal. The SSD Anthology. AnandTech.com: 4. 2009-03-18 [2010-06-19]. (原始内容存档于2012-06-30). 
  3. ^ Shimpi, Anand Lal. (2009-03-18). p. 10.
  4. ^ Shimpi, Anand Lal. (2009-03-18). p. 11.
  5. ^ Kingston SSDNow V Plus 100 Review. AnandTech.com. Anand Lal Shimpi. 2010-11-11 [2010-12-10]. (原始内容于2010-12-13). 
  6. ^ Savill, John. I heard solid-state disks (SSDs) suffer from a decline in write performance as they're used. Why?. WindowsITPro. 2009-04-21 [2010-06-19]. (原始内容存档于2012-06-30). 
  7. ^ Shimpi, Anand Lal. (2009-03-18). p. 7.
  8. ^ Savill, John. What is the TRIM function for solid-state disks (SSDs) and why is it important?. WindowsITPro. 2009-04-22 [2010-06-19]. (原始内容存档于2013-02-09). 
  9. ^ Malventano, Allyn. . PC Perspective. 13 February 2009 [10 February 2012]. (原始内容存档于2012-02-28). 
  10. ^ Shimpi, Anand Lal. (2009-03-18). p. 5.
  11. ^ Shimpi, Anand Lal. (2009-03-18). p. 8.
  12. ^ . ExtremeTech.com. [2010-11-06]. (原始内容存档于2010-11-15). 
  13. ^ Inside the X25-M Controller: Wear Leveling, Write Amplification Control. TomsHardware.com. 2008-09-08 [2010-11-06]. 
  14. ^ Too TRIM? When SSD Data Recovery is Impossible. TechGage. TechGage. 2010-03-05 [2010-04-16]. (原始内容存档于2012-06-30). 
  15. ^ Preliminary TRIM support. [2017-03-16]. (原始内容于2020-07-06). 
  16. ^ FreeBSD 8.1-RELEASE Release Notes: Disks and Storage. [2010-09-01]. (原始内容于2010-07-27). 
  17. ^ Add kernel side support for BIO_DELETE/TRIM on UFS. [2011-02-01]. 
  18. ^ Added ZFS TRIM support which is enabled by default.. [2013-06-05]. (原始内容于2018-02-17). 
  19. ^ FreeBSD 9.2-RELEASE Announcement. [2013-10-04]. (原始内容于2013-10-03). 
  20. ^ Base revision 242323 – Add basic BIO_DELETE support to GEOM RAID class for all RAID levels. [2012-10-30]. (原始内容于2013-05-20). 
  21. ^ TRIM support in NetBSD. 2012-10-19 [2017-03-16]. (原始内容于2016-03-05). 
  22. ^ Block device changes in Linux 2.6.28. [2017-03-16]. (原始内容于2018-06-12). 
  23. ^ Storage changes in Linux 2.6.33. Kernel Newbies. [2010-09-01]. (原始内容存档于2012-06-30). 
  24. ^ HOWTO: Configure Ext4 to Enable TRIM Support for SSDs on Ubuntu and Other Distributions - Forked by Nicolay. [2017-03-16]. (原始内容于2016-12-25). 
  25. ^ Btrfs improvements in Linux 2.6.32. [2017-03-16]. (原始内容存档于2012-09-16). 
  26. ^ JFS Filesystem can now handle trim. [2012-03-28]. (原始内容于2012-10-04). 
  27. ^ Filesystem changes in Linux 3.0. [2017-03-16]. (原始内容于2016-03-30). 
  28. ^ Freemyer, Greg. . 2010 [2017-03-16]. (原始内容存档于2013-01-27). 
  29. ^ How to enable TRIM?. Ask Ubuntu. [11 November 2015]. (原始内容于2017-03-22). 
  30. ^ SDB:SSD discard (trim) support. [2017-03-16]. (原始内容于2012-11-14). 
  31. ^ Mac OS X 10.6.8 Brings TRIM Support for Apple SSDs, Graphics Improvements. 2012-02-24 [2017-03-16]. (原始内容于2017-03-18). 
  32. ^ Macbook Pros ship with active SSD TRIM support. 2011-03-04 [2017-03-16]. (原始内容存档于2012-06-30). 
  33. ^ Yosemite kills third-party SSD support. [2017-03-16]. (原始内容于2014-12-02). 
  34. ^ Chameleon SSD Optimizer. [2020-09-27]. (原始内容于2014-12-02). 
  35. ^ Cindori Software. [2017-03-16]. (原始内容于2016-03-06). 
  36. ^ Lee Hutchinson. Latest OS X update allows you to enable TRIM for third-party SSDs. Ars Technica. Condé Nast. Jun 30, 2015 [2015-07-01]. (原始内容于2015-07-01). 
  37. ^ Support and Q&A for Solid-State Drives. 微软开发者网络. 2009-05-09 [2010-08-12]. (原始内容存档于2012-06-30). 
  38. ^ Windows 7 Enhancements for Solid-State Drives (PDF). Microsoft downloads. Microsoft Corporation. 2008-11-12 [2009-07-08]. (原始内容存档 (PDF)于2012-06-30). 
  39. ^ Geoff Gasior (2012) (页面存档备份,存于互联网档案馆) OCZ's RevoDrive 3 X2 240GB solid-state drive
  40. ^ Coles, Olin. . BenchmarkReviews. 15 April 2010 [20 August 2013]. (原始内容存档于2013-12-03). 
  41. ^ SATA TRIM support in OpenSolaris. 2010-07-29 [2017-03-16]. (原始内容存档于2012-06-30). 
  42. ^ 42.0 42.1 Android 4.3 Update Brings TRIM to All Nexus Devices. 2013-07-29 [2013-07-30]. (原始内容于2013-08-01). 
  43. ^ "Android 4.3 announced, rolling out to Nexus devices today" (页面存档备份,存于互联网档案馆).The Verge. 24 July 2013. Retrieved 24 July 2013.
  44. ^ Possible to get SSD TRIM (discard) working on ext4 + LVM + software RAID in Linux? - Server Fault. [2011-11-29]. (原始内容于2011-12-20). 
  45. ^ Cyberax/mdtrim - GitHub. [2011-11-29]. (原始内容于2018-06-10). 
  46. ^ Red Hat Enterprise Linux 6 Storage Administration Guide, Chapter 21. Solid-State Disk Deployment Guidelines. [2016-03-09]. (原始内容于2015-12-26). 
  47. ^ Red Hat Enterprise Linux 7 Storage Administration Guide. 2015-11-11 [2016-02-29]. 
  48. ^ Is there TRIM support for RAID configurations?. Intel. 2010-03-26 [2010-11-06]. (原始内容于2010-09-15). 
  49. ^ . 2012-08-19 [2013-01-14]. (原始内容存档于2012-10-22). 
  50. ^ . 2012-11-18 [2013-01-14]. (原始内容存档于2013-01-18). 
  51. ^ TRIM & RAID-0 SSD Arrays Work With Intel 6-Series Motherboards Too. 2012-11-28 [2013-01-14]. (原始内容于2013-01-09). 
  52. ^ Intel Brings TRIM to RAID-0 SSD Arrays on 7-Series Motherboards, We Test It. 2012-08-16 [2013-01-14]. (原始内容于2013-01-13). 
  53. ^ Anand Lal Shimpi. Intel Brings TRIM to RAID-0 SSD Arrays on 7-Series Motherboards, We Test It. [2017-03-16]. (原始内容于2017-05-06). 
  54. ^ Doug Crowthers. TRIM Command Confirmed With RAID 0 on Intel 7 Series. Tom's Hardware. 
  55. ^ (PDF). Intel Corporation. [2010-01-23]. (原始内容 (PDF)存档于2010-06-02). 
  56. ^ wiper.exe for Falcon Series. XtremeSystems. [2010-01-23]. (原始内容存档于2012-06-30). 
  57. ^ hdparm-9.17 released, with experimental trim/wiper scripts for SSDs. [2010-08-14]. (原始内容于2010-06-09). 
  58. ^ hdparm project page. sourceforge.net. [2010-08-14]. (原始内容于2010-08-21). 
  59. ^ Data Set Management Commands Proposal for ATA8-ACS2 (revision 6). INCITS T13. INCITS英语INCITS. 2007-12-12 [2009-07-08]. (原始内容于2010-06-13). 
  60. ^ T13 documents referring to TRIM. INCITS T13. INCITS英语INCITS. [2009-07-08]. (原始内容于2010-05-26). 
  61. ^ T13 ATA8 Draft Spec 1697-D (PDF). INCITS英语INCITS. 2010-06-23 [2010-08-14]. (原始内容 (PDF)于2011-03-22). 
  62. ^ SATA 6Gb/s. Serial ATA International Organization. [2012-09-26]. (原始内容存档于2013-02-02). 
  63. ^ Device.Storage Requirements (Windows). [2016-02-29]. (原始内容于2016-03-14). 
  64. ^ T13/2161-D: Information technology - ATA/ATAPI Command Set - 3 (ACS-3) (PDF). [2016-02-29]. (原始内容 (PDF)于2016-04-05). 
  65. ^ Note for SCSI UNMAP support in FreeBSD mailing list. [2017-03-16]. (原始内容存档于2012-06-30). 
  66. ^ Milan Broz's blog: TRIM & dm-crypt ... problems?. Milan Broz. [2014-10-01]. (原始内容于2011-12-30). 
  67. ^ 存档副本. [2017-03-16]. (原始内容存档于2013-02-02). 
  68. ^ SATA 3.1 spec brings swap standard, improved TRIM. The Tech Report. [2017-03-16]. (原始内容于2016-05-20). 
  69. ^ Bug 71371 – [PATCH]Crucial M500, broken "queued TRIM" support. [2017-03-16]. (原始内容于2017-10-11). 
  70. ^ Bug #1449005 "trim does not work with Samsung 840 EVO after firm..." : Bugs : fstrim package : Ubuntu. [2017-03-16]. (原始内容于2017-01-18). 
  71. ^ torvalds. linux/libata-core.c at e64f638483a21105c7ce330d543fa1f1c35b5bc7 · torvalds/linux · GitHub. GitHub. [2017-03-16]. (原始内容于2016-07-07). 
  72. ^ 72.0 72.1 torvalds. linux/libata-core.c at master · torvalds/linux · GitHub. GitHub. [2017-03-16]. (原始内容于2017-02-27). 
  73. ^ torvalds. libata: force disable trim for SuperSSpeed S238 · torvalds/linux@cda57b1. GitHub. [2017-03-16]. (原始内容于2018-12-26). 
  74. ^ [1/3] libata: Whitelist SSDs that are known to properly return zeroes after TRIM. [2017-03-16]. (原始内容于2016-03-04). 

外部链接

  • – An explanation on how the TRIM command lets SSDs erase data not used by the filesystem
  • TRIM Command White Paper(页面存档备份,存于互联网档案馆) – A white paper explaining the command's purpose and actions
  • Fusion-io Patent "Apparatus, system, and method for redundant write caching"(页面存档备份,存于互联网档案馆

trim命令, 此條目介紹的是计算机命令, 关于trim的其他意思, 请见, 特里姆, 本條目翻譯自其他語言維基百科, 需要精通本領域的編者協助校對翻譯, 如果您精通本領域, 又能清楚地將來源語言翻譯為中文, 歡迎您協助參與校對與修訂, 原文参见维基数据, ata命令集中称为trim, scsi命令集, 英语, scsi, command, 中称为unmap, 它使操作系统能通知固态硬盘, 哪些数据块已不再考虑使用, 可以被内部擦除, 几乎是与ssd同时推出的, 这是因为ssd的底层操作方式与传统机械硬盘有着显著不. 此條目介紹的是计算机命令 关于Trim的其他意思 请见 特里姆 本條目翻譯自其他語言維基百科 需要精通本領域的編者協助校對翻譯 如果您精通本領域 又能清楚地將來源語言翻譯為中文 歡迎您協助參與校對與修訂 原文参见维基数据 Trim命令 ATA命令集中称为TRIM SCSI命令集 英语 SCSI command 中称为UNMAP 它使操作系统能通知固态硬盘 SSD 哪些数据块已不再考虑使用 可以被内部擦除 1 Trim命令几乎是与SSD同时推出的 这是因为SSD的底层操作方式与传统机械硬盘有着显著不同 若操作系统沿用传统方法处理诸如删除和格式化等操作 会导致SSD的写入性能发生下降 2 Trim 意为修整 修剪 裁剪 使SSD能更有效地完成垃圾收集的工作 而不用牺牲对存储块的写入速度 3 尽管在引入Trim命令前 有些工具 比如 Reset 命令 已经可以将驱动器 重置 为空状态 但这些操作会删除驱动器上的所有数据 因而无法用于持续性优化 4 许多SSD拥有厂商自己的后台垃圾收集机制 这些工具和Trim命令互相独立 使不支持Trim命令的操作系统能完成与之类似的工作 却依然存在写入放大的现象 往往也会导致存储块寿命过早地衰减 5 目录 1 快閃記憶體磁碟機特有的問題 2 操作 3 实现 3 1 操作系统支持 3 2 RAID问题 3 3 为不支持的操作系统使用 4 硬件支持 4 1 ATA 4 2 SCSI 4 3 SD MMC 5 缺点 6 参见 7 参考资料 8 外部链接快閃記憶體磁碟機特有的問題 编辑因为许多文件系统以标记数据块为 未使用 来处理删除操作 6 7 而非真正 清空 数据 因此存储介质 传统硬盘 SSD 通常不知道哪个扇区 页是正在使用 哪些可被认作空闲空间 这与重写 rewrite 操作不同 删除操作不涉及对数据所在扇区 页的物理写入 SSD等存储介质通常不负责管理文件系统 例如未使用的数据块 扇区表 也无法获知哪些数据块 扇区已经可用 这使反删除 英语 Undelete 工具能通过更底层的方法 从传统的机械硬盘上恢复文件 8 因为尽管操作系统报告用户文件已被 删除 并腾出了存储空间 但在存储介质上 文件所在的扇区只有在下一次写入时 旧数据才会被覆盖 从存储介质的角度看 删除 操作更接近于 重写 对于机械磁盘来说 这与写入空扇区没有区别 但因为SSD最底层的一些特性 与将数据写入空页相比 重写会有显著的开销 从而潜在地削弱写入性能 9 SSD在闪存单元中通常以4 16kB为一组来存储数据 称之为页 每128 512kB的页组合成更大的一组 称之为块或数据块 举例来说 某一品牌的SSD将4kB的数据组合成一页 其数据块大小是512kB 每一数据块包含128个页 NAND闪存单元只能在处于空状态时写入 如果它们包含数据 则执行写操作前必须擦除其内容 SSD一次写入最少一页 但由于硬件限制 擦除数据时将会抹除整个数据块 10 因此将数据写入到SSD上的空页时非常快 而写入已有数据的页就会明显变慢 这是因为页被再次写入前需要擦除数据 但SSD只能擦除一整个数据块 随后把数据块中的其他数据以改写的方式 按 读取 擦除 修改 写入 的方式 完成 11 整个块的内容会先存储在缓存中 然后在SSD中擦除整个块 再将改写的页写入到缓存的块 最后再将更新的块写入闪存介质 这种现象也称写入放大 12 13 操作 编辑TRIM命令使SSD可以从操作系统处得知哪一部分数据将永远不会被访问 对于删除操作 操作系统会将整个数据块标记为可用于新数据 然后向SSD发送TRIM命令 SSD完成这一操作后 在新的数据写入这一页时 SSD将刷新整个块的数据 而不保留块中其他页原本的内容 从而缓解写入放大现象 写入次数更少 并提供更高的写入吞吐量 不需要执行读取 擦除 修改 还能显著延长驱动器寿命 不同的SSD实现的方式有所不同 因此性能可能也有所差异 TRIM命令通知SSD从LBA Logical Block Addressing 区域上标记为无效 从逻辑层上对该区域进行读取将不会返回有效数据 从物理层面看 数据仍可能短时间驻留在闪存内部 SSD彻底完成垃圾回收的工作之后 恢复数据几乎是不可能的 14 这不同于机械硬盘中被删除的数据可能被数据恢复 实现 编辑操作系统支持 编辑 Trim仅在支持它的操作系统上有效 下表列出了各个重要的操作系统支持该命令的首个版本 此外 在TRIM命令添加到ATA标准之前设计的旧款固态驱动器需要更新固件 如果有 才能支持Trim 否则将忽略这个新命令 操作系统 支持始自 备注DragonFly BSD 2011 05 2011年5月 15 FreeBSD 2010 07 8 1 2010年7月 16 在8 1中的块设备层中添加了支持 文件系统支持在FreeBSD 8 3和FreeBSD 9中添加 随Unix文件系统 UFS 而来 17 ZFSTrim支持在FreeBSD 9 2中添加 18 19 FreeBSD 10支持在软件RAID上配置Trim 20 NetBSD 2012 10 2012年10月 21 Linux 2008 12 25 2 6 28 2008年12月25日 22 最初在2 6 28中添加了对FTL NAND闪存设备的discard 丢弃 操作符的支持 对ATA TRIM命令的支持在2 6 33中添加 23 并非所有文件系统都能使用trim 可以自动发出修剪请求的文件系统有Ext4 24 Btrfs 25 FAT GFS2 英语 GFS2 JFS 26 和XFS 27 但是由于性能问题 在受支持SSD上进行定期修剪默认情况下已被禁用 28 29 Ext3 NILFS2 英语 NILFS2 和OCFS2 英语 OCFS2 提供Ioctl来执行离线修剪 TRIM规范称支持修剪特定范围列表 但截至内核3 0 修剪仅能较慢地逐个调用单个范围 30 MacOS 2011 06 23 10 6 8 2011年6月23日 31 尽管AHCI块设备驱动程序在10 6 6 10J3210 中得到了显示设备是否支持TRIM操作的功能 32 该功能本身仍不可用 直至10 6 8暴露通过IOStorageFamily执行TRIM操作 以及文件系统 HFS 的支持 來源請求 直到10 10 4 Mac OS X只为苹果品牌的SSD原生启用TRIM 第三方实用程序可使其适用于其他品牌 旧的第三方TRIM驱动程序在Yosemite更新时已停止工作 33 现已有更新的适用于OS X Yosemite的驱动程序 34 35 在Mac OS X更新10 10 4 页面存档备份 存于互联网档案馆 中 苹果公司添加了一个命令行使用工具trimforce 它可以用于为第三方SSD启用TRIM 36 Microsoft Windows 2009 10 Windows 7和Windows Server 2008 R2 2009年10月 37 38 Windows 7最初支持的TRIM仅适用于包括ATA和SATA的AT Attachment系列中的驱动器 并不对任何其他包括Storport PCI Express SSD设备支持此命令 即使即使设备本身将接受该命令 39 已确认Windows 7上AHCI和旧有IDE ATA模式下的原生微软驱动支持TRIM命令 40 Windows 8及之后版本的Windows操作系统支持基于NVMe的PCI Express SSD的trim 以及来自SATA的TRIM命令完全模拟的unmap命令 用于使用SCSI驱动程序堆栈的设备 微软已为Windows 7发布一个KB2990941 页面存档备份 存于互联网档案馆 更新 这在使用DISM集成到Windows 7安装程序时增加NVM Express的支持 包括对PCIe SSD设备的TRIM OpenSolaris 2010 07 2010年7月 41 Android 2013 7 4 3 42 24 July 2013 43 每24小时自动运行fstrim 仅在设备已空闲至少1小时并且电量80 如果已连接充电器则30 时执行 42 RAID问题 编辑 截至2017年1月 2017 01 update 大多数基于硬件的RAID技术未实现TRIM命令的支持 但是 软件实现的RAID通常提供了TRIM支持 Windows Windows 10为SSD RAID卷在配置一个RAID卷时通过 优化驱动器 选项提供了TRIM支持 Mac OS macOS RAID驱动程序不支持TRIM 自Mac OS X 10 7至macOS 10 12 x的所有版本均是如此 对于使用第三方SoftRAID 应用程序的RAID 0 1 4 5和10 卷支持TRIM 包括使用非苹果品牌SSD设备的TRIM支持 注 非苹果品牌的SSD设备必须使用终端命令 sudo trimforce enable 来启动TRIM Linux 2011年1月以后的Linux内核中dmraid 英语 Device mapper 的发布版本已实现BIOS辅助的 假硬件RAID 支持 并且现在通行来自RAID阵列上的文件系统的任何TRIM请求 44 不同于dmraid Linux的常规目的软件RAID系统mdraid 英语 Mdadm 有实验性的基于批处理 而不是在文件删除时实时 的TRIM 当系统配置为定期在RAID 1阵列上的文件系统上运行mdtrim实用工具 包括ext3等没有原生TRIM支持的文件系统 45 在Linux的稍晚版本 例如Red Hat Enterprise Linux 6 5和beyond 中 mdraid支持实时 实际传递TRIM命令 而不是作为一个批处理作业 46 但请注意 紅帽公司建议不要在大多数RAID技术的SSD上使用软件RAID 1 4 5和6 因为大多数RAID管理实用工具 例如Linux的mdadm 在初始化期间会在设备上写入所有块以确保校验和 或RAID 1 10情况下的驱动器到驱动器验证 运作正常 而这导致SSD认为除备用区域以外的所有块都在使用中 从而显著降低性能 47 另一方面 Red Hat推荐在SSD上为LVM RAID使用RAID 1或RAID 10 因为这些级别支持TRIM 在Linux术语中称为 discard 并且LVM实用工具在创建时不会写入所有块到RAID 1或RAID 10卷 在2010年3月的一小段时间内 用户被误导相信英特尔快速存储技术 RST 9 6驱动程序支持RAID卷上的TRIM 但后来英特尔澄清说 TRIM支持AHCI模式和RAID模式的BIOS设置 但不支持RAID卷的驱动器 48 截至2012年8月 英特尔确认 使用快速存储技术 RST 11 2驱动程序的7系列芯片组支持微软Windows 7中的RAID 0的TRIM 49 虽然英特尔没有确认支持6系列芯片组 RAID 0卷上的TRIM已展示为在Z68 P67和X79芯片组上可用 通过由硬件发烧友修改的RAID选项ROM 英语 Option ROM 50 据推测 缺乏对6系列芯片组的官方支持是由于验证成本 51 或企图鼓励消费者升级 52 而不是出于技术原因 在使用X79芯片组的主板上需要修改选项ROM的例外是制造商添加了ROM开关 这需要RST和RST E ROM存在于BIOS UEFI内 这允许使用RST ROM而不是RST E ROM 从而允许TRIM工作 53 英特尔指出 使用与ROM版本相同的驱动程序可以实现最佳性能 例如 如果BIOS UEFI具有11 0 0 0m选项ROM 则应使用11 x版本的驱动程序 54 为不支持的操作系统使用 编辑 在使用不支持自动TRIM的文件系统时 某些实用工具可以手动发送Trim命令 通常它们将确定哪些块为空闲 然后将该列表以一系列的Trim命令传递给驱动器 这些实用程序可从各制造商 例如Intel 55 G Skill 56 或作为一般实用程序 例如Linux的hdparm 英语 hdparm 自v9 17起 57 58 或者如上所述的mdtrim 硬件支持 编辑ATA 编辑 TRIM命令规范 59 已被标准化为AT Attachment接口标准的一部分 由国际信息技术标准委员会 英语 International Committee for Information Technology Standards INCITS 的技术委员会T13所领导 60 TRIM根据DATA SET MANAGEMENT 数据集管理 命令 操作码06h 实现 ACS 2规范草案 61 ATA标准被并行 IDE PATA 和串口 SATA ATA硬件所支持 原版ATA TRIM命令的缺点是它被定义为不可排队命令 因此不能轻松地与正常的 排队的读和写操作混合 SATA 3 1引入了一个排队的TRIM命令来纠正这一点 62 ATA IDENTIFY DEVICE命令返回的SATA Words 69和169定义了不同类型的TRIM 非确定性TRIM TRIM后每个对邏輯區塊位址 LBA 的读取命令可能返回不同的数据 确定性TRIM DRAT TRIM后对LBA的所有读取命令都返回相同的数据 或者变为确定的 TRIM RZAT 后确定性读零 TRIM后对LBA的所有读取命令都将返回零 在SATA字105中有额外信息 描述驱动器可以在每个数据集管理命令 DATA SET MANAGEMENT 支持最多多少个512字节的数据块 通常此值默认为8 或4kB 但许多驱动器将其减少到1 以满足微软Windows硬件要求对TRIM的部分 该命令完成时间不应超过20 ms或者8 ms LBA范围项的数量 且两者中的较大者应始终小于600 ms 63 各LBA范围被称为一个LBA范围条目 并由八个字节表示 LBA由LBA范围条目的前6个字节表示 范围长度是由剩下两个字节表示的一个从零开始的计数器 如果两个字节组成的范围长度为零 那么LBA范围条目应视作填充而丢弃 64 这意味着以512字节为TRIM块范围支持的设备 该最大值为64个32 MB 也就是2 GB 如果设备在SATA字105处设为8 则它应该能在单个TRIM 数据集管理 命令中修整16GB SCSI 编辑 SCSI提供了UNMAP命令 TRIM的完全模拟 以及带有UNMAP标志集的WRITE SAME命令 10和16个变量 65 SD MMC 编辑 多媒體記憶卡和SD ERASE CMD38 命令提供了与ATA TRIM命令类似的功能 但它要求擦除的块用0或1重写 eMMC 4 5进一步定义了一个 discard 丢弃 子操作 从而更紧密的配合ATA TRIM 因为丢弃的块的内容可以被认为是不确定的 即 不在乎 的 缺点 编辑在使用加密时 TRIM命令的相关信息将揭露哪些块正在使用 哪些没有 66 TRIM命令的原始版本已被T13小组委员会 英语 T13 subcommittee 定义为非排队命令 因此执行不当可能造成大量的错误执行 例如 如果它在操作系统的每个删除命令后发出 该命令的非排队性质将要求驱动程序先等待所有未完成的命令完成 然后发出TRIM命令 最后再继续正常命令 TRIM可能需要很长时间才能完成 这取决于SSD中的固件 并还可能触发垃圾收集周期 來源請求 这种缺陷可以用定期执行批量TRIM的解决方案来最小化 而不是在每次文件删除时执行修剪 批量处理任务可以在系统利用率最小时调度 这项TRIM缺点已在Serial ATA修订3 1中解决 其中引入了排队的TRIM命令 67 68 排队的TRIM命令已在多款设备中涉及严重的数据损坏 最显著的是Micron的M500 69 Crucial的M500 以及Samsung 8 系列 70 在2015年7月1日 Linux操作系统在这些设备上的数据损坏已得到确认 71 这些设备已被列入Linux内核中libata core c的黑名单 从而强制发送非排队的TRIM命令到这些设备 而不是排队的TRIM命令 72 Micron M500 所有固件版本 仅MU07之前有此问题 但Linux尚未跟进 Crucial M500 所有固件版本 包括工厂重新认证的SSD 仅MU07之前有此问题 但Linux尚未跟进 Micron M510 固件版本MU01 Micron M550 固件版本MU01 Crucial M550 固件版本MU01 Crucial MX100 固件版本MU01 三星SSD 8 系列 所有固件版本此文件也已将SuperSSpeed S238列入常规TRIM的黑名单 因为发出TRIM会导致错误的块丢失数据 72 73 libata core c还有一个列出子系统维护者已确认正确实现DRAT和RZAT标志 flags 的SSD 这不同于许多忽略它们的驱动器 白名单中的设备如下 Crucial多款SSD Intel多款SSD 不包括Intel SSD 510 Micron多款SSD 三星多款SSD 希捷多款SSD 74 参见 编辑数据残留 英语 Data remanence 参考资料 编辑 Intel High Performance Solid State Drive Advantages of TRIM Intel com Intel 2010 09 14 2012 02 21 原始内容存档于2016 03 06 Shimpi Anand Lal The SSD Anthology AnandTech com 4 2009 03 18 2010 06 19 原始内容存档于2012 06 30 Shimpi Anand Lal 2009 03 18 p 10 Shimpi Anand Lal 2009 03 18 p 11 Kingston SSDNow V Plus 100 Review AnandTech com Anand Lal Shimpi 2010 11 11 2010 12 10 原始内容存档于2010 12 13 Savill John I heard solid state disks SSDs suffer from a decline in write performance as they re used Why WindowsITPro 2009 04 21 2010 06 19 原始内容存档于2012 06 30 Shimpi Anand Lal 2009 03 18 p 7 Savill John What is the TRIM function for solid state disks SSDs and why is it important WindowsITPro 2009 04 22 2010 06 19 原始内容存档于2013 02 09 Malventano Allyn Long term performance analysis of Intel Mainstream SSDs PC Perspective 13 February 2009 10 February 2012 原始内容存档于2012 02 28 Shimpi Anand Lal 2009 03 18 p 5 Shimpi Anand Lal 2009 03 18 p 8 Write Amplification Intel s Secret Sauce ExtremeTech com 2010 11 06 原始内容存档于2010 11 15 Inside the X25 M Controller Wear Leveling Write Amplification Control TomsHardware com 2008 09 08 2010 11 06 Too TRIM When SSD Data Recovery is Impossible TechGage TechGage 2010 03 05 2010 04 16 原始内容存档于2012 06 30 Preliminary TRIM support 2017 03 16 原始内容存档于2020 07 06 FreeBSD 8 1 RELEASE Release Notes Disks and Storage 2010 09 01 原始内容存档于2010 07 27 Add kernel side support for BIO DELETE TRIM on UFS 2011 02 01 Added ZFS TRIM support which is enabled by default 2013 06 05 原始内容存档于2018 02 17 FreeBSD 9 2 RELEASE Announcement 2013 10 04 原始内容存档于2013 10 03 Base revision 242323 Add basic BIO DELETE support to GEOM RAID class for all RAID levels 2012 10 30 原始内容存档于2013 05 20 TRIM support in NetBSD 2012 10 19 2017 03 16 原始内容存档于2016 03 05 Block device changes in Linux 2 6 28 2017 03 16 原始内容存档于2018 06 12 Storage changes in Linux 2 6 33 Kernel Newbies 2010 09 01 原始内容存档于2012 06 30 HOWTO Configure Ext4 to Enable TRIM Support for SSDs on Ubuntu and Other Distributions Forked by Nicolay 2017 03 16 原始内容存档于2016 12 25 Btrfs improvements in Linux 2 6 32 2017 03 16 原始内容存档于2012 09 16 JFS Filesystem can now handle trim 2012 03 28 原始内容存档于2012 10 04 Filesystem changes in Linux 3 0 2017 03 16 原始内容存档于2016 03 30 Freemyer Greg OpenSUSE forum SSD detection when creating first time fstab 2010 2017 03 16 原始内容存档于2013 01 27 How to enable TRIM Ask Ubuntu 11 November 2015 原始内容存档于2017 03 22 SDB SSD discard trim support 2017 03 16 原始内容存档于2012 11 14 Mac OS X 10 6 8 Brings TRIM Support for Apple SSDs Graphics Improvements 2012 02 24 2017 03 16 原始内容存档于2017 03 18 Macbook Pros ship with active SSD TRIM support 2011 03 04 2017 03 16 原始内容存档于2012 06 30 Yosemite kills third party SSD support 2017 03 16 原始内容存档于2014 12 02 Chameleon SSD Optimizer 2020 09 27 原始内容存档于2014 12 02 Cindori Software 2017 03 16 原始内容存档于2016 03 06 Lee Hutchinson Latest OS X update allows you to enable TRIM for third party SSDs Ars Technica Conde Nast Jun 30 2015 2015 07 01 原始内容存档于2015 07 01 Support and Q amp A for Solid State Drives 微软开发者网络 2009 05 09 2010 08 12 原始内容存档于2012 06 30 Windows 7 Enhancements for Solid State Drives PDF Microsoft downloads Microsoft Corporation 2008 11 12 2009 07 08 原始内容存档 PDF 于2012 06 30 Geoff Gasior 2012 页面存档备份 存于互联网档案馆 OCZ s RevoDrive 3 X2 240GB solid state drive Coles Olin SSD Benchmark Tests SATA IDE vs AHCI Mode AHCI vs IDE Final Thoughts BenchmarkReviews 15 April 2010 20 August 2013 原始内容存档于2013 12 03 SATA TRIM support in OpenSolaris 2010 07 29 2017 03 16 原始内容存档于2012 06 30 42 0 42 1 Android 4 3 Update Brings TRIM to All Nexus Devices 2013 07 29 2013 07 30 原始内容存档于2013 08 01 Android 4 3 announced rolling out to Nexus devices today 页面存档备份 存于互联网档案馆 The Verge 24 July 2013 Retrieved 24 July 2013 Possible to get SSD TRIM discard working on ext4 LVM software RAID in Linux Server Fault 2011 11 29 原始内容存档于2011 12 20 Cyberax mdtrim GitHub 2011 11 29 原始内容存档于2018 06 10 Red Hat Enterprise Linux 6 Storage Administration Guide Chapter 21 Solid State Disk Deployment Guidelines 2016 03 09 原始内容存档于2015 12 26 Red Hat Enterprise Linux 7 Storage Administration Guide 2015 11 11 2016 02 29 Is there TRIM support for RAID configurations Intel 2010 03 26 2010 11 06 原始内容存档于2010 09 15 Intel Confirms RAID0 TRIM Support on 7 Series Chipsets 2012 08 19 2013 01 14 原始内容存档于2012 10 22 RAID0 trim and SRT seems possible on 6 series and 5 Series 2012 11 18 2013 01 14 原始内容存档于2013 01 18 TRIM amp RAID 0 SSD Arrays Work With Intel 6 Series Motherboards Too 2012 11 28 2013 01 14 原始内容存档于2013 01 09 Intel Brings TRIM to RAID 0 SSD Arrays on 7 Series Motherboards We Test It 2012 08 16 2013 01 14 原始内容存档于2013 01 13 Anand Lal Shimpi Intel Brings TRIM to RAID 0 SSD Arrays on 7 Series Motherboards We Test It 2017 03 16 原始内容存档于2017 05 06 Doug Crowthers TRIM Command Confirmed With RAID 0 on Intel 7 Series Tom s Hardware Intel SSD Optimizer White Paper PDF Intel Corporation 2010 01 23 原始内容 PDF 存档于2010 06 02 wiper exe for Falcon Series XtremeSystems 2010 01 23 原始内容存档于2012 06 30 hdparm 9 17 released with experimental trim wiper scripts for SSDs 2010 08 14 原始内容存档于2010 06 09 hdparm project page sourceforge net 2010 08 14 原始内容存档于2010 08 21 Data Set Management Commands Proposal for ATA8 ACS2 revision 6 INCITS T13 INCITS 英语 INCITS 2007 12 12 2009 07 08 原始内容存档于2010 06 13 T13 documents referring to TRIM INCITS T13 INCITS 英语 INCITS 2009 07 08 原始内容存档于2010 05 26 T13 ATA8 Draft Spec 1697 D PDF INCITS 英语 INCITS 2010 06 23 2010 08 14 原始内容存档 PDF 于2011 03 22 SATA 6Gb s Serial ATA International Organization 2012 09 26 原始内容存档于2013 02 02 Device Storage Requirements Windows 2016 02 29 原始内容存档于2016 03 14 T13 2161 D Information technology ATA ATAPI Command Set 3 ACS 3 PDF 2016 02 29 原始内容存档 PDF 于2016 04 05 Note for SCSI UNMAP support in FreeBSD mailing list 2017 03 16 原始内容存档于2012 06 30 Milan Broz s blog TRIM amp dm crypt problems Milan Broz 2014 10 01 原始内容存档于2011 12 30 存档副本 2017 03 16 原始内容存档于2013 02 02 SATA 3 1 spec brings swap standard improved TRIM The Tech Report 2017 03 16 原始内容存档于2016 05 20 Bug 71371 PATCH Crucial M500 broken queued TRIM support 2017 03 16 原始内容存档于2017 10 11 Bug 1449005 trim does not work with Samsung 840 EVO after firm Bugs fstrim package Ubuntu 2017 03 16 原始内容存档于2017 01 18 torvalds linux libata core c at e64f638483a21105c7ce330d543fa1f1c35b5bc7 torvalds linux GitHub GitHub 2017 03 16 原始内容存档于2016 07 07 72 0 72 1 torvalds linux libata core c at master torvalds linux GitHub GitHub 2017 03 16 原始内容存档于2017 02 27 torvalds libata force disable trim for SuperSSpeed S238 torvalds linux cda57b1 GitHub 2017 03 16 原始内容存档于2018 12 26 1 3 libata Whitelist SSDs that are known to properly return zeroes after TRIM 2017 03 16 原始内容存档于2016 03 04 外部链接 编辑From write down to flash chips An explanation on how the TRIM command lets SSDs erase data not used by the filesystem TRIM Command White Paper 页面存档备份 存于互联网档案馆 A white paper explaining the command s purpose and actions Fusion io Patent Apparatus system and method for redundant write caching 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Trim命令 amp oldid 73128228, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。