Hi,
I'm trying to use lsyncd to sync a filesystem that has xattrs that I need to retain to some cephfs.
My first attempt almost works, but I get errors like the following?
rsync: rsync_xal_set: lremovexattr("/mnt/backup/some.d","ceph.dir.rctime") failed: Operation not supported (95). This makes alot of sense, i'm pretty sure Ceph doesn't want me removing its own metadata so is explicitly not allowing it.
So I looked more at the rsync ocs and as far as I can tell, I should be able to use rsync filter rules to exclude specific xattrs from being deleted at the remote side, the docs even give an example:
To prevent any attributes from being deleted, you could specify a receiver-only rule that excludes all names:
--filter='-xr *'
I tweaked that slightly in an attempt to stop it trying to remove the ceph entries. My resultant config looks like this:
settings {
nodaemon = true
}
sync {
default.rsync,
source = "/mnt/local",
target = "/mnt/backup",
rsync = {
acls = true,
archive = true,
hard_links = true,
xattrs = true,
verbose = true,
},
filter = {
'-xr ceph.*',
},
}
However, I still see the same errors.
From the lsyncd logs I also see
20:37:34 Normal: recursive startup rsync: /mnt/local/ -> /mnt/backup/ filtering
- xr ceph.*
Suggesting it at least knows about my filter.
But either it doesn't seem to be working or I'm misunderstanding how it's supposed to be used.
Assuming the former, I have tried to work out what rsync command lsyncd is running so that I could run it manually and try to debug the problem more, but i've so far failed to work out how to get that information. I can't see any option that exists that allows me to enable more verbose logging, or debug logging or anything.
Thanks