Tuning Last Access Time

Provides an overview of the Last Access Time feature and its tuning.

What is Last Access Time?

Last Access Time (atime) is file metadata that is updated whenever a file is read. You can use atime for file management and governance decisions such as:
  • Deleting files that have not been accessed for a while
  • Tiering files (to warm or cold tier) that have not been accessed for a while
  • Migrating files that have not been accessed frequently
  • Purging files that have not been accessed for a time

Considerations When Enabling Last Access Time

  • atime update can be enabled only on Standard/Erasure Coding/Object Tiering volumes. It cannot be enabled on mirrored volumes. If you convert the mirror volume to a Read/Write volume, atime is disabled by default. You can enable atime with the volume modify command.
  • atime is applicable only for files. The atime of directories is NEVER updated.
  • While the read operation is audited, the atime operation is not audited as it is an internal operation.
  • The volume offload operation does not update atime but a file read from a backend/frontend volume updates atime.
  • The file recall operation also updates atime.
  • The file read operation on the EC/Tiered backend volume updates atime on the frontend volume.
  • At the time of mirroring, the atime update frequency (atimeUpdateInterval) is propagated from the source volume to the mirror volume. However, any subsequent changes made to this frequency on the source volume, are not automatically propagated to the mirror volume.

Exceptions to Last Access Time Updates

atime is never updated when:
  • Only the meta data of the file is being read
  • The file is read from the client cache
  • The file is read from a snapshot
  • The atimeUpdateInterval has not been exceeded:

    For example, assume that for a volume the atimeUpdateInterval is set to 1 day. A file is created at 11AM and the file is read at 10:55AM the next day. If the read finishes at 10:58AM, atime will not be updated as the atimeUpdateInterval did not cross a day.

    For another example, assume that for a volume the atimeUpdateInterval is set to 1day. A file is created at 11AM and the file is read at 10:55AM the next day. If the read completes at 11:10AM, the atime will still not be updated though the read completed after 24 hours, because read was triggered at 10:55AM. atime will only be updated when the file is next read.

Enabling the Last Access Time Feature

To enable and activate the Last Access Time feature, run:
maprcli cluster feature enable -name mfs.feature.update.atime

Enabling Last Access Time

For performance reasons, the atime feature is disabled on volumes by default. You can enable atime updates at the volume level when creating or modifying volumes.

To set the frequency of atime updates, use the atimeUpdateInterval parameter when creating or modifying volumes. The value is in days. The default value of 0 indicates that atime is never updated.

For example, a value of 2 indicates that the atime is updated Once every 2 days (48 hours) with the first read on the file. atime will not be updated on further reads on the file till the 48 hours have passed.

Viewing the Last Access Time Value

To view the atime value of a specific volume, use the volume info command.
CAUTION: It is observed that clients are caching older atime values from previous history. Therefore, you might observe wrong atime values. To mitigate, make sure to clear caches, before checking file timestamps.