Skip to content

Overlayfs watch

Amir Goldstein edited this page Feb 25, 2022 · 3 revisions

Overlayfs watch tracks and record changes in a large directory tree on any local file system.

The motivation behind Overlayfs watch is to provide Linux application a persistent change tracking facility similar to the change tracking facility that is provided to Windows applications by NTFS Change Journals.

The topic of persistent change tracking was discussed on LSFMM 2018 and the overlayfs watch implementation is based on feedback from the filesystem developers.

Overlayfs watch feature is a POC at this stage.

The project goal is to get overlayfs watch from POC to production stage and to get the feature upstreamed.

Table of Contents

Requirements

  • A watch can be setup on any subtree whithin a local filesystem
  • Support the common local filesystem types (xfs, ext4, btrfs)
  • At any time after setting up the subtree watch, user can query the changed parts on the subtree
  • Changes are guaranteed to be recorded after power loss if the change has persisted in local filesystem
  • Multiple concurrent watches may be setup at different times on the same or on overlapping subtrees
  • Minimal performance overhead to local filesystem operation after the first change in a directory was recorded

Development

Source Code

The latest overlayfs watch patches are available on ovl-watch branch on github.

Testing

The unionmount test suite is being used to test upstream overlayfs. The test suite was previously enhanced to verify the correctness of Overlayfs snapshots and later adapted to verify the correctness of Overlayfs watch change tracking snapshots.

Visit the Snapshots testing page for instructions how to run these tests.

Reporting issues

Overlayfs watch POC issues will be tracked on github.

Contributions

Contributions to overlayfs watch project are most welcome in the form of code review, testing, articles and public attention.

Please post any questions to the author of the patches and CC [email protected]. Please subscribe to linux-unionfs to get updates on the project.