[lustre-discuss] Asynchronous mirror to other filesystem

Hans Henrik Happe happe at nbi.dk
Tue Feb 16 03:28:05 PST 2021


I've been wondering if it is possible to make an asynchronous mirror of
a Lustre filesystem like on ZFS with send/receive. Using Lustre ZFS
snapshots and transferring the MDTs and OSTs with ZFS send/receive would
work, but we would have to have the same setup at the mirror side. Even
down to the network IPs unless we change the target configs before mounting.

Therefore, I have wondered if we could use changelogs and Lustre ZFS
snapshot to transfer the changes incrementally. In theory it should be
possible, but the details always catch up on you.

I would like to copy all changes from snapshot to snapshot, but I think
we would loose data that is not committed to storage at snapshot time.
The procedure would be:

1. Make snapshot
2. Use changelog to mirror all changes between snapshots.

Now, the problem is that, i.e. a CLOSE event, might have gone to the
changelog, but cached data might not have been committed to storage, so
it will not show up in the snapshot. This is okay, if only we get the
data in a later snapshot, but we will not get an event about new data en
the changelog.

We could use the main mount of the fs for mirroring data, but then we
might get updates that happened after the snapshot.

Is there something I missed or perhaps ways to get around this issue? If
there was a way to know if a file is completely committed to storage, we
would know when to forget about it.

Perhaps, you know of other ways to make an asynchronous mirror?

Hans Henrik

More information about the lustre-discuss mailing list