我知道 acachepool
和之间的区别cachevol
。
Cachepool
将缓存数据和元数据分成两个单独的卷,而 aCachevol
对两者使用单个卷。
cachepool
我的问题是,使用 a而不是仅使用 a有什么好处cachevol
?我能想到的唯一最有意义的情况是,如果您想将单个设备(或一组设备)专用于缓存的元数据,并将一个单独的设备(或一组设备)用于实际缓存数据。但这似乎是一个非常具体的场景,而且它也没有解决以下问题:Why?
为什么大多数人默认使用 acachepool
而不是 a cachevol
,尤其是。当一台设备用于缓存时?
cachepool
使用vs 的动机/利弊是什么cachevol
?
编辑就上下文而言,这个问题背后的动机来自于cachepool
保守设置(如家庭服务器和台式机)中使用的假设,仅仅是因为人们遵循的指南和教程是从企业用例中汲取的。
除了工具支持之外,并且仅基于cachepool
vs的优点cachevol
,是否有任何具体原因(性能、实施等...)来激励人们提倡cachepool
呢?或者它只是企业涓滴现象的受害者?
如果后者是正确的,那么考虑更保守的设置可能是合理的,cachevol
而不是考虑cachepool
是否不需要cachepool
设置的灵活性和复杂性。
答案1
使用cachepool而不是cachevol的具体原因是,截至2024年初,dm-cache的维护工具不理解cachevol。lvconvert --repair
在损坏的cachevol上将打印一条奇怪的错误消息,说明不知道如何处理“线性”LV,以及来自的较低级程序自动精简配置工具坚持提供单独的数据和元数据设备。
答案2
从我有限的角度来看,确实没有理由让每个人都使用cachepool
,这是盲目遵循企业教程的结果。
除了使用单独的物理驱动器存储元数据和单独的物理驱动器存储数据之外,为了提高吞吐量,我找不到使用cachepool
.如果您仅使用单个 SSD 进行缓存(我认为这是绝大多数桌面用户),那么 a 似乎cachevol
就足够了。
而且,它有可能最大化您的缓存能力。您可以将其留给 LVM 并将整个设备分配为cachevol
.
似乎唯一的原因cachepool
是使用两个或更多 SSD 进行缓存。