某些日志文件系统确实会因为将日志与文件系统本身托管在同一驱动器上而遭受性能损失。使用外部日志可以提高写入速度。随着 SSD 的出现,我认为单个 SSD 完全有可能支持托管在传统旋转磁性介质上的文件系统的多个外部日志。虽然 Anandtech “SSD 选集“确实涵盖了其中的一些内容,但他们没有涵盖“多日志”测试用例。
日志通常非常小,因此即使是小型、快速的 32GB SSD 也能为多个大型文件系统提供极快的速度。它的磨损速度可能比一般的 I/O 模式所暗示的要快得多,这就是为什么拥有比最终使用量更大的设备是一个好主意。
你们中有人做过类似的事情吗?或者只是使用过外部日志?我对现实世界的情况很好奇。
答案1
鉴于写入日志的数据量通常非常紧凑,并且大多数服务器系统(至少是那些性能至关重要的系统)都配有带有电池供电写入缓存的 RAID 控制器,因此使用日志的损失几乎不成问题。可能的速度改进被外部日志带来的额外复杂性和问题(例如设置、维护、(灾难)恢复、较少使用的代码路径导致的错误率增加等)所抵消。
这或许是人们不愿走这条路的主要原因之一。
现在,对于文件系统而言,SSD 的一个新用途支持是ZFS L2ARC,但那又是另外一个故事了。
答案2
目前大多数 SSD 技术的写入速度都比读取速度慢得多,因此我不确定将它们用于日志是否会提高速度。由于其读取速度快且延迟低,主要存储供应商似乎正在使用这项技术作为读取缓存的附加层。这就是 ZFS 使用 L2ARC 所做的,它在某些工作负载下效果很好。
但由于存储工作负载往往会有很大差异,因此在任何情况下拥有更大的读取缓存的差异有多大将取决于访问模式和工作数据集的大小。
答案3
您还需要考虑 SSD 的使用寿命比硬盘短的风险。硬盘的一个良好基准是查看保修。好的服务器硬盘的使用寿命为 5 年,大多数 SSD 的使用寿命为 1 年。使用寿命较短的原因是 SSD 单元最终会磨损(您只能获得有限的写入周期)。尽管大多数驱动器都有固件,可以均匀划分数据存储位置,从而通过将爱分散到所有单元来延长使用寿命。