[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