linux – mdadm:增加RAID0阵列的怪异

我使用Rackspace的CloudBlockStorage作为他们的设备,在3个Rackspace CloudServers上使用mdadm创建了3个RAID0阵列.每个阵列都有自己的一组CBS卷. RS-CBS的驱动器上限为1TB,我需要更大的存储空间.其中一个服务器用于数据存储,第二个是该服务器的实时镜像,第三个是夜间快照.我使用以下命令在每个服务器上创建了数组:
mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/xvdb1 /dev/xvdd1 /dev/xvde1

当需要增加阵列时,由于这是我第一次成长,我开始使用最不重要的服务器:快照服务器.我添加了一个新的音量,并且有点小小的提示,想出了这个命令:

mdadm --grow /dev/md0 --raid-devices=4 --add /dev/xvdf1

根据mdadm手册页,它说你无法增长RAID0所以mdadm将它转换为RAID4,增长它,然后转换回来. (它永远不会转换回来,但这是另一个问题).数组重塑,但大小永远不会改变.我的假设是新驱动器刚刚成为阵列的奇偶校验驱动器.因此,为了获得我需要的空间,我添加了另一个卷:

mdadm --grow /dev/md0 --raid-devices=5 --add /dev/xvdg1

这重塑并给了我额外的500GB我希望所以我做resize2fs / dev / md0并且很好去; 2TB的空间.

所以这就是奇怪发生的地方.我切换到在镜像服务器上增长数组.从前面的步骤知道我需要添加两个卷来获得我需要的额外空间,我使用这个命令:

mdadm --grow /dev/md0 --raid-devices=5 --add /dev/xvdf1 /dev/xvdg1

它重塑,事情看起来很好,但是当我执行resize2fs / dev / md0后跟df -hal时,我看到它确实增长并报告2.5TB的空间,而不是我期望的2.0TB.这就好像它没有创建奇偶校验驱动器,我假设它从第一次运行中完成并使用了阵列的所有可用空间.

一个看起来不同的是在镜像服务器上重塑后mdadm -D / dev / md0的输出.我在RAID设备上看到了这个:

Number   Major   Minor   RaidDevice State
   0     202       17        0      active sync   /dev/xvdb1
   1     202       49        1      active sync   /dev/xvdd1
   2     202       65        2      active sync   /dev/xvde1
   5     202       97        3      active sync   /dev/xvdg1
   4     202       81        4      active sync   /dev/xvdf1
   5       0        0        5      removed

cat / proc / mdstat的输出显示它确实转换为RAID4:

Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid4 xvdg1[5] xvdf1[4] xvdd1[1] xvdb1[0] xvde1[2]
      2621432320 blocks super 1.2 level 4,512k chunk,algorithm 5 [6/5] [UUUUU_]

unused devices: <none>

所以我的担忧是……我是否错误地增加了第一个阵列(快照服务器),它应该得到2.5TB,但我的错误只给它2.0TB?或者我是否错误地增加了第二个阵列(镜像服务器)并且没有我认为我会获得的奇偶校验驱动器?我能做些什么,或者我应该做些什么来一致地发展这些阵列?

解决方法

我也遇到了他的问题,经过一些测试后可以增加一个软件RAID 0阵列.

我找到了一个选项,如果你认为在grow命令中包含它是有意义的,那么选项是–backup-file.如果你认为它真实地增长RAID 0阵列,就像你在硬件中那样,你需要将数据复制到别处以销毁并重新创建阵列,如果不是,我想看到数学增长没有额外空间的RAID 0阵列(真的).

我发现的另一件事是我无法将一个驱动器添加到RAID 0阵列,它只能在我添加两个驱动器时才能工作,还没有尝试过更多.

因此,增加RAID 0阵列的命令将是(对于您的情况):

mdadm --grow /dev/md0 --raid-devices=5 \
  --backup-file=/drive/With/Enough/Space/growth.bak --add /dev/xvdf1 /dev/xvdg1

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...