我想构建一个文件服务器,为用户提供约 50 TB 的内容。为了最大限度地提高服务器的吞吐量,我将利用以下场景。
- 50 TB 的 HDD 存储。全部静态文件驻留在这里。
- 6 TB 的 SSD 存储空间。这将作为最热门内容的缓存。
- 缓存管理器决定什么内容应驻留在 HDD 还是 SSD 上。
基于此架构,最受欢迎的文件是复制到 SSD 驱动器并从那里提供服务。缓存管理器是一个定制软件,根据我的应用程序特点设计。
我对于这个计划有几个疑问。
- 我是否应该担心 SSD 写入限制?
- 是否存在任何缓存框架可以用来根据我自己的规则编写专用的缓存管理器?
答案1
尽管 ZFS 可以做到这一点,但正如 ewwhite 所说,另一种解决方案可能是缓存。我在完全不同的场景中使用它(我的笔记本电脑中有 2TB HDD 和 128GB SSD,使用 bcache 使 Civ V 的加载更加流畅 ;-)),但它运行得非常好。
根据你提供文件的方式,你可能还需要考虑类似漆,您将其设置为使用 SSD 作为缓存存储。
至于使用自己的规则,不要这么做。很多聪明人都研究过这个问题,在我看来,你应该站在他们的肩膀上。
根据您预期最常用内容更改的频率,我不会担心 SSD 写入性能。或者将您的 SSD 放入 RAID10 阵列中,以获得更高的性能。此外,添加大量 RAM,这样文件也可以缓存在内核的内存块缓存中。
我猜这一切都假设一台 Linux 机器。
答案2
不要重新发明轮子。使用虚拟文件系统。
但是您还有其他架构问题,例如网络、调优、客户端系统。描述这些内容的背景以及您目前所拥有的内容也可能会有所帮助。