mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
hypervisor: allow Ubuntu 18.04 to be added as KVM host (#2626)
This adds and allows Ubuntu 18.04 to be used as KVM host. In addition, on the UI when hypervisor version key is missing, this adds and display the host os and version detail which is useful to show the KVM host os and version. When cache mode 'none' is used for empty cdrom drives, systemvms and guest VMs fail to start on newer libvirtd such as Ubuntu bionic. The fix is ensure that cachemode is not declared when drives are empty upon starting of the VM. Similar issue logged at redhat here: https://bugzilla.redhat.com/show_bug.cgi?id=1342999 The workaround is to ensure that we don't configure cachemode for cdrom devices at all. This also fixes live VM migration issue. Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
a53dcd6aa9
commit
bd0959517b
2
debian/control
vendored
2
debian/control
vendored
@ -22,7 +22,7 @@ Description: CloudStack server library
|
||||
|
||||
Package: cloudstack-agent
|
||||
Architecture: all
|
||||
Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 1.2.2), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release, init-system-helpers (>= 1.14~), aria2
|
||||
Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 1.2.2), uuid-runtime, iproute2, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release, init-system-helpers (>= 1.14~), aria2
|
||||
Recommends: init-system-helpers
|
||||
Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts
|
||||
Description: CloudStack agent
|
||||
|
||||
@ -121,7 +121,7 @@ public class LibvirtDomainXMLParser {
|
||||
def.defBlockBasedDisk(diskDev, diskLabel,
|
||||
DiskDef.DiskBus.valueOf(bus.toUpperCase()));
|
||||
}
|
||||
if (diskCacheMode != null) {
|
||||
if (StringUtils.isNotBlank(diskCacheMode)) {
|
||||
def.setCacheMode(DiskDef.DiskCacheMode.valueOf(diskCacheMode.toUpperCase()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -819,8 +819,12 @@ public class LibvirtVMDef {
|
||||
diskBuilder.append(" type='" + _diskType + "'");
|
||||
diskBuilder.append(">\n");
|
||||
if(qemuDriver) {
|
||||
diskBuilder.append("<driver name='qemu'" + " type='" + _diskFmtType
|
||||
+ "' cache='" + _diskCacheMode + "' ");
|
||||
diskBuilder.append("<driver name='qemu'" + " type='" + _diskFmtType + "' ");
|
||||
|
||||
if (_deviceType != DeviceType.CDROM) {
|
||||
diskBuilder.append("cache='" + _diskCacheMode + "' ");
|
||||
}
|
||||
|
||||
if(_discard != null && _discard != DiscardType.IGNORE) {
|
||||
diskBuilder.append("discard='" + _discard.toString() + "' ");
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ public final class LibvirtStopCommandWrapper extends CommandWrapper<StopCommand,
|
||||
//move the command line file to backup.
|
||||
s_logger.debug("backing up the cmdline");
|
||||
try{
|
||||
Pair<Boolean, String> ret = SshHelper.sshExecute(command.getControlIp(), 3922, "root", pemFile, null,"mv -f "+CMDLINE_PATH+" "+CMDLINE_BACKUP_PATH);
|
||||
Pair<Boolean, String> ret = SshHelper.sshExecute(command.getControlIp(), 3922, "root", pemFile, null,"cp -f "+CMDLINE_PATH+" "+CMDLINE_BACKUP_PATH);
|
||||
if(!ret.first()){
|
||||
s_logger.debug("Failed to backup cmdline file due to "+ret.second());
|
||||
}
|
||||
|
||||
@ -17484,6 +17484,10 @@
|
||||
item.powerstate = item.outofbandmanagement.powerstate;
|
||||
}
|
||||
|
||||
if (!item.hypervisorversion && item.details && item.details["Host.OS"]) {
|
||||
item.hypervisorversion = item.details["Host.OS"] + " " + item.details["Host.OS.Version"];
|
||||
}
|
||||
|
||||
if (item && item.hostha) {
|
||||
item.hastate = item.hostha.hastate;
|
||||
item.haprovider = item.hostha.haprovider;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user