mdadm:将RAID10转换为RAID1

有问题的机器配备了4x SSD,并运行Debian wheezy 7.8,linux kernel 3.2.0-4,mdadm v3.2.5。 目前我正在使用由所有这些ssd组成的RAID10。 我必须增加存储容量,SSD需要花费很多,所以想到要摆脱两个SSD,而不是把两个硬盘放在里面,然后把RAID10分成两个RAID1,一个是由SSD制成的,另一个是由SSD制成的的硬盘。

过去几天我在网上search了很多,但是没有发现任何有用的东西。 有人能告诉我如何将RAID10转换成一个(或两个)RAID1?

我完全不确定这是否可能,因为例如,mdadm开发人员之一Neil Brown在2009年写了一篇关于重塑的文章[1]

RAID0和RAID10

目前这些arrays根本无法改造。

有人可以告诉我,如果这是可能的,如果是的话,如何做到这一点?

提前致谢!

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

编辑1:在[2],有人问是否可以将raid10转换为raid0,得到三个答案,其中一个是“是”,一个是“否”。 – 很混乱

[2] 我可以将raid10arrays转换为raid0吗?

编辑2:使用mdadm /dev/md0 --grow --level=1 (在虚拟testing机器中)给出mdadm: RAID10 can only be changed to RAID0 。 所以似乎要走的路是转换到RAID0,然后到RAID1; 但真的不喜欢这个想法,因为这是相当危险的…任何人都知道一个更好,更安全的过程?

编辑3:不可能将RAID0转换为RAID1,试图这样做给mdadm: Impossibly level change request for RAID1 。 因此,似乎需要创build一个1级的新arrays,由当前服务于RAID0的两个设备组成。

我一般不知道,但在特定情况下,您无法重新塑形,因为mdadm无法适应从您的磁盘构build的任何RAID1设备中RAID10设备的大小。 假设你的SSD是100GB的。 这意味着你的RAID10设备有200GB的大小(你的数据可能less了很多,但是请注意,mdadm可以在设备级而不是文件系统级上运行)。 从100GB磁盘构build的RAID1设备最多可以有100GB的容量,所以重塑是不可能的。

令人不幸的是,您必须添加硬盘,将其configuration为RAID1,将所有数据复制到此处,然后重新configurationRAID1中的两个SSD,最后将一些数据从HDD RAID移动到SSD RAID。