我有一台 Gentoo 服务器,其 LVM 运行在 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 工具不需要扫描卷来获取该信息。难道只是我的小阵无法从这种功能中受益吗?在什么情况下我可能想要/需要使用它?
答案1
从这个链接:
通常,每个 LVM 命令都会发出磁盘扫描以查找所有相关的物理卷并读取卷组元数据。但是,如果元数据守护程序正在运行并启用,则可以跳过这种昂贵的扫描...这可以节省大量 I/O 并减少完成 LVM 操作所需的时间,特别是在具有许多磁盘的系统上。
因此,您可以运行它来提高 LVM 管理和状态操作的性能,但代价是启动性能和复杂性增加。当系统中的磁盘越多时,性能提升的幅度就越大。
答案2
描述
来自lvmetad 手册页:
lvmetad 是 LVM 的元数据缓存守护进程。该守护进程接收来自 udev 规则的通知(必须安装该规则才能使 LVM 在使用 lvmetad 时正常工作)。通过这些通知,lvmetad 可以获得系统中可用卷组的最新且一致的映像。默认情况下,即使 lvmetad 正在运行,LVM 也不会使用它。请参见lvm.conf(5)。
仔细看看这个问题值得另一个定义。 维基百科状态:
日志文件系统是一种文件系统,它在将日志(通常是文件系统专用区域中的循环日志)中所做的更改提交到主文件系统之前对其进行跟踪。如果发生系统崩溃或电源故障,此类文件系统可以更快地恢复在线状态,并且不太可能被损坏。
推理
我不会详细解释 LVM,因为 OP 已经了解其好处。因此,我只会解释为什么添加日记。旧版本的 LVM 没有日志守护进程,这意味着如果系统崩溃,唯一可以使用的日志位于物理卷(硬盘)上。当逻辑卷跨越跨越多个物理卷的逻辑卷组上的多个盘区时,这会产生问题。
如果一半日志事务存在于一个物理卷上,另一半存在于另一个物理卷上,事务日志无法将更改提交到两个物理卷,因为物理卷不知道它们是卷组的一部分,因为事务日志只存在于物理卷中。
这就是新守护进程发挥作用的地方。现在,LVM 可以创建日志日志并在卷组中为其创建一个部分,而不是为每个物理卷创建日志日志,该部分仅用于日志记录。执行此操作后,可以在卷组级别找到并重播整个事务日志。