两个不同 SSD(大小和制造商)上的软件 RAID1(mdadm)的 TRIM 问题

两个不同 SSD(大小和制造商)上的软件 RAID1(mdadm)的 TRIM 问题

我计划搭建一个服务器,在 RAID1 中配备 2 个 SSD(用于操作系统和启动),在 RAID5 中配备 3 个 HDD(用于数据)。所有 Linux(CentOS7)都带有 mdadm。

我们办公室有 2 个剩余的 SSD,但它们来自不同的制造商,并且容量不同(120G 和 250G)。

最近我一直在阅读有关 SSD 上的 RAID1 的文章,我担心的是:

  1. 当我创建 raid 时,mdadm 将坚持同步它。

    1. 这两个 SSD 之前都用过。当两个 SSD 的单元包含不同的数据时,mdadm 到底会同步什么?
    2. 为什么需要同步?
    3. 这会缩短 SSD 的寿命(在所有单元上写入)吗?
  2. fstrim命令将由每周一次的 cron 作业在 上发出/,它将是 的挂载点/dev/md0,它将是 RAID1。mdadm 的最新版本将通过修剪传递到各个硬盘本身。但是,我读到不同的 SSD 在修剪时可能有不同的策略。例如,一个 SSD 可能会立即用零填充单元,而另一个可能不会。这意味着这两个磁盘现在不同步。现在,mdadm 有一个 cron 作业,默认情况下,它会定期运行并检查 RAID1 阵列的一致性。由于不同的修剪行为,该检查是否会报告失败?

答案1

您可以使用选项禁用初始同步--assume-clean,但强烈建议在正常情况下不要使用它
它的作用是读取分配给阵列的每个块,mdadm并用零和元数据填充这些块。这还可以确保所有块都被触及一次,并确保所有块都完好无损。所以你应该真正运行初始同步。
每个块都被触及一次,因此它会降低 SSD 的使用寿命。但如果你担心每个块的单次写入可能会达到 SSD 的使用寿命,那么是时候换一个新的了。

关于fstrim修剪时的策略,我猜你混淆fstrim了制造商的具体磨损均衡

  • fstrim是操作系统/文件系统操作,指示块设备可以释放特定块。通常,当您删除文件时,只有索引节点并且目录条目被取消引用。fstrim还释放该文件分配的所有块。
  • 磨损均衡是 SSD 本身处理已释放块的方法,以 表示fstrim。一些制造商不会立即将零写入块,而是收集更多操作并可能随着时间的推移分散它们以保持较低的性能影响。此过程对操作系统也是不可见的,除非您的磁盘有问题或错误,否则不会导致错误。

相关内容