mdadm:将 RAID10 转换为 RAID1

mdadm:将 RAID10 转换为 RAID1

有问题的机器配备了 4 个 ssd,运行 Debian wheezy 7.8、linux 内核 3.2.0-4、mdadm v3.2.5。目前,我正在使用由所有这些 ssd 组成的 RAID10。我必须增加存储容量,ssd 太贵了,所以我考虑去掉两个 ssd,而是在里面放两个 hdd,并将 RAID10 拆分为两个 RAID1,一个由 ssd 组成,另一个由 hdd 组成。

这几天我在网上搜索了很多,但并没有找到任何有用的信息。有人能告诉我如何将 RAID10 转换为一个(或两个)RAID1 吗?

我不太确定这是否有可能,因为例如,mdadm 开发人员之一 Neil Brown 在 2009 年 [1] (当然是很久以前) 写了关于重塑的内容:

RAID0 和 RAID10

目前这些数组根本无法重塑。

有人能告诉我现在这是否可行,如果可行,该如何做?

提前致谢!

[1]http://neil.brown.name/blog/20090817000931#4

编辑1:在 [2] 中,有人询问是否可以将 raid10 转换为 raid0,得到了三个答案,其中一个是“是”,一个是“否” - 相当令人困惑。

[2]我可以将 raid10 阵列转换为 raid0 吗?

编辑2:使用mdadm /dev/md0 --grow --level=1(在虚拟测试机中)可得到mdadm: RAID10 can only be changed to RAID0。因此,似乎要采取的方法是先转换为 RAID0,然后再转换为 RAID1;但我真的不喜欢这个想法,因为它非常冒险...有人知道更好、更安全的过程吗?

编辑3:无法将 RAID0 转换为 RAID1,尝试这样做会导致mdadm: Impossibly level change request for RAID1。因此似乎必须创建一个具有级别 1 的新阵列,由当前为 RAID0 服务的两个设备组成。

答案1

我不知道一般情况如何,但在您的特定情况下,您无法重塑,因为 mdadm 无法将您的 RAID10 设备的大小放入由您的磁盘构建的任何 RAID1 设备中。假设您的 SSD 每个为 100GB。这意味着您的 RAID10 设备的大小为 200GB(您的数据可能要少得多,但请注意,mdadm 在设备级别而不是文件系统级别上工作)。由 100GB 磁盘构建的 RAID1 设备最多可以有 100GB,因此重塑是不可能的。

不幸的消息是,您必须添加您的 HDD,在 RAID1 中配置它们,将所有数据复制到那里,在 RAID1 中重新配置 2 个 SSD,最后将部分数据从 HDD RAID 移动到 SSD RAID。

相关内容