将驱动器添加到RAID 10阵列


11

如何使用mdadm扩展RAID10阵列?

显然,我需要一次添加2个驱动器,还是必须是4个驱动器?

我觉得这只是个坏主意。

还是只选择RAID5才更明智?


通常,如果有人问我是否需要RAID 10,则意味着他们不需要它。为什么不突袭5或突袭6?
surfasb 2011年

我当时希望比RAID5更好的写性能。但是我想缺乏灵活性规则了..
stuartc 2011年

通常,RAID 5/6将提供比RAID 10/01更好的写入性能。因为您要在所有驱动器上分配写操作,而不是在一半驱动器上。
surfasb

6
@surfasb“ RAID 5/6将提供比RAID 10更好的写入性能”,不会,因为将写入分布在更多驱动器上远远超过了RAID5 / 6的写入损失

@JackDouglas:很好的信息。
surfasb 2014年

Answers:


5

上次我检查时,mdadm不会--grow raid10。我现在浏览了mdadm的联机帮助页,它仍然显示:当前支持的增长选项包括更改组件设备的活动大小以及更改RAID级别1/4/5/6中的活动设备数量,将RAID级别更改为1,5,和6,更改RAID5和RAID5的块大小和布局,以及添加或删除写意图位图。


谢谢!赞赏,这也不会很快发生的另一个好提示是,我也找不到能做到这一点的硬件RAID卡
。RAID5

2
RAID5在某些工作负载上可能会非常缓慢。您打算做什么?
黄貂鱼

大多数情况下,它们只是存储媒体,还挂载了用于照片编辑的NFS共享,因此希望能够获得良好的写入速度和读取速度。
stuartc 2011年

16

要增加RAID 10,您需要最低版本的mdadm。3.3和最小内核版本3.5。您还需要偶数个磁盘-未配对的磁盘只能作为备用磁盘使用,或者最终只能成长为降级模式(未经测试)。

这是使用mdadm 3.3-2ubuntu2 @ Linux 4.2.0-10-generic将RAID 10从4个驱动器增加到6个的示例。经过ext4数据测试后,文件系统已卸载,RAID扩展后扩展了ext4,没有任何问题。

~$ cat /proc/mdstat
md126 : active raid10 sdd1[1] sdc1[0] sdf1[3] sde1[2]
976428032 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
bitmap: 0/8 pages [0KB], 65536KB chunk

~$ sudo mdadm /dev/md126 --add /dev/sdi1 /dev/sdj1
mdadm: added /dev/sdi1
mdadm: added /dev/sdj1
~$ sudo mdadm --grow /dev/md126 --raid-devices=6

~$ cat /proc/mdstat
md126 : active raid10 sdj1[5] sdi1[4] sdd1[1] sdc1[0] sdf1[3] sde1[2]
1464642048 blocks super 1.2 512K chunks 2 near-copies [6/6] [UUUUUU]
bitmap: 0/6 pages [0KB], 131072KB chunk

1
这应该是当今公认的答案。我自己做的
凯尔(Kyle)

正如我刚刚发现自己很难做到的那样,这仅适用于RAID 10,near2布局。raid10,far2仍然无法增长。请参见此处:wiki.archlinux.org/index.php/RAID#Nested_RAID_levels
gabtub '19

9

我意识到这已经有一年多了,但有人可能会发现这很有帮助...

您可以扩展RAID 10阵列,但不能扩展您的期望。您将必须嵌套多个级别的突袭。可以在raid 10中的2个驱动器上使用mdadm来完成此操作,根据布局,该性能相当不错,但是您必须制作多个2个磁盘raid 10阵列,然后将它们附加到逻辑节点。然后扩展以添加更多,并在其上进行条纹。如果这是您的用例(需要扩展很多),则明智的做法是使用可以增长的奇偶校验数组。

这些是您在RAID 10中获得的限制,同时总体上保持了更好的读写性能。需要说明的是,raid 5/6绝对不是“通常,提供更好的写入性能...”。突袭5/6与突袭10一样具有各自的优点/缺点,但是写入性能并不是突袭5/6的优点。

另外,您没有指定驱动器的大小,但是要注意新的大型驱动器上的RAID 5。尽管如果小心,您可以从不可恢复的读取错误中恢复,但是您会冒着停机时间以及根本无法恢复的风险。

--edit添加信息-发生故障时,使用hdparm(hdparm -i)和lshw之类的工具获取序列号以及设备名称(/ dev / sda)。这将确保您在更换时卸下正确的设备。特拉维斯(Travis)的评论是向上箭头,因为它非常正确且布局不错,但是像往常一样,权衡每种解决方案的利弊。


9

mdadm 3.3发布公告中的一些好消息:

这是一个重要的新版本,因此如果有一些问题,请不要感到惊讶...

一些重点是:

...

  • 可以调整 RAID10阵列的形状,以更改设备数量,更改块大小或在“近”和“偏移”之间更改布局。这将始终更改data_offset,如果没有空间可移动data_offset,则该操作将失败。

...

根据关于U&L的答案,您还将至少需要linux 3.5。


3
我使用mdadm v3.3.2进行了mdadm raid10增长的混合结果的实验​​。我发现我无法使用早期版本的mdadm创建的raid10。用v3.3创建的raid10,我能够重塑/成长。因此,如果您想增加raid10(但不能),最好使用最新的mdadm创建新的raid10。
阿达勒

6

我知道这需要更多工作,并且可能会造成混乱,但是您始终可以分割多个镜像。

例如,我只设置了一个4驱动器RAID 10阵列,而后者想添加另一个4驱动器RAID 10阵列。只需使用mdadm在新驱动器上创建一个新的RAID 10阵列。然后,您可以使用两个现有的RAID设备创建另一个RAID 0阵列。但是,我将使用lvm的功能来创建条带,从而使mdadm配置和/ dev / md设备保持在易于理解的状态。每种方法都行得通,而且可能还有更多,但这就是我能做到的。


管理增长的数据集的好方法,比大多数方法容易得多。棘手的部分是跟踪哪个驱动器在哪个镜像集中发生故障。但是,是个很好的建议!
stuartc 2012年

3

您不能增长RAID10阵列,这是事实。但是您可以从两个驱动器开始(此时没有冗余的代价),然后再添加两个。我已使用此方法从具有四个磁盘驱动器的RAID5阵列切换到具有四个磁盘驱动器的RAID10。

我降级了RAID5,并从阵列中取出了一张光盘。这给了我两张免费使用的光盘。然后,我创建了一个RAID10阵列,其内容类似于“ mdadm --create --level 10 / dev / md0 / dev / sda1丢失/ dev / sdc1丢失”。这足以启动阵列。

当我将数据从降级的RAID5阵列移动到RAID10阵列时,我在RAID10阵列中添加了两个RAID5-光盘,并添加了一个备用磁盘。

如果某个人比我能说的更多知识渊博,那么这可能会是一个好主意。但是我写这篇文章的主要原因是要表明可以从RAID10和两个驱动器开始。

注意:请阅读以下论坛文章,该文章询问并回答mdadm中的磁盘顺序是否重要

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.