镜像日志在 LVM 镜像中起什么作用?

镜像日志在 LVM 镜像中起什么作用?

http://www.tcpdump.com/kb/os/linux/lvm-mirroring/intro.html

指出在 LVM 中镜像逻辑卷时,我们需要一个“日志卷”...呃,镜像日志到底是什么?镜像 LV 时是否始终建议使用它?

答案1

来自LVM 文档这很容易出现谷歌:

LVM 维护一个小日志,用于跟踪哪些区域与镜像同步。默认情况下,此日志保存在磁盘上,这样在重新启动后仍能保持其持久性。您可以使用 --corelog 参数指定将此日志保留在内存中;这消除了对额外日志设备的需要,但需要在每次重新启动时重新同步整个镜像。

好吧,我可以理解为什么如果您没有文件系统或容错方面的背景,那么这将不清楚,但您至少应该进行最少的研究并找到上面的解释。

问题是,当系统将一些新数据写入其中一个磁盘而不是另一个磁盘时,如果出现系统崩溃或电源故障,会发生什么情况。日志跟踪镜像每个组件的哪些区域尚未写入其中一个磁盘。如果日志在某个时间点不为空,则意味着磁盘不同步。如果日志保存在内存中,那么当系统启动时,它需要读取两个磁盘上的每个块并检查差异。如果日志保存在磁盘上,那么系统只需要读取日志并检查日志中提到的块即可。

答案2

这保留了镜像的状态,即哪些块尚未同步。这也是我不喜欢LVM for RAID1的原因。您需要 3 个卷来进行镜像。使用 mdadm 可以通过将(可选)位图放置到设备(或外部设备)上来解决此问题。对于小型设备来说,完全同步并没有什么坏处。对于大型设备来说这很痛苦 - 所以最好在那里放一个(“内部”)位图。

相关内容