将Linux软件Raid从raid5转换为raid6


11

我目前在RAID5阵列中具有3个1.5TB磁盘的文件服务器。由于它已经快满了,所以我又获得了三个额外的磁盘(每个磁盘也有1.5TB)。

现在,我想切换到RAID6,因为6TB的空间已足够,我想提高raid6的安全性。虽然我确实有完整的备份-即我可以简单地创建一个新阵列并还原备份-但我更愿意切换而不必还原备份。这可能吗?如果可以,怎么办?

Answers:


9

您正在寻找的术语是“ RAID级别迁移”。

根据这个,这是可能的。我还没有完成,但是该过程似乎应该将新驱动器作为热备份添加到现有阵列,然后使用mdadm更新RAID级别和RAID设备的数量。

您需要使用最新的mdadm来执行此操作:mdadm-2.6.9(例如,centos 5.x)似乎不支持它,但是mdadm-3.1.4(例如,ubuntu 11.10)支持:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

EG,首先将新的热备用设备/ dev / sdg添加到RAID5阵列:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

然后转换为RAID6阵列并使其重建为干净状态。--raid-devices 4告诉您新阵列中总共有多少个驱动器。

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

我不知道这有多快。以我在硬件RAID控制器上进行RAID级别迁移的经验,从头开始创建新阵列并将备份恢复到其中的速度更快。


3
将RAID 5迁移到RAID 6有两个缓慢的操作-重新跨磁盘对数据进行条带化和计算额外奇偶校验磁盘的第二个奇偶校验值。擦除/还原可能需要与调整大小相同的时间。
安德鲁(Andrew)

1
它还需要特定的内核版本。很难找到这一点。
Sirex

由于我使用的是gentoo,所以我的内核和mdadm都是相当新的版本-所以这应该不是问题。
ThiefMaster 2012年

1
您引用的链接是我写的。请注意:我并未真正阅读过有关如何实际操作的文档,我只是创建了一个具有30个驱动器(类似的驱动器)的虚拟机并开始摆弄。因此,所有职位都贴上一粒盐,这只是个脑力激荡……
Martin M.

1
@ServerHorror:已记录。包括mdadm手册页在内的更广泛的互联网声称可以进行RAID级别的迁移。:)
Daniel Lawson 2012年

7

强制警告:计划失败。做好备份准备,并考虑可能的停机时间。

另外,请在虚拟机或类似工具中进行测试,这是从我的笔记中得出的,而且我已经很长时间没有这样做了。这可能是不完整的。

  1. 您将需要add将磁盘插入阵列:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    对三个磁盘中的每个磁盘执行此操作,并相应地替换设备名称。

  2. 增加数组:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

请使用该--backup-file选项,以便在断电的情况下重新启动后继续增加设备的容量,并确保没有数据丢失。

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

备份文件应保存在文件系统中,而不是要增长的阵列的一部分。

--backup-file=--grow如果没有可用的备用设备,或用于缩小,更改RAID级别或布局,则用于增加RAID5或RAID6中的RAID设备的数量时需要使用。请参阅RAID-DEVICES CHANGES上下面的GROW MODE部分。该文件必须存储在单独的设备上,而不是在重塑的RAID阵列上。

--continue--freeze-reshape组装选项的补充。当--grow操作中断并且由于--freeze-reshape阵列组装期间的使用情况而不会自动重新启动时,将需要使用它。此选项与-G,(--grow)命令和设备一起使用,以继续进行待定的重塑。重整延续所需的所有参数将从数组元数据中读取。如果设置了初始--grow命令所需的--backup-file=选项,则继续选项也将要求具有完全相同的备份文件。

--continueoption 一起传递的任何其他参数将被忽略。

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.