lvmetad是什么,为什么我要或需要使用它?


28

我有一台具有LVM的Gentoo服务器,该服务器在我使用了多年的RAID阵列上运行。最近,我将LVM升级到2.02.109(不记得它以前的版本),并且在升级时收到一条消息:

* Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want
* to enable lvm autoactivation and metadata caching.

我明白,我可以通过设置使之use_lvmetad = 1/etc/lvm/lvm.conf

但是为什么我需要这样的功能?我的理解是,它可以与udev规则配合使用,以将LVM状态保留在缓存中,以便LVM工具无需扫描卷即可获取该信息。仅仅是我的小阵列无法从这种功能中受益吗?在什么情况下我想/需要使用它?

Answers:


1

描述

lvmetad手册页

lvmetad是LVM的元数据缓存守护程序。守护程序从udev规则(必须安装lvmetad才能使LVM正常工作)接收通知。通过这些通知,lvmetad具有系统中可用卷组的最新且一致的映像。默认情况下,LVM不使用lvmetad(即使正在运行)。参见lvm.conf(5)。


仔细一点看,值得另一个定义。 维基百科指出:

日记文件系统是一种文件系统,在将它们提交到主文件系统之前,它会跟踪将在日记中进行的更改(通常是文件系统专用区域中的循环日志)。在系统崩溃或电源故障的情况下,此类文件系统恢复联机的速度更快,并且损坏的可能性也较小。


推理

我将不对LVM进行详细说明,因为OP已经了解其好处。因此,我只会解释为什么要添加日记。较旧的LVM版本没有日志记录守护程序,这意味着如果系统崩溃,则唯一可以使用的日志记录在物理卷(硬盘)上。当逻辑卷跨越多个物理卷的逻辑卷组上的多个扩展区时,就会产生问题。

如果一半日志事务存在于一个物理卷上,而另一半事务存在于另一物理卷上,则事务日志无法提交对这两个物理卷的更改,因为物理卷不了解它们是卷组的一部分,因为事务日志仅存在于物理卷中。

这就是新守护程序起作用的地方。现在,LVM可以为每个物理卷创建日记日志,并在卷组中为其创建一个部分,而该部分仅用于日记记录,而不是为每个物理卷创建日记日志。之后,可以在卷组级别找到并重播整个事务日志。


14
您的答案似乎暗示lvmetad为在其之上运行的文件系统提供服务,从而使其能够正确执行日记功能。但是其他消息只是说,它为lvm命令行工具集缓存了有关LVM布局的信息。可以通过某些来源很好地支持您的版本。
PavelŠimerda

8
我必须回应@PavelŠimerda的怀疑。lvmetad手册对日记一无所知。更不用说如果LVM开始变得对日记的了解,那将是分层违反(因为这意味着它需要知道哪些文件系统正在记录日记,哪些文件系统不在日记中,并且它需要知道哪个文件系统位于顶层)。的)。我也不认为将文件系统的日志分布在多个物理卷上会导致什么问题。这一切发生的时间与其他技术,如RAID 0
丹成型

29

从此链接

通常,每个LVM命令都会发出磁盘扫描以查找所有相关的物理卷并读取卷组元数据。但是,如果正在运行并启用元数据守护程序,则可以跳过此昂贵的扫描...这可以节省大量I / O,并减少完成LVM操作所需的时间,尤其是在具有多个磁盘的系统上。

因此,您可以运行它来提高LVM管理和状态操作的性能,但要以提高启动性能和增加复杂性为代价。当系统中有更多磁盘时,性能提高的级别会更大。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.