This is an automated email from the ASF dual-hosted git repository.
jojochuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone-site.git
The following commit(s) were added to refs/heads/master by this push:
new 2df587757 HDDS-14167. Document OM migration approaches (#406)
2df587757 is described below
commit 2df587757fe9c4857164a7349eb20c5fdd7d438b
Author: Wei-Chiu Chuang <[email protected]>
AuthorDate: Fri May 29 07:30:37 2026 -0700
HDDS-14167. Document OM migration approaches (#406)
Co-authored-by: Ivan Andika <[email protected]>
---
cspell.yaml | 1 +
.../05-high-availability/02-om-ha.md | 1 +
.../01-ozone-manager.md | 2 +
.../04-om-migration.md | 590 +++++++++++++++++++++
4 files changed, 594 insertions(+)
diff --git a/cspell.yaml b/cspell.yaml
index fdec078c3..6e0fbeb65 100644
--- a/cspell.yaml
+++ b/cspell.yaml
@@ -108,6 +108,7 @@ words:
- HDDs
- KDC
- classpath
+- cutover
- DS
- HDFS
- dfs
diff --git a/docs/03-core-concepts/05-high-availability/02-om-ha.md
b/docs/03-core-concepts/05-high-availability/02-om-ha.md
index 6d84b4a1b..60df7efc0 100644
--- a/docs/03-core-concepts/05-high-availability/02-om-ha.md
+++ b/docs/03-core-concepts/05-high-availability/02-om-ha.md
@@ -24,5 +24,6 @@ Client connects to the Leader Ozone Manager which processes
the request and sche
- **Configuration**: For detailed configuration instructions on setting up OM
HA, see the [OM HA
Configuration](../../administrator-guide/configuration/high-availability/om-ha)
documentation.
- **Read scaling**: To add read-only, non-voting OM replicas (Listener OMs),
see [Listener
OM](../../administrator-guide/configuration/high-availability/listener-om).
+- **Migrating OM hosts**: For configuration-based and DNS-based host
replacement procedures, see [OM migration
approaches](../../administrator-guide/operations/node-decommissioning-and-maintenance/om-migration).
- **Implementation Details**: For in-depth technical details about the OM HA
implementation, including the double buffer approach and automatic snapshot
installation, see the [OM HA Implementation
Details](../../system-internals/components/ozone-manager/high-availability)
documentation.
diff --git
a/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/01-ozone-manager.md
b/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/01-ozone-manager.md
index 78654098b..4773c2375 100644
---
a/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/01-ozone-manager.md
+++
b/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/01-ozone-manager.md
@@ -20,3 +20,5 @@ The *force* option will skip checking whether OM
configurations in `ozone-site.x
`ozone.om.decommissioned.nodes` property.
**Note** - It is recommended to bootstrap another OM node before
decommissioning one to maintain HA.
+
+For end-to-end host replacement procedures that combine OM bootstrap,
leadership transfer, decommissioning, and either client configuration or DNS
cutover, see [OM migration approaches](./om-migration).
diff --git
a/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/04-om-migration.md
b/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/04-om-migration.md
new file mode 100644
index 000000000..40f0188bc
--- /dev/null
+++
b/docs/05-administrator-guide/03-operations/03-node-decommissioning-and-maintenance/04-om-migration.md
@@ -0,0 +1,590 @@
+---
+sidebar_label: OM migration approaches
+---
+
+# Ozone Manager migration approaches
+
+This page describes two approaches for moving Ozone Manager (OM) roles to new
hosts in an HA deployment:
+
+- [Configuration-based migration](#configuration-based-migration), where every
new OM has its own unique host address and clients update `ozone-site.xml`
before and after the migration.
+- [DNS-based migration](#dns-based-migration), where clients keep stable OM
hostnames and operators remap DNS from each old OM host to a new OM host.
+
+Both approaches use the same Ratis membership operations: bootstrap the new
OMs, make sure the OM being removed is not leader, decommission the old OMs,
and clean up obsolete configuration. The main difference is where the cutover
happens: in client configuration or in DNS.
+
+## Comparing the strategies
+
+| Concern | Configuration-based migration | DNS-based migration |
+| ------- | ----------------------------- | ------------------- |
+| Client changes | Clients must update configuration before the migration to
include the new OMs, then update again after cleanup to remove the old OMs. |
Clients can keep the same logical OM hostnames if they already rely on DNS. |
+| Host identity | Each OM has a unique configured host address. There is no
period where one OM hostname intentionally points to different machines. | Each
logical hostname is remapped from an old OM host to a new OM host. |
+| Migration order | Multiple new OMs can be added to configuration and
bootstrapped before decommissioning the old OMs. | Migrate one logical OM
hostname at a time: bootstrap one new OM, remap one hostname, decommission one
old OM, then repeat. |
+| Leadership handling | Transfer leadership away from each old OM before
decommissioning it. After all clients have the expanded config, any new OM can
safely become leader. | Keep leadership on an OM that clients can still resolve
until the DNS remap for the replacement is propagated. After each remap and
decommission, transfer leadership to the replacement OM to validate client
failover. |
+| Safety | Safer and easier to reason about because OM peer identity and
network address stay explicit. | More sensitive to DNS caches, `/etc/hosts`,
resolver skew, and clients that do not refresh name resolution quickly. |
+| Operational speed | Slower when many clients, gateways, and integrations
need coordinated config updates. | Faster when DNS is reliable and client
configs already use stable hostnames. |
+| Failure mode | Partial config rollout can leave some clients unaware of the
new OMs or still using old OMs after cleanup. | Partial DNS propagation can
make different clients resolve the same OM hostname to different hosts. |
+
+Use configuration-based migration when safety and explicit host identity are
more important than migration speed, or when the client population is small
enough to roll configuration predictably.
+
+Use DNS-based migration when client configuration is hard to update, OM
hostnames are already stable DNS names, and the team can audit hosts files, DNS
TTLs, and name-resolution behavior before cutover.
+
+## Migration order
+
+Configuration-based migration can bootstrap multiple new OMs at once because
clients and OMs are explicitly updated with the expanded peer list before any
old OM is removed. In the example below, the cluster temporarily has six OMs
(`om1` through `om6`), then the old three are decommissioned.
+
+DNS-based migration must be done one logical OM hostname at a time. Clients
still know only the original logical hostnames (`om1.example.com`,
`om2.example.com`, and `om3.example.com`). If multiple new OMs are bootstrapped
before their corresponding hostnames are remapped, a new OM can become leader
while clients still cannot resolve any configured hostname to it. For DNS
migration, complete the bootstrap, DNS remap, decommission, and validation for
one OM before starting the next.
+
+## Leadership transfer and rollback
+
+Before decommissioning an OM, verify that it is not the current leader:
+
+```shell
+ozone admin om roles -id=prod
+```
+
+If the OM being removed is leader, transfer leadership to an OM that should
remain available:
+
+```shell
+ozone admin om transfer -id prod -n om4
+```
+
+The `-n` option names the target OM node ID. If any follower is acceptable,
Ozone also supports a random transfer:
+
+```shell
+ozone admin om transfer -id prod -r
+```
+
+For DNS-based migration, a leadership transfer to the replacement OM after DNS
propagation is also a useful validation step. It forces clients to reconnect or
fail over to the current leader through the remapped logical hostname.
+
+Rollback depends on how far the migration has progressed:
+
+- Before the old OM is decommissioned, transfer leadership back to an old OM
if needed, revert the config or DNS change, and stop or decommission the newly
bootstrapped replacement.
+- After the old OM is decommissioned, do not try to bring it back with the
same node ID. Bootstrap a replacement OM with a new node ID, then point the
client configuration or DNS record to that replacement.
+- If the replacement OM needs to be rolled back after it has joined the ring,
decommission the replacement OM using the normal OM decommission procedure.
+
+## Configuration-based migration
+
+Configuration-based migration gives each new OM its own unique address in
`ozone-site.xml`. Clients and Ozone services learn about the new OMs through
configuration rollout, not DNS remapping.
+
+The examples below use an OM service ID of `prod` and migrate all three OMs
from `om1`, `om2`, and `om3` to `om4`, `om5`, and `om6`.
+
+| OM node | Hostname | Initial state |
+| ------- | -------- | ------------- |
+| `om1` | `om1.example.com` | Existing OM to be replaced |
+| `om2` | `om2.example.com` | Existing OM to be replaced |
+| `om3` | `om3.example.com` | Existing OM to be replaced |
+| `om4` | `om4.example.com` | New OM host |
+| `om5` | `om5.example.com` | New OM host |
+| `om6` | `om6.example.com` | New OM host |
+
+### Step 1: Publish the expanded OM configuration
+
+#### OM node configuration
+
+Add all new OMs to the OM HA configuration used by the existing OMs and the
new OMs:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om1,om2,om3,om4,om5,om6</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om4</name>
+ <value>om4.example.com</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om5</name>
+ <value>om5.example.com</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om6</name>
+ <value>om6.example.com</value>
+</property>
+```
+
+The existing OMs do not need to restart only because the new peer entries are
present. During bootstrap, Ozone verifies that existing OMs have the new OM
details in their on-disk configuration and can reload those details for the
bootstrap request.
+
+#### Client and service configuration
+
+Roll the same expanded OM list to clients and services that connect to OM,
such as S3 Gateway, OFS clients, Recon, and application jobs:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om1,om2,om3,om4,om5,om6</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om4</name>
+ <value>om4.example.com</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om5</name>
+ <value>om5.example.com</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om6</name>
+ <value>om6.example.com</value>
+</property>
+```
+
+Clients should receive this first configuration update before any old OM is
decommissioned. If a new OM later becomes leader, clients that still only know
`om1`, `om2`, and `om3` may be unable to reach the current leader.
+
+#### New OM preparation
+
+Apply the expanded configuration to the new OM hosts. Before bootstrapping,
copy or synchronize the OM metadata database to each new host according to the
normal OM bootstrap procedure for your deployment. Keep the database copies
fresh enough that each bootstrap can catch up safely.
+
+#### Validation
+
+Check that the configuration on each existing OM contains all new node IDs and
addresses. If your configuration distribution system has separate server and
client packages, confirm that both packages now include `om4`, `om5`, and `om6`.
+
+### Step 2: Bootstrap the new OMs
+
+#### OM node configuration
+
+No additional OM configuration changes are required after Step 1.
+
+#### Client and service configuration
+
+No additional client or service configuration changes are required in this
step.
+
+#### New OM action
+
+Run bootstrap on each new OM host:
+
+```shell
+# On om4.example.com
+ozone om --bootstrap
+ozone --daemon start om
+
+# On om5.example.com
+ozone om --bootstrap
+ozone --daemon start om
+
+# On om6.example.com
+ozone om --bootstrap
+ozone --daemon start om
+```
+
+The new OMs can be bootstrapped before any old OM is decommissioned because
both OM-side and client-side configuration already include the expanded peer
list.
+
+#### Validation
+
+Validate the OM roles:
+
+```shell
+ozone admin om roles -id=prod
+```
+
+The expected state at this point is that the old OMs and new OMs are all in
the ring:
+
+```text
+om1 : FOLLOWER (om1.example.com)
+om2 : LEADER (om2.example.com)
+om3 : FOLLOWER (om3.example.com)
+om4 : FOLLOWER (om4.example.com)
+om5 : FOLLOWER (om5.example.com)
+om6 : FOLLOWER (om6.example.com)
+```
+
+Check OM logs for abnormal Ratis, snapshot, or peer-connection errors before
decommissioning the old OMs.
+
+### Step 3: Decommission the old OMs
+
+#### OM node configuration
+
+Add the old OM node IDs to the decommissioned nodes list used by the retained
OMs:
+
+```xml
+<property>
+ <name>ozone.om.decommissioned.nodes.prod</name>
+ <value>om1,om2,om3</value>
+</property>
+```
+
+The decommission command checks that each decommissioned node is listed in OM
configuration. If your deployment distributes one common OM config file, it is
fine for the old OM hosts to receive the same update before the commands are
run.
+
+#### Client and service configuration
+
+Do not remove `om1`, `om2`, or `om3` from client configuration yet. During
decommission, clients can safely carry both old and new OM addresses as long as
the retained OMs are reachable.
+
+#### Old OM action
+
+Decommission the old OMs in a controlled sequence. Before each command,
confirm that the target OM is not the leader; if needed, transfer leadership to
a retained OM:
+
+```shell
+ozone admin om transfer -id prod -n om4
+```
+
+```shell
+ozone admin om decommission -id=prod -nodeid=om1 -hostname=om1.example.com
+ozone admin om decommission -id=prod -nodeid=om2 -hostname=om2.example.com
+ozone admin om decommission -id=prod -nodeid=om3 -hostname=om3.example.com
+```
+
+#### Validation
+
+The decommissioned OMs should stop and disappear from `ozone admin om roles`
output:
+
+```text
+om4 : LEADER (om4.example.com)
+om5 : FOLLOWER (om5.example.com)
+om6 : FOLLOWER (om6.example.com)
+```
+
+Validate client traffic and OM logs again after each decommission command and
after the full old-OM set has been removed.
+
+### Step 4: Clean up the old OM configuration
+
+#### OM node configuration
+
+After the old OMs have been decommissioned, remove obsolete entries from the
retained OM configuration:
+
+- `ozone.om.decommissioned.nodes.prod`
+- `ozone.om.address.prod.om1`
+- `ozone.om.address.prod.om2`
+- `ozone.om.address.prod.om3`
+- the old node IDs from `ozone.om.nodes.prod`
+
+The resulting OM node list should contain only retained OMs:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om4,om5,om6</value>
+</property>
+```
+
+When convenient, restart OMs so the cleaned configuration is reflected
consistently.
+
+#### Client and service configuration
+
+Roll the cleanup configuration to clients and services so they no longer carry
the retired OM addresses:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om4,om5,om6</value>
+</property>
+```
+
+Restart or reload clients and services according to their deployment model.
+
+#### Validation
+
+Confirm that clients can reach OM using the cleaned configuration and that no
expected traffic still targets `om1.example.com`, `om2.example.com`, or
`om3.example.com`. Do not shut down or repurpose the old machines until clients
have picked up the cleanup configuration.
+
+## DNS-based migration
+
+DNS-based migration moves OM roles while keeping client-side OM hostnames
stable. It is useful when many clients already reference logical OM hostnames
and updating every client configuration would make the migration slow or hard
to coordinate.
+
+DNS-based migration changes name resolution for one OM hostname at a time. The
OM HA ring still relies on correct Ratis membership and valid OM peer
addresses, so the migration must be coordinated with OM bootstrap and
decommission operations.
+
+The examples below use an OM service ID of `prod` and migrate three logical
hostnames to three new OM hosts:
+
+| Logical hostname | Old OM node | Old IP | New OM node | New IP |
+| ---------------- | ----------- | ------ | ----------- | ------ |
+| `om1.example.com` | `om1` | `10.0.0.1` | `om4` | `10.0.0.4` |
+| `om2.example.com` | `om2` | `10.0.0.2` | `om5` | `10.0.0.5` |
+| `om3.example.com` | `om3` | `10.0.0.3` | `om6` | `10.0.0.6` |
+
+Move only one logical OM hostname at a time. Clients usually know only the
configured logical hostnames. If a newly bootstrapped OM becomes leader before
clients can resolve an existing logical hostname to it, clients may be unable
to reach the current leader even though the OM quorum is healthy.
+
+### Step 1: Migrate `om1.example.com` from `om1` to `om4`
+
+#### OM node configuration
+
+Add only the first replacement OM to the server-side `ozone-site.xml` used by
OMs. Use addresses that remain stable for OM-to-OM communication while DNS is
being remapped. IP addresses are the clearest option:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om1,om2,om3,om4</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om1</name>
+ <value>10.0.0.1</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om4</name>
+ <value>10.0.0.4</value>
+</property>
+```
+
+Apply the same server-side peer-address convention to Recon and other Ozone
services that track OM peers directly. Do not add `om5` or `om6` yet.
+
+#### Client and service configuration
+
+Client-facing configuration continues to use the original logical hostnames:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om1,om2,om3</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om1</name>
+ <value>om1.example.com</value>
+</property>
+```
+
+Do not add `om4` to client configuration for this strategy. Clients follow the
migration when `om1.example.com` resolves to the new IP.
+
+#### New OM action
+
+Apply the server-side configuration to `om4`, copy or synchronize the OM
metadata database, then make sure `om1` is not leader. Run bootstrap on `om4`:
+
+```shell
+ozone om --bootstrap
+ozone --daemon start om
+```
+
+Validate that `om4` is in the ring and is not leader:
+
+```shell
+ozone admin om roles -id=prod
+```
+
+#### DNS action
+
+Update DNS for the first logical hostname:
+
+| Hostname | Before | After |
+| -------- | ------ | ----- |
+| `om1.example.com` | `10.0.0.1` | `10.0.0.4` |
+
+Wait for the DNS TTL and maximum resolver propagation window used in your
environment. Validate from representative hosts, edge nodes, and application
containers that `om1.example.com` resolves to `10.0.0.4`.
+
+#### Old OM action
+
+After DNS is consistent and `om1` is not leader, add `om1` to the
decommissioned nodes list and decommission it:
+
+```xml
+<property>
+ <name>ozone.om.decommissioned.nodes.prod</name>
+ <value>om1</value>
+</property>
+```
+
+```shell
+ozone admin om decommission -id=prod -nodeid=om1 -hostname=10.0.0.1
+```
+
+#### Validation
+
+Confirm that the retained OM ring contains `om2`, `om3`, and `om4`, and that
client traffic remains normal. After DNS has propagated and `om1` has been
decommissioned, transfer leadership to `om4` to validate that clients can reach
the replacement through `om1.example.com`:
+
+```shell
+ozone admin om transfer -id prod -n om4
+```
+
+Do not begin the next hostname migration until this validation is complete.
+
+### Step 2: Migrate `om2.example.com` from `om2` to `om5`
+
+#### OM node configuration
+
+Clean up the server-side configuration for the removed `om1`, then add `om5`:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om2,om3,om4,om5</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om2</name>
+ <value>10.0.0.2</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om5</name>
+ <value>10.0.0.5</value>
+</property>
+```
+
+#### Client and service configuration
+
+Client-facing configuration still uses the original logical hostnames:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om1,om2,om3</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om2</name>
+ <value>om2.example.com</value>
+</property>
+```
+
+Do not add `om5` to client configuration.
+
+#### New OM action
+
+Apply the server-side configuration to `om5`, copy or synchronize the OM
metadata database, then make sure `om2` is not leader. Run bootstrap on `om5`:
+
+```shell
+ozone om --bootstrap
+ozone --daemon start om
+```
+
+#### DNS action
+
+Update DNS for the second logical hostname:
+
+| Hostname | Before | After |
+| -------- | ------ | ----- |
+| `om2.example.com` | `10.0.0.2` | `10.0.0.5` |
+
+Wait for DNS propagation and validate representative clients.
+
+#### Old OM action
+
+After DNS is consistent and `om2` is not leader, add `om2` to the
decommissioned nodes list and decommission it:
+
+```xml
+<property>
+ <name>ozone.om.decommissioned.nodes.prod</name>
+ <value>om2</value>
+</property>
+```
+
+```shell
+ozone admin om decommission -id=prod -nodeid=om2 -hostname=10.0.0.2
+```
+
+#### Validation
+
+Confirm that the retained OM ring contains `om3`, `om4`, and `om5`, and that
client traffic remains normal. After DNS has propagated and `om2` has been
decommissioned, transfer leadership to `om5` to validate that clients can reach
the replacement through `om2.example.com`:
+
+```shell
+ozone admin om transfer -id prod -n om5
+```
+
+Do not begin the next hostname migration until this validation is complete.
+
+### Step 3: Migrate `om3.example.com` from `om3` to `om6`
+
+#### OM node configuration
+
+Clean up the server-side configuration for the removed `om2`, then add `om6`:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om3,om4,om5,om6</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om3</name>
+ <value>10.0.0.3</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om6</name>
+ <value>10.0.0.6</value>
+</property>
+```
+
+#### Client and service configuration
+
+Client-facing configuration still uses the original logical hostnames:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om1,om2,om3</value>
+</property>
+<property>
+ <name>ozone.om.address.prod.om3</name>
+ <value>om3.example.com</value>
+</property>
+```
+
+Do not add `om6` to client configuration.
+
+#### New OM action
+
+Apply the server-side configuration to `om6`, copy or synchronize the OM
metadata database, then make sure `om3` is not leader. Run bootstrap on `om6`:
+
+```shell
+ozone om --bootstrap
+ozone --daemon start om
+```
+
+#### DNS action
+
+Update DNS for the third logical hostname:
+
+| Hostname | Before | After |
+| -------- | ------ | ----- |
+| `om3.example.com` | `10.0.0.3` | `10.0.0.6` |
+
+Wait for DNS propagation and validate representative clients.
+
+#### Old OM action
+
+After DNS is consistent and `om3` is not leader, add `om3` to the
decommissioned nodes list and decommission it:
+
+```xml
+<property>
+ <name>ozone.om.decommissioned.nodes.prod</name>
+ <value>om3</value>
+</property>
+```
+
+```shell
+ozone admin om decommission -id=prod -nodeid=om3 -hostname=10.0.0.3
+```
+
+#### Validation
+
+Confirm that the retained OM ring contains only the new OMs:
+
+```text
+om4 : LEADER (10.0.0.4)
+om5 : FOLLOWER (10.0.0.5)
+om6 : FOLLOWER (10.0.0.6)
+```
+
+After DNS has propagated and `om3` has been decommissioned, transfer
leadership to `om6` to validate that clients can reach the replacement through
`om3.example.com`:
+
+```shell
+ozone admin om transfer -id prod -n om6
+```
+
+Validate client traffic and OM logs after the final old OM is removed.
+
+### Step 4: Clean up after DNS migration
+
+#### OM node configuration
+
+After all old OMs have been decommissioned, remove obsolete entries from the
retained OM configuration:
+
+- `ozone.om.decommissioned.nodes.prod`
+- `ozone.om.address.prod.om1`
+- `ozone.om.address.prod.om2`
+- `ozone.om.address.prod.om3`
+- the old node IDs from `ozone.om.nodes.prod`
+
+The retained OM configuration should contain only the new OMs:
+
+```xml
+<property>
+ <name>ozone.om.nodes.prod</name>
+ <value>om4,om5,om6</value>
+</property>
+```
+
+When convenient, restart OMs so the cleaned configuration is reflected
consistently.
+
+#### Client and service configuration
+
+Client configuration can remain unchanged if it intentionally uses
`om1.example.com`, `om2.example.com`, and `om3.example.com` as stable logical
addresses for the replacement OMs. Services that use server-side peer
addresses, such as Recon, should receive the same cleanup as the OMs.
+
+#### Validation
+
+Confirm that all logical hostnames resolve to the new IPs:
+
+| Hostname | Expected IP |
+| -------- | ----------- |
+| `om1.example.com` | `10.0.0.4` |
+| `om2.example.com` | `10.0.0.5` |
+| `om3.example.com` | `10.0.0.6` |
+
+Confirm that no expected traffic still connects to the old IP addresses. Do
not shut down or repurpose the old machines until you are confident no clients
still connect to the old IPs. If clients still try to use an old host and the
machine is offline, they may wait for connection timeouts before failing over.
Stopping only the OM process allows clients to detect that OM is unavailable
and fail over more quickly.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]