From: Kefu Chai <k.chai@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH manager 0/1] ceph: pool: refuse EC layouts the cluster cannot place
Date: Wed, 21 Oct 2026 14:52:39 +0800 [thread overview]
Message-ID: <20261021065240.3495098-1-k.chai@proxmox.com> (raw)
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
next reply other threads:[~2026-10-21 6:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 6:52 Kefu Chai [this message]
2026-10-21 6:52 ` [PATCH manager 1/1] api: ceph: pool: createpool: refuse EC layouts the cluster cannot place Kefu Chai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261021065240.3495098-1-k.chai@proxmox.com \
--to=k.chai@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox