我在 Ubuntu 12.04 Server 中创建了一个 6 磁盘(每个 2TB)mdadm RAID 5 卷。但是,我正在转向另一种解决方案,并希望“取消 RAID”我的磁盘但保留数据。只有 50% 正在使用中。
据我推测,我基本上必须对每个物理磁盘递归地执行此操作。
- 磁盘故障
- 格式化故障磁盘
- 将部分文件移动到新磁盘。
- 重塑阵列
- 缩小逻辑卷 md0
这似乎是一个非常耗时的过程。有没有更简单的方法可以做到这一点(可能是自动的),而无需购买新磁盘来临时保存数据?
我还知道在此处理过程中,我的 RAID 卷将始终处于降级状态且易受攻击。我对此不太担心,将使用电池备份并首先移走最重要的文件。
感谢您的帮助!
答案1
我最终重复了这个过程,直到我把所有文件都删除了。
- mdadm /dev/md0 --fail /dev/sd... --删除 /dev/sd...
- mdadm --zero-超级块 /dev/sd...
- mkfs.ext4 /dev/sd…
- resize2fs /dev/md0(磁盘大小)
- 将 2TB 数据复制到 /dev/sd...
- 转至步骤 1,直到所有数据都脱离 md0。
完成所有这一切后,我做了以下事情:
- mdadm --stop /dev/md0
- mdadm——删除/dev/md0
一切顺利,我甚至没有丢失任何数据。显然你应该备份你的数据,但就我而言,备份 6TB 并不现实。因此,我愿意冒这个险。这个过程有很多漏洞,而且需要很长时间。我建议你只对已经备份或可以轻松重新创建的数据执行此操作。
答案2
好吧,您在 6 个 2TB 磁盘上设置了 RAID5,这为您提供了 10TB 的可用空间,其中 50% 用于数据 - 也就是说您必须将 5TB 放在某个地方。我认为您无法通过其他任何方式做到这一点,除非您有额外的磁盘。这对您没有太大帮助。
不过我想指出一件事 - 您将把该数据集的一部分移动到单个磁盘,这不会给您带来冗余,之后您将调整 raid5 集的大小,这可能会导致其在此过程中损坏。
从您计划做的事情和您描述的限制来看,我了解到您没有此数据集的备份。您确定要这样做而不先将数据移动到其他地方吗?这听起来像是一种过于乐观的方法 :)