对于那些以前从未见过的人来说,闪存缓存是一种使用SSD驱动器扩展Linux块缓存的方法。这比运行具有一半TB RAM的服务器(仅用于缓存)便宜。
这还行吗?
这应该。Linux块缓存通过缓存访问的块而不是文件来工作。只要您不授予KVM机器直接访问块设备的权限(您就没有),Linux块缓存就将发挥作用。不过,如果你正在给KVM机直接块设备访问的答案也不太清楚。
如果您使用的是文件支持的虚拟磁盘,那肯定可以。
如果您使用的是支持LV的虚拟磁盘,我不知道。
我期望提高性能多少?
这是我们无法回答的。这取决于各种各样的事情。概括而言,将SSD设置为大于活动块集时,将获得最佳性能。如果获得完美的缓存,则性能将类似于在SSD上运行整个系统。您将有效地做的。
SSD需要多大?
找到您需要的确切尺寸是我们无法提供的。显然,越多越好,但是要找到缓存-SSD与主存储之间的确切比例并不是一件容易的事。
复杂的是设置为立即刷新的写入,例如某些文件系统操作和某些数据库配置。这些写入将仅被短暂地缓存,并且无论是否存在闪存缓存,它们的性能都不会受到任何影响。
如果SSD死了怎么办?
当您告诉Linux丢弃缓存但又有所不同时,也会发生同样的事情。使用丢弃缓存,块缓存中所有未刷新的写入都将刷新到磁盘。SSD消失时会发生什么情况取决于缓存模式:
直写:所有写操作均并行写入高速缓存和主存储,因此SSD突然丢失导致VM出错的机会非常小。
变通方法:所有写入操作均写入主存储,并且仅在读取时才进行缓存。虚拟机中没有错误的机会。
Writeback:所有写操作都首先进入Cache,然后在后台写入主存储。如果SSD发生故障,最有可能在您的VM中引起错误,并且我不会在生产中使用此模式。
与写通和写回相比,写回的速度要快多少?
取决于您正在做多少写作。如果您的写入定期使主存储饱和,则性能提升可能会非常显着。如果您大部分时间都在阅读和写作,那么您不太可能会注意到改进。
另外,写回对于您正在执行的操作是一个不好的策略,因此请不要使用它。