我在 SSD 和 HDD 上安装了一个 Linux 服务器系统,用于用户数据。由于 SSD 上有剩余空间,我想将其用作 HDD 的读取缓存。
查看可能性,我发现:
dm-cache:根据https://www.redhat.com/en/blog/improving-read-performance-dm-cache在缓存显示性能改进之前需要大量读取。我认为在我的用例中这不是一个好的策略。
lvmcache:建立在 dm-cache 之上,我需要将 SSD 和 HDD 放入一个 LV。我想保持缓存透明,这样我就可以轻松地将 HDD 放入另一个系统,而无需先执行 LVM 魔术。
Bcache:我需要为 Bcache 格式化硬盘。不是我想要的。
Flashcache:听起来像我想要的(只需打开它),但根据https://github.com/facebookarchive/flashcache不再积极维护。
EnhanceIO:建立在 Flashcache 上,但自 2015 年以来已失效。
有没有类似于 Flashcache 或 EnhanceIO 的东西,但仍然积极维护?
我有一台带有 2 个硬盘驱动器 (2x 1 TB) 的服务器,以 RAID 1 (SW-RAID) 运行。我想通过使用flashcache. 上面运行着 KVM 虚拟机,使用LVM.
对此,我有以下问题:
flashcache适用于块设备,但是这些都是具有自己设置的虚拟机。flashcache可以从传统 HDD 检索文件,我可以简单地更换 SSD?writeback与writethroughand相比会快多少writearound?不幸的是,我无法访问测试系统,所以我可以flashcache在不卸载磁盘的情况下安装在实时服务器上吗?我在这里找到了一个很棒的教程,我将使用它。
我在配置了一个新的专用服务器时遇到了一个奇怪的现象。
该服务器在软件 RAID 1 中具有 2x1TB HDD 和一个单独的 120GB SSD,旨在用作 FlashCache 驱动器。旋转磁盘和 SSD 都是 SATA 磁盘。有趣的是,似乎 SSD 的写入速度大约是 HDD 的一半。
在 SSD(东芝 Q300)上:
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 13.9287 s, 77.1 MB/s
Run Code Online (Sandbox Code Playgroud)
相比之下,硬盘上的相同过程:
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 6.39255 s, 168 MB/s
Run Code Online (Sandbox Code Playgroud)
这些测试是在任何 FlashCache 设置之前,在新的 CentOS 安装上进行的。
有任何想法吗?我一直在为此挠头。我有一个几乎相同的设置,没有这样的问题。