public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Kefu Chai <k.chai@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH manager v2 0/2] ceph: pool: create EC pools from an existing profile
Date: Thu, 29 Oct 2026 13:31:24 +0800	[thread overview]
Message-ID: <20261029053126.3490603-1-k.chai@proxmox.com> (raw)

Hi,

the docs suggest building an erasure code profile with the Ceph tools
and passing it to 'pveceph pool create' as 'profile', but the schema
still requires 'k' and 'm':

  # pveceph pool create test-ec --erasure-coding profile=default
  erasure-coding.m: property is missing and it is not optional
  erasure-coding.k: property is missing and it is not optional

Patch 2 makes them optional with a profile, and refuses values that
don't match it instead of ignoring them. Patch 1 has to go in first:
destroypool removes the pool's profile by default, which would take
'default' with it. Now it only removes the profile createpool made for
that pool, unless asked to.

Thanks to Maximiliano for reviewing and testing v1 [1]. Changes in v2:

patch 1:
- reword the remove_ecprofile description as suggested
- check the profile in one line with length(my $ecprofile = ...). The
  suggested form doesn't compile under strict, since && binds tighter
  than = and the "my" isn't visible yet in its own statement.
- a second destroypool with remove_ecprofile=1 fails once the pool is
  gone, so the message for a kept profile now points to 'ceph osd
  erasure-code-profile rm <profile>' instead
- use v5.36 in the new test file

patch 2:
- describe 'k', 'm', 'failure-domain' and 'device-class' with "If
  'profile' is set, it must match the ... of the profile"
- rename $actual to $actual_profile, and the loop variables to $key,
  $value and $profile_value

Both are rebased onto current master. I kept Maximiliano's Reviewed-by
and Tested-by, since v2 only addresses his nits.

I reran the tests and the reproducer from the review on a three node
cluster: the kept profile can be removed with the command the message
names, mismatching values are still refused before any pool is
created, and pveceph's own profile is still removed by default.

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

Kefu Chai (2):
  api: ceph: pool: destroypool: keep EC profiles pveceph did not create
  api: ceph: pool: createpool: make 'k' and 'm' optional with a profile

 PVE/API2/Ceph/Pool.pm |  77 +++++++++---
 PVE/Ceph/Tools.pm     |  25 ++--
 test/CephPool_test.pl | 274 ++++++++++++++++++++++++++++++++++++++++++
 test/Makefile         |   6 +-
 4 files changed, 356 insertions(+), 26 deletions(-)
 create mode 100755 test/CephPool_test.pl

-- 
2.47.3





             reply	other threads:[~2026-10-29  5:31 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-29  5:31 Kefu Chai [this message]
2026-10-29  5:31 ` [PATCH manager v2 1/2] api: ceph: pool: destroypool: keep EC profiles pveceph did not create Kefu Chai
2026-10-29  5:31 ` [PATCH manager v2 2/2] api: ceph: pool: createpool: make 'k' and 'm' optional with a profile 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=20261029053126.3490603-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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal