仅具有一个磁盘的 Linux RAID1

仅具有一个磁盘的 Linux RAID1

假设我使用 RAID1 镜像安装了操作系统。在某个时候,我决定这种设置有点过度,我的机器对系统来说并不重要,我更看重的是将存储空间增加一倍而不是快速恢复,我正在做例行备份,等等...

除了备份我的系统卷并重新分区或重新开始之外,有没有办法可以重新配置我的 RAID1 阵列以只需要一个磁盘,以便 mdadm 不再报告降级状态?

答案1

您可以将 RAID-1 阵列中的磁盘数量设置为任意数量(任何正整数),包括 1。只需删除要保留的一个组件以外的所有组件mdadm --remove,然后将组件数量设置为 1:

mdadm /dev/md999 --grow --force -n 1

顺便说一句,相反,如果您认为您可能想要创建磁盘或分区的镜像,那么从一开始就将其设置为单组件 RAID-1 阵列是一个好主意。(您可以稍后通过将文件系统缩小 128kB 并创建超级块来实现这一点,但先创建阵列然后在其上放置文件系统要容易得多。)


可以将单个剩余组件变成独立卷:使用 停止阵列mdadm --stop,然后在组件卷上使用mdadm --zero-superblock。由于 md 超级块位于组件卷的末尾,因此 RAID-1 卷上的任何文件系统也可以在每个组件卷上直接访问。如果这样做,您甚至可以将文件系统扩大 64kB 到 128kB(取决于对齐)。总而言之,这是可能的,但不值得这么麻烦。我建议将镜像保留在单个组件中——谁知道呢,也许有一天你会想再次复制它(如果没有其他方法,RAID-1 重建是一种将磁盘内容复制到另一个磁盘的非常快速的方法,并且它不介意当时已安装磁盘)。

请注意,使用 mdadm 1 时,超级块的默认位置位于设备的开头,因此文件系统不会从与 RAID 设备相同的位置开始。选择版本 1.0 超级块而不是默认的 1.2(或 0.9 以实现向后兼容)以将超级块放在设备的末尾。如果您有 1.1 或 1.2 超级块,则无法轻松将卷转换为非 mdraid 卷。

答案2

如果那是我的机器,我只需拔出其中一个磁盘并尝试启动它,它应该可以正常工作。您有备份,因此如果出现问题,您可以将此作为学习经验。下一步是禁用 RAID 而不清除任何数据,我对 Linux 软件 RAID 没有任何经验,所以我帮不上什么忙,但据我所知应该是可能的。

相关内容