Vered Volansky has uploaded a new change for review. Change subject: Revert "engine: Add KSM policy to NUMA hosts" ......................................................................
Revert "engine: Add KSM policy to NUMA hosts" This reverts commit f0b9f3ff1ee32fe177e31121d18a118e20130d3e. Change-Id: Ibacb2bc4b05d033ffaae79ea5bdf2d9800f2d9ff Signed-off-by: Vered Volansky <vvola...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java D backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/MomPolicyUpdate.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java A packaging/dbscripts/upgrade/03_06_1570_add_ksm_with_numa_awareness.sql 11 files changed, 23 insertions(+), 126 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/69/42369/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java index 1f23d90..75fe4e4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java @@ -306,10 +306,7 @@ if (cluster.getCompatibilityVersion().compareTo(Version.v3_3) >= 0) { try { returnValue = runVdsCommand(VDSCommandType.SetMOMPolicyParameters, - new MomPolicyVDSParameters(vds, - cluster.isEnableBallooning(), - cluster.isEnableKsm(), - cluster.isKsmMergeAcrossNumaNodes()) + new MomPolicyVDSParameters(vds, cluster.isEnableBallooning(), cluster.isEnableKsm()) ); } catch (VdcBLLException e) { log.error("Could not update MoM policy on host '{}'", vds.getName()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java index ea8e8a6..a76ff06 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java @@ -27,7 +27,7 @@ try { succeeded = runVdsCommand(VDSCommandType.SetMOMPolicyParameters, new MomPolicyVDSParameters(getVds(), getVdsGroup().isEnableBallooning(), - getVdsGroup().isEnableKsm(), getVdsGroup().isKsmMergeAcrossNumaNodes()) + getVdsGroup().isEnableKsm()) ).getSucceeded(); } catch (VdcBLLException e) { log.error("Could not update MoM policy on host '{}': {}", diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java index 3223c19..e26fef4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java @@ -8,7 +8,6 @@ import java.util.Objects; import java.util.Set; -import javax.enterprise.event.Event; import javax.inject.Inject; import org.apache.commons.collections.CollectionUtils; @@ -43,7 +42,6 @@ import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.gluster.GlusterFeatureSupported; -import org.ovirt.engine.core.common.qualifiers.MomPolicyUpdate; import org.ovirt.engine.core.common.utils.ListUtils; import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.compat.Guid; @@ -64,10 +62,6 @@ @Inject private ClusterFeatureDao clusterFeatureDao; - - @Inject - @MomPolicyUpdate - private Event<VDSGroup> momPolicyUpdatedEvent; private List<VDS> allForVdsGroup; private VDSGroup oldGroup; @@ -136,9 +130,6 @@ getParameters().getVdsGroup().setDetectEmulatedMachine(true); } - boolean isKsmPolicyChanged = (getVdsGroup().isKsmMergeAcrossNumaNodes() != getPrevVdsGroup().isKsmMergeAcrossNumaNodes()) || - (getVdsGroup().isEnableKsm() != getPrevVdsGroup().isEnableKsm()); - getVdsGroupDAO().update(getParameters().getVdsGroup()); addOrUpdateAddtionalClusterFeatures(); @@ -159,9 +150,6 @@ alertIfFencingDisabled(); - if (isKsmPolicyChanged) { - momPolicyUpdatedEvent.fire(getVdsGroup()); - } setSucceeded(true); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java index 54bc2e4..353c81c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java @@ -4,7 +4,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -47,14 +46,11 @@ import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.businessentities.VDS; -import org.ovirt.engine.core.common.businessentities.VDSGroup; -import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VmDynamic; import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus; import org.ovirt.engine.core.common.businessentities.qos.CpuQos; -import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.eventqueue.Event; @@ -62,20 +58,15 @@ import org.ovirt.engine.core.common.eventqueue.EventResult; import org.ovirt.engine.core.common.eventqueue.EventType; import org.ovirt.engine.core.common.locks.LockingGroup; -import org.ovirt.engine.core.common.qualifiers.MomPolicyUpdate; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.common.vdscommands.DisconnectStoragePoolVDSCommandParameters; -import org.ovirt.engine.core.common.vdscommands.MomPolicyVDSParameters; import org.ovirt.engine.core.common.vdscommands.UpdateVmPolicyVDSParams; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; -import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.TransactionScopeOption; -import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; -import org.ovirt.engine.core.dao.VdsDAO; import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.linq.Function; import org.ovirt.engine.core.utils.linq.LinqUtils; @@ -99,8 +90,7 @@ private AvailableUpdatesFinder availableUpdatesFinder; @Inject AutoStartVmsRunner autoStartVmsRunner; - @Inject - private VdsDAO vdsDAO; + private static final Logger log = LoggerFactory.getLogger(VdsEventListener.class); @@ -152,12 +142,11 @@ /** * The following method will clear a cache for problematic domains, which were reported by vds - * * @param vds */ private void clearDomainCache(final VDS vds) { eventQueue.submitEventSync(new Event(vds.getStoragePoolId(), - null, vds.getId(), EventType.VDSCLEARCACHE, ""), + null, vds.getId(), EventType.VDSCLEARCACHE, ""), new Callable<EventResult>() { @Override public EventResult call() { @@ -166,6 +155,7 @@ } }); } + @Override public EventResult storageDomainNotOperational(Guid storageDomainId, Guid storagePoolId) { @@ -249,7 +239,7 @@ Map<String, String> customLogValues) { ExecutionHandler.updateSpecificActionJobCompleted(vdsId, VdcActionType.MaintenanceVds, false); SetNonOperationalVdsParameters tempVar = - new SetNonOperationalVdsParameters(vdsId, reason, customLogValues); + new SetNonOperationalVdsParameters(vdsId, reason, customLogValues); tempVar.setStorageDomainId(domainId); tempVar.setShouldBeLogged(logCommand); Backend.getInstance().runInternalAction(VdcActionType.SetNonOperationalVds, @@ -278,8 +268,7 @@ } private void moveBricksToUnknown(final VDS vds) { - List<GlusterBrickEntity> brickEntities = - DbFacade.getInstance().getGlusterBrickDao().getGlusterVolumeBricksByServerId(vds.getId()); + List<GlusterBrickEntity> brickEntities = DbFacade.getInstance().getGlusterBrickDao().getGlusterVolumeBricksByServerId(vds.getId()); for (GlusterBrickEntity brick : brickEntities) { if (brick.getStatus() == GlusterStatus.UP) { brick.setStatus(GlusterStatus.UNKNOWN); @@ -321,13 +310,11 @@ @Override public boolean connectHostToDomainsInActiveOrUnknownStatus(VDS vds) { ConnectHostToStoragePoolServersParameters params = new ConnectHostToStoragePoolServersParameters(vds, false); - return Backend.getInstance() - .runInternalAction(VdcActionType.ConnectHostToStoragePoolServers, params) - .getSucceeded(); + return Backend.getInstance().runInternalAction(VdcActionType.ConnectHostToStoragePoolServers, params).getSucceeded(); } - private List<VdcActionParametersBase> createMigrateVmToServerParametersList(List<VmStatic> vmsToMigrate, - final VDS vds) { + + private List<VdcActionParametersBase> createMigrateVmToServerParametersList(List<VmStatic> vmsToMigrate, final VDS vds) { return LinqUtils.transformToList(vmsToMigrate, new Function<VmStatic, VdcActionParametersBase>() { @Override @@ -387,13 +374,13 @@ @Override public void storagePoolStatusChange(Guid storagePoolId, StoragePoolStatus status, AuditLogType auditLogType, - VdcBllErrors error) { + VdcBllErrors error) { storagePoolStatusChange(storagePoolId, status, auditLogType, error, null); } @Override public void storagePoolStatusChange(Guid storagePoolId, StoragePoolStatus status, AuditLogType auditLogType, - VdcBllErrors error, TransactionScopeOption transactionScopeOption) { + VdcBllErrors error, TransactionScopeOption transactionScopeOption) { SetStoragePoolStatusParameters tempVar = new SetStoragePoolStatusParameters(storagePoolId, status, auditLogType); tempVar.setError(error); @@ -410,7 +397,7 @@ @Override public void runFailedAutoStartVMs(List<Guid> vmIds) { - for (Guid vmId : vmIds) { + for (Guid vmId: vmIds) { // Alert that the virtual machine failed: AuditLogableBase event = new AuditLogableBase(); event.setVmId(vmId); @@ -427,10 +414,7 @@ public void addExternallyManagedVms(List<VmStatic> externalVmList) { for (VmStatic currVm : externalVmList) { AddVmParameters params = new AddVmParameters(currVm); - VdcReturnValueBase returnValue = - Backend.getInstance().runInternalAction(VdcActionType.AddVmFromScratch, - params, - ExecutionHandler.createInternalJobContext()); + VdcReturnValueBase returnValue = Backend.getInstance().runInternalAction(VdcActionType.AddVmFromScratch, params, ExecutionHandler.createInternalJobContext()); if (!returnValue.getSucceeded()) { log.debug("Failed adding Externally managed VM '{}'", currVm.getName()); } @@ -501,8 +485,7 @@ public void onError(@Observes final VDSNetworkException vdsException) { ThreadPoolUtil.execute(new Runnable() { - @Override - public void run() { + @Override public void run() { resourceManagerProvider.get().GetVdsManager( vdsException.getVdsError().getVdsId()).handleNetworkException(vdsException); } @@ -526,36 +509,5 @@ public boolean isUpdateAvailable(VDS host) { return availableUpdatesFinder.isUpdateAvailable(host); - } - - // TODO asynch event handler - design infra code to allow async events in segregated thread - public void onMomPolicyChange(@Observes @MomPolicyUpdate final VDSGroup cluster) { - if (cluster == null || cluster.getCompatibilityVersion().compareTo(Version.v3_4) < 0) - return; - List<VDS> activeHostsInCluster = - vdsDAO.getAllForVdsGroupWithStatus(cluster.getId(), VDSStatus.Up); - // collect all Active hosts into a callable list - List<Callable<Object>> callables = new LinkedList<>(); - for (final VDS vds : activeHostsInCluster) { - callables.add(new Callable<Object>() { - @Override - public Object call() { - try { - resourceManagerProvider.get().runVdsCommand(VDSCommandType.SetMOMPolicyParameters, - new MomPolicyVDSParameters(vds, - cluster.isEnableBallooning(), - cluster.isEnableKsm(), - cluster.isKsmMergeAcrossNumaNodes()) - ); - } catch (VdcBLLException e) { - log.error("Could not update MoM policy on host '{}'", vds.getName()); - } - return null; - } - }); - } - // run all VDSCommands concurrently with executor - if (callables.size() > 0) - ThreadPoolUtil.invokeAll(callables); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java index c95b160..cfbe4f2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java @@ -48,15 +48,6 @@ return getParameters().getVdsGroup(); } - /** - * Get the cluster object as it is in database before update - * - * @return Current cluster object before database update, or null if not existing - */ - public VDSGroup getPrevVdsGroup() { - return super.getVdsGroup(); - } - @Override protected void setActionMessageParameters() { addCanDoActionMessage(VdcBllMessages.VAR__TYPE__CLUSTER); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java index b1677de..0dfd42e 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java @@ -552,9 +552,9 @@ && ObjectUtils.objectsEqual(autoConverge, other.autoConverge) && ObjectUtils.objectsEqual(migrateCompressed, other.migrateCompressed) && ObjectUtils.objectsEqual(glusterTunedProfile, other.glusterTunedProfile) + && ksmMergeAcrossNumaNodes == other.ksmMergeAcrossNumaNodes && ObjectUtils.objectsEqual(maintenanceReasonRequired, other.maintenanceReasonRequired) - && ObjectUtils.objectsEqual(addtionalFeaturesSupported, other.addtionalFeaturesSupported) - && ksmMergeAcrossNumaNodes == other.ksmMergeAcrossNumaNodes; + && ObjectUtils.objectsEqual(addtionalFeaturesSupported, other.addtionalFeaturesSupported); } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java index f093338..1b2b6c7 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java @@ -8,19 +8,14 @@ public class MomPolicyVDSParameters extends VdsIdVDSCommandParametersBase { private boolean enableBalloon; private boolean enableKsm; - private boolean ksmMergeAcrossNumaNodes; - public MomPolicyVDSParameters() { + public MomPolicyVDSParameters(VDS vds, boolean enableBalloon, boolean enableKsm) { + super(vds.getId()); + this.enableBalloon = enableBalloon; + this.enableKsm = enableKsm; } - public MomPolicyVDSParameters(VDS vds, - boolean enableBallooning, - boolean enableKsm, - boolean ksmMergeAcrossNumaNodes) { - super(vds.getId()); - this.enableBalloon = enableBallooning; - this.enableKsm = enableKsm; - this.ksmMergeAcrossNumaNodes = ksmMergeAcrossNumaNodes; + public MomPolicyVDSParameters() { } public boolean isEnableBalloon() { @@ -37,13 +32,5 @@ public void setEnableKsm(boolean enableKsm) { this.enableKsm = enableKsm; - } - - public boolean isKsmMergeAcrossNumaNodes() { - return ksmMergeAcrossNumaNodes; - } - - public void setKsmMergeAcrossNumaNodes(boolean ksmMergeAcrossNumaNodes) { - this.ksmMergeAcrossNumaNodes = ksmMergeAcrossNumaNodes; } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/MomPolicyUpdate.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/MomPolicyUpdate.java deleted file mode 100644 index 921fa3c..0000000 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/MomPolicyUpdate.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.ovirt.engine.core.common.qualifiers; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import javax.inject.Qualifier; - -@Qualifier -@Retention(RUNTIME) -@Target({TYPE, METHOD, FIELD, PARAMETER}) -public @interface MomPolicyUpdate { -} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java index c83ec6a..7e9123b 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java @@ -28,7 +28,6 @@ Map<String, Object> deviceStruct = new HashMap<>(); deviceStruct.put(VdsProperties.balloonEnabled, getParameters().isEnableBalloon()); deviceStruct.put(VdsProperties.ksmEnabled, getParameters().isEnableKsm()); - deviceStruct.put(VdsProperties.ksmMergeAcrossNodes, getParameters().isKsmMergeAcrossNumaNodes()); return deviceStruct; } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java index ef27b04..6049c64 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java @@ -468,7 +468,6 @@ // MoM policy tuning public static final String balloonEnabled = "balloonEnabled"; public static final String ksmEnabled = "ksmEnabled"; - public static final String ksmMergeAcrossNodes = "ksmMergeAcrossNodes"; // properties for ServerConnectionListReturnForXmlRpc public static final String serverType = "serverType"; diff --git a/packaging/dbscripts/upgrade/03_06_1570_add_ksm_with_numa_awareness.sql b/packaging/dbscripts/upgrade/03_06_1570_add_ksm_with_numa_awareness.sql new file mode 100644 index 0000000..98565de --- /dev/null +++ b/packaging/dbscripts/upgrade/03_06_1570_add_ksm_with_numa_awareness.sql @@ -0,0 +1 @@ +select fn_db_add_column('vds_groups', 'ksm_merge_across_nodes', 'boolean default TRUE NULL'); \ No newline at end of file -- To view, visit https://gerrit.ovirt.org/42369 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibacb2bc4b05d033ffaae79ea5bdf2d9800f2d9ff Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Vered Volansky <vvola...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches