我正在准备在 Gigabyte AORUS X299-GAMING-3 主板上内置 64GB RAM 的 PC,订购用于 Cent OS 7,并在一对 Intel 545 系列 SSDSC2KW512G8X1 SSD 上使用 RAID-1。该配置没有 PCIe RAID 硬件控制器,因此我将使用 Intel 的 RST。
由于 CentOS 停止记录 v7,我去了 Red Hat 文档并找到了https://access.redhat.com/solutions/2801341令我担忧的警告:
不建议在 SSD 上使用软件 RAID 级别 1、4、5 和 6。在这些 RAID 级别的初始化阶段,某些 RAID 管理实用程序(例如 mdadm)会写入存储设备上的所有块,以确保校验和正确运行。这会导致SSD的性能快速下降。
我使用 Intel 的 RST RAID 进行 RAID-1 时也会遇到这个问题吗?
答案1
RST/TRIM 研究
我对此没有第一手经验,但我找到了这篇文章,其中讨论了在 RAID-1 配置中设置 SSD 时,TRIM 是问题/担忧的一部分。
您可能会注意到,RAID 1 配置中的固态硬盘 (SSD) 的读/写速度会随着时间的推移而降低。如果重新安装操作系统或重新创建系统映像,问题会暂时得到解决。
...
垃圾收集的过程涉及向闪存读取和重写数据。这意味着来自主机的新写入将首先需要读取整个块,写入仍包含有效数据的块的部分,然后写入新数据。随着时间的推移,这会显着降低系统的性能。如果您需要确认 TRIM 是 RAID 1 中 SSD 写入速度下降的原因,您可以重新映像驱动器(在 RAID 卷之外)并重新测试写入速度。所有 SSD 的预期写入速度因型号而异。
...在 Linux 中,fstrim 提供此功能,为驱动器准备好写入新数据,并延长驱动器的长期使用寿命。由于在我使用的 Linux 发行版上修剪 SSD 不是自动的,因此必须对其进行计划,否则 SSD 的性能会随着时间的推移而降低。
文章接着展示了如何做到这一点:
$ mount -t ext4 -o discard /dev/sda2 /mnt
$ sudo fstrim / -v
然后可以使用这种方法将这种修剪合并到 CRON 作业中。经过更多搜索,我找到了关于 SSD 的 Arch Linux Wiki。那里fstrim.service
提到了。
util-linux 软件包提供 fstrim.service 和 fstrim.timer systemd 单元文件。启用计时器将每周激活该服务。该服务在支持丢弃操作的设备上的所有已安装文件系统上执行 fstrim(8)。
假设这些服务正在运行,我会假设系统上支持 TRIM 的任何 SSD 都已正确完成修剪。
MD RAID 修剪支持
为了尝试在棺材上钉上更明确的钉子,我搜索了“raid linux trim support”,这让我找到了这个标题为 AU 的问答:如何设置 SSD raid 和 TRIM 支持?
那里的答案有点过时,但仍然包含一些关于如何继续的有用线索。看看 MD RAID 是否支持 DISCARD & TRIM 支持让我想到了下一个技巧。
MD RAID 支持 DISCARD/TRIM
SU 问答题为:使用软件 md-raid 在 SSD 上实施 Linux fstrim迈克尔·汉普顿的回答指出了这一点:
大约一年前,mdraid RAID 1 和 10 支持 TRIM 的补丁就已发布。
然后他继续向您展示如何确认对此的支持:
您可以通过使用丢弃选项(启用自动 TRIM)安装文件系统来测试内核的支持。如果支持,您将在 syslog 或 dmesg 中看到如下消息:
EXT4-fs (md1): re-mounted. Opts: discard,data=ordered
否则你会得到这个:
EXT4-fs warning (device md1): ext4_issue_discard:2619: discard not supported, disabling
您无需重新启动即可查看它是否正常工作:
mount /dir -o remount
结论
因此,假设您的 SSD 支持 TRIM/DISCARD,则该警告似乎已过时,早于这些补丁,并且不再适用。