有没有一种 SSD 和 HDD 的混合文件系统方案?

2020-01-20 19:04:19 +08:00
 strahe

现在有个需求如下:

需要设计一个一个存储系统, 一开始数据是空的, 需要大量写入数据, 写入需求远大于读取.数据可能是 PB 级的(总数据量, 单节点不需要这么大).

迫于成本, 不可能全部使用 SSD, 但系统非常在意写入性能. 有没有一种可能性(或者现成的技术方案), 将 SSD 和 HDD 组合为混合文件系统, 写入先写到 SSD, 文件系统底层再移动到 HDD.应用无感知?

比如一台 2U, 12 盘位的服务器, 插入 2SSD+10HDD.写入性能可以接近 SSD, 读取性能接近 HDD 即可.

7817 次点击
所在节点    服务器
22 条回复
Remember
2020-01-20 19:08:48 +08:00
zfs 啊, 加 ssd 做 L2ARC 缓存就好,就是内存需求很大.
secondwtq
2020-01-20 19:10:08 +08:00
你写太快把 SSD 挤满了不还是没办法 ...
stiekel
2020-01-20 19:10:33 +08:00
OS X 有个 Fusion Drive。Linux 甚至都不需要 SSD,直接 RAM + HDD https://www.anandtech.com/show/3963/zfs-building-testing-and-benchmarking/2
secondwtq
2020-01-20 19:11:31 +08:00
@Remember 写入的话应该是加 SLOG 吧
strahe
2020-01-20 19:14:20 +08:00
@Remember
@stiekel

多谢, 我看看
strahe
2020-01-20 19:14:47 +08:00
@secondwtq 能把多个 hdd 性能占满就满足了.
Sylv
2020-01-20 19:15:30 +08:00
bcache 了解一下。
strahe
2020-01-20 19:21:27 +08:00
@Sylv 多谢, 我了解下.
0ZXYDDu796nVCFxq
2020-01-20 19:31:55 +08:00
如果持续写入速度大于 HDD 速度之和,写满缓存后,最终还是在等待 HDD 写入
murmur
2020-01-20 19:35:34 +08:00
有的,现在的 NAS 都是支持 ssd 缓存的,看翼王的视频就知道了
还有 iMac 这种一万多的电脑还在用机械硬盘
shoaly
2020-01-20 19:36:10 +08:00
@gstqc 实际情况是 峰值写入速度会超过 hdd 的读写速度, 但是峰谷 又跑不满 hdd , 所以有一个缓存作为 hdd 的前置倒是有用
xenme
2020-01-20 20:03:41 +08:00
看需求峰值多大和需要多大缓存。
小的 raid 卡自带的 cache (内存)就能顶住

这个基本得你的数据非常具体才能推荐具体多少。
专业卖存储的还分一堆型号,cache 级别也不同,场景也不一样
tigerstudent
2020-01-20 20:30:32 +08:00
现在 SSD 降价了,这个方案的价值没那么大了
mcfog
2020-01-20 20:39:54 +08:00
RocksDB
also24
2020-01-20 20:52:11 +08:00
@Remember #1
L2ARC 是读缓存,不是写缓存啊。

@secondwtq #4
ZIL/SLOG 更大的作用似乎是降低写入延迟和保证数据的安全性。
我看到的一个说法是,每 5 秒钟数据就会被刷新写入到最终位置,确实如此的话,似乎对 『连续写入』的帮助不大。

> OpenZFS aggregates your writes into “transaction groups” which are flushed to their final location periodically (every 5 seconds in FreeNAS & TrueNAS).
> 来源: https://www.ixsystems.com/blog/o-slog-not-slog-best-configure-zfs-intent-log/
locoz
2020-01-20 21:03:55 +08:00
unraid ?
also24
2020-01-20 21:22:08 +08:00
个人蛮推荐 Windows Server 分层存储的:

是存储池带的功能,企业级,如果使用 Win 系,可以考虑下
https://docs.microsoft.com/zh-cn/windows-server/storage/storage-spaces/understand-the-cache
strahe
2020-01-20 22:04:21 +08:00
@also24 谢谢, 应用原因,可以确定不用 win.
strahe
2020-01-20 22:05:03 +08:00
@xenme
@also24 我应用场景主要是持续大文件写入.
also24
2020-01-20 22:07:04 +08:00
@strahe #18
那就考虑 bcache / LVM cache / dm-cache 吧

不过说实话,PB 级别的话,应该要考虑直接 CEPH 了吧,CEPH 是支持分层缓存的:
http://docs.ceph.org.cn/rados/operations/cache-tiering/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/639513

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX