[pve-devel] Question to ZFSPlugin.pm
Alexandre DERUMIER
aderumier at odiso.com
Thu Jan 22 08:17:59 CET 2015
This is strange,
the destroy vm code is
# only remove disks owned by this VM
foreach_drive($conf, sub {
my ($ds, $drive) = @_;
return if drive_is_cdrom($drive);
my $volid = $drive->{file};
return if !$volid || $volid =~ m|^/|;
my ($path, $owner) = PVE::Storage::path($storecfg, $volid);
return if !$path || !$owner || ($owner != $vmid);
PVE::Storage::vdisk_free($storecfg, $volid);
});
if ($keep_empty_config) {
PVE::Tools::file_set_contents($conffile, "memory: 128\n");
} else {
unlink $conffile;
}
So,If PVE::Storage::vdisk_free is hanging (before the disk have clone), the config file shouldn't be delete
the vdisk_free code is
$plugin->cluster_lock_storage($storeid, $scfg->{shared}, undef, sub {
my ($vtype, $name, $vmid, undef, undef, $isBase) =
$plugin->parse_volname($volname);
if ($isBase) {
my $vollist = $plugin->list_images($storeid, $scfg);
foreach my $info (@$vollist) {
my (undef, $tmpvolname) = parse_volume_id($info->{volid});
my $basename = undef;
my $basevmid = undef;
eval{
(undef, undef, undef, $basename, $basevmid) =
$plugin->parse_volname($tmpvolname);
};
if ($basename && defined($basevmid) && $basevmid == $vmid && $basename eq $name) {
die "base volume '$volname' is still in use " .
"(use by '$tmpvolname')\n";
}
}
}
my $cleanup_worker = $plugin->free_image($storeid, $scfg, $volname, $isBase);
});
if volume isbase (this is the case of templates, the disk volid is base-xxxx), we check if we have clones.
(listing all volumes, and check if the volumes have the base image as parent)
----- Mail original -----
De: "Wolfgang Link" <w.link at proxmox.com>
À: "datanom.net" <mir at datanom.net>, "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Mercredi 21 Janvier 2015 11:05:30
Objet: [pve-devel] Question to ZFSPlugin.pm
I implemented the ZFSPlugin for local Zfs use.
When I test my adaption of this Plug-in,
I recognize that it is possible to erase a template witch has a linked
clone.
I mean the Zfs-volume will not destroyed but the config of the template.
My problem is I can't validate, it on the orginal Plugin, because I have
no iSCSI Nexenta/OmniOS.
Has the ZFSPlugin the same behavior on iSCSI?
regards.
_______________________________________________
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