This is an automated email from the ASF dual-hosted git repository.
weichiu pushed a commit to branch HDDS-9225-website-v2
in repository https://gitbox.apache.org/repos/asf/ozone-site.git
The following commit(s) were added to refs/heads/HDDS-9225-website-v2 by this
push:
new 6867aa9ea HDDS-14293. [Website v2] [Docs] Add Dynamic Property Reload
documentation to Administrator Guide (#217)
6867aa9ea is described below
commit 6867aa9ea975178245265824595e5f8a62f2317f
Author: vyalamar <[email protected]>
AuthorDate: Wed Jan 14 10:50:49 2026 -0800
HDDS-14293. [Website v2] [Docs] Add Dynamic Property Reload documentation
to Administrator Guide (#217)
---
cspell.yaml | 2 +
.../03-operations/13-dynamic-property-reload.md | 185 +++++++++++++++++++++
2 files changed, 187 insertions(+)
diff --git a/cspell.yaml b/cspell.yaml
index 4f7ba07d0..c0571438c 100644
--- a/cspell.yaml
+++ b/cspell.yaml
@@ -88,6 +88,8 @@ words:
- mis-replicated
- BCSID
- EC
+- reconfig
+- reconfigurable
- quasi-close
- quasi-closed
- HCFS
diff --git
a/docs/05-administrator-guide/03-operations/13-dynamic-property-reload.md
b/docs/05-administrator-guide/03-operations/13-dynamic-property-reload.md
new file mode 100644
index 000000000..6aa3fa6ba
--- /dev/null
+++ b/docs/05-administrator-guide/03-operations/13-dynamic-property-reload.md
@@ -0,0 +1,185 @@
+---
+sidebar_label: Dynamic Property Reload
+---
+
+# Dynamic Property Reload
+
+Ozone supports dynamic reloading of certain configuration properties without
restarting services. This enables operators to tune cluster behavior, adjust
limits, and update settings in production without service disruption.
+
+## Overview
+
+When a property is marked as reconfigurable, you can:
+
+1. Modify the property value in the configuration file (`ozone-site.xml`)
+2. Invoke the reconfig command to apply the changes to the running service
+
+The reconfiguration is performed asynchronously, and you can check the status
to verify completion.
+
+## Command Reference
+
+```shell
+ozone admin reconfig --service=[OM|SCM|DATANODE] --address=<ip:port>
<operation>
+```
+
+### Options
+
+| Option | Description
|
+| -------------------------- |
--------------------------------------------------------- |
+| `--service` | The service type: `OM`, `SCM`, or `DATANODE`
|
+| `--address` | RPC address of the target server (e.g.,
`hadoop1:9862`) |
+| `--in-service-datanodes` | (Datanode only) Apply to all IN_SERVICE
Datanodes |
+
+### Operations
+
+| Operation | Description |
+| ------------ | -------------------------------------------------- |
+| `start` | Execute reconfiguration asynchronously |
+| `status` | Check the status of a reconfiguration task |
+| `properties` | List all reconfigurable properties for the service |
+
+## Reconfigurable Properties
+
+### Ozone Manager (OM)
+
+| Property | Default | Description
|
+| ---------------------------------------------- | --------- |
--------------------------------------------------------- |
+| `ozone.administrators` | - | Comma-separated
list of Ozone administrators |
+| `ozone.readonly.administrators` | - | Comma-separated
list of read-only administrators |
+| `ozone.om.server.list.max.size` | `1000` | Maximum
server-side response size for list operations |
+| `ozone.om.volume.listall.allowed` | `true` | Allow all users
to list all volumes |
+| `ozone.om.follower.read.local.lease.enabled` | `false` | Enable local
lease for follower read optimization |
+| `ozone.om.follower.read.local.lease.lag.limit` | `10000` | Maximum log lag
for follower reads |
+| `ozone.om.follower.read.local.lease.time.ms` | `5000` | Lease time in
milliseconds for follower reads |
+| `ozone.key.deleting.limit.per.task` | `50000` | Maximum keys to
delete per task |
+| `ozone.directory.deleting.service.interval` | `60s` | Directory
deletion service run interval |
+| `ozone.thread.number.dir.deletion` | `10` | Number of
threads for directory deletion |
+| `ozone.snapshot.filtering.service.interval` | `60s` | Snapshot SST
filtering service run interval |
+
+### Storage Container Manager (SCM)
+
+| Property | Default |
Description |
+| --------------------------------------------------------- | ---------- |
------------------------------------------------------------- |
+| `ozone.administrators` | - |
Comma-separated list of Ozone administrators |
+| `ozone.readonly.administrators` | - |
Comma-separated list of read-only administrators |
+| `hdds.scm.block.deletion.per-interval.max` | `500000` |
Maximum blocks SCM processes per deletion interval |
+| `hdds.scm.replication.thread.interval` | `300s` |
Interval for the replication monitor thread |
+| `hdds.scm.replication.under.replicated.interval` | `30s` |
Frequency to check the under-replicated queue |
+| `hdds.scm.replication.over.replicated.interval` | `30s` |
Frequency to check the over-replicated queue |
+| `hdds.scm.replication.event.timeout` | `12m` |
Timeout for replication/deletion commands |
+| `hdds.scm.replication.event.timeout.datanode.offset` | `6m` |
Offset subtracted from event timeout for Datanode deadline |
+| `hdds.scm.replication.maintenance.replica.minimum` | `2` |
Minimum replicas required for node maintenance |
+| `hdds.scm.replication.maintenance.remaining.redundancy` | `1` |
Remaining redundancy required for maintenance (EC) |
+| `hdds.scm.replication.datanode.replication.limit` | `20` | Max
replication commands queued per Datanode |
+| `hdds.scm.replication.datanode.reconstruction.weight` | `3` |
Weight multiplier for reconstruction commands |
+| `hdds.scm.replication.datanode.delete.container.limit` | `40` | Max
delete container commands queued per Datanode |
+| `hdds.scm.replication.inflight.limit.factor` | `0.75` |
Factor to scale cluster-wide replication limit |
+| `hdds.scm.replication.container.sample.limit` | `100` |
Number of containers sampled per state for debugging |
+| `ozone.scm.ec.pipeline.minimum` | `5` |
Minimum EC pipelines to keep open |
+| `ozone.scm.ec.pipeline.per.volume.factor` | `1` |
Factor for calculating EC pipelines based on volumes |
+
+### Datanode
+
+| Property | Default | Description
|
+| ------------------------------------------------- | --------- |
------------------------------------------------------ |
+| `hdds.datanode.block.deleting.limit.per.interval` | `20000` | Maximum
blocks deleted per interval on a Datanode |
+| `hdds.datanode.block.delete.threads.max` | `5` | Maximum
threads for block deletion |
+| `ozone.block.deleting.service.workers` | `10` | Number of
block deletion service workers |
+| `ozone.block.deleting.service.interval` | `60s` | Block
deletion service run interval |
+| `ozone.block.deleting.service.timeout` | `300s` | Block
deletion service timeout |
+| `hdds.datanode.replication.streams.limit` | `10` | Maximum
replication streams per Datanode |
+
+## Usage Examples
+
+### List Reconfigurable Properties
+
+To view all properties that can be dynamically reconfigured:
+
+```shell
+$ ozone admin reconfig --service=OM --address=hadoop1:9862 properties
+OM: Node [hadoop1:9862] Reconfigurable properties:
+ozone.administrators
+ozone.om.server.list.max.size
+ozone.om.volume.listall.allowed
+```
+
+### OM Reconfiguration
+
+Modify `ozone.administrators` in `ozone-site.xml`, then execute:
+
+```shell
+$ ozone admin reconfig --service=OM --address=hadoop1:9862 start
+OM: Started reconfiguration task on node [hadoop1:9862].
+
+$ ozone admin reconfig --service=OM --address=hadoop1:9862 status
+OM: Reconfiguring status for node [hadoop1:9862]: started at Wed Dec 28
19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.
+SUCCESS: Changed property ozone.administrators
+From: "hadoop"
+To: "hadoop,bigdata"
+```
+
+### SCM Reconfiguration
+
+Modify `ozone.administrators` in `ozone-site.xml`, then execute:
+
+```shell
+$ ozone admin reconfig --service=SCM --address=hadoop1:9860 start
+SCM: Started reconfiguration task on node [hadoop1:9860].
+
+$ ozone admin reconfig --service=SCM --address=hadoop1:9860 status
+SCM: Reconfiguring status for node [hadoop1:9860]: started at Wed Dec 28
19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.
+SUCCESS: Changed property ozone.administrators
+From: "hadoop"
+To: "hadoop,bigdata"
+```
+
+### Datanode Reconfiguration
+
+Modify `hdds.datanode.block.deleting.limit.per.interval` in `ozone-site.xml`,
then execute:
+
+```shell
+$ ozone admin reconfig --service=DATANODE --address=hadoop1:19864 start
+Datanode: Started reconfiguration task on node [hadoop1:19864].
+
+$ ozone admin reconfig --service=DATANODE --address=hadoop1:19864 status
+Datanode: Reconfiguring status for node [hadoop1:19864]: started at Wed Dec 28
19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.
+SUCCESS: Changed property hdds.datanode.block.deleting.limit.per.interval
+From: "20000"
+To: "30000"
+```
+
+### Batch Operations (Datanode Only)
+
+To perform reconfiguration on all IN_SERVICE Datanodes simultaneously:
+
+```shell
+$ ozone admin reconfig --service=DATANODE --in-service-datanodes start
+Datanode: Started reconfiguration task on node [hadoop1:19864].
+Datanode: Started reconfiguration task on node [hadoop2:19864].
+Datanode: Started reconfiguration task on node [hadoop3:19864].
+Reconfig successfully 3 nodes, failure 0 nodes.
+```
+
+To list properties across all Datanodes:
+
+```shell
+$ ozone admin reconfig --service=DATANODE --in-service-datanodes properties
+Datanode: Node [hadoop1:19864] Reconfigurable properties:
+hdds.datanode.block.deleting.limit.per.interval
+Datanode: Node [hadoop2:19864] Reconfigurable properties:
+hdds.datanode.block.deleting.limit.per.interval
+Datanode: Node [hadoop3:19864] Reconfigurable properties:
+hdds.datanode.block.deleting.limit.per.interval
+Reconfig successfully 3 nodes, failure 0 nodes.
+```
+
+## Best Practices
+
+1. **Test in non-production first**: Always validate configuration changes in
a test environment before applying to production.
+
+2. **Change one property at a time**: When making multiple changes, apply them
incrementally to isolate the impact of each change.
+
+3. **Monitor after changes**: Watch cluster metrics and logs after
reconfiguration to ensure the changes have the desired effect.
+
+4. **Document changes**: Keep a record of configuration changes for
troubleshooting and audit purposes.
+
+5. **Use batch operations carefully**: When using `--in-service-datanodes`,
ensure all nodes should receive the same configuration.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]