[pve-devel] [PATCH] remove running from Storage and check it in QemuServer
Alexandre DERUMIER
aderumier at odiso.com
Thu Apr 30 11:54:17 CEST 2015
Also,
+ PVE::Storage::volume_snapshot($storecfg, $volid, $snap) if storage_support_snapshop($volid, $storecfg);
This seem to be wrong.
we can't do a qcow2 snapshot with qemu-img if the vm is running, we need to use qmp in this case.
----- Mail original -----
De: "Wolfgang Link" <w.link at proxmox.com>
À: "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Jeudi 30 Avril 2015 09:47:03
Objet: [pve-devel] [PATCH] remove running from Storage and check it in QemuServer
It is better to check if a VM is running in QemuServer then in Storage.
for the Storage there is no difference if it is running or not.
Signed-off-by: Wolfgang Link <w.link at proxmox.com>
---
PVE/QemuServer.pm | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 708b208..39aff42 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -31,6 +31,8 @@ use PVE::QMPClient;
use PVE::RPCEnvironment;
use Time::HiRes qw(gettimeofday);
+my $snap_storage = {zfspool => 1, rbd => 1, zfs => 1, sheepdog => 1};
+
my $cpuinfo = PVE::ProcFSTools::read_cpuinfo();
# Note about locking: we use flock on the config file protect
@@ -3777,7 +3779,7 @@ sub qemu_volume_snapshot {
my $running = check_running($vmid);
- return if !PVE::Storage::volume_snapshot($storecfg, $volid, $snap, $running);
+ PVE::Storage::volume_snapshot($storecfg, $volid, $snap) if storage_support_snapshop($volid, $storecfg);
return if !$running;
@@ -5772,6 +5774,23 @@ my $savevm_wait = sub {
}
};
+sub storage_support_snapshot {
+ my ($volid, $storecfg) = @_;
+
+ my $storage_name = PVE::Storage::parse_volume_id($volid);
+
+ my $ret = undef;
+ if ($snap_storage->{$storecfg->{ids}->{$storage_name}->{type}} ){
+ $ret = 1;
+ }
+
+ if ($volid =~ m/\.(qcow2|qed)$/){
+ $ret = 1;
+ }
+
+ return $ret;
+}
+
sub snapshot_create {
my ($vmid, $snapname, $save_vmstate, $comment) = @_;
--
2.1.4
_______________________________________________
pve-devel mailing list
pve-devel at pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list