在我的家庭实验室中,我有一台 Ubuntu Server 18.04,它已经是一台物理机器很长时间了。今天我决定将它虚拟化,并将其毫无问题地移到我的 Proxmox 服务器上。我运行正常,但有一个小问题,我想寻求一些帮助来解决。
当设备还是物理设备时,我配置了一个软件 RAID 1。现在它已经转换完毕,我想删除该 RAID 配置,因为显然现在不需要它了。我似乎无法弄清楚如何使用我在网上找到的几乎所有指南和建议来删除它。除了说“降级”之外,它看起来完全没问题。好像它没有注意到它现在只有一个磁盘。
sudo mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Aug 15 19:11:21 2016
Raid Level : raid1
Array Size : 7806976 (7.45 GiB 7.99 GB)
Used Dev Size : 7806976 (7.45 GiB 7.99 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Fri Mar 15 19:37:07 2019
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : ubuntu:0 (local to host ubuntu)
UUID : f9c09690:4edfb4ba:083bba5c:4f50adaa
Events : 110
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
- 0 0 1 removed
和
sudo cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[0]
70273024 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
7806976 blocks super 1.2 [2/1] [U_]
答案1
如果您真的希望它消失,您必须销毁 md 超级块,这样 mdadm 将不再能够将其识别为数组成员。
即使您处于 raid 1 中,您的数据仍可能处于危险之中。继续操作之前请先进行备份。
https://serverfault.com/a/535269/79262
编辑更新
这里需要理解的是,虚拟机仍然是一台机器,操作系统不应该知道它是虚拟化的。如果你把虚拟化从方程式中剔除,而是说“我买了一台新电脑,只移动了 RAID1 组中的一块磁盘,现在它显示它已降级”,问题就变得很明显了。磁盘本身带有它是 RAID 一部分的配置。
要将磁盘从 RAID 集中分离,您必须销毁该配置,该配置作为二进制数据(元数据)存在于所谓的“超级块”中,超级块是预定的位置,MD 知道在此查找磁盘是否已被委托给它的控制。
如果删除磁盘上的魔法数据让您感到紧张,那很好,这是应该的。一般步骤如下:
- 启动到 Live CD
- 确保卷未安装
- 停止阵列
- 祈祷吧
- 根据上面提供的链接销毁数组成员的元数据
- 在分区上运行 fsck
- 重新启动,希望你没有损坏所有数据
这仅仅是因为它处于镜像(RAID 1)中,所以“理论上”分区在操作后应该没问题,文件系统仍然知道数据在哪里。另一方面,RAID 0/5/6 将数据以块的形式分散到集合中的每个磁盘上,如果不破坏所有内容,就无法“撤消它”。您必须先将数据复制到安全的地方。
这就是我说要备份的原因。另一种选择是不管它,降级的 RAID1 不会对性能造成明显影响,只是它仍然存在很烦人。