This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 0edfbb0971 HDDS-8975. Clarify SCM HA auto-bootstrap doc (#5021)
0edfbb0971 is described below
commit 0edfbb09713b5a621ee7a3639ef67442f76cbf36
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Wed Jul 5 18:45:19 2023 +0200
HDDS-8975. Clarify SCM HA auto-bootstrap doc (#5021)
---
hadoop-hdds/docs/content/feature/SCM-HA.md | 35 +++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 8 deletions(-)
diff --git a/hadoop-hdds/docs/content/feature/SCM-HA.md
b/hadoop-hdds/docs/content/feature/SCM-HA.md
index 3f509e4ca6..551c340409 100644
--- a/hadoop-hdds/docs/content/feature/SCM-HA.md
+++ b/hadoop-hdds/docs/content/feature/SCM-HA.md
@@ -91,28 +91,47 @@ For reliable HA support choose 3 independent nodes to form
a quorum.
## Bootstrap
-The initialization of the **first** SCM-HA node is the same as a none-HA SCM:
+The initialization of the **first** SCM-HA node is the same as a non-HA SCM:
```
-bin/ozone scm --init
+ozone scm --init
```
Second and third nodes should be *bootstrapped* instead of init. These
clusters will join to the configured RAFT quorum. The id of the current server
is identified by DNS name or can be set explicitly by `ozone.scm.node.id`. Most
of the time you don't need to set it as DNS based id detection can work well.
```
-bin/ozone scm --bootstrap
+ozone scm --bootstrap
```
+Note: both commands perform one-time initialization. SCM still needs to be
started by running `ozone scm --daemon start`.
+
## Auto-bootstrap
-In some environment -- such as containerized / K8s environment -- we need to
have a common, unified way to initialize SCM HA quorum. As a remained, the
standard initialization flow is the following:
+In some environments (e.g. Kubernetes) we need to have a common, unified way
to initialize SCM HA quorum. As a reminder, the standard initialization flow is
the following:
+
+ 1. On the first, "primordial" node: `ozone scm --init`
+ 2. On second/third nodes: `ozone scm --bootstrap`
- 1. On the first, "primordial" node, call `scm --init`
- 2. On second/third nodes call `scm --bootstrap`
+This can be improved: primordial SCM can be configured by setting
`ozone.scm.primordial.node.id` in the config to one of the nodes.
-This can be changed with using `ozone.scm.primordial.node.id`. You can define
the primordial node. After setting this node, you should execute **both** `scm
--init` and `scm --bootstrap` on **all** nodes.
+```XML
+<property>
+ <name>ozone.scm.primordial.node.id</name>
+ <value>scm1</value>
+</property>
+```
+
+With this configuration both `scm --init` and `scm --bootstrap` can be safely
executed on **all** SCM nodes. Each node will only perform the action
applicable to it based on the `ozone.scm.primordial.node.id` and its own node
ID.
+
+Note: SCM still needs to be started after the init/bootstrap process.
+
+```
+ozone scm --init
+ozone scm --bootstrap
+ozone scm --daemon start
+```
-Based on the `ozone.scm.primordial.node.id`, the init process will be ignored
on the second/third nodes and bootstrap process will be ignored on all nodes
except the primordial one.
+For Docker/Kubernetes, use `ozone scm` to start it in the foreground.
## SCM HA Security
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]