我有一个 2 磁盘 mdadm RAID 0 卷,总共 4TB,是在 Ubuntu 14.04 服务器上创建的。该卷的容量不到一半,我希望解除磁盘阵列,保留数据,以便我可以在另一台机器上使用其中一个磁盘。
理想情况下,我希望能够做到这一点,而无需购买另一个驱动器来复制数据。
谢谢!
答案1
如果 raid 阵列已分区,则可以使用gparted
来缩小和/或移动其中的文件系统,直到磁盘的后半部分未使用。如果未分区,则需要使用 来缩小文件系统resize2fs
(假设它是 ext[234] )。为确保万无一失,请给自己留出一点额外的空间。然后,您可以将 raid0 转换为降级的 raid4,它支持重塑( raid0 不支持,但降级的 raid4 本质上与 raid0 相同)。然后,您可以将阵列重塑为仅一个磁盘,并移除第二个磁盘。
resize2fs /dev/md2 2800M # 2 3gb drives, left an extra 200mb of margin
mdadm -G /dev/md2 -l raid4
mdadm -G /dev/md2 -Z 2900M
e2fsck -f /dev/md2 # make sure you didn't break things
mdadm -G /dev/md2 -n 2 --backup=backup
mdadm -D /dev/md2 # watch until it is done reshaping
mdadm -G /dev/md2 -l raid0 # drop the second disk and go back to ( single disk ) raid0
mdadm -G /dev/md2 -Z max
resize2fs /dev/md2 # maximize the fs to use the full disk
在测试过程中,我发现resize2fs
即使 fs 的使用率只有 33%,也无法将其缩小到原始大小的一半。我已提交补丁来修复此最小大小计算错误。