如何使用mdadm扩展RAID10阵列?
显然,我需要一次添加2个驱动器,还是必须是4个驱动器?
我觉得这只是个坏主意。
还是只选择RAID5才更明智?
如何使用mdadm扩展RAID10阵列?
显然,我需要一次添加2个驱动器,还是必须是4个驱动器?
我觉得这只是个坏主意。
还是只选择RAID5才更明智?
Answers:
上次我检查时,mdadm不会--grow raid10。我现在浏览了mdadm的联机帮助页,它仍然显示:当前支持的增长选项包括更改组件设备的活动大小以及更改RAID级别1/4/5/6中的活动设备数量,将RAID级别更改为1,5,和6,更改RAID5和RAID5的块大小和布局,以及添加或删除写意图位图。
要增加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
我意识到这已经有一年多了,但有人可能会发现这很有帮助...
您可以扩展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)的评论是向上箭头,因为它非常正确且布局不错,但是像往常一样,权衡每种解决方案的利弊。
mdadm 3.3发布公告中的一些好消息:
这是一个重要的新版本,因此如果有一些问题,请不要感到惊讶...
一些重点是:
...
- 可以调整 RAID10阵列的形状,以更改设备数量,更改块大小或在“近”和“偏移”之间更改布局。这将始终更改data_offset,如果没有空间可移动data_offset,则该操作将失败。
...
根据关于U&L的答案,您还将至少需要linux 3.5。
我知道这需要更多工作,并且可能会造成混乱,但是您始终可以分割多个镜像。
例如,我只设置了一个4驱动器RAID 10阵列,而后者想添加另一个4驱动器RAID 10阵列。只需使用mdadm在新驱动器上创建一个新的RAID 10阵列。然后,您可以使用两个现有的RAID设备创建另一个RAID 0阵列。但是,我将使用lvm的功能来创建条带,从而使mdadm配置和/ dev / md设备保持在易于理解的状态。每种方法都行得通,而且可能还有更多,但这就是我能做到的。
您不能增长RAID10阵列,这是事实。但是您可以从两个驱动器开始(此时没有冗余的代价),然后再添加两个。我已使用此方法从具有四个磁盘驱动器的RAID5阵列切换到具有四个磁盘驱动器的RAID10。
我降级了RAID5,并从阵列中取出了一张光盘。这给了我两张免费使用的光盘。然后,我创建了一个RAID10阵列,其内容类似于“ mdadm --create --level 10 / dev / md0 / dev / sda1丢失/ dev / sdc1丢失”。这足以启动阵列。
当我将数据从降级的RAID5阵列移动到RAID10阵列时,我在RAID10阵列中添加了两个RAID5-光盘,并添加了一个备用磁盘。
如果某个人比我能说的更多知识渊博,那么这可能会是一个好主意。但是我写这篇文章的主要原因是要表明可以从RAID10和两个驱动器开始。
注意:请阅读以下论坛文章,该文章询问并回答mdadm中的磁盘顺序是否重要。