现在有个需求如下:
需要设计一个一个存储系统, 一开始数据是空的, 需要大量写入数据, 写入国外服务器需求远大于读取.数据可能是 PB 级的(总数据量, 单节点不需要这么大).
迫于成本, 不可能全部使用 SSD, 但系统非常在意写入性能. 有没有一种可能性(或者现成的技术方案), 将 SSD 和 HDD 组合为混合文件系统, 写入先写到 SSD, 文件系统底层再移动到 HDD.应用无感知?
比如一台 2U, 12 盘位的服务器, 插入 2SSD+10HDD.写入性能可以接近 SSD, 读取性能接近 HDD 即可.
zfs 啊, 加 ssd 做 L2ARC 缓存就好,就是内存需求很大.
你写太快把 SSD 挤满了不还是没办法 ...
OS X 有个 Fusion Drive。Linux 甚至都不需要 SSD,直接 RAM + HDD https://www.anandtech.com/show/3963/zfs-building-testing-and-benchmarking/2
写入的话应该是加 SLOG 吧
多谢, 我看看
能把多个 hdd 性能占满就满足了.
bcache 了解一下。
多谢, 我了解下.
如果持续写入速度大于 HDD 速度之和,写满缓存后,最终还是在等待 HDD 写入
有的,现在的 NAS 都是支持 ssd 缓存的,看翼王的视频就知道了
还有 iMac 这种一万多的电脑还在用机械硬盘
实际情况是 峰值写入速度会超过 hdd 的读写速度, 但是峰谷 又跑不满 hdd , 所以有一个缓存作为 hdd 的前置倒是有用
看需求峰值多大和需要多大缓存。
小的 raid 卡自带的 cache (内存)就能顶住
这个基本得你的数据非常具体才能推荐具体多少。
专业卖存储的还分一堆型号,cache 级别也不同,场景也不一样
现在 SSD 降价了,这个方案的价值没那么大了
RocksDB
#1
L2ARC 是读缓存,不是写缓存啊。
#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/
unraid ?
个人蛮推荐 Windows Server 分层存储的:
是存储池带的功能,企业级,如果使用 Win 系,可以考虑下
https://docs.microsoft.com/zh-cn/windows-server/storage/storage-spaces/understand-the-cache
谢谢, 应用原因,可以确定不用 win.
我应用场景主要是持续大文件写入.
#18
那就考虑 bcache / LVM cache / dm-cache 吧
不过说实话,PB 级别的话,应该要考虑直接 CEPH 了吧,CEPH 是支持分层缓存的:
http://docs.ceph.org.cn/rados/operations/cache-tiering/
这东西还没成熟就已经失去意义了
现在流行纯 SSD
“写入性能可以接近 SSD, 读取性能接近 HDD 即可”
各种缓存方案都有很可能退化,读写都是 hdd 的速度,或者更差。尤其大量持续写,严重依赖缓存大小。