[ClusterLabs] Off-line build-time cluster configuration

Tomas Jelinek tojeline at redhat.com
Fri Apr 24 03:55:41 EDT 2020

Preliminary version of this feature has been merged upstream:

At the moment, only RPM packages built by continuous integration system 
are available:
Note these are automatically built unofficial packages, they are not 
guaranteed to work flawlessly.


Dne 16. 04. 20 v 14:00 Tomas Jelinek napsal(a):
> 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/

More information about the Users mailing list