This is an automated email from the ASF dual-hosted git repository.
sodonnell pushed a commit to branch HDDS-5713
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/HDDS-5713 by this push:
new 7e4057899a HDDS-10304. [DiskBalancer] Start command - Fix nodes not
being processed and incorrect config values (#6181)
7e4057899a is described below
commit 7e4057899acbfa320be4b8c4cb10a39939b6a2cd
Author: Stephen O'Donnell <[email protected]>
AuthorDate: Tue Feb 6 16:34:56 2024 +0000
HDDS-10304. [DiskBalancer] Start command - Fix nodes not being processed
and incorrect config values (#6181)
---
.../protocol/commands/DiskBalancerCommand.java | 5 +++++
.../hadoop/hdds/scm/node/DiskBalancerManager.java | 4 +++-
...ainerLocationProtocolServerSideTranslatorPB.java | 21 ++++++++++++---------
3 files changed, 20 insertions(+), 10 deletions(-)
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
index 1780877787..b8c047d1b1 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
@@ -76,4 +76,9 @@ public class DiskBalancerCommand extends
SCMCommand<DiskBalancerCommandProto> {
public DiskBalancerConfiguration getDiskBalancerConfiguration() {
return diskBalancerConfiguration;
}
+
+ @Override
+ public String toString() {
+ return getType() + ": opType=" + opType + ", configuration=" +
diskBalancerConfiguration;
+ }
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
index 1af9bfde4c..a45e81e15f 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
@@ -156,7 +156,7 @@ public class DiskBalancerManager {
List<DatanodeAdminError> errors = new ArrayList<>();
for (DatanodeDetails dn : dns) {
try {
- if (nodeManager.getNodeStatus(dn).isHealthy()) {
+ if (!nodeManager.getNodeStatus(dn).isHealthy()) {
errors.add(new DatanodeAdminError(dn.getHostName(),
"Datanode not in healthy state"));
continue;
@@ -169,6 +169,7 @@ public class DiskBalancerManager {
HddsProtos.DiskBalancerOpType.START, updateConf);
sendCommand(dn, command);
} catch (Exception e) {
+ LOG.info("Caught an error for {}", dn);
errors.add(new DatanodeAdminError(dn.getHostName(), e.getMessage()));
}
}
@@ -355,6 +356,7 @@ public class DiskBalancerManager {
" since not leader SCM.", dn.getUuidString());
return;
}
+ LOG.info("Sending {} to Datanode {}", command, dn);
scmNodeEventPublisher.fireEvent(SCMEvents.DATANODE_COMMAND,
new CommandForDatanode<>(dn.getUuid(), command));
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
index 4773aa123f..011599d58a 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
@@ -1336,23 +1336,26 @@ public final class
StorageContainerLocationProtocolServerSideTranslatorPB
DatanodeDiskBalancerOpRequestProto request)
throws IOException {
List<DatanodeAdminError> errors;
+ HddsProtos.DiskBalancerConfigurationProto conf = request.getConf();
switch (request.getOpType()) {
case START:
errors = impl.startDiskBalancer(
- Optional.of(request.getConf().getThreshold()),
- Optional.of(request.getConf().getDiskBandwidthInMB()),
- Optional.of(request.getConf().getParallelThread()),
- Optional.of(request.getHostsList()));
+ conf.hasThreshold() ? Optional.of(conf.getThreshold()) :
Optional.empty(),
+ conf.hasDiskBandwidthInMB() ?
Optional.of(conf.getDiskBandwidthInMB()) : Optional.empty(),
+ conf.hasParallelThread() ? Optional.of(conf.getParallelThread()) :
Optional.empty(),
+ request.getHostsList().isEmpty() ? Optional.empty() :
Optional.of(request.getHostsList()));
break;
case UPDATE:
+
errors = impl.updateDiskBalancerConfiguration(
- Optional.of(request.getConf().getThreshold()),
- Optional.of(request.getConf().getDiskBandwidthInMB()),
- Optional.of(request.getConf().getParallelThread()),
- Optional.of(request.getHostsList()));
+ conf.hasThreshold() ? Optional.of(conf.getThreshold()) :
Optional.empty(),
+ conf.hasDiskBandwidthInMB() ?
Optional.of(conf.getDiskBandwidthInMB()) : Optional.empty(),
+ conf.hasParallelThread() ? Optional.of(conf.getParallelThread()) :
Optional.empty(),
+ request.getHostsList().isEmpty() ? Optional.empty() :
Optional.of(request.getHostsList()));
break;
case STOP:
- errors = impl.stopDiskBalancer(Optional.of(request.getHostsList()));
+ errors = impl.stopDiskBalancer(
+ request.getHostsList().isEmpty() ? Optional.empty() :
Optional.of(request.getHostsList()));
break;
default:
errors = new ArrayList<>();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]