扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
● Trim问题和解决方法
然而,e07154r6草案所提出的Trim指令在现实中的实现却带来了诸多的疑问,甚至有反对的声音。e07154r6中规定Trim指令用于那些不会再被读取的LBA,当一个LBA被Trim指令指定后,该LBA被定义为Indeterminate(未确定),从而可以进行写入,写入之后的状态则为Determinate。而对于提高控制器关于碎片整理和擦写的自由度来说,这种状态是合理的。
但是,被Trim指定的LBA在OS看来是不用的,不需要再读取的,上面的数据也无法正常的使用(就像垃圾箱功能中等待恢复的文件)。可是,在以往的存储设备中,即是OS判断不用的扇区与块,其上面的数据也不会随意的覆写,而且很多存储技术也正是基于这种操作模式而存在。比如RAID技术。
以RAID 5为例,它是以多台存储设备构成Striping(条带)存储池,通过奇偶校验来保证数据的安全。当其中的一个存储设备出现故障时,使数据的恢复成为了可能。在整体的运作中,一直要进行奇偶校验,写入的数据将被计算和记录,计算的依据就在于条带上的其他存储设备上相应扇区和块上的数据。可是文件占用的块也采用Trim指令时,文件将被消去,奇偶计算也将失去意义。因为Trim指定的块,在下次写入之前,其中的数据内容是不确定的,而如果搀杂着未确定的数据,那么奇偶校验也就是不可用的。在这方面,本来就是竞争关系的NetApp与EMC则都表示质疑Trim指令。
存储系统大型厂商EMC和NetApp虽然存在竞争对手关系,但是对实现Trim指令的质疑却是一致的
两家厂商都指出,当Trim块被读取的时候会发生什么,这可能引发安全性问题
另外也有这样的意见,在现有的ATA8的草案中,利用IDENTIFY DEVICE指令的部分代码定义,可以在Trim指令之后仍然能读取确定的数据,而这种代码定义可以通过OEM厂商自行修改。从而可根据需要,尽量平衡Trim的自由度与像RAID存储这样的高可靠与可用的需求。
另外,也有意见是使用外部的物理跳线与DIP开关来进行这类的转换,不过这样一来,SATA硬盘无需跳线设定的优点也就不存在了。
关于Trim指令的动态,2009年4月也将把其放入到与SCSI指令集相兼容的考虑范畴,但全部要Trim读取为零的建议还有很大的不确定性。在这个状态下,不能说Windows 7支持这一指令是不正确的,只是带有不少疑问。不过现有的态势表明,将会尽量避开e07154r6草案中的形式。有关这方面的问题,我们们也将继续予以关注。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者