Hi Craig,

Currently, there is no support in RHEL8 for an equivalent of the --local option of the 'pcs cluster setup' command from RHEL7. We were focusing higher priority tasks related to supporting the new major version of corosync and knet. As a part of this, the 'pcs cluster setup' command has been completely overhauled providing better functionality overall, like improved validations, synchronizing other files than just corosync.conf and so on. Sadly, we didn't have enough capacity to support the --local option in step 1.

We are working on adding support for the --local option (or its equivalent) in the near future, but we don't have any code to share yet.


Obviously, the --local version of the setup will skip some tasks done in the regular cluster setup command. You are expected to do them by other means. I'll put them all here for the sake of completion, even though not all of them apply in your situation:
* check that nodes are not running or configured to run a cluster
* check that nodes do have cluster daemons installed in matching versions
* run 'pcs cluster destroy' on each node to get rid of all cluster config files and be sure there are no leftovers from previously configured clusters * delete /var/lib/pcsd/pcs_settings.conf file (this is not done by the 'pcs cluster destroy' command)
* distribute pcs auth tokens for the nodes
* distribute corosync and pacemaker authkeys, /etc/corosync/authkey and /etc/pacemaker/authkey respectively * synchronize pcsd certificates (only needed if you intend to use pcs web UI in an HA mode)
* distribute corosync.conf
Let me know if you have any questions regarding these.


Running the current 'pcs cluster setup' command on all nodes is not really an option. The command requires the nodes to be online as it stores corosync.conf and other files to them over the network.

You may, however, run it once on a live cluster to get an idea of what the corosync.conf looks like and turn it into a template. I don't really expect its format or schema to be changed significantly during the RHEL8 life cycle. I understand your concerns regarding this approach, but it would give you at least some option to proceed until the --local is supported in pcs.


Regards,
Tomas


Dne 14. 04. 20 v 20:46 Craig Johnston napsal(a):
Hello,

Sorry if this has already been covered, but a perusal of recent mail archives didn't turn up anything for me.

We are looking for help in configuring a pacemaker/corosync cluster at the time the Linux root file system is built, or perhaps as part of a "pre-pivot" process in the initramfs of a live-CD environment.

We are using the RHEL versions of the cluster products.  Current production is RHEL7 based, and we are trying to move to RHEL8.

The issues we have stem from the configuration tools' expectation that they are operating on a live system, with all cluster nodes available on the network.  This is obviously not the case during a "kickstart" install and configuration process.  It's also not true in an embedded environment where all nodes are powered simultaneously and expected to become operational without any human intervention.

We create the cluster configuration from a "system model", that describes the available nodes, cluster managed services, fencing agents, etc..  This model is different for each deployment, and is used as input to create a customized Linux distribution that is deployed to a set of physical hardware, virtual machines, or containers.  Each node, and it's root file system, is required to be configured and ready to go, the very first time it is ever booted.  The on-media Linux file system is also immutable, and thus each boot is exactly like the previous one.

Under RHEL7, we were able to use the "pcs" command to create the corosync.conf/cib.xml files for each node.
e.g.
          pcs cluster setup --local --enable --force --name mycluster node1 node2 node3
           pcs -f ${CIB} property set startup-fencing=false
          pcs -f ${CIB} resource create tftp ocf:heartbeat:Xinetd  service=tftp  --group grp_tftp
           etc...

Plus a little "awk" "sed" on the corosync.conf file, and we were able to create a working configuration that worked out of the box. It's not pretty, but it works in spite of the fact that we feel like we're swimming up stream.

Under RHEL8 however, the "pcs cluster" command no longer has a "--local" option.  We can't find any tool to replace it's functionality.  We can use "cibadmin --empty" to create a starting cib.xml file, but there is no way to add nodes to it (or create the corosync.conf file with nodes".

Granted, we could write our own tools to create template corosync.conf/cib.xml files, and "pcs -f" still works.  However, that leaves us in the unenviable position where the cluster configuration schema could change, and our tools would not be the wiser.  We'd much prefer to use a standard and maintained interface for configuring the cluster.

Any suggestions would be very welcome.  While we have a non-standard use-case, we don't believe it is unrealistic given the current environment for cloud services, and automated deployment.

Thanks,
Craig

_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/


_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/

Reply via email to