[pve-devel] [PATCH storage v9 6/6] pvesm: add a copy-volume command
Filip Schauer
f.schauer at proxmox.com
Wed Dec 17 14:36:53 CET 2025
The method can be called from the PVE shell with `pvesm copy-volume`:
```
pvesm copy-volume \
<source volume> <target volume or storage> \
[--target-node <node>] [--delete]
```
For example to copy a VMA backup to a Proxmox Backup Server:
```
pvesm copy-volume \
local:backup/vzdump-qemu-100-2024_06_25-13_08_56.vma.zst pbs
```
Or copy a container template to another node and delete the source:
```
pvesm copy-volume \
local:vztmpl/devuan-4.0-standard_4.0_amd64.tar.gz local \
--target-node pvenode2 --delete
```
Or copy an ISO and rename it:
```
pvesm copy-volume \
local:iso/debian-13.1.0-amd64-netinst.iso cephfs:iso/debian13.1.iso
```
Signed-off-by: Filip Schauer <f.schauer at proxmox.com>
---
src/PVE/CLI/pvesm.pm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/PVE/CLI/pvesm.pm b/src/PVE/CLI/pvesm.pm
index 06bc4c9..4c630c9 100755
--- a/src/PVE/CLI/pvesm.pm
+++ b/src/PVE/CLI/pvesm.pm
@@ -769,6 +769,12 @@ our $cmddef = {
print "APIAGE $res->{apiage}\n";
},
],
+ 'copy-volume' => [
+ "PVE::API2::Storage::Content",
+ 'copy',
+ ['volume', 'target'],
+ { node => $nodename },
+ ],
'prune-backups' => [
__PACKAGE__,
'prunebackups',
--
2.47.3
More information about the pve-devel
mailing list