这个问题有点奇怪,我会尽量详细说明。
我正在重新利用旧计算机作为家庭备份解决方案。数据的最终安放位置是通过USB 2.0连接的外部G-Drive(我告诉你它是一台旧计算机。)我想弄清楚如何在计算机的新闪亮SSD驱动器上使用一些空间来缓冲写入到外部驱动器。我正在使用OpenSUSE Leap 15,安装了服务器。
到目前为止,我已经找到了bcache,我可以将其设置为回写模式并获得类似于我正在寻找的东西。问题是我将缓冲的分区使用btrfs(透明压缩),并且已经报告了使用这两者一起报告的问题。该牌坊维基说,这是固定在3.9,但我不觉得在链接的来源,任何地方。
还有lvmcache。我看到的唯一的回写参考是手册页中的简短昙花一现,没有进一步解释。我也已经在使用lvm将SSD分成带有精简池的各个分区,所以我担心使用lvmcache会要求我在两个驱动器上创建一个新的专用lvm-vg,以防止精简池传播到外部。此外,在BTRFS维基中有一些注释,在任何块级别上使用BTRFS都可能导致问题。
DM-Cache是另一个高度可配置的选项,我仍在学习中。由于它在块级别上工作,它仍然可能与btrfs冲突。
最后一个选项是使用zfs设置基于SLOG的ZIL。该消息来源表示,对于1Gbps连接,最大的SLOG必须是.625 GB,因为它会每5秒刷新一次。但是,基于广泛的测试,我可以获得的最高持续写入速度是30MB / s。这意味着将一个.625GB的slog转储到ZFS驱动器需要20秒。(更新:基于此源和此源,SLOG设备不是为了提高吞吐量,只是为了减少延迟。)(更新到更新:在评论中Dan澄清了这是什么意思。它仍然可能是ZIL可以在这种情况下使用。)
我知道大写会不可避免地受到外部连接的瓶颈。我认为大约几十GB的任何东西最终都会达到30MB / s。我的目标不是解决这个问题。我可能会使用rsync将数据发送到外部,所以我想加快大多数小于10GB的传输速度。
我基本上好奇是否有其他人做过与此类似的事情,并提出建议,或者可以指出某个特定选项比其他人更好。现在我正在考虑ZFS / SLOG选项是最好的选择,使用10GB的slog驱动器,但我不知道那么大的驱动器将如何使用5秒刷新。
tl; dr:在内部驱动器上缓冲大约10GB的数据然后将其传输到外部驱动器的最佳方法是什么(虽然我知道并非所有这一切都是完全推荐的)?