删除 mdadm 阵列并转换为常规磁盘,同时保留数据

删除 mdadm 阵列并转换为常规磁盘,同时保留数据

我在 Ubuntu 12.04 Server 中创建了一个 6 磁盘(每个 2TB)mdadm RAID 5 卷。但是,我正在转向另一种解决方案,并希望“取消 RAID”我的磁盘但保留数据。只有 50% 正在使用中。

据我推测,我基本上必须对每个物理磁盘递归地执行此操作。

  1. 磁盘故障
  2. 格式化故障磁盘
  3. 将部分文件移动到新磁盘。
  4. 重塑阵列
  5. 缩小逻辑卷 md0

这似乎是一个非常耗时的过程。有没有更简单的方法可以做到这一点(可能是自动的),而无需购买新磁盘来临时保存数据?

我还知道在此处理过程中,我的 RAID 卷将始终处于降级状态且易受攻击。我对此不太担心,将使用电池备份并首先移走最重要的文件。

感谢您的帮助!

答案1

我最终重复了这个过程,直到我把所有文件都删除了。

  1. mdadm /dev/md0 --fail /dev/sd... --删除 /dev/sd...
  2. mdadm --zero-超级块 /dev/sd...
  3. mkfs.ext4 /dev/sd…
  4. resize2fs /dev/md0(磁盘大小)
  5. 将 2TB 数据复制到 /dev/sd...
  6. 转至步骤 1,直到所有数据都脱离 md0。

完成所有这一切后,我做了以下事情:

  1. mdadm --stop /dev/md0
  2. mdadm——删除/dev/md0

一切顺利,我甚至没有丢失任何数据。显然你应该备份你的数据,但就我而言,备份 6TB 并不现实。因此,我愿意冒这个险。这个过程有很多漏洞,而且需要很长时间。我建议你只对已经备份或可以轻松重新创建的数据执行此操作。

答案2

好吧,您在 6 个 2TB 磁盘上设置了 RAID5,这为您提供了 10TB 的可用空间,其中 50% 用于数据 - 也就是说您必须将 5TB 放在某个地方。我认为您无法通过其他任何方式做到这一点,除非您有额外的磁盘。这对您没有太大帮助。

不过我想指出一件事 - 您将把该数据集的一部分移动到单个磁盘,这不会给您带来冗余,之后您将调整 raid5 集的大小,这可能会导致其在此过程中损坏。

从您计划做的事情和您描述的限制来看,我了解到您没有此数据集的备份。您确定要这样做而不先将数据移动到其他地方吗?这听起来像是一种过于乐观的方法 :)

相关内容