Mdadm – 更改RAID 10块大小并切换到“远”布局

我使用软件RAID 10运行带有4个2TB驱动器的Ubuntu Linux NAS服务器。

我在安装过程中(使用Ubuntu Server光盘)创build了arrays,但是布局near ,块大小为64

我想改变块的大小为256和布局far 。 我该怎么做呢?

这里是mdstat的输出:

 root@server:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid10 sde1[3] sdd1[2] sdc1[1] sdb1[0] 3907026816 blocks 64K chunks 2 near-copies [4/4] [UUUU] 

我宁愿不破坏性地进行更改以节省时间复制数据,但数据已备份,所以破坏性更改也可以。

感谢您的任何帮助。

唯一的方法是用新参数销毁和重新创build数组。 尼尔布朗在他最近发表的md:

支持RAID10arrays的重塑。

目前RAID10arrays根本无法重塑。 有可能将“近”模式的RAID10转换为RAID0,但这是所有的。 一些真正的重塑是可能的,应该实施。

整个路线图在这里: http : //lwn.net/Articles/428206/

我也想试试这个,现在有几个关于这个的警告。 正如帕维尔所说,不能不重build就不能完成。 没有捷径,我所做的只是简单地禁用数组,重新创build相同的分区,然后试图通过奇迹般的东西来装载希望会奇迹般地工作(他们没有)。 如果你尝试,你会得到一个内核恐慌(是的,我试了,这是发生了什么)。 所以如果你有一个远程服务器,而且没有KVM远程/重新启动(幸运的是我有它,但很多没有),这是非常糟糕的主意。

另一个警告是,我惊讶地发现在–layout = f2中的相同分区略微小了几百个块。 为什么这是个问题? 如果你正在使用像DRBD这样的大小必须完全相同的东西,那就是一个困境。

在这里给出一个关于mdadm的DRBD问题的例子(在f2布局中512个块的差别):RAID10 –layout = n2 size:数组大小:897500160(855.92 GiB 919.04 GB)RAID10 –layout = f2 size:Array大小:897500672(855.92 GiB 919.04 GB)

我其实希望mdadm在RAID10中默认为–layout = f2。 从根本上来说,为了获得真正的RAID1性能,你需要在f2布局中做一个双磁盘RAID10(非常愚蠢),但至less它是一个选项。