Revert "CLOUDSTACK-1301: Add VM Disk I/O Throttling"

This reverts commit 6dad8adf8fc22417f0242126b8f52ee081f74f49.
This commit is contained in:
Wei Zhou 2013-06-03 07:48:03 +02:00
parent b4969c4af5
commit f714d26039
33 changed files with 17 additions and 481 deletions

View File

@ -37,8 +37,6 @@ public class VolumeTO implements InternalIdentity {
private long deviceId; private long deviceId;
private String chainInfo; private String chainInfo;
private String guestOsType; private String guestOsType;
private long bytesRate;
private long iopsRate;
public VolumeTO(long id, Volume.Type type, StoragePoolType poolType, String poolUuid, String name, String mountPoint, String path, long size, String chainInfo) { public VolumeTO(long id, Volume.Type type, StoragePoolType poolType, String poolUuid, String name, String mountPoint, String path, long size, String chainInfo) {
this.id = id; this.id = id;
@ -135,20 +133,4 @@ public class VolumeTO implements InternalIdentity {
public String toString() { public String toString() {
return new StringBuilder("Vol[").append(id).append("|").append(type).append("|").append(path).append("|").append(size).append("]").toString(); return new StringBuilder("Vol[").append(id).append("|").append(type).append("|").append(path).append("|").append(size).append("]").toString();
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
} }

View File

@ -52,12 +52,4 @@ public interface DiskOffering extends InfrastructureEntity, Identity, InternalId
boolean isCustomized(); boolean isCustomized();
void setDiskSize(long diskSize); void setDiskSize(long diskSize);
void setBytesRate(long bytesRate);
long getBytesRate();
void setIopsRate(long iopsRate);
long getIopsRate();
} }

View File

@ -35,8 +35,6 @@ public class DiskProfile {
private Long templateId; private Long templateId;
private long volumeId; private long volumeId;
private String path; private String path;
private long bytesRate;
private long iopsRate;
private HypervisorType hyperType; private HypervisorType hyperType;
@ -156,20 +154,4 @@ public class DiskProfile {
public void setSize(long size) { public void setSize(long size) {
this.size = size; this.size = size;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
} }

View File

@ -62,12 +62,6 @@ public class CreateDiskOfferingCmd extends BaseCmd {
@Parameter(name=ApiConstants.STORAGE_TYPE, type=CommandType.STRING, description="the storage type of the disk offering. Values are local and shared.") @Parameter(name=ApiConstants.STORAGE_TYPE, type=CommandType.STRING, description="the storage type of the disk offering. Values are local and shared.")
private String storageType = ServiceOffering.StorageType.shared.toString(); private String storageType = ServiceOffering.StorageType.shared.toString();
@Parameter(name="bytesRate", type=CommandType.LONG, required=false, description="bytes rate of the disk offering")
private Long bytesRate;
@Parameter(name="iopsRate", type=CommandType.LONG, required=false, description="io requests rate of the disk offering")
private Long iopsRate;
@Parameter(name=ApiConstants.DISPLAY_OFFERING, type=CommandType.BOOLEAN, description="an optional field, whether to display the offering to the end user or not.") @Parameter(name=ApiConstants.DISPLAY_OFFERING, type=CommandType.BOOLEAN, description="an optional field, whether to display the offering to the end user or not.")
private Boolean displayOffering; private Boolean displayOffering;
@ -99,14 +93,6 @@ public class CreateDiskOfferingCmd extends BaseCmd {
return domainId; return domainId;
} }
public Long getBytesRate() {
return bytesRate;
}
public Long getIopsRate() {
return iopsRate;
}
public String getStorageType() { public String getStorageType() {
return storageType; return storageType;
} }

View File

@ -93,12 +93,6 @@ public class CreateServiceOfferingCmd extends BaseCmd {
@Parameter(name = ApiConstants.SERVICE_OFFERING_DETAILS, type = CommandType.MAP, description = "details for planner, used to store specific parameters") @Parameter(name = ApiConstants.SERVICE_OFFERING_DETAILS, type = CommandType.MAP, description = "details for planner, used to store specific parameters")
private Map<String, String> details; private Map<String, String> details;
@Parameter(name="bytesRate", type=CommandType.LONG, required=false, description="bytes rate of the disk offering")
private Long bytesRate;
@Parameter(name="iopsRate", type=CommandType.LONG, required=false, description="io requests rate of the disk offering")
private Long iopsRate;
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
/////////////////// Accessors /////////////////////// /////////////////// Accessors ///////////////////////
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
@ -177,14 +171,6 @@ public class CreateServiceOfferingCmd extends BaseCmd {
return params; return params;
} }
public long getBytesRate() {
return bytesRate;
}
public long getIopsRate() {
return iopsRate;
}
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
/////////////// API Implementation/////////////////// /////////////// API Implementation///////////////////
///////////////////////////////////////////////////// /////////////////////////////////////////////////////

View File

@ -58,12 +58,6 @@ public class DiskOfferingResponse extends BaseResponse {
@SerializedName("storagetype") @Param(description="the storage type for this disk offering") @SerializedName("storagetype") @Param(description="the storage type for this disk offering")
private String storageType; private String storageType;
@SerializedName("diskBytesRate") @Param(description="bytes rate of the disk offering")
private Long bytesRate;
@SerializedName("diskIORate") @Param(description="io requests rate of the disk offering")
private Long iopsRate;
@SerializedName("displayoffering") @Param(description="whether to display the offering to the end user or not.") @SerializedName("displayoffering") @Param(description="whether to display the offering to the end user or not.")
private Boolean displayOffering; private Boolean displayOffering;
@ -155,12 +149,4 @@ public class DiskOfferingResponse extends BaseResponse {
public void setStorageType(String storageType) { public void setStorageType(String storageType) {
this.storageType = storageType; this.storageType = storageType;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
} }

View File

@ -87,12 +87,6 @@ public class ServiceOfferingResponse extends BaseResponse {
@SerializedName(ApiConstants.NETWORKRATE) @Param(description="data transfer rate in megabits per second allowed.") @SerializedName(ApiConstants.NETWORKRATE) @Param(description="data transfer rate in megabits per second allowed.")
private Integer networkRate; private Integer networkRate;
@SerializedName("diskBytesRate") @Param(description="bytes rate of the service offering")
private Long bytesRate;
@SerializedName("diskIORate") @Param(description="io requests rate of the service offering")
private Long iopsRate;
@SerializedName(ApiConstants.DEPLOYMENT_PLANNER) @Param(description="deployment strategy used to deploy VM.") @SerializedName(ApiConstants.DEPLOYMENT_PLANNER) @Param(description="deployment strategy used to deploy VM.")
private String deploymentPlanner; private String deploymentPlanner;
@ -254,12 +248,4 @@ public class ServiceOfferingResponse extends BaseResponse {
public void setVolatileVm(boolean isVolatile) { public void setVolatileVm(boolean isVolatile) {
this.isVolatile = isVolatile; this.isVolatile = isVolatile;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
} }

View File

@ -110,12 +110,6 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
@Param(description = "shared or local storage") @Param(description = "shared or local storage")
private String storageType; private String storageType;
@SerializedName("diskBytesRate") @Param(description="bytes rate of the disk offering")
private Long bytesRate;
@SerializedName("diskIORate") @Param(description="io requests rate of the disk offering")
private Long iopsRate;
@SerializedName(ApiConstants.HYPERVISOR) @SerializedName(ApiConstants.HYPERVISOR)
@Param(description = "Hypervisor the volume belongs to") @Param(description = "Hypervisor the volume belongs to")
private String hypervisor; private String hypervisor;
@ -264,14 +258,6 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
this.storageType = storageType; this.storageType = storageType;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public void setHypervisor(String hypervisor) { public void setHypervisor(String hypervisor) {
this.hypervisor = hypervisor; this.hypervisor = hypervisor;
} }

View File

@ -463,8 +463,6 @@ label.disable.vpn=Disable VPN
label.disabled=Disabled label.disabled=Disabled
label.disabling.vpn.access=Disabling VPN Access label.disabling.vpn.access=Disabling VPN Access
label.disk.allocated=Disk Allocated label.disk.allocated=Disk Allocated
label.disk.bytes.rate=Disk Rate (BPS)
label.disk.iops.rate=Disk Rate (IOPS)
label.disk.offering=Disk Offering label.disk.offering=Disk Offering
label.disk.read.bytes=Disk Read (Bytes) label.disk.read.bytes=Disk Read (Bytes)
label.disk.read.io=Disk Read (IO) label.disk.read.io=Disk Read (IO)

View File

@ -29,8 +29,6 @@ public class AttachVolumeCommand extends Command {
String volumeName; String volumeName;
Long deviceId; Long deviceId;
String chainInfo; String chainInfo;
long bytesRate;
long iopsRate;
protected AttachVolumeCommand() { protected AttachVolumeCommand() {
} }
@ -98,20 +96,4 @@ public class AttachVolumeCommand extends Command {
public String getChainInfo() { public String getChainInfo() {
return chainInfo; return chainInfo;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
} }

View File

@ -100,13 +100,6 @@ public class DiskOfferingVO implements DiskOffering {
@Column(name="sort_key") @Column(name="sort_key")
int sortKey; int sortKey;
@Column(name="bytes_rate")
long bytesRate;
@Column(name="iops_rate")
long iopsRate;
@Column(name="display_offering") @Column(name="display_offering")
boolean displayOffering; boolean displayOffering;
@ -334,21 +327,4 @@ public class DiskOfferingVO implements DiskOffering {
public void setDisplayOffering(boolean displayOffering) { public void setDisplayOffering(boolean displayOffering) {
this.displayOffering = displayOffering; this.displayOffering = displayOffering;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
} }

View File

@ -1393,8 +1393,6 @@ ServerResource {
VolumeTO volume = new VolumeTO(cmd.getVolumeId(), dskch.getType(), VolumeTO volume = new VolumeTO(cmd.getVolumeId(), dskch.getType(),
pool.getType(), pool.getUuid(), pool.getPath(), pool.getType(), pool.getUuid(), pool.getPath(),
vol.getName(), vol.getName(), disksize, null); vol.getName(), vol.getName(), disksize, null);
volume.setBytesRate(dskch.getBytesRate());
volume.setIopsRate(dskch.getIopsRate());
return new CreateAnswer(cmd, volume); return new CreateAnswer(cmd, volume);
} catch (CloudRuntimeException e) { } catch (CloudRuntimeException e) {
s_logger.debug("Failed to create volume: " + e.toString()); s_logger.debug("Failed to create volume: " + e.toString());
@ -2610,7 +2608,7 @@ ServerResource {
cmd.getPoolUuid()); cmd.getPoolUuid());
KVMPhysicalDisk disk = primary.getPhysicalDisk(cmd.getVolumePath()); KVMPhysicalDisk disk = primary.getPhysicalDisk(cmd.getVolumePath());
attachOrDetachDisk(conn, cmd.getAttach(), cmd.getVmName(), disk, attachOrDetachDisk(conn, cmd.getAttach(), cmd.getVmName(), disk,
cmd.getDeviceId().intValue(), cmd.getBytesRate(), cmd.getIopsRate()); cmd.getDeviceId().intValue());
} catch (LibvirtException e) { } catch (LibvirtException e) {
return new AttachVolumeAnswer(cmd, e.toString()); return new AttachVolumeAnswer(cmd, e.toString());
} catch (InternalErrorException e) { } catch (InternalErrorException e) {
@ -3479,11 +3477,6 @@ ServerResource {
} }
if (volume.getBytesRate() > 0)
disk.setBytesRate(volume.getBytesRate());
if (volume.getIopsRate() > 0)
disk.setIopsRate(volume.getIopsRate());
vm.getDevices().addDevice(disk); vm.getDevices().addDevice(disk);
} }
@ -3617,7 +3610,7 @@ ServerResource {
protected synchronized String attachOrDetachDisk(Connect conn, protected synchronized String attachOrDetachDisk(Connect conn,
boolean attach, String vmName, KVMPhysicalDisk attachingDisk, boolean attach, String vmName, KVMPhysicalDisk attachingDisk,
int devId, long bytesRate, long iopsRate) throws LibvirtException, InternalErrorException { int devId) throws LibvirtException, InternalErrorException {
List<DiskDef> disks = null; List<DiskDef> disks = null;
Domain dm = null; Domain dm = null;
DiskDef diskdef = null; DiskDef diskdef = null;
@ -3657,10 +3650,6 @@ ServerResource {
diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId,
DiskDef.diskBus.VIRTIO); DiskDef.diskBus.VIRTIO);
} }
if (bytesRate > 0)
diskdef.setBytesRate(bytesRate);
if (iopsRate > 0)
diskdef.setIopsRate(iopsRate);
} }
String xml = diskdef.toString(); String xml = diskdef.toString();

View File

@ -105,21 +105,6 @@ public class LibvirtDomainXMLParser {
DiskDef.diskBus.valueOf(bus.toUpperCase())); DiskDef.diskBus.valueOf(bus.toUpperCase()));
} }
} }
NodeList iotune = disk.getElementsByTagName("iotune");
if ((iotune != null) && (iotune.getLength() !=0)) {
String bytesRateStr = getTagValue("total_bytes_sec", (Element)iotune.item(0));
if (bytesRateStr != null) {
Long bytesRate = Long.parseLong(bytesRateStr);
def.setBytesRate(bytesRate);
}
String iopsRateStr = getTagValue("total_iops_sec", (Element)iotune.item(0));
if (iopsRateStr != null) {
Long iopsRate = Long.parseLong(iopsRateStr);
def.setIopsRate(iopsRate);
}
}
diskDefs.add(def); diskDefs.add(def);
} }

View File

@ -22,8 +22,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import com.cloud.utils.script.Script;
public class LibvirtVMDef { public class LibvirtVMDef {
private String _hvsType; private String _hvsType;
private String _domName; private String _domName;
@ -441,8 +439,6 @@ public class LibvirtVMDef {
private boolean _readonly = false; private boolean _readonly = false;
private boolean _shareable = false; private boolean _shareable = false;
private boolean _deferAttach = false; private boolean _deferAttach = false;
private Long _bytesRate;
private Long _iopsRate;
public void setDeviceType(deviceType deviceType) { public void setDeviceType(deviceType deviceType) {
_deviceType = deviceType; _deviceType = deviceType;
@ -588,14 +584,6 @@ public class LibvirtVMDef {
return suffix - 'a'; return suffix - 'a';
} }
public void setBytesRate(Long bytesRate) {
_bytesRate = bytesRate;
}
public void setIopsRate(Long iopsRate) {
_iopsRate = iopsRate;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder diskBuilder = new StringBuilder(); StringBuilder diskBuilder = new StringBuilder();
@ -639,28 +627,6 @@ public class LibvirtVMDef {
diskBuilder.append(" bus='" + _bus + "'"); diskBuilder.append(" bus='" + _bus + "'");
} }
diskBuilder.append("/>\n"); diskBuilder.append("/>\n");
String libvirtVersion = Script.runSimpleBashScript("virsh version |grep API | awk '{print $4}'");
String qemuVersion = Script.runSimpleBashScript("virsh version |grep hypervisor | awk '{print $4}'");
if ((_deviceType != deviceType.CDROM) && (libvirtVersion != null) && (qemuVersion != null)
&& (((_bytesRate != null) && (_bytesRate > 0)) || ((_iopsRate != null) && (_iopsRate > 0)))) { // not CDROM, from libvirt 0.9.8 and QEMU 1.1.0
String[] libvirtVersions = libvirtVersion.split("\\.");
String[] qemuVersions = qemuVersion.split("\\.");
if (((libvirtVersions != null) && (libvirtVersions.length == 3) && ((Integer.valueOf(libvirtVersions[0]) > 0)
|| ((Integer.valueOf(libvirtVersions[0]) == 0) && (Integer.valueOf(libvirtVersions[1]) > 9))
|| ((Integer.valueOf(libvirtVersions[0]) == 0) && (Integer.valueOf(libvirtVersions[1]) == 9) && (Integer.valueOf(libvirtVersions[1]) >= 8))))
&& ((qemuVersions != null) && (qemuVersions.length == 3) && ((Integer.valueOf(qemuVersions[0]) > 1)
|| ((Integer.valueOf(qemuVersions[0]) == 1) && (Integer.valueOf(qemuVersions[1]) > 1))
|| ((Integer.valueOf(qemuVersions[0]) == 1) && (Integer.valueOf(qemuVersions[1]) == 1) && (Integer.valueOf(qemuVersions[1]) >= 0))))) {
diskBuilder.append("<iotune>\n");
if ((_bytesRate != null) && (_bytesRate > 0))
diskBuilder.append("<total_bytes_sec>" + _bytesRate + "</total_bytes_sec>\n");
if ((_iopsRate != null) && (_iopsRate > 0))
diskBuilder.append("<total_iops_sec>" + _iopsRate + "</total_iops_sec>\n");
diskBuilder.append("</iotune>\n");
}
}
diskBuilder.append("</disk>\n"); diskBuilder.append("</disk>\n");
return diskBuilder.toString(); return diskBuilder.toString();
} }

View File

@ -76,8 +76,6 @@ public class DiskOfferingJoinDaoImpl extends GenericDaoBase<DiskOfferingJoinVO,
diskOfferingResponse.setCustomized(offering.isCustomized()); diskOfferingResponse.setCustomized(offering.isCustomized());
diskOfferingResponse.setStorageType(offering.isUseLocalStorage() ? ServiceOffering.StorageType.local.toString() : ServiceOffering.StorageType.shared.toString()); diskOfferingResponse.setStorageType(offering.isUseLocalStorage() ? ServiceOffering.StorageType.local.toString() : ServiceOffering.StorageType.shared.toString());
diskOfferingResponse.setObjectName("diskoffering"); diskOfferingResponse.setObjectName("diskoffering");
diskOfferingResponse.setBytesRate(offering.getBytesRate());
diskOfferingResponse.setIopsRate(offering.getIopsRate());
return diskOfferingResponse; return diskOfferingResponse;
} }

View File

@ -76,8 +76,6 @@ public class ServiceOfferingJoinDaoImpl extends GenericDaoBase<ServiceOfferingJo
offeringResponse.setHostTag(offering.getHostTag()); offeringResponse.setHostTag(offering.getHostTag());
offeringResponse.setDeploymentPlanner(offering.getDeploymentPlanner()); offeringResponse.setDeploymentPlanner(offering.getDeploymentPlanner());
offeringResponse.setObjectName("serviceoffering"); offeringResponse.setObjectName("serviceoffering");
offeringResponse.setBytesRate(offering.getBytesRate());
offeringResponse.setIopsRate(offering.getIopsRate());
return offeringResponse; return offeringResponse;
} }

View File

@ -160,8 +160,6 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
} }
volResponse.setStorageType(volume.isUseLocalStorage() ? ServiceOffering.StorageType.local.toString() : ServiceOffering.StorageType.shared volResponse.setStorageType(volume.isUseLocalStorage() ? ServiceOffering.StorageType.local.toString() : ServiceOffering.StorageType.shared
.toString()); .toString());
volResponse.setBytesRate(volume.getBytesRate());
volResponse.setIopsRate(volume.getIopsRate());
} }
Long poolId = volume.getPoolId(); Long poolId = volume.getPoolId();
String poolName = (poolId == null) ? "none" : volume.getPoolName(); String poolName = (poolId == null) ? "none" : volume.getPoolName();

View File

@ -64,12 +64,6 @@ public class DiskOfferingJoinVO extends BaseViewVO implements InternalIdentity,
@Column(name="sort_key") @Column(name="sort_key")
int sortKey; int sortKey;
@Column(name="bytes_rate")
long bytesRate;
@Column(name="iops_rate")
long iopsRate;
@Column(name="type") @Column(name="type")
Type type; Type type;
@ -245,21 +239,6 @@ public class DiskOfferingJoinVO extends BaseViewVO implements InternalIdentity,
this.type = type; this.type = type;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
} }

View File

@ -90,11 +90,6 @@ public class ServiceOfferingJoinVO extends BaseViewVO implements InternalIdentit
@Column(name="sort_key") @Column(name="sort_key")
int sortKey; int sortKey;
@Column(name="bytes_rate")
long bytesRate;
@Column(name="iops_rate")
long iopsRate;
@Column(name=GenericDao.CREATED_COLUMN) @Column(name=GenericDao.CREATED_COLUMN)
private Date created; private Date created;
@ -334,20 +329,5 @@ public class ServiceOfferingJoinVO extends BaseViewVO implements InternalIdentit
this.volatileVm = volatileVm; this.volatileVm = volatileVm;
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
} }

View File

@ -184,12 +184,6 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity {
@Column(name="use_local_storage") @Column(name="use_local_storage")
private boolean useLocalStorage; private boolean useLocalStorage;
@Column(name="bytes_rate")
long bytesRate;
@Column(name="iops_rate")
long iopsRate;
@Column(name="pool_id") @Column(name="pool_id")
private long poolId; private long poolId;
@ -748,22 +742,6 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity {
} }
public void setBytesRate(long bytesRate) {
this.bytesRate = bytesRate;
}
public long getBytesRate() {
return bytesRate;
}
public void setIopsRate(long iopsRate) {
this.iopsRate = iopsRate;
}
public long getIopsRate() {
return iopsRate;
}
public long getPoolId() { public long getPoolId() {
return poolId; return poolId;

View File

@ -232,8 +232,6 @@ public enum Config {
VmDiskStatsInterval("Advanced", ManagementServer.class, Integer.class, "vm.disk.stats.interval", "0", "Interval (in seconds) to report vm disk statistics.", null), VmDiskStatsInterval("Advanced", ManagementServer.class, Integer.class, "vm.disk.stats.interval", "0", "Interval (in seconds) to report vm disk statistics.", null),
VmTransitionWaitInterval("Advanced", ManagementServer.class, Integer.class, "vm.tranisition.wait.interval", "3600", "Time (in seconds) to wait before taking over a VM in transition state", null), VmTransitionWaitInterval("Advanced", ManagementServer.class, Integer.class, "vm.tranisition.wait.interval", "3600", "Time (in seconds) to wait before taking over a VM in transition state", null),
VmDestroyForcestop("Advanced", ManagementServer.class, Boolean.class, "vm.destroy.forcestop", "false", "On destroy, force-stop takes this value ", null), VmDestroyForcestop("Advanced", ManagementServer.class, Boolean.class, "vm.destroy.forcestop", "false", "On destroy, force-stop takes this value ", null),
VmDiskThrottlingIORate("Advanced", ManagementServer.class, Integer.class, "vm.disk.throttling.iops_rate", "0", "Default disk I/O rate in requests per second allowed in User vm's disk.", null),
VmDiskThrottlingBytesRate("Advanced", ManagementServer.class, Integer.class, "vm.disk.throttling.bytes_rate", "0", "Default disk I/O rate in bytes per second allowed in User vm's disk.", null),
ControlCidr("Advanced", ManagementServer.class, String.class, "control.cidr", "169.254.0.0/16", "Changes the cidr for the control network traffic. Defaults to using link local. Must be unique within pods", null), ControlCidr("Advanced", ManagementServer.class, String.class, "control.cidr", "169.254.0.0/16", "Changes the cidr for the control network traffic. Defaults to using link local. Must be unique within pods", null),
ControlGateway("Advanced", ManagementServer.class, String.class, "control.gateway", "169.254.0.1", "gateway for the control network traffic", null), ControlGateway("Advanced", ManagementServer.class, String.class, "control.gateway", "169.254.0.1", "gateway for the control network traffic", null),

View File

@ -84,7 +84,7 @@ public interface ConfigurationManager extends ConfigurationService, Manager {
* @return ID * @return ID
*/ */
ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, VirtualMachine.Type vm_typeType, String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired, ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, VirtualMachine.Type vm_typeType, String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired,
boolean offerHA, boolean limitResourceUse, boolean volatileVm, String tags, Long domainId, String hostTag, Integer networkRate, String deploymentPlanner, Map<String, String> details, Long bytesRate, Long iopsRate); boolean offerHA, boolean limitResourceUse, boolean volatileVm, String tags, Long domainId, String hostTag, Integer networkRate, String deploymentPlanner, Map<String, String> details);
/** /**
* Creates a new disk offering * Creates a new disk offering
@ -99,7 +99,7 @@ public interface ConfigurationManager extends ConfigurationService, Manager {
* @param isDisplayOfferingEnabled * @param isDisplayOfferingEnabled
* @return newly created disk offering * @return newly created disk offering
*/ */
DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired, boolean isDisplayOfferingEnabled, Long bytesRate, Long iopsRate); DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired, boolean isDisplayOfferingEnabled);
/** /**
* Creates a new pod * Creates a new pod

View File

@ -2031,8 +2031,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
return createServiceOffering(userId, cmd.getIsSystem(), vmType, cmd.getServiceOfferingName(), return createServiceOffering(userId, cmd.getIsSystem(), vmType, cmd.getServiceOfferingName(),
cpuNumber.intValue(), memory.intValue(), cpuSpeed.intValue(), cmd.getDisplayText(), cpuNumber.intValue(), memory.intValue(), cpuSpeed.intValue(), cmd.getDisplayText(),
localStorageRequired, offerHA, limitCpuUse, volatileVm, cmd.getTags(), cmd.getDomainId(), localStorageRequired, offerHA, limitCpuUse, volatileVm, cmd.getTags(), cmd.getDomainId(),
cmd.getHostTag(), cmd.getNetworkRate(), cmd.getDeploymentPlanner(), cmd.getDetails(), cmd.getHostTag(), cmd.getNetworkRate(), cmd.getDeploymentPlanner(), cmd.getDetails());
cmd.getBytesRate(), cmd.getIopsRate());
} }
@Override @Override
@ -2040,16 +2039,11 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
public ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, VirtualMachine.Type vm_type, public ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, VirtualMachine.Type vm_type,
String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired, String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired,
boolean offerHA, boolean limitResourceUse, boolean volatileVm, String tags, Long domainId, String hostTag, boolean offerHA, boolean limitResourceUse, boolean volatileVm, String tags, Long domainId, String hostTag,
Integer networkRate, String deploymentPlanner, Map<String, String> details, Long bytesRate, Long iopsRate) { Integer networkRate, String deploymentPlanner, Map<String, String> details) {
tags = cleanupTags(tags); tags = cleanupTags(tags);
ServiceOfferingVO offering = new ServiceOfferingVO(name, cpu, ramSize, speed, networkRate, null, offerHA, limitResourceUse, volatileVm, displayText, localStorageRequired, false, tags, isSystem, vm_type, ServiceOfferingVO offering = new ServiceOfferingVO(name, cpu, ramSize, speed, networkRate, null, offerHA, limitResourceUse, volatileVm, displayText, localStorageRequired, false, tags, isSystem, vm_type,
domainId, hostTag, deploymentPlanner); domainId, hostTag, deploymentPlanner);
if ((bytesRate != null) && (bytesRate > 0))
offering.setBytesRate(bytesRate);
if ((iopsRate != null) && (iopsRate > 0))
offering.setIopsRate(iopsRate);
if ((offering = _serviceOfferingDao.persist(offering)) != null) { if ((offering = _serviceOfferingDao.persist(offering)) != null) {
if (details != null) { if (details != null) {
_serviceOfferingDetailsDao.persist(offering.getId(), details); _serviceOfferingDetailsDao.persist(offering.getId(), details);
@ -2135,7 +2129,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
@Override @Override
@ActionEvent(eventType = EventTypes.EVENT_DISK_OFFERING_CREATE, eventDescription = "creating disk offering") @ActionEvent(eventType = EventTypes.EVENT_DISK_OFFERING_CREATE, eventDescription = "creating disk offering")
public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired, boolean isDisplayOfferingEnabled, Long bytesRate, Long iopsRate) { public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired, boolean isDisplayOfferingEnabled) {
long diskSize = 0;// special case for custom disk offerings long diskSize = 0;// special case for custom disk offerings
if (numGibibytes != null && (numGibibytes <= 0)) { if (numGibibytes != null && (numGibibytes <= 0)) {
throw new InvalidParameterValueException("Please specify a disk size of at least 1 Gb."); throw new InvalidParameterValueException("Please specify a disk size of at least 1 Gb.");
@ -2155,10 +2149,6 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
DiskOfferingVO newDiskOffering = new DiskOfferingVO(domainId, name, description, diskSize, tags, isCustomized); DiskOfferingVO newDiskOffering = new DiskOfferingVO(domainId, name, description, diskSize, tags, isCustomized);
newDiskOffering.setUseLocalStorage(localStorageRequired); newDiskOffering.setUseLocalStorage(localStorageRequired);
newDiskOffering.setDisplayOffering(isDisplayOfferingEnabled); newDiskOffering.setDisplayOffering(isDisplayOfferingEnabled);
if (bytesRate != null && (bytesRate > 0))
newDiskOffering.setBytesRate(bytesRate);
if (iopsRate != null && (iopsRate > 0))
newDiskOffering.setIopsRate(iopsRate);
UserContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId()); UserContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
DiskOfferingVO offering = _diskOfferingDao.persist(newDiskOffering); DiskOfferingVO offering = _diskOfferingDao.persist(newDiskOffering);
if (offering != null) { if (offering != null) {
@ -2199,9 +2189,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
} }
} }
Long bytesRate = cmd.getBytesRate(); return createDiskOffering(domainId, name, description, numGibibytes, tags, isCustomized, localStorageRequired, isDisplayOfferingEnabled);
Long iopsRate = cmd.getIopsRate();
return createDiskOffering(domainId, name, description, numGibibytes, tags, isCustomized, localStorageRequired, isDisplayOfferingEnabled, bytesRate, iopsRate);
} }
@Override @Override

View File

@ -35,8 +35,6 @@ import com.cloud.exception.ConnectionException;
import com.cloud.exception.StorageUnavailableException; import com.cloud.exception.StorageUnavailableException;
import com.cloud.host.Host; import com.cloud.host.Host;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.service.ServiceOfferingVO;
import com.cloud.storage.DiskOfferingVO;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.vm.DiskProfile; import com.cloud.vm.DiskProfile;
@ -124,8 +122,4 @@ public interface StorageManager extends StorageService {
DataStore createLocalStorage(Host host, StoragePoolInfo poolInfo) throws ConnectionException; DataStore createLocalStorage(Host host, StoragePoolInfo poolInfo) throws ConnectionException;
BigDecimal getStorageOverProvisioningFactor(Long dcId); BigDecimal getStorageOverProvisioningFactor(Long dcId);
Long getDiskBytesRate(ServiceOfferingVO offering, DiskOfferingVO diskOffering);
Long getDiskIORate(ServiceOfferingVO offering, DiskOfferingVO diskOffering);
} }

View File

@ -127,7 +127,6 @@ import com.cloud.resource.ResourceState;
import com.cloud.server.ManagementServer; import com.cloud.server.ManagementServer;
import com.cloud.server.StatsCollector; import com.cloud.server.StatsCollector;
import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.service.ServiceOfferingVO;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.Volume.Type; import com.cloud.storage.Volume.Type;
@ -143,7 +142,6 @@ import com.cloud.storage.dao.VMTemplateS3Dao;
import com.cloud.storage.dao.VMTemplateSwiftDao; import com.cloud.storage.dao.VMTemplateSwiftDao;
import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VolumeDao;
import com.cloud.storage.dao.VolumeHostDao; import com.cloud.storage.dao.VolumeHostDao;
import com.cloud.storage.DiskOfferingVO;
import com.cloud.storage.download.DownloadMonitor; import com.cloud.storage.download.DownloadMonitor;
import com.cloud.storage.listener.StoragePoolMonitor; import com.cloud.storage.listener.StoragePoolMonitor;
import com.cloud.storage.listener.VolumeStateListener; import com.cloud.storage.listener.VolumeStateListener;
@ -1885,36 +1883,4 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
return null; return null;
} }
// get bytesRate from disk_offering and vm.disk.throttling.bytes_rate
@Override
public Long getDiskBytesRate(ServiceOfferingVO offering, DiskOfferingVO diskOffering) {
if ((offering != null) && (offering.getBytesRate() > 0)) {
return offering.getBytesRate();
} else if ((diskOffering != null) && (diskOffering.getBytesRate() > 0)) {
return diskOffering.getBytesRate();
} else {
Long bytesRate = Long.parseLong(_configDao.getValue(Config.VmDiskThrottlingBytesRate.key()));
if (bytesRate > 0) {
return bytesRate;
}
}
return 0L;
}
// get iopsRate from disk_offering and vm.disk.throttling.io_rate
@Override
public Long getDiskIORate(ServiceOfferingVO offering, DiskOfferingVO diskOffering) {
if ((offering != null) && (offering.getIopsRate() > 0)) {
return offering.getIopsRate();
} else if ((diskOffering != null) && (diskOffering.getIopsRate() > 0)) {
return diskOffering.getIopsRate();
} else {
Long iopsRate = Long.parseLong(_configDao.getValue(Config.VmDiskThrottlingIORate.key()));
if (iopsRate > 0) {
return iopsRate;
}
}
return 0L;
}
} }

View File

@ -115,7 +115,6 @@ import com.cloud.server.ManagementServer;
import com.cloud.service.ServiceOfferingVO; import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.StorageManager;
import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.Volume.Event; import com.cloud.storage.Volume.Event;
import com.cloud.storage.Volume.Type; import com.cloud.storage.Volume.Type;
@ -337,9 +336,6 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
diskOffering.getUseLocalStorage(), diskOffering.getUseLocalStorage(),
diskOffering.isRecreatable(), null); diskOffering.isRecreatable(), null);
dskCh.setHyperType(dataDiskHyperType); dskCh.setHyperType(dataDiskHyperType);
dskCh.setBytesRate(storageMgr.getDiskBytesRate(null, diskOffering));
dskCh.setIopsRate(storageMgr.getDiskIORate(null, diskOffering));
DataCenterVO destPoolDataCenter = _dcDao.findById(destPoolDcId); DataCenterVO destPoolDataCenter = _dcDao.findById(destPoolDcId);
HostPodVO destPoolPod = _podDao.findById(destPoolPodId); HostPodVO destPoolPod = _podDao.findById(destPoolPodId);
@ -515,8 +511,6 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
DataCenterVO dc = _dcDao.findById(volume.getDataCenterId()); DataCenterVO dc = _dcDao.findById(volume.getDataCenterId());
DiskProfile dskCh = new DiskProfile(volume, diskOffering, DiskProfile dskCh = new DiskProfile(volume, diskOffering,
snapshot.getHypervisorType()); snapshot.getHypervisorType());
dskCh.setBytesRate(storageMgr.getDiskBytesRate(null, diskOffering));
dskCh.setIopsRate(storageMgr.getDiskIORate(null, diskOffering));
// Determine what pod to store the volume in // Determine what pod to store the volume in
while ((pod = _resourceMgr.findPod(null, null, dc, account.getId(), while ((pod = _resourceMgr.findPod(null, null, dc, account.getId(),
@ -617,8 +611,6 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
DiskProfile dskCh = createDiskCharacteristics(volume, template, dc, DiskProfile dskCh = createDiskCharacteristics(volume, template, dc,
diskOffering); diskOffering);
dskCh.setHyperType(vm.getHypervisorType()); dskCh.setHyperType(vm.getHypervisorType());
dskCh.setBytesRate(storageMgr.getDiskBytesRate(offering, diskOffering));
dskCh.setIopsRate(storageMgr.getDiskIORate(offering, diskOffering));
// Find a suitable storage to create volume on // Find a suitable storage to create volume on
StoragePool destPool = storageMgr.findStoragePool(dskCh, dc, pod, StoragePool destPool = storageMgr.findStoragePool(dskCh, dc, pod,
clusterId, null, vm, avoidPools); clusterId, null, vm, avoidPools);
@ -663,8 +655,6 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
} }
dskCh.setHyperType(hyperType); dskCh.setHyperType(hyperType);
dskCh.setBytesRate(storageMgr.getDiskBytesRate(offering, diskOffering));
dskCh.setIopsRate(storageMgr.getDiskIORate(offering, diskOffering));
final HashSet<StoragePool> avoidPools = new HashSet<StoragePool>( final HashSet<StoragePool> avoidPools = new HashSet<StoragePool>(
avoids); avoids);
@ -2242,12 +2232,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
for (VolumeVO vol : vols) { for (VolumeVO vol : vols) {
PrimaryDataStoreInfo pool = (PrimaryDataStoreInfo)this.dataStoreMgr.getDataStore(vol.getPoolId(), DataStoreRole.Primary); PrimaryDataStoreInfo pool = (PrimaryDataStoreInfo)this.dataStoreMgr.getDataStore(vol.getPoolId(), DataStoreRole.Primary);
ServiceOfferingVO offering = _offeringDao.findById(vm.getServiceOfferingId()); vm.addDisk(new VolumeTO(vol, pool));
DiskOfferingVO diskOffering = _diskOfferingDao.findById(vol.getDiskOfferingId());
VolumeTO newVolume = new VolumeTO(vol, pool);
newVolume.setBytesRate(storageMgr.getDiskBytesRate(offering, diskOffering));
newVolume.setIopsRate(storageMgr.getDiskIORate(offering, diskOffering));
vm.addDisk(newVolume);
} }
if (vm.getType() == VirtualMachine.Type.User) { if (vm.getType() == VirtualMachine.Type.User) {
@ -2477,12 +2462,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
pool = (StoragePool)dataStoreMgr.getDataStore(result.second().getId(), DataStoreRole.Primary); pool = (StoragePool)dataStoreMgr.getDataStore(result.second().getId(), DataStoreRole.Primary);
vol = result.first(); vol = result.first();
} }
ServiceOfferingVO offering = _offeringDao.findById(vm.getServiceOfferingId()); vm.addDisk(new VolumeTO(vol, pool));
DiskOfferingVO diskOffering = _diskOfferingDao.findById(vol.getDiskOfferingId());
VolumeTO newVolume = new VolumeTO(vol, pool);
newVolume.setBytesRate(storageMgr.getDiskBytesRate(offering, diskOffering));
newVolume.setIopsRate(storageMgr.getDiskIORate(offering, diskOffering));
vm.addDisk(newVolume);
} }
} }

View File

@ -967,12 +967,6 @@ public class DatabaseConfig {
} }
DiskOfferingVO diskOffering = new DiskOfferingVO(domainId, name, displayText, diskSpace , tags, false); DiskOfferingVO diskOffering = new DiskOfferingVO(domainId, name, displayText, diskSpace , tags, false);
diskOffering.setUseLocalStorage(local); diskOffering.setUseLocalStorage(local);
Long bytesRate = Long.parseLong(_currentObjectParams.get("bytesRate"));
if (bytesRate != null && (bytesRate > 0))
diskOffering.setBytesRate(bytesRate);
Long iopsRate = Long.parseLong(_currentObjectParams.get("iopsRate"));
if (iopsRate != null && (iopsRate > 0))
diskOffering.setIopsRate(iopsRate);
DiskOfferingDaoImpl offering = ComponentContext.inject(DiskOfferingDaoImpl.class); DiskOfferingDaoImpl offering = ComponentContext.inject(DiskOfferingDaoImpl.class);
try { try {
offering.persist(diskOffering); offering.persist(diskOffering);

View File

@ -1328,7 +1328,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
throw new CloudRuntimeException("Unable to migrate vm: " + e.toString()); throw new CloudRuntimeException("Unable to migrate vm: " + e.toString());
} }
VirtualMachineProfile<T> profile = new VirtualMachineProfileImpl<T>(vm); VirtualMachineProfile<VMInstanceVO> profile = new VirtualMachineProfileImpl<VMInstanceVO>(vm);
boolean migrationResult = false; boolean migrationResult = false;
try { try {
migrationResult = this.volumeMgr.storageMigration(profile, destPool); migrationResult = this.volumeMgr.storageMigration(profile, destPool);

View File

@ -489,7 +489,7 @@ public class MockConfigurationManagerImpl extends ManagerBase implements Configu
*/ */
@Override @Override
public ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, Type vm_typeType, String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired, boolean offerHA, public ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, Type vm_typeType, String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired, boolean offerHA,
boolean limitResourceUse, boolean volatileVm, String tags, Long domainId, String hostTag, Integer networkRate, String deploymentPlanner, Map<String, String> details, Long bytesRate, Long iopsRate) { boolean limitResourceUse, boolean volatileVm, String tags, Long domainId, String hostTag, Integer networkRate, String deploymentPlanner, Map<String, String> details) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@ -654,7 +654,7 @@ public class MockConfigurationManagerImpl extends ManagerBase implements Configu
* @see com.cloud.configuration.ConfigurationManager#createDiskOffering(java.lang.Long, java.lang.String, java.lang.String, java.lang.Long, java.lang.String, boolean, boolean, boolean) * @see com.cloud.configuration.ConfigurationManager#createDiskOffering(java.lang.Long, java.lang.String, java.lang.String, java.lang.Long, java.lang.String, boolean, boolean, boolean)
*/ */
@Override @Override
public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired, boolean isDisplayOfferingEnabled, Long bytesRate, Long iopsRate) { public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired, boolean isDisplayOfferingEnabled) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }

View File

@ -290,10 +290,6 @@ ALTER TABLE `cloud`.`nics` ADD COLUMN `display_nic` tinyint(1) NOT NULL DEFAULT
ALTER TABLE `cloud`.`disk_offering` ADD COLUMN `display_offering` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Should disk offering be displayed to the end user'; ALTER TABLE `cloud`.`disk_offering` ADD COLUMN `display_offering` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Should disk offering be displayed to the end user';
ALTER TABLE `cloud`.`disk_offering` ADD COLUMN `bytes_rate` bigint(20) unsigned DEFAULT 0;
ALTER TABLE `cloud`.`disk_offering` ADD COLUMN `iops_rate` bigint(20) unsigned DEFAULT 0;
CREATE TABLE `cloud`.`volume_details` ( CREATE TABLE `cloud`.`volume_details` (
`id` bigint unsigned NOT NULL auto_increment, `id` bigint unsigned NOT NULL auto_increment,
`volume_id` bigint unsigned NOT NULL COMMENT 'volume id', `volume_id` bigint unsigned NOT NULL COMMENT 'volume id',
@ -766,8 +762,6 @@ CREATE VIEW `cloud`.`volume_view` AS
disk_offering.display_text disk_offering_display_text, disk_offering.display_text disk_offering_display_text,
disk_offering.use_local_storage, disk_offering.use_local_storage,
disk_offering.system_use, disk_offering.system_use,
disk_offering.bytes_rate,
disk_offering.iops_rate,
storage_pool.id pool_id, storage_pool.id pool_id,
storage_pool.uuid pool_uuid, storage_pool.uuid pool_uuid,
storage_pool.name pool_name, storage_pool.name pool_name,
@ -1076,8 +1070,6 @@ CREATE VIEW `cloud`.`service_offering_view` AS
disk_offering.removed, disk_offering.removed,
disk_offering.use_local_storage, disk_offering.use_local_storage,
disk_offering.system_use, disk_offering.system_use,
disk_offering.bytes_rate,
disk_offering.iops_rate,
service_offering.cpu, service_offering.cpu,
service_offering.speed, service_offering.speed,
service_offering.ram_size, service_offering.ram_size,
@ -1384,8 +1376,6 @@ CREATE VIEW `cloud`.`disk_offering_view` AS
disk_offering.removed, disk_offering.removed,
disk_offering.use_local_storage, disk_offering.use_local_storage,
disk_offering.system_use, disk_offering.system_use,
disk_offering.bytes_rate,
disk_offering.iops_rate,
disk_offering.sort_key, disk_offering.sort_key,
disk_offering.type, disk_offering.type,
disk_offering.display_offering, disk_offering.display_offering,
@ -1626,8 +1616,6 @@ CREATE VIEW `cloud`.`volume_view` AS
disk_offering.display_text disk_offering_display_text, disk_offering.display_text disk_offering_display_text,
disk_offering.use_local_storage, disk_offering.use_local_storage,
disk_offering.system_use, disk_offering.system_use,
disk_offering.bytes_rate,
disk_offering.iops_rate,
storage_pool.id pool_id, storage_pool.id pool_id,
storage_pool.uuid pool_uuid, storage_pool.uuid pool_uuid,
storage_pool.name pool_name, storage_pool.name pool_name,
@ -1858,8 +1846,7 @@ CREATE TABLE `cloud_usage`.`usage_vm_disk` (
) ENGINE=InnoDB CHARSET=utf8; ) ENGINE=InnoDB CHARSET=utf8;
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'management-server', 'vm.disk.stats.interval', 0, 'Interval (in seconds) to report vm disk statistics.'); INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'management-server', 'vm.disk.stats.interval', 0, 'Interval (in seconds) to report vm disk statistics.');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'management-server', 'vm.disk.throttling.iops_rate', 0, 'Default disk I/O rate in requests per second allowed in User vm\'s disk. ');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'management-server', 'vm.disk.throttling.bytes_rate', 0, 'Default disk I/O rate in bytes per second allowed in User vm\'s disk. ');
-- Re-enable foreign key checking, at the end of the upgrade path -- Re-enable foreign key checking, at the end of the upgrade path
SET foreign_key_checks = 1; SET foreign_key_checks = 1;

View File

@ -469,8 +469,6 @@ dictionary = {
'label.disable.vpn': '<fmt:message key="label.disable.vpn" />', 'label.disable.vpn': '<fmt:message key="label.disable.vpn" />',
'label.disabling.vpn.access': '<fmt:message key="label.disabling.vpn.access" />', 'label.disabling.vpn.access': '<fmt:message key="label.disabling.vpn.access" />',
'label.disk.allocated': '<fmt:message key="label.disk.allocated" />', 'label.disk.allocated': '<fmt:message key="label.disk.allocated" />',
'label.disk.bytes.rate': '<fmt:message key="label.disk.bytes.rate" />',
'label.disk.iops.rate': '<fmt:message key="label.disk.iops.rate" />',
'label.disk.read.bytes': '<fmt:message key="label.disk.read.bytes" />', 'label.disk.read.bytes': '<fmt:message key="label.disk.read.bytes" />',
'label.disk.read.io': '<fmt:message key="label.disk.read.io" />', 'label.disk.read.io': '<fmt:message key="label.disk.read.io" />',
'label.disk.offering': '<fmt:message key="label.disk.offering" />', 'label.disk.offering': '<fmt:message key="label.disk.offering" />',

View File

@ -109,20 +109,6 @@
number: true number: true
} }
}, },
diskBytesRate: {
label: 'label.disk.bytes.rate',
validation: {
required: false, //optional
number: true
}
},
diskIORate: {
label: 'label.disk.iops.rate',
validation: {
required: false, //optional
number: true
}
},
offerHA: { offerHA: {
label: 'label.offer.ha', label: 'label.offer.ha',
docID: 'helpComputeOfferingHA', docID: 'helpComputeOfferingHA',
@ -241,16 +227,6 @@
networkrate: args.data.networkRate networkrate: args.data.networkRate
}); });
} }
if(args.data.diskBytesRate != null && args.data.diskBytesRate.length > 0) {
$.extend(data, {
bytesRate: args.data.diskBytesRate
});
}
if(args.data.diskIORate != null && args.data.diskIORate.length > 0) {
$.extend(data, {
iopsRate: args.data.diskIORate
});
}
$.extend(data, { $.extend(data, {
offerha: (args.data.offerHA == "on") offerha: (args.data.offerHA == "on")
@ -420,8 +396,6 @@
} }
}, },
networkrate: { label: 'label.network.rate' }, networkrate: { label: 'label.network.rate' },
diskBytesRate: { label: 'label.disk.bytes.rate' },
diskIORate: { label: 'label.disk.iops.rate' },
offerha: { offerha: {
label: 'label.offer.ha', label: 'label.offer.ha',
converter: cloudStack.converters.toBooleanText converter: cloudStack.converters.toBooleanText
@ -560,20 +534,6 @@
number: true number: true
} }
}, },
diskBytesRate: {
label: 'label.disk.bytes.rate',
validation: {
required: false, //optional
number: true
}
},
diskIORate: {
label: 'label.disk.iops.rate',
validation: {
required: false, //optional
number: true
}
},
offerHA: { offerHA: {
label: 'label.offer.ha', label: 'label.offer.ha',
docID: 'helpSystemOfferingHA', docID: 'helpSystemOfferingHA',
@ -642,16 +602,6 @@
networkrate: args.data.networkRate networkrate: args.data.networkRate
}); });
} }
if(args.data.diskBytesRate != null && args.data.diskBytesRate.length > 0) {
$.extend(data, {
bytesRate: args.data.diskBytesRate
});
}
if(args.data.diskIORate != null && args.data.diskIORate.length > 0) {
$.extend(data, {
iopsRate: args.data.diskIORate
});
}
$.extend(data, { $.extend(data, {
offerha: (args.data.offerHA == "on") offerha: (args.data.offerHA == "on")
@ -831,8 +781,6 @@
} }
}, },
networkrate: { label: 'label.network.rate' }, networkrate: { label: 'label.network.rate' },
diskBytesRate: { label: 'label.disk.bytes.rate' },
diskIORate: { label: 'label.disk.iops.rate' },
offerha: { offerha: {
label: 'label.offer.ha', label: 'label.offer.ha',
converter: cloudStack.converters.toBooleanText converter: cloudStack.converters.toBooleanText
@ -892,20 +840,6 @@
else else
return "N/A"; return "N/A";
} }
},
diskBytesRate: {
label: 'label.disk.bytes.rate',
validation: {
required: false, //optional
number: true
}
},
diskIORate: {
label: 'label.disk.iops.rate',
validation: {
required: false, //optional
number: true
}
} }
}, },
@ -977,20 +911,6 @@
dependsOn: 'isCustomized', dependsOn: 'isCustomized',
validation: { required: true, number: true } validation: { required: true, number: true }
}, },
diskBytesRate: {
label: 'label.disk.bytes.rate',
validation: {
required: false, //optional
number: true
}
},
diskIORate: {
label: 'label.disk.iops.rate',
validation: {
required: false, //optional
number: true
}
},
tags: { tags: {
label: 'label.storage.tags', label: 'label.storage.tags',
docID: 'helpDiskOfferingStorageTags' docID: 'helpDiskOfferingStorageTags'
@ -1164,8 +1084,6 @@
return "N/A"; return "N/A";
} }
}, },
diskBytesRate: { label: 'label.disk.bytes.rate' },
diskIORate: { label: 'label.disk.iops.rate' },
tags: { label: 'label.storage.tags' }, tags: { label: 'label.storage.tags' },
domain: { label: 'label.domain' }, domain: { label: 'label.domain' },
storagetype: { label: 'label.storage.type' } storagetype: { label: 'label.storage.type' }

View File

@ -1669,8 +1669,8 @@
networkkbswrite: (jsonObj.networkkbswrite == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.networkkbswrite * 1024), networkkbswrite: (jsonObj.networkkbswrite == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.networkkbswrite * 1024),
diskkbsread: (jsonObj.diskkbsread == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.diskkbsread * 1024), diskkbsread: (jsonObj.diskkbsread == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.diskkbsread * 1024),
diskkbswrite: (jsonObj.diskkbswrite == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.diskkbswrite * 1024), diskkbswrite: (jsonObj.diskkbswrite == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.diskkbswrite * 1024),
diskioread: (jsonObj.diskioread == null)? "N/A": jsonObj.diskioread, diskioread: (jsonObj.diskioread == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.diskioread * 1024),
diskiowrite: (jsonObj.diskiowrite == null)? "N/A": jsonObj.diskiowrite diskiowrite: (jsonObj.diskiowrite == null)? "N/A": cloudStack.converters.convertBytes(jsonObj.diskiowrite * 1024)
} }
}); });
} }