如何使用SSD进行缓存,以便硬盘可以旋转?


9

我有一个文件服务器,其中有一堆磁盘在BTRFS池中一起运行,并想添加一个SSD进行缓存。我主要不是在加快速度之后,而是想在不经常使用硬盘的情况下,经常进行常规的小访问以关闭硬盘(不全天候24/7运行将节省能量,并且应该使磁盘使用时间更长)。

据我所知,目前在Linux中实现了两种SSD缓存技术,即dm-cache和bcache。仍然告诉dm-cache效率更高,但是两者的开发仍在进行中,我不需要调整绝对最大效率。

在阅读bcache的文档时,我遇到了以下选项:

writeback_delay:当脏数据被写入高速缓存并且之前它不包含任何脏数据时,在启动写回之前要等待几秒钟。默认为30。

writeback_percent:如果不为零,则bcache会通过限制后台写回并使用PD控制器平滑地调整速率来尝试保持此百分比的缓存处于脏状态。

writeback_running:如果关闭,则完全不会进行脏数据的写回。脏数据仍将被添加到缓存中,直到大部分已满为止。仅用于基准测试。默认为开。

设置一个足够大的值writeback_delay似乎对我来说是有用的:仅每小时写回一次,或者(如果发生这种情况我会假设)如果缓存已满。

这是一个合理的设置,我是否还考虑了其​​他任何方法来成功降低磁盘旋转速度?如果满足我的要求,我也可以选择完全不同的路线。

@gorkypl似乎正在寻找类似问题的另一种解决方案,但是具有不同的要求和环境,并且也未收到答案。


请使用bcache
mikeserv

Answers:


1

我认为您的方法太复杂了。

阅读缓存:此处无事可做。如果您有足够的内存,这将在Linux中自动完成。

编写缓存基本上,这就是您想要的。但是,如果写操作最后进入磁盘,也将引起唤醒。

因此,您可以将受影响的文件系统直接放在ram-disk / dev / shm或ssd上。

省电:我认为频繁调低转速不会节省电力。相反,磁盘可能会更早地失效,因此生产过程会消耗更多的能源。旋转起来也是非常耗电的。

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.