我目前正在远程 ubuntu 18.04 服务器上工作,我需要设置一个新的 raid 阵列 (raid1),然后将其作为可用分区安装到活动文件系统。对我来说,第一步是了解目前正在发生的事情。我知道活动系统中有 2 个硬盘驱动器连接在 raid 1 阵列中。我使用该lsblk
命令来收集一些信息。输出如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 894,3G 0 disk
├─nvme0n1p1 259:1 0 4G 0 part
│ └─md0 9:0 0 4G 0 raid1 [SWAP]
├─nvme0n1p2 259:2 0 512M 0 part
│ └─md1 9:1 0 511,4M 0 raid1 /boot
└─nvme0n1p3 259:3 0 889,8G 0 part
└─md2 9:2 0 889,6G 0 raid1 /
那么这是否意味着我的物理设备就是所谓的设备nvme0n1
?它被分为 3 个部分(交换区、引导区和 /)。如果它是同一个物理设备(nvme0n1
),为什么分区(nvme0n1p1,nvme0n1p2,nvme0n1p3
)还被分成md0,md1,md2
?nvme0n1p1
和 和有什么区别md0
?
如果我cat /proc/mdstat
进一步得到以下输出:
md2 : active raid1 nvme0n1p3[1]
932840768 blocks super 1.2 [2/1] [_U]
bitmap: 7/7 pages [28KB], 65536KB chunk
md1 : active raid1 nvme0n1p2[1]
523712 blocks super 1.2 [2/1] [_U]
md0 : active raid1 nvme0n1p1[1]
4190208 blocks super 1.2 [2/1] [_U]
这显示了 3 个活跃的 raidblock。我只有一个 raid 阵列正在运行。我无法解释输出...我需要一些帮助。
谢谢
答案1
如果这是完整的lsblk
输出,那么恐怕它只显示一个物理存储设备,nvme0n1
.
您的nvme0n1
分区分为三个分区,每个分区都单独设置为软件 RAID1 镜像。这为您提供了三个软件 RAID 设备:md0
、md1
和md2
。其中每一个都对应于一个软件 RAID 分区,而不是整个磁盘。
像这样为每个分区设置 RAID 使得 BIOS 可以将磁盘识别为分区磁盘,即使 BIOS 根本不支持 Linux 软件 RAID。这可以使启动和某些恢复场景更易于处理,并且可以在需要时轻松恢复到非 RAID 配置。
在正常的镜像状态下,md0
将引用nvme0n1p1
+的镜像集nvme1n1p1
、+md1
的集等。您可以使用、和设备挂载文件系统并激活交换:一旦这些设备打开使用,软件 RAID 子系统将锁定底层物理分区以进行独占访问,要求在 RAID 处于活动状态时对分区的所有访问都必须经过 RAID 层。nvme0n1p2
nvme1n1p2
md0
md1
md2
然而,每个软件 RAID 集都缺少 RAID1 对的后半部分。这可能意味着系统在两个相同的 NVMe 设备上使用软件 RAID 设置,但其中一个(可能nvme1n1
)已经发生故障。或者系统可能是在单个 NVMe 磁盘上设置为 RAID1 集的一半,以便在获得第二个 NVMe 设备后可以轻松过渡到真正的 RAID1...但由于某种原因,这种情况从未发生过或其他。
您的首要任务可能应该是更换出现故障的 NVMe(或添加丢失的 NVMe),然后恢复现有的 RAID 对:
- 将分区表从现有磁盘复制到新磁盘
- 将新磁盘上的分区初始化为相应
mdN
设备的备用分区 - 在每对上启动 RAID1 恢复
- 将引导加载程序的第二个副本安装到第二个磁盘,因为 MBR 和部分 GRUB 位于镜像分区之外。
- 设置对 RAID 设备的监控,以便其中一个物理设备的故障不会再次被忽视。
完成后,您可以考虑设置新 RAID 阵列的原始任务。为此,您将需要更多的物理存储,因为现有的物理存储似乎nvme0n1
已完全使用(一旦当前的半反射镜完全恢复,其镜像同伴也会如此)。
答案2
是的,输出仅显示一个物理设备 (nvme0n1)。
是的,输出显示它有 3 个分区。
有趣的部分是来自的信息/proc/mdstat
,它显示了3配置好的raid设备,所有这些都显示[_U]
。在一个健康的系统中应该这样说[UU]
。 3 个 raid 设备配置为 raid1(镜像),因此第二个驱动器的(假定)故障尚未导致您任何数据丢失。当然,第二个驱动器可能无法检测到,因为它已被删除。
对启动日志的研究可能会提示您是否有第二个驱动器。
nvme0n1p1 是一个分区。它在开始时会有一个 raid 标头。分区中的其余扇区用作 md0 设备的数据。如果连接了第二个驱动器(可能是传统spinning rust
硬盘驱动器),则预计它至少有 3 个分区,其中一个(按照惯例,您将拥有第一个分区,因此 /dev/hda1)也将有一个 raid头,然后其余扇区将用于保存 /dev/md0 设备的数据的第二个副本。