Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions conf/db/upgrade/V5.5.12__schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,70 @@ WHERE `opaque` IS NOT NULL
AND `endTime` IS NULL
AND Json_getKeyValue(`opaque`, 'end_time') IS NOT NULL
AND Json_getKeyValue(`opaque`, 'end_time') != '';

-- dGPU (TensorFusion) support tables

CREATE TABLE IF NOT EXISTS `zstack`.`DGpuProfileVO` (
`uuid` VARCHAR(32) NOT NULL,
`gpuSpecUuid` VARCHAR(32) NOT NULL,
`memorySize` BIGINT UNSIGNED NOT NULL,
`shmemSize` BIGINT UNSIGNED NOT NULL DEFAULT 268435456,
`createDate` TIMESTAMP NOT NULL,
`lastOpDate` TIMESTAMP NOT NULL,
PRIMARY KEY (`uuid`),
UNIQUE KEY `uk_dgpu_profile` (`gpuSpecUuid`, `memorySize`),
CONSTRAINT `fk_dgpu_profile_spec`
FOREIGN KEY (`gpuSpecUuid`) REFERENCES `zstack`.`GpuDeviceSpecVO`(`uuid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `zstack`.`DGpuDeviceVO` (
`uuid` VARCHAR(32) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`parentGpuUuid` VARCHAR(32) NOT NULL,
`gpuSpecUuid` VARCHAR(32) NOT NULL,
`hostUuid` VARCHAR(32) NOT NULL,
`vmInstanceUuid` VARCHAR(32) DEFAULT NULL,
`allocatedMemory` BIGINT UNSIGNED NOT NULL,
`shmemSize` BIGINT UNSIGNED NOT NULL DEFAULT 268435456,
`smPercentLimit` INT NOT NULL DEFAULT 0,
`protocol` VARCHAR(16) NOT NULL DEFAULT 'shmem',
`status` VARCHAR(32) NOT NULL,
`vendorId` VARCHAR(64) DEFAULT NULL,
`vendor` VARCHAR(255) DEFAULT NULL,
`createDate` TIMESTAMP NOT NULL,
`lastOpDate` TIMESTAMP NOT NULL,
PRIMARY KEY (`uuid`),
INDEX `idx_dgpu_device_parent` (`parentGpuUuid`),
INDEX `idx_dgpu_device_spec` (`gpuSpecUuid`),
INDEX `idx_dgpu_device_host` (`hostUuid`),
CONSTRAINT `fk_dgpu_device_parent`
FOREIGN KEY (`parentGpuUuid`) REFERENCES `zstack`.`PciDeviceVO`(`uuid`) ON DELETE CASCADE,
CONSTRAINT `fk_dgpu_device_spec`
FOREIGN KEY (`gpuSpecUuid`) REFERENCES `zstack`.`GpuDeviceSpecVO`(`uuid`),
CONSTRAINT `fk_dgpu_device_host`
FOREIGN KEY (`hostUuid`) REFERENCES `zstack`.`HostEO`(`uuid`) ON DELETE CASCADE,
CONSTRAINT `fk_dgpu_device_vm`
FOREIGN KEY (`vmInstanceUuid`) REFERENCES `zstack`.`VmInstanceEO`(`uuid`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `zstack`.`VmInstanceDGpuStrategyVO` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`vmInstanceUuid` VARCHAR(32) NOT NULL,
`gpuSpecUuid` VARCHAR(32) NOT NULL,
`memorySize` BIGINT UNSIGNED NOT NULL,
`shmemSize` BIGINT UNSIGNED NOT NULL DEFAULT 268435456,
`gpuDeviceUuid` VARCHAR(32) DEFAULT NULL,
`chooser` VARCHAR(16) NOT NULL,
`autoDetachOnStop` TINYINT(1) NOT NULL DEFAULT 1,
`createDate` TIMESTAMP NOT NULL,
`lastOpDate` TIMESTAMP NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_vm_dgpu_strategy` (`vmInstanceUuid`),
INDEX `idx_vm_dgpu_strategy_spec` (`gpuSpecUuid`),
CONSTRAINT `fk_vm_dgpu_strategy_vm`
FOREIGN KEY (`vmInstanceUuid`) REFERENCES `zstack`.`VmInstanceEO`(`uuid`) ON DELETE CASCADE,
CONSTRAINT `fk_vm_dgpu_strategy_spec`
FOREIGN KEY (`gpuSpecUuid`) REFERENCES `zstack`.`GpuDeviceSpecVO`(`uuid`) ON DELETE CASCADE,
CONSTRAINT `fk_vm_dgpu_strategy_device`
FOREIGN KEY (`gpuDeviceUuid`) REFERENCES `zstack`.`PciDeviceVO`(`uuid`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package org.zstack.header.zwatch;

import java.util.List;

public interface ResourceMetricBindingExtensionPoint {
class ResourceMetricBinding {
private Class<?> resourceType;
private String logicalMetricName;
private String sourceNamespace;
private String sourceMetricName;
private String resourceField;
private String sourceLabel;
private boolean requireUniqueSourceKey;

public Class<?> getResourceType() {
return resourceType;
}

public void setResourceType(Class<?> resourceType) {
this.resourceType = resourceType;
}

public String getLogicalMetricName() {
return logicalMetricName;
}

public void setLogicalMetricName(String logicalMetricName) {
this.logicalMetricName = logicalMetricName;
}

public String getSourceNamespace() {
return sourceNamespace;
}

public void setSourceNamespace(String sourceNamespace) {
this.sourceNamespace = sourceNamespace;
}

public String getSourceMetricName() {
return sourceMetricName;
}

public void setSourceMetricName(String sourceMetricName) {
this.sourceMetricName = sourceMetricName;
}

public String getResourceField() {
return resourceField;
}

public void setResourceField(String resourceField) {
this.resourceField = resourceField;
}

public String getSourceLabel() {
return sourceLabel;
}

public void setSourceLabel(String sourceLabel) {
this.sourceLabel = sourceLabel;
}

public boolean isRequireUniqueSourceKey() {
return requireUniqueSourceKey;
}

public void setRequireUniqueSourceKey(boolean requireUniqueSourceKey) {
this.requireUniqueSourceKey = requireUniqueSourceKey;
}
}

List<ResourceMetricBinding> getResourceMetricBindings();
}
6 changes: 6 additions & 0 deletions sdk/src/main/java/SourceClassMap.java
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,9 @@ public class SourceClassMap {
put("org.zstack.pciDevice.gpu.GpuDeviceInventory", "org.zstack.sdk.GpuDeviceInventory");
put("org.zstack.pciDevice.gpu.GpuDeviceSpecInventory", "org.zstack.sdk.GpuDeviceSpecInventory");
put("org.zstack.pciDevice.gpu.GpuVendor", "org.zstack.sdk.GpuVendor");
put("org.zstack.pciDevice.gpu.dgpu.DGpuDeviceInventory", "org.zstack.sdk.DGpuDeviceInventory");
put("org.zstack.pciDevice.gpu.dgpu.DGpuProfileInventory", "org.zstack.sdk.DGpuProfileInventory");
put("org.zstack.pciDevice.gpu.dgpu.DGpuStatus", "org.zstack.sdk.DGpuStatus");
put("org.zstack.pciDevice.specification.mdev.MdevDeviceSpecInventory", "org.zstack.sdk.MdevDeviceSpecInventory");
put("org.zstack.pciDevice.specification.mdev.MdevDeviceSpecState", "org.zstack.sdk.MdevDeviceSpecState");
put("org.zstack.pciDevice.specification.mdev.PciDeviceMdevSpecRefInventory", "org.zstack.sdk.PciDeviceMdevSpecRefInventory");
Expand Down Expand Up @@ -1022,6 +1025,9 @@ public class SourceClassMap {
put("org.zstack.sdk.CpuMemoryCapacityData", "org.zstack.header.allocator.datatypes.CpuMemoryCapacityData");
put("org.zstack.sdk.CreateDataVolumeTemplateFromVolumeSnapshotFailure", "org.zstack.header.image.APICreateDataVolumeTemplateFromVolumeSnapshotEvent$Failure");
put("org.zstack.sdk.CreateRootVolumeTemplateFromVolumeSnapshotFailure", "org.zstack.header.image.APICreateRootVolumeTemplateFromVolumeSnapshotEvent$Failure");
put("org.zstack.sdk.DGpuDeviceInventory", "org.zstack.pciDevice.gpu.dgpu.DGpuDeviceInventory");
put("org.zstack.sdk.DGpuProfileInventory", "org.zstack.pciDevice.gpu.dgpu.DGpuProfileInventory");
put("org.zstack.sdk.DGpuStatus", "org.zstack.pciDevice.gpu.dgpu.DGpuStatus");
put("org.zstack.sdk.DRSAdviceInventory", "org.zstack.drs.entity.DRSAdviceInventory");
put("org.zstack.sdk.DRSVmMigrationActivityInventory", "org.zstack.drs.entity.DRSVmMigrationActivityInventory");
put("org.zstack.sdk.DataCenterInventory", "org.zstack.header.datacenter.DataCenterInventory");
Expand Down
127 changes: 127 additions & 0 deletions sdk/src/main/java/org/zstack/sdk/DGpuDeviceInventory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
package org.zstack.sdk;

import org.zstack.sdk.DGpuStatus;

public class DGpuDeviceInventory {

public java.lang.String uuid;
public void setUuid(java.lang.String uuid) {
this.uuid = uuid;
}
public java.lang.String getUuid() {
return this.uuid;
}

public java.lang.String name;
public void setName(java.lang.String name) {
this.name = name;
}
public java.lang.String getName() {
return this.name;
}

public java.lang.String parentGpuUuid;
public void setParentGpuUuid(java.lang.String parentGpuUuid) {
this.parentGpuUuid = parentGpuUuid;
}
public java.lang.String getParentGpuUuid() {
return this.parentGpuUuid;
}

public java.lang.String gpuSpecUuid;
public void setGpuSpecUuid(java.lang.String gpuSpecUuid) {
this.gpuSpecUuid = gpuSpecUuid;
}
public java.lang.String getGpuSpecUuid() {
return this.gpuSpecUuid;
}

public java.lang.String hostUuid;
public void setHostUuid(java.lang.String hostUuid) {
this.hostUuid = hostUuid;
}
public java.lang.String getHostUuid() {
return this.hostUuid;
}

public java.lang.String vmInstanceUuid;
public void setVmInstanceUuid(java.lang.String vmInstanceUuid) {
this.vmInstanceUuid = vmInstanceUuid;
}
public java.lang.String getVmInstanceUuid() {
return this.vmInstanceUuid;
}

public java.lang.Long allocatedMemory;
public void setAllocatedMemory(java.lang.Long allocatedMemory) {
this.allocatedMemory = allocatedMemory;
}
public java.lang.Long getAllocatedMemory() {
return this.allocatedMemory;
}

public java.lang.Long shmemSize;
public void setShmemSize(java.lang.Long shmemSize) {
this.shmemSize = shmemSize;
}
public java.lang.Long getShmemSize() {
return this.shmemSize;
}

public java.lang.String protocol;
public void setProtocol(java.lang.String protocol) {
this.protocol = protocol;
}
public java.lang.String getProtocol() {
return this.protocol;
}

public int smPercentLimit;
public void setSmPercentLimit(int smPercentLimit) {
this.smPercentLimit = smPercentLimit;
}
public int getSmPercentLimit() {
return this.smPercentLimit;
}

public DGpuStatus status;
public void setStatus(DGpuStatus status) {
this.status = status;
}
public DGpuStatus getStatus() {
return this.status;
}

public java.sql.Timestamp createDate;
public void setCreateDate(java.sql.Timestamp createDate) {
this.createDate = createDate;
}
public java.sql.Timestamp getCreateDate() {
return this.createDate;
}

public java.sql.Timestamp lastOpDate;
public void setLastOpDate(java.sql.Timestamp lastOpDate) {
this.lastOpDate = lastOpDate;
}
public java.sql.Timestamp getLastOpDate() {
return this.lastOpDate;
}

public java.lang.String vendorId;
public void setVendorId(java.lang.String vendorId) {
this.vendorId = vendorId;
}
public java.lang.String getVendorId() {
return this.vendorId;
}

public java.lang.String vendor;
public void setVendor(java.lang.String vendor) {
this.vendor = vendor;
}
public java.lang.String getVendor() {
return this.vendor;
}

}
55 changes: 55 additions & 0 deletions sdk/src/main/java/org/zstack/sdk/DGpuProfileInventory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.zstack.sdk;



public class DGpuProfileInventory {

public java.lang.String uuid;
public void setUuid(java.lang.String uuid) {
this.uuid = uuid;
}
public java.lang.String getUuid() {
return this.uuid;
}

public java.lang.String gpuSpecUuid;
public void setGpuSpecUuid(java.lang.String gpuSpecUuid) {
this.gpuSpecUuid = gpuSpecUuid;
}
public java.lang.String getGpuSpecUuid() {
return this.gpuSpecUuid;
}

public java.lang.Long memorySize;
public void setMemorySize(java.lang.Long memorySize) {
this.memorySize = memorySize;
}
public java.lang.Long getMemorySize() {
return this.memorySize;
}

public java.lang.Long shmemSize;
public void setShmemSize(java.lang.Long shmemSize) {
this.shmemSize = shmemSize;
}
public java.lang.Long getShmemSize() {
return this.shmemSize;
}

public java.sql.Timestamp createDate;
public void setCreateDate(java.sql.Timestamp createDate) {
this.createDate = createDate;
}
public java.sql.Timestamp getCreateDate() {
return this.createDate;
}

public java.sql.Timestamp lastOpDate;
public void setLastOpDate(java.sql.Timestamp lastOpDate) {
this.lastOpDate = lastOpDate;
}
public java.sql.Timestamp getLastOpDate() {
return this.lastOpDate;
}

}
8 changes: 8 additions & 0 deletions sdk/src/main/java/org/zstack/sdk/DGpuStatus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.zstack.sdk;

public enum DGpuStatus {
Normal,
Fault,
Unknown,
Disconnected,
}
Loading