使用 固态盘(SSD)来改善本地存储的性能?
最近看到 OpenSolaris 上面的 ZFS 引入了将 ZIL 写到另一个 pool 的方法。这种做法非常类似于 FreeBSD 2005年的 Google SoC 项目—-GEOM Journal。
简单地说,这种做法的原理就是将准备写的数据(注意,不是元数据,而是数据)首先写到固态盘上,然后再将数据写回。这样做有很重要的好处,即先前必须同步写入的数据(例如fsync()、文件系统元数据更新等等),可以不必做完整的回写,而只需将 SSD 作为回写快取缓存 (Write-Back Cache) 了。
不过,使用这种技术的一个限制是,SSD的寿命很大程度上取决于写入次数。很明显,要保证数据完整性,就必须保证"COMMIT"操作返回时,必须是真的写到了SSD或者磁盘上,这会是一个相当有挑战性的话题。不知道现在是不是已经有了低成本的类似 i-RAM 那样的设备,以及它们的电池能扛多久……不过,这真是一个非常有意思的话题。