From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id AA7551FF0AB for ; Wed, 21 Oct 2026 07:44:40 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 8034021613; Wed, 21 Oct 2026 07:44:37 +0200 (CEST) From: Kefu Chai To: pve-devel@lists.proxmox.com Subject: [PATCH manager 0/2] ceph: pool: create EC pools from an existing profile Date: Wed, 21 Oct 2026 13:44:23 +0800 Message-ID: <20261021054425.3271742-1-k.chai@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1792561469269 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.300 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: MJLZ53VD23BYHTA2IKX4DOPNJZSIPONR X-Message-ID-Hash: MJLZ53VD23BYHTA2IKX4DOPNJZSIPONR X-MailFrom: k.chai@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi, the docs suggest building a custom erasure code profile with the Ceph tools and then passing it to 'pveceph pool create' as 'profile'. That doesn't actually work right now, since the schema still wants 'k' and 'm': # pveceph pool create test-ec --erasure-coding profile=default 400 Parameter verification failed. 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 'k' and 'm' optional when a profile is given. If they are passed anyway, they now have to match the profile, where they used to be ignored. So a script that passed placeholder values next to a profile would now get an error, which I think is the safer choice, but I'm not sure everyone agrees. Patch 1 needs to go in first. destroypool removes the pool's profile by default, so once patch 2 makes 'profile=default' easy, destroying such a pool would take 'default' with it. With patch 1 it only removes the profile createpool made for that pool, unless asked to. Both patches come with tests in a new test/CephPool_test.pl, and I tried creating and destroying such pools on a three node test cluster. Feedback welcome, especially on the stricter check in patch 2. 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 | 72 ++++++++--- PVE/Ceph/Tools.pm | 25 ++-- test/CephPool_test.pl | 275 ++++++++++++++++++++++++++++++++++++++++++ test/Makefile | 6 +- 4 files changed, 352 insertions(+), 26 deletions(-) create mode 100755 test/CephPool_test.pl -- 2.47.3