vzdump error when ISO is missing

BitRausch

Renowned Member
Mar 16, 2009
140
0
81
Muenster
Hi,

Just a feedback:

Installed a fresh new version 1.4beta.
Restored my VM backups (from 1.3) and tried the new vzdump.
I noticed that when I backup a vm where the ISO is missing vzdump stops with an error. No big deal once you know it. I just delete the CD-Rom from this machine but maybe it would be nice to have validation upfront or maybe a hint? Since this was done on the console I am not sure how the behavior would be once you have a backup job with multiple VM's running.
I will try it later.

regards
BitRausch

Output on the console:
Code:
INFO: starting new backup job: vzdump --dumpdir /mnt/pve/ProxBackup --bwlimit 40000 --snapshot --compress 108
INFO: Starting Backup of VM 108 (qemu)
INFO: stopped
INFO: status = stopped
INFO: backup mode: stop
INFO: bandwidth limit: 40000 KB/s
ERROR: Backup of VM 108 failed - volume 'local:iso/ISA_2006_FPPS_DE.ISO' does not exist
INFO: Backup job finished with errors


108.conf after restore with qmrestore

Code:
name: NewIsa-Server
ide2: ISA 2006 FPPS_DE.ISO,media=cdrom
smp: 1
bootdisk: ide0
ide0: vm-108-disk.qcow2
ostype: w2k3
memory: 1024
vlan1: e1000=CA:00:1F:14:44:D8
ide1: ISA_2006_FPPS_DE.ISO,media=cdrom
vlan0: e1000=06:3C:10:DC:A0:AA
 
Last edited:
Just add one line to prepare function at /usr/share/perl5/PVE/VZDump/QemuServer.pm after the foreach:
next if PVE::QemuServer::drive_is_cdrom ($di->{$ds});

Like this:
Code:
    foreach my $ds (sort keys %$di) {
        next if PVE::QemuServer::drive_is_cdrom ($di->{$ds});
        if (defined($di->{$ds}->{backup}) && $di->{$ds}->{backup} eq "no") {
            $self->loginfo("exclude disk '$ds' (backup=no)");
            next;
        }
 
hmm. Which package sould i update for official fix?
pve-manager: 1.8-18 (pve-manager/1.8/)running kernel: 2.6.35-1-pve
proxmox-ve-2.6.35: 1.8-11
pve-kernel-2.6.35-1-pve: 2.6.35-11
qemu-server: 1.1-30
pve-firmware: 1.0-11
libpve-storage-perl: 1.0-17
vncterm: 0.9-2
vzctl: 3.0.28-1pve1
vzdump: 1.2-13
vzprocps: 2.0.11-2
vzquota: 3.0.11-1
pve-qemu-kvm: 0.14.1-1
ksm-control-daemon: 1.0-6
 
I need to put that drive_is_cdrom check to activate_volumes @ PVE/QemuServer.pm too:
Code:
    foreach my $ds (keys %$di) {
        [B]next if PVE::QemuServer::drive_is_cdrom ($di->{$ds});[/B]
        my $volid = $di->{$ds}->{file};
        eval {
            PVE::Storage::parse_volume_id ($volid);
            push @$vollist, $volid;
        };
    }