bug 9614: let root volume use IDE disk controller by default to ensure backwards compatibility with existing CloudStack deployments

This commit is contained in:
Kelven Yang 2011-10-24 15:28:10 -07:00
parent e130911371
commit fc3d93e3e7
4 changed files with 17 additions and 9 deletions

View File

@ -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) {

View File

@ -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),

View File

@ -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<String, String> _storageMounts = new HashMap<String, String>();
@ -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));

View File

@ -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');