[
https://issues.apache.org/jira/browse/HDDS-15482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18086193#comment-18086193
]
Ethan Rose commented on HDDS-15482:
-----------------------------------
As part of this change we should also refactor the NodeManager unit tests to
take a matrix of SCM and Datanode versions mapped to the expected registration
outcome (allow/reject) to iterate all combinations.
> Add fencing based on datanode versions to SCM and Recon
> -------------------------------------------------------
>
> Key: HDDS-15482
> URL: https://issues.apache.org/jira/browse/HDDS-15482
> Project: Apache Ozone
> Issue Type: Improvement
> Reporter: Ethan Rose
> Assignee: Ethan Rose
> Priority: Major
>
> The ZDU design doc outlines rules for which datanodes SCM should allow to
> register based on their reported software and apparent versions. In
> particular DNs with software or apparent versions larger than SCM should not
> be allowed to register, and DNs with lower software versions than SCM should
> only be allowed to register when SCM is pre-finalized.
> When Datanode registration is rejected due to an incorrect version, it should
> shut down since the error is not recoverable.
> Recon also has an SCM version manager instance tracking HDDS versions in its
> NodeManager implementation, whose version needs to follow that of SCM + DNs
> to keep up with compatibility. Since Recon doesn't have official downgrade
> support, it finalizes its own Recon versions on startup, but doing the same
> with the HDDS version in the node manager may cause issues communicating with
> Datanodes. Instead, Recon should finalize its HDDS version when it gets a
> heartbeat from a finalized datanode (higher apparent version), instead of
> rejecting it like SCM. Note that Recon cannot use this as the signal to
> finalize its Recon version, since there may be releases that increase Recon
> version without increasing HDDS version.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]