我有一台配备三块 500GB 硬盘的服务器,其中大部分数据都存储在这三个硬盘的 RAID5 配置中。
我刚刚购买并安装了 4 个 1TB 硬盘,打算将旧硬盘换成新硬盘。我有足够的 SATA 端口和电源连接器可以同时为所有 7 个硬盘供电,因此我保留了旧 RAID,同时考虑如何处理新硬盘。
我的问题是:我是否应该在 1TB 驱动器上创建一个全新的阵列,然后移动所有内容并重新配置 Linux 以从新的 md 阵列启动?还是我应该扩展阵列,将三个 500GB 中的每一个都换成 1TB,然后添加最后一个驱动器?
我已经阅读了有关 mdadm 扩展驱动器设置的资料,它很有意义,但我想我会在移动东西时使用其中一个驱动器作为完整备份,然后在三个 1TB 驱动器上启动并运行后将该驱动器重新添加到阵列中,所以走这条路线也会有一些复杂之处...我只是不确定哪个更安全/更推荐。
答案1
使用新驱动器创建一个全新的阵列,不值得冒风险或费力去处理旧驱动器。请仔细考虑您要设置的 RAID 类型。如此大的驱动器上的 RAID5 会导致非常长的重建时间,在此期间您很容易受到第二个驱动器故障和数据完全丢失的影响。有一些策略可以降低这种风险,例如使用 RAID6,这样即使丢失两个驱动器,您也能安然无恙。
还可以考虑在新的 raid 阵列上运行 LVM,因为这将为您提供将来扩展或迁移文件系统的选项。
答案2
如果您的目标是将 3 设备 mdadm RAID5 阵列转换为 4 设备阵列,我相信您现在唯一的选择是您的第一个选择:使用四个 1TB 驱动器创建第二个阵列,然后从第一个阵列复制所有数据。
据我所知,mdadm“grow”模式目前不支持向现有 RAID5 添加更多设备,因此,很遗憾,您无法使用第二个选项。或者,如果您选择第二个选项,您最终会在 1TB 驱动器上获得 3 个设备的 RAID5,剩下 1TB 驱动器作为备用。(我相信您可以将该额外驱动器配置为热备用。)
答案3
更改现有的 RAID 总是会带来麻烦,另外,您的 3 个 500GB 驱动器有多旧?如果它们已使用超过 3 年,那么最好将它们从生产中移除,因为它们即将寿终正寝,而且您可能遇到的问题比您想要的还要多,将它们重新用于其他地方的低优先级潜水。
答案4
虽然可以选择在不创建新阵列的情况下移动数据,但这样做没有多大意义,无论哪种方式,文件系统在迁移期间都会处于离线状态。
我同意 Phil Hollenback 的观点,认为您应该转到带有 LVM 的 RAID6 设置(我将此作为答案发布的唯一原因是我可能尚未对此网站发表评论),但我认为他没有强调 RAID5 是个坏主意。
由于您组中的驱动器可能有些相似(尽管理想情况下来自不同的生产批次),我预计它们会彼此接近地发生故障。如果 RAID5 中有一个驱动器发生故障,则如果单个驱动器发生故障,您将没有剩余的冗余,此时您要做的第一件事就是让所有驱动器承受重建的额外压力。
使用 LVM 可让您在需要再次迁移时将停机时间保持在较低水平。我认为,如果您现在不想利用这个机会,那么服务器的合理“下一步”将是专用的 RAID 控制器卡,它将作为单个设备出现在内核中,因此您需要在此时再次移动数据,而 LVM 可以在文件系统挂载时执行此操作(对根文件系统有一些注意事项)。
如果您有足够的预算,不妨大胆投资硬件 RAID 解决方案;合理的价格范围应为 500 美元起,包括 RAID6 支持和电池备份单元。请注意,该领域一家大型公司的产品不允许缩小单元,因此您要么避开它们,要么与 Linux 软件 RAID 相比失去一些灵活性,但电池缓冲写入缓存的额外性能非常值得,特别是如果您使用日志文件系统。