RE: Problems with cephfs, rsync and xattr because cephfs internal xattrs are exposed to clients.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Gregory Farnum [mailto:gfarnum@xxxxxxxxxx]
> Sent: Wednesday, June 22, 2016 1:16 PM
> To: Allen Samuels <Allen.Samuels@xxxxxxxxxxx>
> Cc: Sage Weil <sage@xxxxxxxxxxxx>; Michael Wyraz <michael@xxxxxxxx>;
> ceph-devel@xxxxxxxxxxxxxxx
> Subject: Re: Problems with cephfs, rsync and xattr because cephfs internal
> xattrs are exposed to clients.
> 
> On Tue, Jun 21, 2016 at 3:30 PM, Allen Samuels
> <Allen.Samuels@xxxxxxxxxxx> wrote:
> > I doubt that rsync is the only application that's going to be confused by the
> presence of attributes it doesn't understand.
> >
> > What is the value in having these attributes be visible to user-space
> applications? Is there a better mechanism for conveying this information?
> 
> This is something I think we've talked about before, and I keep on being
> surprised to learn we *do* list them without a specific query.
> So, what are the upsides of listing them without being asked?
> 
> *) Easier to view for users

If users == Ceph Cognoscenti, you're right. But if users != Ceph Cognoscenti, then this is actually a downside -- not really different from confusing the tools.

> *) If syncing between Ceph clusters with the same pool names, you can
> transfer layouts properly (except...probably xattrs are set after data is
> written in most systems, so that doesn't work?)

If it doesn't work, it's probably not a plus ;-)

> *) ...I've got nothing else
> 
> Downsides:
> *) Other tools get very confused by viewing xattrs they can't set
> 
> Personally, I'd rather only list them when the Ceph namespace is specifically
> queried (or the xattr itself is, at whatever granularity we can do). This isn't
> like directory sizes; xattrs have defined semantics that we're breaking, *and*
> exposing them all the time just doesn't seem that useful. Why would
> anybody care about the data they're sharing, who doesn't already know that
> it's available?
> -Greg
> 
> >
> > There's nothing to prevent having a debug-ish toggle to expose them when
> you really want to see them.
> >
> > Allen Samuels
> > SanDisk |a Western Digital brand
> > 2880 Junction Avenue, San Jose, CA 95134
> > T: +1 408 801 7030| M: +1 408 780 6416 allen.samuels@xxxxxxxxxxx
> >
> >
> >> -----Original Message-----
> >> From: ceph-devel-owner@xxxxxxxxxxxxxxx [mailto:ceph-devel-
> >> owner@xxxxxxxxxxxxxxx] On Behalf Of Sage Weil
> >> Sent: Tuesday, June 21, 2016 2:30 PM
> >> To: Michael Wyraz <michael@xxxxxxxx>
> >> Cc: ceph-devel@xxxxxxxxxxxxxxx
> >> Subject: Re: Problems with cephfs, rsync and xattr because cephfs
> internal
> >> xattrs are exposed to clients.
> >>
> >> On Tue, 21 Jun 2016, Michael Wyraz wrote:
> >> > Hi,
> >> >
> >> > I do rsync based backups against a cephfs. If I do sync xattrs, rsync
> >> > tries to delete ceph-internal xattrs (e.g. ceph.dir.entries) which fails
> with an
> >> error.
> >> > xattrs does not get synchronized in this case.
> >> > IMO the problem is, that ceph's internal attributes are exposed to the
> >> > mounted fileystem (I can do "getfattr -n ceph.dir.entries *" on the
> >> > mounted cephfs and get results). So rsync sees these xattrs and tries to
> >> remove it.
> >> >
> >> > Example output:
> >> >
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.entries")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.files")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.subdirs")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.rentries")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.rfiles")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.rsubdirs")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.rbytes")
> >> >    failed: Operation not supported (95)
> >> >    rsync: rsync_xal_set:
> >> >    lremovexattr(""/backups/2016-05-31_00-09-
> >> 32/etc/acpi/events"","ceph.dir.rctime")
> >> >    failed: Operation not supported (95)
> >>
> >> I think the right fix here is to patch rsync to ignore ceph.* xattrs.
> >> Does that seem reasonable?
> >>
> >> Other possible workarounds might be:
> >>
> >>  - ignore setxattr and removexattr requests on these xattrs (return
> success
> >> but do nothing)
> >>  - never show these xattrs in listxattr.  this makes them less useful or
> friendly
> >> :(
> >>
> >> sage
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the
> >> body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info
> at
> >> http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
��.n��������+%������w��{.n����z��u���ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux