NoD*_*und 6 filesystems raid lvm
我有一个 LVM2 组,使用以下命令设置 5x4TB:
pvcreate /dev/sd{b,c,d,e,f}
vgcreate vg0 /dev/sd{b,c,d,e,f}
lvcreate -l 100%FREE -n lvol1 vg0
Run Code Online (Sandbox Code Playgroud)
现在我创建了这个怪物,我有一些关于它的问题:在恰好是线性的默认配置中,如果/dev/sdb失败会发生什么?
我应该对整个/dev/sdb数据说再见还是 LVM 将文件放在整个设备上而不是尝试填充第一个字节?
我怎么知道哪个文件在哪个设备上?如果我丢失了一个磁盘,我想知道数据丢失的位置,以便能够在可能的情况下恢复它。
笔记:
lvdisplay --maps将告诉您与特定 LV 或其特定范围相对应的物理范围所在的位置。pvdisplay --maps从以光伏为中心的角度呈现相同的信息。
例如,如果pvdisplay --maps指示故障 PV 覆盖特定 LV 的逻辑范围 1000...4000,并且该 VG 的范围大小为 4 MiB,那么您就会知道,如果 PV 完全失败,您的 LV 中将有一个无法访问的大“洞”,从距 LV 开头 4000 MiB 的点开始,一直持续到距该 LV 开头 16000 MiB 的点。
通常,在这种情况下,恢复整个 LV 是最简单的:这样您就可以确保所有文件都处于一致状态。例如,如果文件 A 包含对文件 B 中内容的引用,您可能希望从备份中恢复这两个文件,即使损坏区域上只有一个文件。
但如果你必须(即你发现你没有可用的备份并且现在陷入了严重的麻烦),你可以使用lvchange或vgchange来--activationmode partial激活 LV,即使它有部件丢失,这样你就可以安装它来恢复任何东西其余的。这应该仅用于数据恢复目的。
由于在您的情况下/dev/sdb将是卷组中的第一个 PV,因此它还将保存 LV 的第一部分 - 这是该 LV 的许多关键文件系统元数据可能最终会出现的地方,因此会fsck在你。正如弗罗斯特舒茨所说,photorec很可能从 LV 的其余部分找到任何未碎片的文件。但依赖这一点是糟糕的策略。
您需要考虑备份以及完整恢复所需的时间。如果在磁盘故障后恢复整个 LV 需要花费太多时间,则需要向系统添加冗余以避免这种情况。通常,这意味着获取更多磁盘并将数据放在某种 RAID 阵列上。
但即使您设置了 RAID 阵列,也不要忘记备份。RAID 可能使磁盘故障易于处理,但在用户/系统管理员“哎呀”的情况下根本没有帮助。RAID 不是备份。
LVM 不放置任何文件。LVM 创建一个大型逻辑设备,其数据分布在多个物理设备上。
这就像拥有一个 1GiB 分区,对其进行格式化,在文件系统中创建数据,然后用零覆盖 250MiB 到 500MiB 的范围。
如果文件系统中的数据少于 250MiB,则有可能fsck恢复大部分或全部数据。您可以轻松尝试一下。