Re: [pve-devel] [PATCH docs 2/2] Update pvecm documentation for corosync 3

2019-07-09 Thread Aaron Lauterer

Added a few notes, mostly regarding style and readability.

On 7/8/19 6:26 PM, Stefan Reiter wrote:

Parts about multicast and RRP have been removed entirely. Instead, a new
section 'Corosync Redundancy' has been added explaining the concept of
links and link priorities.

Signed-off-by: Stefan Reiter 
---
  pvecm.adoc | 372 +
  1 file changed, 147 insertions(+), 225 deletions(-)

diff --git a/pvecm.adoc b/pvecm.adoc
index 1c0b9e7..1246111 100644
--- a/pvecm.adoc
+++ b/pvecm.adoc
@@ -56,13 +56,8 @@ Grouping nodes into a cluster has the following advantages:
  Requirements
  
  
-* All nodes must be in the same network as `corosync` uses IP Multicast

- to communicate between nodes (also see
- http://www.corosync.org[Corosync Cluster Engine]). Corosync uses UDP
- ports 5404 and 5405 for cluster communication.
-+
-NOTE: Some switches do not support IP multicast by default and must be
-manually enabled first.
+* All nodes must be able to contact each other via UDP ports 5404 and 5405 for
+ corosync to work.


Maybe "connect" instead of "contact"?
  
  * Date and time have to be synchronized.
  
@@ -84,6 +79,11 @@ NOTE: While it's possible for {pve} 4.4 and {pve} 5.0 this is not supported as

  production configuration and should only used temporarily during upgrading the
  whole cluster from one to another major version.
  
+NOTE: Mixing {pve} 6.x and earlier versions is not supported, because of the

+major corosync upgrade. While possible to run corosync 3 on {pve} 5.4, this
+configuration is not supported for production environments and should only be
+used while upgrading a cluster.
+


"NOTE: Running a cluster of {pve} 6.x with earlier versions is not 
possible. The cluster protocol (corosync) between {pve} 6.x and earlier 
versions changed fundamentally. The corosync 3 packages for {pve} 5.4 
are only intended for the upgrade procedure to {pve} 6.0."


  
  Preparing Nodes

  ---
@@ -96,10 +96,12 @@ Currently the cluster creation can either be done on the 
console (login via
  `ssh`) or the API, which we have a GUI implementation for (__Datacenter ->
  Cluster__).
  
-While it's often common use to reference all other nodenames in `/etc/hosts`

-with their IP this is not strictly necessary for a cluster, which normally uses
-multicast, to work. It maybe useful as you then can connect from one node to
-the other with SSH through the easier to remember node name.
+While it's common to reference all nodenames and their IPs in `/etc/hosts` (or
+make their names resolveable through other means), this is not strictly
+necessary for a cluster to work. It may be useful however, as you can then
+connect from one node to the other with SSH via the easier to remember node
+name. (see also xref:pvecm_corosync_addresses[Link Address Types])
+


"node names" instead of one word. "resolvable" instead of "resolveable".

But maybe we should tell people to keep away from host names and rely on 
IP addresses? If someone still wants to use the hosts file they will, 
but let not put ideas in the heads of not so experienced users who do 
not know possible pitfalls and the fragility of such an approach.


"We highly recommend to reference the nodes by their IP addresses in the 
cluster configuration. This will prevent (circular) dependencies on 
other means to resolve a host name to an IP address like DNS or manual 
entries in the `/etc/hosts` file."


Not sure if we should have the "(circular)" in there or not.


  
  [[pvecm_create_cluster]]

  Create the Cluster
@@ -113,31 +115,12 @@ node names.
   hp1# pvecm create CLUSTERNAME
  
  
-CAUTION: The cluster name is used to compute the default multicast address.

-Please use unique cluster names if you run more than one cluster inside your
-network. To avoid human confusion, it is also recommended to choose different
-names even if clusters do not share the cluster network.
-
  To check the state of your cluster use:
  
  

   hp1# pvecm status
  
  
-Multiple Clusters In Same Network

-~
-
-It is possible to create multiple clusters in the same physical or logical
-network. Each cluster must have a unique name, which is used to generate the
-cluster's multicast group address. As long as no duplicate cluster names are
-configured in one network segment, the different clusters won't interfere with
-each other.
-
-If multiple clusters operate in a single network it may be beneficial to setup
-an IGMP querier and enable IGMP Snooping in said network. This may reduce the
-load of the network significantly because multicast packets are only delivered
-to endpoints of the respective member nodes.
-
  
  [[pvecm_join_node_to_cluster]]

  Adding Nodes to the Cluster
@@ -150,7 +133,7 @@ Login via `ssh` to the node you want to add.
  
  
  For `IP-ADDRESS-CLUSTER` use the IP or hostname of an existing cluster node.

-An IP address is recommended (see 

Re: [pve-devel] [PATCH docs 2/2] Update pvecm documentation for corosync 3

2019-07-09 Thread Stefan Reiter

Thanks for feedback!

Regarding patch 1/2: I grep'd through the sources and could not find any 
references to the heading names I changed. A quick look through the GUI 
also didn't reveal any obvious references.


Some of my own notes inline, I will send v2 today.

On 7/9/19 9:19 AM, Thomas Lamprecht wrote:

On 7/8/19 6:26 PM, Stefan Reiter wrote:

Parts about multicast and RRP have been removed entirely. Instead, a new
section 'Corosync Redundancy' has been added explaining the concept of
links and link priorities.



note bad at all, still some notes inline.


Signed-off-by: Stefan Reiter 
---
  pvecm.adoc | 372 +
  1 file changed, 147 insertions(+), 225 deletions(-)

diff --git a/pvecm.adoc b/pvecm.adoc
index 1c0b9e7..1246111 100644
--- a/pvecm.adoc
+++ b/pvecm.adoc
@@ -56,13 +56,8 @@ Grouping nodes into a cluster has the following advantages:
  Requirements
  
  
-* All nodes must be in the same network as `corosync` uses IP Multicast

- to communicate between nodes (also see
- http://www.corosync.org[Corosync Cluster Engine]). Corosync uses UDP
- ports 5404 and 5405 for cluster communication.
-+
-NOTE: Some switches do not support IP multicast by default and must be
-manually enabled first.
+* All nodes must be able to contact each other via UDP ports 5404 and 5405 for
+ corosync to work.
  
  * Date and time have to be synchronized.
  
@@ -84,6 +79,11 @@ NOTE: While it's possible for {pve} 4.4 and {pve} 5.0 this is not supported as

  production configuration and should only used temporarily during upgrading the
  whole cluster from one to another major version.
  
+NOTE: Mixing {pve} 6.x and earlier versions is not supported, because of the

+major corosync upgrade. While possible to run corosync 3 on {pve} 5.4, this
+configuration is not supported for production environments and should only be
+used while upgrading a cluster.
+
  
  Preparing Nodes

  ---
@@ -96,10 +96,12 @@ Currently the cluster creation can either be done on the 
console (login via
  `ssh`) or the API, which we have a GUI implementation for (__Datacenter ->
  Cluster__).
  
-While it's often common use to reference all other nodenames in `/etc/hosts`

-with their IP this is not strictly necessary for a cluster, which normally uses
-multicast, to work. It maybe useful as you then can connect from one node to
-the other with SSH through the easier to remember node name.
+While it's common to reference all nodenames and their IPs in `/etc/hosts` (or
+make their names resolveable through other means), this is not strictly
+necessary for a cluster to work. It may be useful however, as you can then
+connect from one node to the other with SSH via the easier to remember node
+name. (see also xref:pvecm_corosync_addresses[Link Address Types])
+
  
  [[pvecm_create_cluster]]

  Create the Cluster
@@ -113,31 +115,12 @@ node names.
   hp1# pvecm create CLUSTERNAME
  
  
-CAUTION: The cluster name is used to compute the default multicast address.

-Please use unique cluster names if you run more than one cluster inside your
-network. To avoid human confusion, it is also recommended to choose different
-names even if clusters do not share the cluster network.


Maybe move this from a "CAUTION" to a "NOTE" and keep the hint that it still
makes sense to use unique cluster names, to avoid human confusion and as I have
a feeling that there are other assumption in corosync which depend on that.
Also, _if_ multicast gets integrated into knet we probably have a similar issue
again, so try to bring people in lane now already, even if not 100% required.



Makes sense. I just wanted to avoid mentioning multicast in the general 
instructions, to avoid people reading the docs for the first time being 
confused if they need it or not.



-
  To check the state of your cluster use:
  
  

   hp1# pvecm status
  
  
-Multiple Clusters In Same Network

-~
-
-It is possible to create multiple clusters in the same physical or logical
-network. Each cluster must have a unique name, which is used to generate the
-cluster's multicast group address. As long as no duplicate cluster names are
-configured in one network segment, the different clusters won't interfere with
-each other.
-
-If multiple clusters operate in a single network it may be beneficial to setup
-an IGMP querier and enable IGMP Snooping in said network. This may reduce the
-load of the network significantly because multicast packets are only delivered
-to endpoints of the respective member nodes.
-


It's still possible to create multiple clusters in the same network, so I'd keep
above and just adapt to non-multicast for now..

  
  [[pvecm_join_node_to_cluster]]

  Adding Nodes to the Cluster
@@ -150,7 +133,7 @@ Login via `ssh` to the node you want to add.
  
  
  For `IP-ADDRESS-CLUSTER` use the IP or hostname of an existing cluster node.

-An IP address is recommended 

Re: [pve-devel] [PATCH docs 2/2] Update pvecm documentation for corosync 3

2019-07-09 Thread Thomas Lamprecht
On 7/8/19 6:26 PM, Stefan Reiter wrote:
> Parts about multicast and RRP have been removed entirely. Instead, a new
> section 'Corosync Redundancy' has been added explaining the concept of
> links and link priorities.
> 

note bad at all, still some notes inline.

> Signed-off-by: Stefan Reiter 
> ---
>  pvecm.adoc | 372 +
>  1 file changed, 147 insertions(+), 225 deletions(-)
> 
> diff --git a/pvecm.adoc b/pvecm.adoc
> index 1c0b9e7..1246111 100644
> --- a/pvecm.adoc
> +++ b/pvecm.adoc
> @@ -56,13 +56,8 @@ Grouping nodes into a cluster has the following advantages:
>  Requirements
>  
>  
> -* All nodes must be in the same network as `corosync` uses IP Multicast
> - to communicate between nodes (also see
> - http://www.corosync.org[Corosync Cluster Engine]). Corosync uses UDP
> - ports 5404 and 5405 for cluster communication.
> -+
> -NOTE: Some switches do not support IP multicast by default and must be
> -manually enabled first.
> +* All nodes must be able to contact each other via UDP ports 5404 and 5405 
> for
> + corosync to work.
>  
>  * Date and time have to be synchronized.
>  
> @@ -84,6 +79,11 @@ NOTE: While it's possible for {pve} 4.4 and {pve} 5.0 this 
> is not supported as
>  production configuration and should only used temporarily during upgrading 
> the
>  whole cluster from one to another major version.
>  
> +NOTE: Mixing {pve} 6.x and earlier versions is not supported, because of the
> +major corosync upgrade. While possible to run corosync 3 on {pve} 5.4, this
> +configuration is not supported for production environments and should only be
> +used while upgrading a cluster.
> +
>  
>  Preparing Nodes
>  ---
> @@ -96,10 +96,12 @@ Currently the cluster creation can either be done on the 
> console (login via
>  `ssh`) or the API, which we have a GUI implementation for (__Datacenter ->
>  Cluster__).
>  
> -While it's often common use to reference all other nodenames in `/etc/hosts`
> -with their IP this is not strictly necessary for a cluster, which normally 
> uses
> -multicast, to work. It maybe useful as you then can connect from one node to
> -the other with SSH through the easier to remember node name.
> +While it's common to reference all nodenames and their IPs in `/etc/hosts` 
> (or
> +make their names resolveable through other means), this is not strictly
> +necessary for a cluster to work. It may be useful however, as you can then
> +connect from one node to the other with SSH via the easier to remember node
> +name. (see also xref:pvecm_corosync_addresses[Link Address Types])
> +
>  
>  [[pvecm_create_cluster]]
>  Create the Cluster
> @@ -113,31 +115,12 @@ node names.
>   hp1# pvecm create CLUSTERNAME
>  
>  
> -CAUTION: The cluster name is used to compute the default multicast address.
> -Please use unique cluster names if you run more than one cluster inside your
> -network. To avoid human confusion, it is also recommended to choose different
> -names even if clusters do not share the cluster network.

Maybe move this from a "CAUTION" to a "NOTE" and keep the hint that it still
makes sense to use unique cluster names, to avoid human confusion and as I have
a feeling that there are other assumption in corosync which depend on that.
Also, _if_ multicast gets integrated into knet we probably have a similar issue
again, so try to bring people in lane now already, even if not 100% required.

> -
>  To check the state of your cluster use:
>  
>  
>   hp1# pvecm status
>  
>  
> -Multiple Clusters In Same Network
> -~
> -
> -It is possible to create multiple clusters in the same physical or logical
> -network. Each cluster must have a unique name, which is used to generate the
> -cluster's multicast group address. As long as no duplicate cluster names are
> -configured in one network segment, the different clusters won't interfere 
> with
> -each other.
> -
> -If multiple clusters operate in a single network it may be beneficial to 
> setup
> -an IGMP querier and enable IGMP Snooping in said network. This may reduce the
> -load of the network significantly because multicast packets are only 
> delivered
> -to endpoints of the respective member nodes.
> -

It's still possible to create multiple clusters in the same network, so I'd keep
above and just adapt to non-multicast for now..

>  
>  [[pvecm_join_node_to_cluster]]
>  Adding Nodes to the Cluster
> @@ -150,7 +133,7 @@ Login via `ssh` to the node you want to add.
>  
>  
>  For `IP-ADDRESS-CLUSTER` use the IP or hostname of an existing cluster node.
> -An IP address is recommended (see xref:pvecm_corosync_addresses[Ring Address 
> Types]).
> +An IP address is recommended (see xref:pvecm_corosync_addresses[Link Address 
> Types]).

Maybe somewhere a note that while the new things are named "Link" the config
still refers to "ringX_addr" for backward compatibility.

>  
>  CAUTION: A new node cannot hold any 

[pve-devel] [PATCH docs 2/2] Update pvecm documentation for corosync 3

2019-07-08 Thread Stefan Reiter
Parts about multicast and RRP have been removed entirely. Instead, a new
section 'Corosync Redundancy' has been added explaining the concept of
links and link priorities.

Signed-off-by: Stefan Reiter 
---
 pvecm.adoc | 372 +
 1 file changed, 147 insertions(+), 225 deletions(-)

diff --git a/pvecm.adoc b/pvecm.adoc
index 1c0b9e7..1246111 100644
--- a/pvecm.adoc
+++ b/pvecm.adoc
@@ -56,13 +56,8 @@ Grouping nodes into a cluster has the following advantages:
 Requirements
 
 
-* All nodes must be in the same network as `corosync` uses IP Multicast
- to communicate between nodes (also see
- http://www.corosync.org[Corosync Cluster Engine]). Corosync uses UDP
- ports 5404 and 5405 for cluster communication.
-+
-NOTE: Some switches do not support IP multicast by default and must be
-manually enabled first.
+* All nodes must be able to contact each other via UDP ports 5404 and 5405 for
+ corosync to work.
 
 * Date and time have to be synchronized.
 
@@ -84,6 +79,11 @@ NOTE: While it's possible for {pve} 4.4 and {pve} 5.0 this 
is not supported as
 production configuration and should only used temporarily during upgrading the
 whole cluster from one to another major version.
 
+NOTE: Mixing {pve} 6.x and earlier versions is not supported, because of the
+major corosync upgrade. While possible to run corosync 3 on {pve} 5.4, this
+configuration is not supported for production environments and should only be
+used while upgrading a cluster.
+
 
 Preparing Nodes
 ---
@@ -96,10 +96,12 @@ Currently the cluster creation can either be done on the 
console (login via
 `ssh`) or the API, which we have a GUI implementation for (__Datacenter ->
 Cluster__).
 
-While it's often common use to reference all other nodenames in `/etc/hosts`
-with their IP this is not strictly necessary for a cluster, which normally uses
-multicast, to work. It maybe useful as you then can connect from one node to
-the other with SSH through the easier to remember node name.
+While it's common to reference all nodenames and their IPs in `/etc/hosts` (or
+make their names resolveable through other means), this is not strictly
+necessary for a cluster to work. It may be useful however, as you can then
+connect from one node to the other with SSH via the easier to remember node
+name. (see also xref:pvecm_corosync_addresses[Link Address Types])
+
 
 [[pvecm_create_cluster]]
 Create the Cluster
@@ -113,31 +115,12 @@ node names.
  hp1# pvecm create CLUSTERNAME
 
 
-CAUTION: The cluster name is used to compute the default multicast address.
-Please use unique cluster names if you run more than one cluster inside your
-network. To avoid human confusion, it is also recommended to choose different
-names even if clusters do not share the cluster network.
-
 To check the state of your cluster use:
 
 
  hp1# pvecm status
 
 
-Multiple Clusters In Same Network
-~
-
-It is possible to create multiple clusters in the same physical or logical
-network. Each cluster must have a unique name, which is used to generate the
-cluster's multicast group address. As long as no duplicate cluster names are
-configured in one network segment, the different clusters won't interfere with
-each other.
-
-If multiple clusters operate in a single network it may be beneficial to setup
-an IGMP querier and enable IGMP Snooping in said network. This may reduce the
-load of the network significantly because multicast packets are only delivered
-to endpoints of the respective member nodes.
-
 
 [[pvecm_join_node_to_cluster]]
 Adding Nodes to the Cluster
@@ -150,7 +133,7 @@ Login via `ssh` to the node you want to add.
 
 
 For `IP-ADDRESS-CLUSTER` use the IP or hostname of an existing cluster node.
-An IP address is recommended (see xref:pvecm_corosync_addresses[Ring Address 
Types]).
+An IP address is recommended (see xref:pvecm_corosync_addresses[Link Address 
Types]).
 
 CAUTION: A new node cannot hold any VMs, because you would get
 conflicts about identical VM IDs. Also, all existing configuration in
@@ -173,7 +156,7 @@ Date: Mon Apr 20 12:30:13 2015
 Quorum provider:  corosync_votequorum
 Nodes:4
 Node ID:  0x0001
-Ring ID:  1928
+Ring ID:  1/8
 Quorate:  Yes
 
 Votequorum information
@@ -217,15 +200,15 @@ Adding Nodes With Separated Cluster Network
 ~~~
 
 When adding a node to a cluster with a separated cluster network you need to
-use the 'ringX_addr' parameters to set the nodes address on those networks:
+use the 'link0' parameter to set the nodes address on that network:
 
 [source,bash]
 
-pvecm add IP-ADDRESS-CLUSTER -ring0_addr IP-ADDRESS-RING0
+pvecm add IP-ADDRESS-CLUSTER -link0 LOCAL-IP-ADDRESS-LINK0
 
 
-If you want to use the Redundant Ring Protocol you will also want to pass the
-'ring1_addr' parameter.
+If you want to use the