[ 
https://issues.apache.org/jira/browse/HDDS-16136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Siyao Meng updated HDDS-16136:
------------------------------
    Description: 
SCM HA groups whose Ratis peers were recorded with IPv4 literal addresses 
cannot move to IPv6-only operation by editing ozone-site.xml alone. SCM starts 
its Ratis server with an empty group and recovers the peers, including their 
addresses, from Raft storage, so the stored IPv4 addresses keep being used.

This is not a blocker for IPv6 support in general. It does not affect:
* New clusters deployed with IPv6 addresses.
* Peers configured with DNS names, which remain the preferred migration path 
because the stored hostname resolves to IPv6.
* Dual-stack clusters that keep IPv4 connectivity.
* OM HA, which passes its configured peers to Ratis at startup, so its 
connections follow ozone-site.xml. Only the stored and displayed addresses may 
stay stale.

Recommended approach:
* Use a Ratis startup option that refreshes the stored peer addresses from the 
peers supplied at startup, as proposed in the review of 
[apache/ratis#1630|https://github.com/apache/ratis/pull/1630] (RATIS-2082 was 
closed as Won't Do). SCM would pass its configured peers when starting its 
Ratis server and enable the option, so ozone-site.xml becomes the single source 
for both the addresses SCM connects to and the addresses Ratis stores. A wrong 
address is fixed by correcting the configuration and restarting. This needs the 
option in a Ratis release and an Ozone upgrade to that release.

Alternatives considered:
* Register the configured SCM peers with Ratis before the server starts, 
without the startup option. This is an Ozone only change, but it relies on 
Ratis keeping the first address registered for a peer, and the stored and 
displayed addresses would stay stale and could be propagated by later SCM 
membership changes.
* Replace each SCM through decommission and bootstrap with its new address. 
This works with existing tools but takes many steps per SCM and reduces fault 
tolerance while it runs.
* Run the offline ratis-shell {{local raftMetaConf}} command on each stopped 
SCM. This works today but is manual and error prone, and a wrong address leaves 
that SCM unable to rejoin. It can be documented as an interim procedure until 
the startup option is available.

Requirements:
* Preserve the Ratis group ID, peer IDs, storage, and committed state.
* Support a rolling restart while both IPv4 and IPv6 addresses are reachable.
* Allow a wrong address to be corrected by fixing the configuration and 
restarting.
* Validate leader election and failover after migration.
* Add SCM migration tests.

Parent epic: HDDS-15763.


  was:
SCM HA groups whose Ratis peers were recorded with IPv4 literal addresses 
cannot move to IPv6-only operation by editing ozone-site.xml alone. SCM starts 
its Ratis server with an empty group and recovers the peers, including their 
addresses, from Raft storage, so the stored IPv4 addresses keep being used.

This is not a blocker for IPv6 support in general. It does not affect:
* New clusters deployed with IPv6 addresses.
* Peers configured with DNS names, which remain the preferred migration path 
because the stored hostname resolves to IPv6.
* Dual-stack clusters that keep IPv4 connectivity.
* OM HA, which passes its configured peers to Ratis at startup, so its 
connections follow ozone-site.xml. Only the stored and displayed addresses may 
stay stale.

Candidate approaches:
* Document the offline ratis-shell {{local raftMetaConf}} command as a manual 
procedure run on each stopped SCM.
* Register the configured SCM peers with Ratis before the server starts, as OM 
does, so connections follow ozone-site.xml.
* Use a Ratis startup option that refreshes the stored peer addresses from the 
supplied peers, if Ratis adds one. This was proposed in the review of 
[apache/ratis#1630|https://github.com/apache/ratis/pull/1630]; RATIS-2082 was 
closed as Won't Do.

Replacing each SCM through decommission and bootstrap with its new address 
remains a fallback with existing tools.

Requirements:
* Preserve the Ratis group ID, peer IDs, storage, and committed state.
* Support a rolling restart while both IPv4 and IPv6 addresses are reachable.
* Allow a wrong address to be corrected by fixing the configuration and 
restarting.
* Validate leader election and failover after migration.
* Add SCM migration tests.

Parent epic: HDDS-15763.



> Support migrating SCM HA from IPv4 literal Ratis peer addresses to IPv6-only
> ----------------------------------------------------------------------------
>
>                 Key: HDDS-16136
>                 URL: https://issues.apache.org/jira/browse/HDDS-16136
>             Project: Apache Ozone
>          Issue Type: Task
>            Reporter: Siyao Meng
>            Priority: Major
>
> SCM HA groups whose Ratis peers were recorded with IPv4 literal addresses 
> cannot move to IPv6-only operation by editing ozone-site.xml alone. SCM 
> starts its Ratis server with an empty group and recovers the peers, including 
> their addresses, from Raft storage, so the stored IPv4 addresses keep being 
> used.
> This is not a blocker for IPv6 support in general. It does not affect:
> * New clusters deployed with IPv6 addresses.
> * Peers configured with DNS names, which remain the preferred migration path 
> because the stored hostname resolves to IPv6.
> * Dual-stack clusters that keep IPv4 connectivity.
> * OM HA, which passes its configured peers to Ratis at startup, so its 
> connections follow ozone-site.xml. Only the stored and displayed addresses 
> may stay stale.
> Recommended approach:
> * Use a Ratis startup option that refreshes the stored peer addresses from 
> the peers supplied at startup, as proposed in the review of 
> [apache/ratis#1630|https://github.com/apache/ratis/pull/1630] (RATIS-2082 was 
> closed as Won't Do). SCM would pass its configured peers when starting its 
> Ratis server and enable the option, so ozone-site.xml becomes the single 
> source for both the addresses SCM connects to and the addresses Ratis stores. 
> A wrong address is fixed by correcting the configuration and restarting. This 
> needs the option in a Ratis release and an Ozone upgrade to that release.
> Alternatives considered:
> * Register the configured SCM peers with Ratis before the server starts, 
> without the startup option. This is an Ozone only change, but it relies on 
> Ratis keeping the first address registered for a peer, and the stored and 
> displayed addresses would stay stale and could be propagated by later SCM 
> membership changes.
> * Replace each SCM through decommission and bootstrap with its new address. 
> This works with existing tools but takes many steps per SCM and reduces fault 
> tolerance while it runs.
> * Run the offline ratis-shell {{local raftMetaConf}} command on each stopped 
> SCM. This works today but is manual and error prone, and a wrong address 
> leaves that SCM unable to rejoin. It can be documented as an interim 
> procedure until the startup option is available.
> Requirements:
> * Preserve the Ratis group ID, peer IDs, storage, and committed state.
> * Support a rolling restart while both IPv4 and IPv6 addresses are reachable.
> * Allow a wrong address to be corrected by fixing the configuration and 
> restarting.
> * Validate leader election and failover after migration.
> * Add SCM migration tests.
> Parent epic: HDDS-15763.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to