diff --git a/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 2b98db8e9d7..545a270e4ae 100755 --- a/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -255,7 +255,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa protected float _memOverprovisioningFactor = 1; protected boolean _reserveMem = false; - protected DiskControllerType _rootDiskController = DiskControllerType.scsi; + protected DiskControllerType _rootDiskController = DiskControllerType.ide; protected ManagedObjectReference _morHyperHost; protected VmwareContext _serviceContext; @@ -1364,10 +1364,18 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa if (vol.getType() == Volume.Type.ISO) { controllerKey = ideControllerKey; } else { - if(_rootDiskController == DiskControllerType.scsi) - controllerKey = scsiControllerKey; - else - controllerKey = ideControllerKey; + if(vmSpec.getDetails() != null && vmSpec.getDetails().get("root.disk.controller") != null) + { + if(vmSpec.getDetails().get("root.disk.controller").equalsIgnoreCase("scsi")) + controllerKey = scsiControllerKey; + else + controllerKey = ideControllerKey; + } else { + if(_rootDiskController == DiskControllerType.scsi) + controllerKey = scsiControllerKey; + else + controllerKey = ideControllerKey; + } } if (vol.getType() != Volume.Type.ISO) { diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java index 1b5d052be12..e95b1c02455 100755 --- a/server/src/com/cloud/configuration/Config.java +++ b/server/src/com/cloud/configuration/Config.java @@ -237,7 +237,7 @@ public enum Config { VmwarePerClusterHostMax("Advanced", ManagementServer.class, Integer.class, "vmware.percluster.host.max", "8", "maxmium hosts per vCenter cluster(do not let it grow over 8)", "1-8"), VmwareReserveCpu("Advanced", ManagementServer.class, Boolean.class, "vmware.reserve.cpu", "false", "Specify whether or not to reserve CPU based on CPU overprovisioning factor", null), VmwareReserveMem("Advanced", ManagementServer.class, Boolean.class, "vmware.reserve.mem", "false", "Specify whether or not to reserve memory based on memory overprovisioning factor", null), - VmwareRootDiskControllerType("Advanced", ManagementServer.class, String.class, "vmware.root.disk.controller", "scsi", "Specify the default disk controller for root volumes, valid values are scsi, ide", null), + VmwareRootDiskControllerType("Advanced", ManagementServer.class, String.class, "vmware.root.disk.controller", "ide", "Specify the default disk controller for root volumes, valid values are scsi, ide", null), // KVM KvmPublicNetwork("Advanced", ManagementServer.class, String.class, "kvm.public.network.device", null, "Specify the public bridge on host for public network", null), diff --git a/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java b/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java index 886caaee46d..88b56a2a2c6 100755 --- a/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java +++ b/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java @@ -122,7 +122,7 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis String _memOverprovisioningFactor = "1"; String _reserveMem = "false"; - String _rootDiskController = DiskControllerType.scsi.toString(); + String _rootDiskController = DiskControllerType.ide.toString(); Map _storageMounts = new HashMap(); @@ -249,7 +249,7 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis _rootDiskController = configDao.getValue(Config.VmwareRootDiskControllerType.key()); if(_rootDiskController == null || _rootDiskController.isEmpty()) - _rootDiskController = DiskControllerType.scsi.toString(); + _rootDiskController = DiskControllerType.ide.toString(); s_logger.info("Additional VNC port allocation range is settled at " + _additionalPortRangeStart + " to " + (_additionalPortRangeStart + _additionalPortRangeSize)); diff --git a/setup/db/db/schema-2212to2213.sql b/setup/db/db/schema-2212to2213.sql index 713b32b31e3..fe0df7bd855 100644 --- a/setup/db/db/schema-2212to2213.sql +++ b/setup/db/db/schema-2212to2213.sql @@ -51,5 +51,5 @@ UPDATE guest_os_hypervisor SET guest_os_name='Red Hat Enterprise Linux 4.6(32-bi UPDATE guest_os_hypervisor SET guest_os_name='Red Hat Enterprise Linux 4.7(32-bit)' WHERE hypervisor_type='VmWare' AND guest_os_id=28; UPDATE guest_os_hypervisor SET guest_os_name='Red Hat Enterprise Linux 4.8(32-bit)' WHERE hypervisor_type='VmWare' AND guest_os_id=29; -INSERT IGNORE INTO configuration VALUES ('Advanced', 'DEFAULT', 'management-server', 'vmware.root.disk.controller', 'scsi', 'Specify the default disk controller for root volumes, valid values are scsi, ide'); +INSERT IGNORE INTO configuration VALUES ('Advanced', 'DEFAULT', 'management-server', 'vmware.root.disk.controller', 'ide', 'Specify the default disk controller for root volumes, valid values are scsi, ide');