我在LVM上运行ext4文件系统。 我正在看的两大加速选项是LVMcaching和外部的ext4日志。
这听起来像是我正在使用单个SSD,在回写模式下的LVMcaching与在外部设备上使用您的ext4日志是一样的…基本上,如果发生任何事情,您将重置为前期日志位置。
这是一个正确的解释?
外部日志与LVMcaching设备完全不同。 在SSD上用于回写的LVM高速caching不会是不稳定的,因此对数据完整性的担心并不是很大(除非该高速caching设备突然失效),并且该高速caching设备实际上可以是RAID本身通过Linux MD或类似的)。
EXT4意图日志由许多小写入组成,这些小写入受益于快速低延迟存储设备,无论是外部还是存储数据的相同设备。 将旋转介质用于数据磁盘时,这在高度随机和跨国工作负载中变得相关。
写回caching将写入合并在一起,所以写入大部分是连续的,但不区分数据和元数据,尤其是日志。 它将站在所有写入之前,caching所有内容,然后在给定caching数据集的同步期间按顺序尽可能地顺序写入磁盘。 刷新命令与写入屏障命令同时发送(以给定间隔),确保其后备设备上的非损坏状态。
如果写回caching突然和完全死亡,则会在文件系统上损失一些时间,但仍然是一致的。 这可以通过RAID1caching设备来缓解。
如果日记设备死亡,则在使用# tune2fs -O ^has_journal /path/to/ext4device丢弃日记设备之前,将无法安装文件系统。 在这种情况下,你将不得不用一个完整的fsck扫描来修复这个文件系统(在某些情况下,这需要很多时间)。 如果在停电期间或之前发生这种情况,您也可能会看到腐败现象。
所以,我相信正确的解决scheme是在写入模式下使用LVMcaching,在相同的设备上使用ext4日志…或者在更好的设置中使用不同的设备。
逻辑是ext4日志是唯一保证一致性的东西,所以你必须使用它。 外部ssd设备的速度大大提高。 回写模式下的LVMcaching将允许破坏,因为它阻止了简单的块写入。 在写入模式下,它仍然可以加速读取,但会通过写入,在这种情况下,ext4仍然会放在同一个caching磁盘上,几乎与写入一样,但是一切都保证一致。
如果有更好的回应,我会等待自己投票。