在LVM中交换分区?


20

我想知道将交换分区放入逻辑卷组是否有任何缺点(例如性能),还是将其作为单独的主/逻辑分区“一样”?

我喜欢这样的事实,如果有必要可以很容易地调整它的大小,但是不确定可能存在的缺点。

应用案例:CentOS 7 Web服务器。


1
我不确定“将交换分区放入LVM组”是什么意思。我了解您在逻辑卷上进行交换的意思。我已经在过去的机器和当前的个人工作站上完成了此操作。我从来没有注意到任何问题,也没有想到发生问题的原因。在我目前的机器上,虽然不是很多,但使用了swap。
Faheem Mitha 2014年

您说得对,很抱歉,仅对其进行了编辑!然后响应,那么就可以了!
Levit

我应该正式回答吗?
Faheem Mitha 2014年

Answers:


34

当然,主要目标不是一开始就不需要使用交换...

最主要的是在系统还很新鲜时创建交换LVM卷,这与创建交换文件时一样,因为交换空间在连续时表现最佳,或者使用lvcreate -Coption 强制执行。您不希望将构成逻辑卷的实际磁盘块分散到整个磁盘上。出于这个原因,也应避免(经常)调整交换容量的大小。

作为Linux内核的主要开发人员之一,Andrew Morton

内核在交换时生成交换偏移量->磁盘块的映射,此后使用该映射直接针对基础磁盘队列执行交换I / O,绕过所有缓存,元数据和文件系统代码。

这也绕过了所有LVM代码,交换直接进入磁盘。因此,从性能角度看,交换分区,交换文件或LVM卷没有区别。


12
很好的答案,谢谢你的详细解释!” That bypasses all the LVM code as well, swap goes straight to disk.,正是我想要的!关于调整大小的问题:因此,在安装后使用-C选项重新创建交换卷以确保其连续/保持连续是否有意义?喜欢lvcreate -C y -L 10G VolGroup -n swap(参考:blog.zelut.org/2009/03/10/force-contiguous-extents-in-lvm
Levit

3
从来没有注意到-C开关,感谢您指出这一点!
HBruijn 2014年

“使用该映射直接针对底层磁盘队列执行交换I / O,绕过所有缓存,元数据和文件系统代码” –尽管该答案用于日记文件系统(ext3 / reiserfs),但我想知道它是否真的绕过了md突袭...这将使大量建议换来突袭突袭那里相当有用/毫无头绪...
Erk

关于袭击的@Erk,请注意,文件系统仍然是IO设备上方的抽象层,即,在使用raid进行交换时,无论
硬性

@HBruijn:嗯,好了,现在我有一台在lvm上进行了交换的机器(在md raid上),而且至少没有燃烧...
Erk
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.