我有 2 个 ARECA 8040 HW-RAID,每个有 8 个 SSD。其中一个是 RAID10,英特尔 520SSD,第二个是 RAID5,三星 840SSD。两者都通过一个共享LSI Logic/Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2卡片。
我在 RAID 上大量读取/写入/删除数据。从我昏昏欲睡的测量结果来看,我确信 TRIM 命令或安全擦除必须发行才能恢复原始性能。
HW-RAID 不接受命令,也不将命令传递给 SSD:
fstrim -v /media/ssdraid1/
fstrim -v /media/ssdraid2/
由于不受支持,因此均失败。
我看到的 KISS 解决方案是:将所有数据移至其他磁盘。卸载 RAID 卷。关闭它。取出所有 SSD 并直接将它们连接到 SATA。发出 TRIM(首选)或 SECURE ERASE(如果不支持 trim)命令。将所有 SSD 放回 RAID 并将所有数据移回 RAID 上。
我不喜欢 KISS 解决方案,因为我必须将所有数据移出 RAID 然后再移上去。这会花很长时间,而且我需要可用的磁盘空间。可以使用表空间来执行此操作,而无需停止在这些 RAID 上运行的 PG 数据库。但我会对正在运行的系统进行一些“操作”。
我在 Areca 手册中读到:
无需使系统脱机,即可断开、移除或用其他磁盘替换磁盘。ARC-8040 RAID 子系统重建将在后台自动处理。当磁盘进行热交换时,ARC-8040 RAID 子系统可能不再具有容错能力。容错能力将丧失,直到随后更换热交换驱动器并完成重建操作。
所以..现在我有以下内容主意:
for (N = 1 to 8) {
* Remove Nth SSD from running RAID
* Connect it directly to SATA on a desktop mashine
* Issue TRIM (preferred) or SECURE ERASE (if trim not supported) to restore initial performance
* Plug it into the RAID again
* Wait for the HW-RAID to resync the disk
}
我的问题:这是个好主意吗?如果不是,为什么不行?这会起作用吗?您是否发现 RAID5 或 RAID10 配置存在任何问题?我是否应该“告诉 RAID”我将事先移除驱动器?
答案1
首先,SECURE ERASE 的作用正如其名称所示,清空整个驱动器。我强烈建议不要故意这样降低 RAID 阵列的性能。
值得注意的是,如果您要这样做,请帮自己一个忙,将 RAID 脱机,这样您在 TRIM 每个磁盘后就不必重新同步它。
我无法评论您的卡实现的 RAID5 的性能,但尝试 RAID10 并比较性能肯定是明智的。有一件事是很有可能的:降级状态下的 RAID10 的性能将比 RAID5 好得多
最后,我认为很明显你所做的是不可持续的长期的,你需要考虑找到一个支持 TRIM 的磁盘冗余解决方案。
答案2
根据您运行的操作系统,您可以牺牲硬件 RAID 并在操作系统中单独安装驱动器。我知道 Windows Server 2008 R2 及更高版本(我认为 Windows 8 也支持 RAID 5)。当然,您无法启动它,但 Trim 可以工作,因此您的性能将保持一致。
答案3
四年过去了,我从来没有通过 RAID 控制器向 SSD 发送过 TRIM 命令。我从来没有尝试过上述想法。
但是,SSD 的写入性能没有下降!
这个很好的答案解释了企业级 SSD 在没有 TRIM 的情况下也能运行得出奇的好。
RAID 中的 SSD 的当前状态(2016 年)如何? https://serverfault.com/a/776578/80414