all lists on lists.proxmox.com
 help / color / mirror / Atom feed
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





             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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal