备份时口是心非会修改atime吗?

备份时口是心非会修改atime吗?

我的数据驻留在 SSD 上——得益于重写和写放大— 对 atime 的任何修改不仅会导致 inode 被修改,还会导致它所在的整个块被擦除和重写。显然,这是不希望的,因为它会导致驱动器出现大量不必要的磨损。

Duplicity备份文件时,是否会修改阿泰姆的属性源文件正在进行中?

如果它修改 atime,是否在初始(完整)备份、增量备份或两者上执行此操作?

答案1

答案最终是是的。口是心非会在初始备份过程中修改每个文件的 inode 的 atime。这会触发大量 SSD 重写和写入放大。

在后续(增量)备份中,会重写小得多(但数量仍然很大)的索引节点(当然还有更改的文件)。

Duplicity 不会尝试保留文件的 atime。

公平地说,Duplicity 处理这个问题的方式很传统,并没有给 HDD 带来特别大的负担。重写和写入放大问题是 SSD 特有的问题。因此,关于 Duplicity 可以说的就是它没有针对 SSD 进行优化,并且(在所有其他条件相同的情况下)如果您使用 Duplicity,SSD 的磨损速度会比 HDD 更快。

正如霜舒茨在评论中指出的那样,这个问题可以通过使用 noatime 设置挂载文件系统来解决......因此可以相对轻松地缓解它。

随着 HDD 的消亡和 SSD 的取代,文件系统将越来越多地针对 SSD 进行优化,我们预计由时间变化、重写和写入放大引起的磨损/性能问题将得到解决。新的文件系统如F2FS以身作则。

答案2

不,说软件应用程序修改atime文件是不正确的。用户态程序几乎没有办法控制是否atime更新。这是操作系统的责任,或者更具体地说,是操作系统的责任司机。此外,Linux 上当前的默认安装选项将最大限度地减少时间戳更新,这样它们对性能或寿命的影响就很小。

现代的现状分布如下:

  • 使用挂载选项noatime完全消除了atime更新,但牺牲了维护atime元数据所提供的任何实用程序。
  • 默认relatime选项可以最大程度地减少问题
  • 最近推出的选项lazytime应该可以完全消除时间戳更新对 SSD 寿命的任何剩余影响。

相关内容