Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vJyLS-00AJtO-28 for pgsql-general@arkaria.postgresql.org; Fri, 14 Nov 2025 18:16:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vJyLP-007UVf-08 for pgsql-general@arkaria.postgresql.org; Fri, 14 Nov 2025 18:16:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vJyLO-007UVW-1w for pgsql-general@lists.postgresql.org; Fri, 14 Nov 2025 18:16:22 +0000 Received: from mclp1s2.mcl.gg ([2a09:e1c1:efc1:1337::25]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vJyLM-007lHP-0r for pgsql-general@lists.postgresql.org; Fri, 14 Nov 2025 18:16:22 +0000 Message-ID: DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=menzel.de; s=mcl-2022122401-ed25519; t=1763144176; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SHB4KdVweOOuNHaF1l3KuX+2mDRROzJLtRw7p8APcl0=; b=6tQdvrVQlbb7QgR4qCv9S9neQeKyoPPWKq1+J8UFhFvWHkS+hNNjppSSa88h2cTPm+v+3j DW1S9FakrJ+6yGCg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=menzel.de; s=mcl-2022122401-rsa; t=1763144176; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SHB4KdVweOOuNHaF1l3KuX+2mDRROzJLtRw7p8APcl0=; b=Z2KA2xVCyksZS5x1XdyHTEuvLJUmZrpx3rUI9XHwlaHz+l+C/yYEeNDIAsno9qZF9legnQ R2VTJVeN93RIV4i2xkjPHG2BHfTl/6U0ivPvsdozaFORFVZiNr5xyKTUvbBZ785HNaXRtW Bf4Ic8AmbZsSwrYmUvgsCX2wyqODldySCnCo4LKoe46zGujaaHIC97VY/oqEv3Ou2p5qsE JVr9GLnXbLLZqSki/SykruEMMg8LzvX0UO6L1BBwfETKJ26WNnNObQCYlfDwXKL075cMZv qp5is/DfJRHm9xQImvKrAi6PlJcf0i+Ec7pwCaZRn5Ef3qg4/wMtd7RkKF0KC217HV2N2C ya2e4UNPmYFLkY5LQYM/BSgXDpOR2ma45S8cG3iMn8jgbEklqVhLfmJ8KLhJzBo8vPBRni 4At8DpqJWHJ8UjsMVn18QP6PLaX5bQPWbXGVyEMImFexFN25cemHX8r8jYMDvjeN6xRacE T6El+8BrKulPkpFYUg+rn08lTZijfKY+lOQ14Ih8V1nmNDWmk01rgDY0pS6cmIhfgFygrH PGouPt0IzYUHeLbEABQz446b3el+pqDaBoa6aY4ZB/VvQmwqJOFU2QASnfSvvFnczSWabj a5hNOr69IYUHRXG43e0Rff7KA3dLoyRq3ZXL/nAsvjC6tTt5RMYsM= Date: Fri, 14 Nov 2025 19:16:16 +0100 MIME-Version: 1.0 To: pgsql-general@lists.postgresql.org Content-Language: en-US From: Marcel Menzel Subject: pg_upgrade reflink support on OpenZFS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello List, For the PostgreSQL upgrade to version 18, I took the opportunity to test the reflink support in pg_upgrade (with --clone) on OpenZFS 2.3.4 / Linux 6.15.11 and it worked flawlessly, being a huge time saver here. I've looked into the documentation for pg_upgrade and it's only mentioning btrfs and XFS on Linux and not FreeBSD at all, so I thought It'd be an interesting heads-up to report that Linux gained a 3rd FS and also I think FreeBSD in general the ability for doing reflink copies. OpenZFS has been supporting this since 2.2 but has had it disabled due to data corruption bugs, now since 2.3 the sysctl (zfs_bclone_enabled on Linux, vfs.zfs.bclone_enabled on FreeBSD) has been enabled by default so only the zpool feature "block_cloning" has to be enabled, which might be the case when running "zpool upgrade". I haven't had the possibility to check this on FreeBSD yet, but I don't see why this should not work as I also can't spot anything in the OpenZFS docs regarding reflink / block cloning limitations on FreeBSD. Also I saw one of the OpenZFS devs writing on Reddit about block cloning being supported on FreeBSD v14. Regards, Marcel