我想我记得几年前用 LVM 制作了一些镜像,但我不记得这个“日志”的东西了。或者,也许我用 mdadm 制作了镜像并将 LVM 放在上面。一定是这样的。
如果它只是一个镜像,那么 LVM 日志有什么用?那里存储了什么?它的目的是什么?使用“--mirrorlog core”不好吗?不利的一面是什么?如果我不需要的话,我不想有另一个日志分区。
关于使用这两种技术的任何建议?即使我使用 mdadm 制作镜像,我也会在此基础上使用 LVM。所以,在那种情况下,也许最好用 LVM 构建整个设置......?这会对性能造成更大的影响还是更少?
这些磁盘用于存储 Xen domU“磁盘”。
对于复杂的不切题的“问题”,我们深表歉意。
想法和建议和链接是最受欢迎的。谢谢!
就我个人而言,我总是使用 MD+LVM。它速度更快(MD 可以在 RAID1 中进行并行读取),并且只需要 2 个磁盘(如果您不想在每次重新启动后重建镜像),并且 MD 只是为了做 RAID 而设计的,而且做得很好。它也更灵活。
我也被LVM烧毁了。在一种情况下,它是 HP-UX 上的 LVM 条带化(在 Linux 中不应使用 LVM2),我无法扩展 LV,因为扩展必须具有完全相同数量的条带。这似乎是合理的,但有时...
另一次是镜像(这次是 Linux 中的 LVM2),但现在我不记得 LVM 是否拒绝拍摄镜像 LV 的快照或扩展它,这实际上否定了最初拥有 LVM 的好处(我们做到了)最后,但涉及使用 lvconvert 来回)。
当镜像对突然关闭时,在任何系统中,都可能有一些块已写入一个设备但尚未写入另一个设备。可以想象,通过重新排序 IO 路径,有些块已写入 A 但未写入 B,有些已写入 B 但尚未写入 A。
当机器重新启动时,它需要使设备保持一致。仅拥有两个设备是不够的:它不知道哪些块不一致,也不知道哪个版本更新。
所以镜像软件需要存储一些元数据来跟踪这一点。这称为“写意图日志”。
md 通常将其存储在设备本身的一些保留空间中,但您也可以选择将其存储在单独的设备上。(这就是为什么 md 镜像比基础设备略小的原因之一。
LVM 镜像只能在外部存储写入范围日志,正如您所指出的,这对于您只有两个物理磁盘的典型情况有点烦人。我相信您仍然可以选择将其存储在同一物理设备上的不同分区中,但这仍然不方便。
据我了解,LVM 镜像日志的目的是跟踪已写入一个设备但尚未写入另一设备的块。
这是两个不同的概念:
LVM 在存储设备上运行,无论是元设备,还是由 RAID 控制器提供的设备,或者只是普通磁盘。
MD 在磁盘上运行(是的,您也可以使用 RAID 控制器提供的磁盘,但有什么意义呢?..
LVM 不是为了让您的存储具有高可用性。同样 MD 也不适用于卷管理...
希望这可以帮助 :)
LVM 来自其他 UNIX 系统类型。10年前我在没有Linux的MD层的HPUX上使用它,现在不确定。在这些情况下,LVM 镜像在硬件 RAID 不可用的情况下变得有用。
使用 -mirrorlog mirrored 和 -alloc anywhere 选项,使用两个磁盘,您将获得两个 4M 镜像日志,每个磁盘上一个。我很生气,因为我必须在似乎最常见的情况下推翻政策,但是哦,好吧。
Linux 上的 LVM 与 HP-UX 或 AIX 上的东西无关,只是具有相同的用户空间命令。Linux 上的 LVM 内部使用 DM 系统,因此使用与 MD 相同的代码。在这一点上,我认为 LVM 比 MD 没有优势。对于您想要快速且不关心备份的分区(例如,来宾 VM 的交换分区),LVM 让您可以选择是否需要镜像,或者剥离是否更好。
而且,将磁盘添加到 LVM 比 MD 更容易。