Linux LVM镜像与MD镜像

我想我记得几年前用LVM做了一些镜像,我不记得这个“日志”的事情。 或者,也许我用mdadm制作了镜像,并将LVM放在顶部。 那一定是吧。

  1. 什么是LVM日志,如果它只是一面镜子? 那里储存了什么? 这是什么目的? 正在使用“–mirrorlog核心”不好? 什么是缺点? 如果我不需要,我不希望有另一个日志分区。

  2. 任何使用任何技术的build议? 即使我用mdadm制作镜像,我也会使用LVM。 那么,在这种情况下,也许最好是用LVM构build整个设置…? 这将会带来更多的性能降低吗?

这些磁盘用于存储Xen domU“磁盘”。

对不起,复杂的非点“问题”。

想法和build议和链接是最受欢迎的。 谢谢!

我个人总是去MD + LVM。 它更快(MD可以在RAID1中执行并行读取),并且只需要2个磁盘(如果您不想在每次重新启动后重build镜像),并且MD仅devise用于执行RAID,并且效果非常好。 它也更加灵活。

我也被LVM烧了。 有一种情况是在HP-UX上使用LVM条带(不应该在Linux中使用LVM2),而且我无法扩展LV,因为扩展必须具有完全相同数量的条带。 这似乎是合理的,但有时…

还有一次是镜像(LVM2这次是在Linux上),但现在我不记得LVM是否拒绝镜像LV的快照或扩展它,实际上否定了LVM的好处(我们做了它最后,但涉及到使用lvconvert来回)。

当镜像对突然closures时,在任何系统中,可能有一些块已被写入一个设备但尚未到达另一个。 可以想象,对IOpath进行重新sorting,有一些块写入A但不是B,有些写入B但还没有写入A.

机器重新启动时,需要使设备保持一致。 只有两个设备是不够的,它不知道哪个块是不一致的,它不知道哪个版本更近。

所以镜像软件需要存储一些元数据来跟踪这个。 这被称为“写意图日志”。

md通常将其存储在设备本身的一些保留空间中 ,但您也可以select将其存储在单独的设备上。 (这是为什么md镜子比基础设备略小的原因之一。

LVM镜像只能在外部存储写入范围日志,正如您所看到的,对于只有两个物理磁盘的典型情况,这有点烦人。 我相信您仍然可以select将其存储在同一个物理设备的不同分区上,但这仍然不方便。

根据我的理解,LVM镜像日志的目的是跟踪已写入一个设备但尚未写入另一个设备的块。

这是两个不同的概念:

  • LVM就像名称所说的那样用于批量pipe理。 把它看作是一个将多个卷合并为一个机制(是的,你可以说它就像raid0),调整它们大小,实时resize,创build快照。
  • MD用于RAIDpipe理。 将多个设备添加到一个元设备中,通过使用raid1,5,10等使这个元设备高度可用。

LVM在存储设备上运行,无论是元设备还是由RAID控制器提供的设备,或者只是简单的磁盘。

MD在磁盘上运行(是的,你也可以使用RAID控制器提供的磁盘,但是有什么意义?

LVM不是为了使您的存储高度可用。 而MD也不是用于卷pipe理的

希望这可以帮助 :)

LVM来自其他UNIX系统types。 我在HPUX上使用它时,10年前我没有使用Linux的MD层,现在还不确定。 在这种情况下,在硬件RAID不可用的情况下,LVM镜像变得非常有用。

使用-mirrorlog镜像和-alloc任意选项,使用两个磁盘,可以获得两个4M镜像日志,每个磁盘上一个。 我很烦恼,我不得不推翻似乎是最常见的情况的政策,但是哦。

Linux上的LVM与HP-UX或AIX上的LVM无关,只是具有相同的用户空间命令。 Linux上的LVM内部使用DM系统,因此使用与MD相同的代码。 在这一点上,我认为没有比MD更好的LVM优势。 对于想要快速而不关心备份的分区(例如访客虚拟机的交换分区),LVM可以让您select是否需要这些镜像,或者剥离是否更好。

而且,将磁盘添加到LVM比MD更容易。