[pve-devel] [PATCH storage v8 9/9] pvesm: add a copy-volume command

Filip Schauer f.schauer at proxmox.com
Tue Sep 16 14:32:54 CEST 2025


The method can be called from the PVE shell with `pvesm copy-volume`:

```
pvesm copy-volume <source volume> <target 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
```

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 860e46f..a9a0765 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-storage'],
+        { node => $nodename },
+    ],
     'prune-backups' => [
         __PACKAGE__,
         'prunebackups',
-- 
2.47.3





More information about the pve-devel mailing list