Re: Append to EC pool object (docs vs. reality)

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

 



Anthony D'Atri wrote:
> Hmm.  Perhaps using the RADOS CLI approaches the pool differently than
> going through RBD, RGW, or CephFS?

In fact, I first discovered this using librados
(rados_write() and rados_append()). Both work correctly when creating
a new object, i.e. starting from offset 0, and fail for non-zero offsets,
and appending to a non-empty object, respectively.

-Yenya

> Unless someone knows better I’ll adjust the docs to advise setting
> overwrites all the time, I’m not aware of a counterindication.
>
> > On Sep 5, 2025, at 7:14 AM, Jan Kasprzak <kas@xxxxxxxxxx> wrote:
> >
> >     Hello, Ceph users,
> >
> > my erasure-coded pool is inconsistent with the documentation,
> > apparently existing objects cannot be appended to.
> > The documentation states the following:
> >
> > ================
> > https://docs.ceph.com/en/latest/rados/operations/erasure-code/
> > By default, erasure-coded pools work only with operations that perform
> > full object writes and appends (for example, RGW).
> > ================
> >
> > Appends do not work for me:
> >
> > $ ceph osd pool create test-ec erasure k5m2
> > pool 'test-ec' created
> > $ echo -n 12345678 | rados --pool test-ec put testobj -
> > $ rados --pool test-ec stat testobj
> > test-ec/testobj mtime 2025-09-05T12:51:20.000000+0200, size 8
> > $ echo -n 12345678 | rados --pool test-ec put testobj - --offset 8
> > error putting test-ec/testobj: (95) Operation not supported
> > $ echo -n 12345678 | rados --pool test-ec append testobj -
> > error appending test-ec/testobj: (95) Operation not supported
> >
> > When I enable the allow_ec_overwrites flag, everything works as
> expected:
> >
> > $ ceph osd pool set test-ec allow_ec_overwrites true
> > set pool 73 allow_ec_overwrites to true
> > $ echo -n 12345678 | rados --pool test-ec put testobj - --offset 8
> > $ echo -n 12345678 | rados --pool test-ec append testobj -
> > $ rados --pool test-ec stat testobj
> > test-ec/testobj mtime 2025-09-05T12:54:30.000000+0200, size 24
> >
> > Should the documentation be fixed somehow (maybe appending works only
> > at certain block sizes or whatever), or am I doing something
> incorrect?
> > My cluster is Ceph 19.2.2.
> >
> > Thanks,
> >
> > -Yenya
> >
> > --
> > | Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net -
> private}> |
> > | https://www.fi.muni.cz/~kas/                        GPG:
> 4096R/A45477D5 |
> >    We all agree on the necessity of compromise. We just can't agree on
> >    when it's necessary to compromise.                     --Larry Wall
> > _______________________________________________
> > ceph-users mailing list -- ceph-users@xxxxxxx
> > To unsubscribe send an email to ceph-users-leave@xxxxxxx

-- 
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| https://www.fi.muni.cz/~kas/                        GPG: 4096R/A45477D5 |
    We all agree on the necessity of compromise. We just can't agree on
    when it's necessary to compromise.                     --Larry Wall
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux