SSD 缓存加速值不值:先想清楚掉电会怎样
缓存能提速,也能让数据卡在中间。写缓存模式选错,掉一次电就够你后悔。
用 SSD 给机械盘做缓存,是 NAS 上常见的加速手段。但缓存分读写两种,安全性差别很大。
缓存在做什么
- 读缓存:把常访问的数据放到 SSD 上,下次读取直接命中,快;
- 写缓存:数据先写进 SSD,稍后再刷进机械盘,写入变快。
读缓存出问题最多是少命中几次,写缓存出问题可能丢数据。
三种常见模式
只读缓存:SSD 只加速读,写入仍然直接落机械盘。安全,掉电不丢。
读写缓存:读和写都经过 SSD。快,但 SSD 里的脏数据还没落盘就断电,这部分就丢了。
写回(write-back)与写穿(write-through):
- 写穿:数据同时写 SSD 和机械盘,安全但慢;
- 写回:先写 SSD 就返回成功,之后再刷盘,快但有风险。
掉电会怎样
写缓存模式下的风险链条:
- 数据写进 SSD,系统认为已完成;
- 还没刷到机械盘;
- 断电 / 崩溃;
- SSD 里的脏数据丢失;
- 更糟的是,文件系统元数据可能不一致,导致整个卷出问题。
所以用读写缓存,必须配 UPS。这不是建议,是前提。
什么时候值得开
- 多用户、小文件密集:收益明显;
- 数据库、虚拟机镜像:随机读写多,缓存帮助大;
- 只是存影视、偶尔拷贝:收益有限,别折腾;
- 单盘大文件传输:缓存救不了顺序读写的瓶颈。
SSD 本身的要求
- 用企业级或者高耐久的消费级,别用廉价垃圾盘;
- 缓存盘写坏了,如果做的是读写缓存且没冗余,可能影响整个卷;
- 缓存盘也需要 SMART 监控,它的寿命通常比机械盘短。
配了之后要注意
- 关机前让系统正常刷盘,别直接断电;
- UPS 要真的能撑到关机完成;
- 定期看缓存命中率,命中率低说明配了也没用;
- 系统更新、意外重启后检查一下有没有异常日志。
常见的坑
开了写缓存没 UPS:一次跳闸就可能毁卷。
缓存盘容量太小:命中率低,白花钱。
以为 SSD 越多越快:缓存有命中率上限,超过工作集大小就没意义。
缓存盘单独挂掉:如果是读写缓存 RAID0,可能连带整个存储池不可用。
小结
SSD 缓存不是「装上就快」的魔法,是一笔用风险换性能的交易。
没有 UPS 就别碰读写缓存;只读缓存几乎无风险,收益看场景。
留言