是否可以挂载 RAID 1 软件/mdadm 成员原始?

是否可以挂载 RAID 1 软件/mdadm 成员原始?

我想知道是否可以直接安装软件成员。软件raid这么透明吗?我认为了解这一点是件好事,以防万一 RAID 管理因某种原因失败?

如果是这种情况,这是否适用于硬件 RAID 1 系统?

答案1

对于 mdadm RAID 1,这是可能的。然而,这样做(以任何方式绕过 RAID 层)会使驱动器不同步,进而导致损坏。所以最好以只读方式挂载。

确定数据偏移量:

# mdadm --examine /dev/sda2
[...]
     Raid Level : raid1
[...]
    Data Offset : 2048 sectors
[...]

在本例中为 2048 个扇区。

使用该偏移量创建一个(最好是只读的)循环设备:

# losetup --find --show --offset=$((2048*512)) /dev/sda2
/dev/loop3

安装它:

# mount -o ro /dev/loop3 /mnt/somewhere

循环设备的创建和挂载也可以用一条命令来表达:

# mount -o ro,loop,offset=$((2048*512)) /dev/sda2 /mnt/somewhere

只读挂载的缺点之一是,如果文件系统处于不干净的状态,挂载可能会失败,并且由于只读而无法修复。在这种情况下,可以将写时复制覆盖在循环设备的顶部。

请注意,如果您不执行严格的只读操作,并绕过 RAID 层,则 RAID 将不再同步,并且如果您之后不强制 RAID 重新同步/修复自身,则会出现损坏问题。


对于硬件和其他类型的 RAID,这取决于格式。许多 RAID 在末尾都有元数据,因此您可以对偏移量 0 执行相同的步骤。否则您必须以某种方式确定数据偏移量。

如果 RAID 上没有文件系统(cryptsetup、LVM...),则必须在安装步骤之前打开这些层。如果 RAID 设备已分区,则循环设备支持分区(losetup --partscan例如/dev/loop3p1)。

相关内容