From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 682D11FF165 for ; Thu, 9 Oct 2025 14:29:46 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D10DA1ECF3; Thu, 9 Oct 2025 14:29:50 +0200 (CEST) Date: Thu, 9 Oct 2025 08:24:14 -0400 To: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= , Proxmox VE development discussion References: <1759473060.6ll3polgmk.astroid@yuna.none> In-Reply-To: <1759473060.6ll3polgmk.astroid@yuna.none> MIME-Version: 1.0 Message-ID: List-Id: Proxmox VE development discussion List-Post: From: Andrei Perapiolkin via pve-devel Precedence: list Cc: Andrei Perapiolkin X-Mailman-Version: 2.1.29 X-BeenThere: pve-devel@lists.proxmox.com List-Subscribe: , List-Unsubscribe: , List-Archive: Reply-To: Proxmox VE development discussion List-Help: Subject: Re: [pve-devel] [pve-dev] Storage assisted copy feature for Proxmox storage plugin Content-Type: multipart/mixed; boundary="===============9191365152263123118==" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" This is a multi-part message in MIME format. --===============9191365152263123118== Content-Type: message/rfc822 Content-Disposition: inline Return-Path: X-Original-To: pve-devel@lists.proxmox.com Delivered-To: pve-devel@lists.proxmox.com Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id B358FDBB48 for ; Thu, 9 Oct 2025 14:29:48 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9CFE21ECBF for ; Thu, 9 Oct 2025 14:29:48 +0200 (CEST) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Thu, 9 Oct 2025 14:29:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=open-e.com; s=s1-ionos; t=1760012981; x=1760617781; i=andrei.perepiolkin@open-e.com; bh=erWfnB20KKyjNByUytbIeXFvJLb3Plu7Ijko66s+oxk=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=OTgXdS/BgnWD2QB3mz7CfbOuO9fUIA9WISWwc+CXtQyhX+SH91FUaxAVOcyMtkwQ wrmGv8WbQUF7lKI7WKwEuLTFLJbQxX4Z5kE1Sz1C1C0dy3SjWj8857/7eEMng6Pod 2smTb9VeFdfkIha5qfhrAEikmYrCd0ngLHaHzqeBn0rBPjV0tSb7mGSNRCN39tpkj ORHCu3QK2ZqZXPEZeGIxDtJYjlkhofZjsPdrqvnJag+UCNS5bcLFYGnKijHQX22Ss Jzx8Ah3bY95ZHaEFSLsDwVxOwqtZu3T3AhWB5zhAgOvpteAixGm+BTD/mnABp4MtU mq3kpr/519onx6GA6g== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Received: from [10.137.0.75] ([149.102.246.36]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MIMT4-1v1Ju03e6u-006Zlc; Thu, 09 Oct 2025 14:24:17 +0200 Message-ID: Date: Thu, 9 Oct 2025 08:24:14 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [pve-devel] [pve-dev] Storage assisted copy feature for Proxmox storage plugin To: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= , Proxmox VE development discussion References: <1759473060.6ll3polgmk.astroid@yuna.none> Content-Language: en-US From: Andrei Perapiolkin In-Reply-To: <1759473060.6ll3polgmk.astroid@yuna.none> X-Provags-ID: V03:K1:aEYd9leSzvFuMGDQp9/8mRC7HQruv2/VrQYomXdxwlmKnWnpSKH JaNwxMucGGhgCT5tBUfQuSiPG73X4C5njy7Rh2bM/J1z+9QYFzTECwGe1eFUH816DpoKkuq pRx+A+AXzoeKws0yXpCVcutnOBDP70oF6jLtN1MPFe4MpCbc7LquMuI8ZdKP4XfH6G1aDRo EFmBWPMWZT45b4/h2s7hg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:llXXNDkMo5o=;4troJvTsTcVsNraBledrvj2FLX6 +nHS1OmJwM/+OXuCn7KD93CKB/odr9n2aBoUtqFNcFdoNjKyhRpXdRzf63ErFflliKzaBpmr0 B/83VC51QPV0X2RKoN3fZmJeesAdrsVqBk25kBWd+l4JEXY5f2dTNTfmh+60zRzOaORC7HTTu KsT+bM5XfVzDBsbmb9663MAVfTEWODf+G2DBskHVw8dYtOwSTlZKqi5v7mVhBddDoujHJEpP4 DCbWl/gV2LLZvP9Qt+QL5P7uy5Hb6EMpTgxUqZyCUl5yARHZ4MJrZXZSzleht+rpDEd91pxS9 Gvy3Jkh1w1wYosko0OJRpJRRU0PqPdRsnKpDLg1B8IEkDHDXCEAO0oLUWeAu8nIdQYeUNPH7/ GyWEw8DeBVsmrUGpfeCNyiubz6K0hRfdh/tnD8GAWQb2Si72VrhUCBIi21iKtaPnebKwciuU7 pjsmfSzW6GJvXO7yxEDOaHmPmX2viVD8RyVwuXKARn5EI3TxEaNJdCGWej9M/UWW/4p/S2USb ES2pVsTvmX5oikFo/X8OxccweGLwQ2qKCCaleDvlHAoD7onLdk7uH5cCk+1u1oL3NwgeoihjP g2UVEqJ4Qm1KbZC1dodULb/wqDCicAdYNpBr4RYYymzW743wcwW9HNXjqOguzhNvySXqC/rJG N1aKrZr6XTY++eqGW0kZ05x3eKVJ7H572q9yDKAyEPgeZqG3j5VhiFWq6av8DghTW7CUPTI3v jj84bgqnSzsC6SrPbyqVcWB2k5qc0PnptMC6S7zCFaaPrnTzMLdHP5mCEcM7VQKy/T6BlFAfy tyHLZrO7NORNxPaaeHst6OYoNpEObYd+PHg/kFeB6yyx+wXOKWpzKeQ5moIalvi/GFNZTmPaA y0brQp6Fc4mgwTI4GaHyDwjG5VgxeR9+w/72tIvLSIi02fiHALE9Xb2J6odH7+2vEM73DQTgX 1LMWTc40Jl+zWAhG4O2mrOB/CRsk3NVHC/HauyHbVZwr4K9PcFxUPE5oaGk00VJ1Q7YclZNgF r7NBW0nIz7gh/nlYhJhEL27ZI22E1ImQpF9NAaVuTmeXsahM05Fhq29UzcLDSmQP9YIJXED7K S8WxpAkIPGWQ+TqcvI2jRdbOaTSPNuRDh4VTtMCStUFV+s3OsTF6QYXWG7KCBKGg492+7mOIg oUpYBwIUrpVm8PKUMhstEeLbNu5I6VILBA0Zg7F0z/ENuYuQededLI/nW8GZ1Yb6UgaBnHWKU MXZBqCtIKUYjL3FHg0E3yzJmu9a6k1HpeIPJojZL+Ez9KJTb6JV+zMy+TnureK1s55tZbKUSt wuMIMD/oX3g/hkweV/xaYJ0pdENl7m+3eCh7JyncaPL6YLO6Lf9uxRz4rcqtGNvdq3HtFwMuD RcoSLk0c5mUFmygjdhZsKTnIM1Sabuaqq9WC71f93u1rfD4hKAfGzhE6SLV4m31Z34Zek643I NFl2GLpR+zLA1+XgxDbC6xaw/HKBrYX7uC/aZkk0YkGIBPQx71zzSCiaRj87EfkMVfsV86TNo yPjwket4UmfZ+qD2Qgz48tHeO7xguUSIht7h6W3XCzeLogQG5B1VB0dF9QYbwZZwWkbVi2Dwc U3z4jX0h0/br8hOI7nIjG/IkcCRya8R2Rl68Xn1DnS2oBQAtPNr6LmY3W7dfnbKsBe6ZhARjM cVLx7hbzMD97wUa6NItVomXEnczI1ftDU+IoWgg8DXVw== X-SPAM-LEVEL: Spam detection results: 0 AWL -0.007 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy HTML_MESSAGE 0.001 HTML included in message RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Hi Fabian, Use Cases: 1. Full volume copy performed on the same storage (storage_id). 2. New volume creation from a snapshot on the same storage (storage_id). Currently, the full clone operation involves attaching both the source=20 and destination volumes to a Proxmox node and transferring data through it= . This method is network-intensive, impacting both the send and receive=20 channels of the Proxmox and storage nodes. As a result, it can negatively affect VMs performing I/O operations on=20 the storage. Expanding 'volume_export' and 'volume_impor't may not be the best=20 approach. Instead, introducing a new method=E2=80=94such as 'volume_copy' = or=20 'copy_image'=E2=80=94could be more appropriate. This method would be trigg= ered=20 when both the source and destination share the same storage_id,=20 optimizing the copy process. It would be especially beneficial for=20 ZFS-based storages, particularly those with complex rollback mechanisms.= =20 With this approach, users could perform fast, full clones without=20 impacting network performance. Best regards, Andrei Perepiolkin On 10/3/25 02:42, Fabian Gr=C3=BCnbichler wrote: > On October 3, 2025 2:15 am, Andrei Perapiolkin via pve-devel wrote: >> Hi, >> >> Can the honorable community help me find an elegant way for >> volume_import to identify the source volume origin type and name? >> >> I'm investigating this to implement storage-assisted copy (i.e., >> performing the volume copy entirely on the storage side). >> >> My initial assumption was that this could be achieved by defining custo= m >> volume_export and volume_import functions. >> However, may be there is a better way to do storage assisted copy. > volume_export and volume_import are only used for a few specific cases > (mainly offline migration of local disks, and offline remote migration > of disks). > > for those you could define your own transport format that includes or > just contains the relevant metadata to do a storage side copy - it would > only be selected if the storage for the source and target volume both > say they support that particular format. > > I assume your storage is shared, so you'd be more interested in the > move disk/full clone case, which currently uses either a mirror block > job (if the VM is running), qemu-img convert (if the VM is not running) > or rsync (for container volumes). These mechanisms are all not > extensible at the moment for storage plugins. > > Maybe you could describe for which tasks you would see a clear benefit > for extending the interface to allow a storage plugin to provide a "copy > volume A into volume B storage side" - for the live move disk it might > be hard (without dirty bitmap trickery like we use for replication, but > that might be an option?), for the offline moves it would probably be > possible to somehow special case this and let plugins opt in, we've > discussed this ourselves in the past.. > >> P.S. >> Just found out about >> https://pve.proxmox.com/wiki/Storage_Plugin_Development:_Writing_a_Stor= age=3D >> _Plugin_for_SSHFS >> This is grate! >> Many thanks for posting this article! > Great that it found its intended audience! :) > --===============9191365152263123118== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel --===============9191365152263123118==--