我有一台 Windows 2012 服务器,在软件 RAID 1(由 Windows 控制)下配置了两个 SSD,在该配置下优化工具不受支持。
TRIM 是否仍由操作系统安排/执行,只是不明显,并且没有手动控制?
有没有办法强制执行它,因为它是一个简单的镜像 RAID,并且当 SSD 没有 RAID 时,操作系统能够进行 TRIM?
我很早就找到了一个“选项”,但它显然不适合在生产中使用:从 RAID 中分离一个磁盘(从而杀死 RAID),在单个磁盘上执行 TRIM,然后重建 RAID。
(如果有必要的话,SSD 是 120GB Intel Sandforce,它们托管多个数据库,全天候不间断地读写,并且每天有几 GB 的数据轮换)
答案1
目前,Windows 软件 RAID 仅支持 RAID-0 的 Trim/Unmap 直通。
但是,Sandforce(以及大多数其他 SSD 芯片)会发现某个块正在被清零,并将该块标记为垃圾回收(Trim 会这样做)。您可以使用该命令强制 Windows 将未使用的磁盘空间清零cypher /w X:\
。这不适用于加密驱动器。
答案2
您的要求毫无意义。TRIM 是一个持续的过程,而不是一次性修剪,并且它不能与 RAID 协同工作。
但是驱动器仍然会进行自己的后台垃圾收集,所以您根本不必担心。
答案3
数据从操作系统到 SSD 的整个路径都需要支持 TRIM 命令的传递。
通常问题是硬件 RAID 控制器没有传递 TRIM 命令。
只要您使用普通控制器(LSI HBA SAS 控制器或其他控制器),软件 RAID 就应该能够通过 TRIM 命令。
过度配置会降低 TRIM 的优势的说法有些不妥,因为过度配置只是意味着 SSD 有比您意识到的更多的可用空间,您可以同样轻松地填满这个空间,这会导致相同的性能下降,但需要更长的时间才能达到这一点。普通磁盘有大约 7% 的过度配置,企业磁盘有 25% 以上的过度配置,但最终您填满它们,您还是会处于同样的位置。
目前我们的一个系统存在这个问题,我们可能会从使用 LSI RAID 控制器切换到 LSI HBA SAS 控制器,以确保 TRIM 命令得到传递。另一个解决方案是获取 JBOD,但这比更换控制器要贵一点。我们在 RAID 1 中拥有使用不到一年的企业磁盘,但即使进行了过度配置和垃圾收集,性能也大幅下降。