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@fi.muni.cz> 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@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
-- | 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