You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by jf...@apache.org on 2019/05/28 18:32:25 UTC

[vcl] branch develop updated: VCL-1084 - set cache mode for libvirt VMs

This is an automated email from the ASF dual-hosted git repository.

jfthomps pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/vcl.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9912242  VCL-1084 - set cache mode for libvirt VMs
9912242 is described below

commit 9912242b77e3128bdc66af3a7763533c4d29d6ae
Author: Josh Thompson <jf...@ncsu.edu>
AuthorDate: Tue May 28 14:29:47 2019 -0400

    VCL-1084 - set cache mode for libvirt VMs
    
    libvirt.pm: modified generate_domain_xml: added check for vmpath being on local disk and if so, set flag to set disk cache to none; after creation of $xml_hashref, if flag set for disk cache, add disk cache none to xml_hashref
---
 managementnode/lib/VCL/Module/Provisioning/libvirt.pm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/managementnode/lib/VCL/Module/Provisioning/libvirt.pm b/managementnode/lib/VCL/Module/Provisioning/libvirt.pm
index b38ffff..e45e2bc 100644
--- a/managementnode/lib/VCL/Module/Provisioning/libvirt.pm
+++ b/managementnode/lib/VCL/Module/Provisioning/libvirt.pm
@@ -1736,6 +1736,13 @@ sub generate_domain_xml {
 	
 	my $copy_on_write_file_path = $self->get_copy_on_write_file_path();
 	my $image_type = $self->data->get_vmhost_datastore_imagetype_name();
+	my $vmhost_vmpath = $self->data->get_vmhost_profile_vmpath();
+	my $add_disk_cache = 0;
+	if ($self->os->nathost_os->is_file_on_local_disk($vmhost_vmpath)) {
+		# set disk cache to none if vmpath on local disk so live migration will work
+		$add_disk_cache = 1;
+	}
+
 	my $disk_driver_name = $self->driver->get_disk_driver_name();
 	my $disk_bus_type = $self->get_master_xml_disk_bus_type();
 	
@@ -1912,6 +1919,11 @@ EOF
 			}
 		]
 	};
+
+	if ($add_disk_cache) {
+		notify($ERRORS{'DEBUG'}, 0, "vmpath ($vmhost_vmpath) is on local disk; setting disk cache to none");
+		$xml_hashref->{'devices'}[0]{'disk'}[0]{'driver'}{'cache'} = 'none';
+	}
 	
 	notify($ERRORS{'DEBUG'}, 0, "generated domain XML:\n" . format_data($xml_hashref));
 	return hash_to_xml_string($xml_hashref, 'domain');