diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java index 20f21ce5caf4..4f134b1de8a3 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java @@ -80,7 +80,7 @@ public final class HddsConfigKeys { public static final boolean HDDS_SCM_SAFEMODE_ENABLED_DEFAULT = true; public static final String HDDS_SCM_SAFEMODE_MIN_DATANODE = "hdds.scm.safemode.min.datanode"; - public static final int HDDS_SCM_SAFEMODE_MIN_DATANODE_DEFAULT = 1; + public static final int HDDS_SCM_SAFEMODE_MIN_DATANODE_DEFAULT = 3; public static final String HDDS_SCM_WAIT_TIME_AFTER_SAFE_MODE_EXIT = diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml index ccd04eb8404c..2c53d1a287a2 100644 --- a/hadoop-hdds/common/src/main/resources/ozone-default.xml +++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml @@ -1637,7 +1637,7 @@ hdds.scm.safemode.min.datanode - 1 + 3 HDDS,SCM,OPERATION Minimum DataNodes which should be registered to get SCM out of safe mode. diff --git a/hadoop-hdds/docs/content/concept/StorageContainerManager.md b/hadoop-hdds/docs/content/concept/StorageContainerManager.md index 3b2f4d8f9d73..48d509016a68 100644 --- a/hadoop-hdds/docs/content/concept/StorageContainerManager.md +++ b/hadoop-hdds/docs/content/concept/StorageContainerManager.md @@ -93,6 +93,6 @@ key | default | description ----|---------|------------ ozone.scm.container.size | 5GB | Default container size used by Ozone ozone.scm.block.size | 256MB | The default size of a data block. -hdds.scm.safemode.min.datanode | 1 | Minimum number of datanodes to start the real work. +hdds.scm.safemode.min.datanode | 3 | Minimum number of datanodes to start the real work. ozone.scm.http-address | 0.0.0.0:9876 | HTTP address of the SCM server -ozone.metadata.dirs | none | Directory to store persisted data (RocksDB). \ No newline at end of file +ozone.metadata.dirs | none | Directory to store persisted data (RocksDB). diff --git a/hadoop-hdds/docs/content/concept/StorageContainerManager.zh.md b/hadoop-hdds/docs/content/concept/StorageContainerManager.zh.md index 7adecdee0290..0aca2055d800 100644 --- a/hadoop-hdds/docs/content/concept/StorageContainerManager.zh.md +++ b/hadoop-hdds/docs/content/concept/StorageContainerManager.zh.md @@ -81,6 +81,6 @@ SCM 负责创建 Ozone 集群。当通过 `init` 命令启动 SCM 时,SCM 将 ----|---------|------------ ozone.scm.container.size | 5GB | Ozone 使用的默认容器的大小 ozone.scm.block.size | 256MB | 数据块的默认大小 -hdds.scm.safemode.min.datanode | 1 | 能够启动实际工作所需的最小数据节点数 +hdds.scm.safemode.min.datanode | 3 | 能够启动实际工作所需的最小数据节点数 ozone.scm.http-address | 0.0.0.0:9876 | SCM 服务端使用的 HTTP 地址 ozone.metadata.dirs | none | 存储持久化数据的目录(RocksDB) diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java index aa71edcc68f9..1d2061daf9bc 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java @@ -73,6 +73,7 @@ public void testHealthyPipelineSafeModeRuleWithNoPipelines() ContainerManager containerManager = mock(ContainerManager.class); when(containerManager.getContainers()).thenReturn(containers); config.set(HddsConfigKeys.OZONE_METADATA_DIRS, tempFile.getPath()); + config.setInt(HddsConfigKeys.HDDS_SCM_SAFEMODE_MIN_DATANODE, 0); // enable pipeline check config.setBoolean( HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_CREATION, false); diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java index 7a43792eb5db..38952b1d9477 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java @@ -105,6 +105,7 @@ public void setUp() throws IOException { config.setBoolean(HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_CREATION, false); config.set(HddsConfigKeys.OZONE_METADATA_DIRS, tempDir.getAbsolutePath()); + config.setInt(HddsConfigKeys.HDDS_SCM_SAFEMODE_MIN_DATANODE, 1); scmMetadataStore = new SCMMetadataStoreImpl(config); } diff --git a/hadoop-ozone/dist/src/main/compose/ozonescripts/docker-config b/hadoop-ozone/dist/src/main/compose/ozonescripts/docker-config index adfaeb287d0d..6c0262870aac 100644 --- a/hadoop-ozone/dist/src/main/compose/ozonescripts/docker-config +++ b/hadoop-ozone/dist/src/main/compose/ozonescripts/docker-config @@ -24,6 +24,7 @@ OZONE-SITE.XML_ozone.scm.block.client.address=scm OZONE-SITE.XML_ozone.metadata.dirs=/data/metadata OZONE-SITE.XML_ozone.scm.client.address=scm OZONE-SITE.XML_ozone.server.default.replication=1 +OZONE-SITE.XML_hdds.scm.safemode.min.datanode=1 OZONE-SITE.XML_hdds.datanode.dir=/data/hdds OZONE-SITE.XML_hdds.datanode.volume.min.free.space=100MB OZONE-SITE.XML_hdds.scmclient.max.retry.timeout=30s