[pve-devel] [PATCH v3 0/4] Add support for up to 8 corosync links in API
Stefan Reiter
s.reiter at proxmox.com
Thu Jan 9 16:31:32 CET 2020
This series allows the API to handle all 8 possible links that corosync 3
supports. Additional verifications are added to support a smarter fallback
behaviour and abort join if the current cluster config is invalid or
unsupported.
verify_conf is not just nice-to-have, but required for patch 3 since it assumes
all nodes to have the same links for the join verification to work.
API/Backend only, frontend works with patched backend, but will not see any
links other than 0 and 1.
Last patch introduces a new join-API version concept, allowing to explicitly
mark versions as incompatible during pre-join checks (roughly follows the
storage plugin's API_AGE concept). This is also used to ensure compatibility
between nodes that have this series applied, and ones that don't, in both
directions (as joinee/cluster).
v2 -> v3:
* fix nits from Thomas' review (no more multi-line post-ifs ;) )
* fix fallback behaviour with single link specified and no new_node_ip
* add helper for parsing ringX_addr entries
* only add 'new_node_ip' parameters after introducing the join API to avoid
breakage
* improve error messages for verification and join API incompatibilities
* document 'apiversion' return code better
* add 'apiver' CLI call and use to verify version on SSH join
* dropped 'IP check on cluster create' patch (previously 4/5) for now - was
really tricky to rebase to the front, so I'll just send it seperately together
with another semi-related minor change
v1 -> v2:
* improve verify_conf and related error/warning handling (changes from Fabians
review)
* rename MAX_LINK_COUNT -> MAX_LINK_INDEX
* improve testing for verify_conf
* fix \n usage in patch 4 (previously patch 5)
* swapped path 4 <=> 5 to put API-version last, since technically optional and
probably more discussion-worthy ;)
* changed join-API concept to include two API ages (see patch 5 for more) - as
discussed off-list with Thomas
* rebase on master
cluster: Stefan Reiter (4):
corosync: add verify_conf
Enable support for up to 8 corosync links
Add verification and fallback to cluster join/addnode
Add cluster join API version check
data/PVE/API2/ClusterConfig.pm | 181 ++++++++++++++++++++++-----
data/PVE/CLI/pvecm.pm | 48 +++++--
data/PVE/Cluster/Setup.pm | 71 +++++++++--
data/PVE/Corosync.pm | 200 ++++++++++++++++++++++++++----
data/test/corosync_parser_test.pl | 29 +++++
5 files changed, 448 insertions(+), 81 deletions(-)
--
2.20.1
More information about the pve-devel
mailing list