我目前有一个由多个 SSD 驱动器组成的 raid 0 阵列,以增加容量并在一定程度上提高速度。这是通过 mdadm 设置的,并且一直运行良好,直到最近驱动器崩溃。阵列已再次启动并运行,但我正在考虑是否可以重新创建阵列并在此过程中添加大型 HDD 驱动器以实现冗余。
数组主要用于写入或读取大量数据。很少访问它来读取或写入部分数据。
这种不对称是否可以通过 mdadm 来设置?
raid 0 between these drives -> |---SSD---|---SSD---|---SSD---| raid 1 between the SSD
|-------------HDD-------------| drives and the HDD drive
是否可以在不降低 SSD 驱动器写入速度的情况下实现这一点?
我希望阵列能够以最大速度写入 SSD 驱动器,然后尽可能快地填充 HDD?
答案1
您可以拥有一个非对称阵列,其中写入优先写入 SSD,而有限的尾部事件将尽可能快地写入 HDD。请参阅的--write-mostly
和--write-behind N
选项mdadm
,
-W
,--write-mostly
--build
、--create
或命令中列出的后续设备--add
将被标记为“主要写入”。这仅对 RAID1 有效,并且意味着“md”驱动程序将尽可能避免从这些设备读取数据。如果通过慢速链接进行镜像,这可能很有用。
--write-behind=
指定应启用后写模式(仅对 RAID1 有效)。如果指定了参数,它将设置允许的最大未完成写入数。默认值为 256。为了使用 write-behind 模式,需要 write-intent 位图,并且仅在标记为 write-mostly 的驱动器上尝试 write-behind。
您可能会发现最好将 HDD 用作单独的文件系统,并自动定期且频繁地从 SSD 备份到 HDD。 FOSS 工具(例如rsnapshot
( rsync
))或专有工具(例如 Veeam Free Agent)可以帮助您管理此操作。
记住,RAID 不是备份,因此通过将 HDD 作为单独的文件系统,您实际上可以获得备份的好处。需要考虑的另一个选择是,您可以将 HDD 保存在 USB 盒中,该盒与计算机物理上分开存储,以便您进行气隙备份。有一个触发器,以便在连接驱动器时自动执行备份。这样做的缺点是您必须记住定期连接驱动器,否则备份不会发生。