public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH manager 0/1] ceph: pool: refuse EC layouts the cluster cannot place
@ 2026-10-21  6:52 Kefu Chai
  2026-10-21  6:52 ` [PATCH manager 1/1] api: ceph: pool: createpool: " Kefu Chai
  0 siblings, 1 reply; 2+ messages in thread
From: Kefu Chai @ 2026-10-21  6:52 UTC (permalink / raw)
  To: pve-devel

Hi,

this one sits on top of "ceph: pool: create EC pools from an existing
profile", which I sent a bit earlier [1], and needs that series applied
first. That series makes 'k' and 'm' optional when 'profile' is given,
and this patch builds on the profile handling it adds.

A colleague created an EC pool with k=4,m=2 on a three node cluster.
pveceph accepted it, but every placement group of the data pool stayed
incomplete, as the six chunks need six failure domains. Creating an
image on it then just hung, and pvesm alloc gave up once its storage
lock timed out. I could reproduce it on a three node test cluster.

The patch counts the failure domains that can hold a chunk and refuses
the pool when Ceph could never serve I/O on it. If there are enough for
that but not for all k + m chunks, the pool is still created, and the
task log says it will stay degraded. OSDs that are out only get such a
note rather than a refusal, since they're usually back in soon.

This covers the profile pveceph creates from 'k' and 'm', and also an
existing profile given with 'profile', as long as it uses jerasure,
isa, clay or shec, which all place k + m chunks. lrc adds local parity
chunks, and a profile may allow more than one chunk per failure domain,
so I left those alone.

I'm not sure about refusing versus only warning in the first case. A
pool that can never become active seemed worth refusing, but I'm happy
to turn it into a warning if that fits better.

[1] https://lore.proxmox.com/pve-devel/20261021054425.3271742-1-k.chai@proxmox.com/T/

Kefu Chai (1):
  api: ceph: pool: createpool: refuse EC layouts the cluster cannot
    place

 PVE/API2/Ceph/Pool.pm |  52 ++++++++++
 PVE/Ceph/Tools.pm     |  48 +++++++++
 test/CephPool_test.pl | 232 +++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 329 insertions(+), 3 deletions(-)

-- 
2.47.3





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-21  6:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-21  6:52 [PATCH manager 0/1] ceph: pool: refuse EC layouts the cluster cannot place Kefu Chai
2026-10-21  6:52 ` [PATCH manager 1/1] api: ceph: pool: createpool: " Kefu Chai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal