Tag: Clustering

  • Difference between RHEL 7 and RHEL 8 HA

    Red Hat Enterprise Linux (RHEL) 8 introduces several enhancements and changes to its High Availability (HA) Add-On compared to RHEL 7, primarily building upon and refining the Pacemaker and Corosync technologies.

    Here are the key differences:

    Tech StackRHEL 7RHEL 8
    Core HA Technologies and Storage Management
    Cluster Logical Volume Management (CLVM) vs. LVM Locking Daemon (lvmlockd)the High Availability Add-On used `clvmd` (Cluster Logical Volume Manager) for volume management of cluster storage, specifically for active/active configurations with GFS2.replaces `clvmd` with the LVM Locking Daemon (lvmlockd) for managing shared storage devices in active/active configurations, where more than one node requires simultaneous access to storage. `lvmlockd` works in conjunction with the Distributed Lock Manager (`dlm`)
    LVM Volume Activationused `lvmconf –enable-halvm` to configure HA-LVM RHEL 8.5 and later, when creating LVM volume groups managed by Pacemaker, you can use the `vgcreate –setautoactivation n` flag to prevent automatic activation on startup.
    In earlier versions, disabling auto-activation required modifying the `auto_activation_volume_list` in `/etc/lvm/lvm.conf` and rebuilding the `initramfs` boot image.
    GFS2 File Systemsalso provides a specific procedure for migrating GFS2 file systems from RHEL 7, which involves changing the volume group’s lock type from `none` to `dlm` and ensuring the RHEL 8 cluster has the same name as the RHEL 7 cluster.leverages `lvm2-lockd`, `gfs2-utils`, and `dlm` packages for GFS2 configurations. It supports encrypted GFS2 file systems using the `crypt` resource agent.
    Cluster Management and Configuration Tools
    pcs Command Enhancementspcs` commands can now export configurations for recreation on different systems, including cluster properties (`pcs property config –output-format=cmd`), fence devices (`pcs stonith config –output-format=cmd`), and cluster resources (`pcs resource config –output-format=cmd`).
    pcs resource defaults update` is the preferred command for changing global resource option defaults over the older `pcs resource defaults name=value`.
     The `pcs cluster config` command can display the `corosync.conf` file in a human-readable format and includes the Cluster UUID if created in RHEL 8.7 or later or manually added.
    Resource DisplayThe `pcs resource relations` command can display resource dependencies in a tree structure. Also, `pcs constraint list` no longer displays expired constraints by default; the `–all` option is needed to include them.

    New commands `pcs resource status resource_id` and `pcs resource status node=node_id` for displaying status of individual resources or resources on a specific node.
    Fencing Improvements
    Fencing DelaysIntroduced the priority-fencing-delay cluster property, which allows a two-node cluster to fence the node with the fewest or least important resources in a split-brain situation. This delay is additive to `pcmk_delay_base` and `pcmk_delay_max`The `pcmk_delay_base` parameter allows specifying different fencing delays for individual nodes even when using a single fence device.
    fence-reaction PropertyThe `fence-reaction` cluster property was introduced to determine how a node should react if notified of its own fencing. The default is `stop`, but `panic` (attempts immediate reboot) is considered safer.
    Concurrent Fencingconcurrent-fencing=true` became the default, allowing fencing operations to be performed in parallel.
    pcmk_host_mapThe `pcmk_host_map` property for fencing devices supports special characters in host alias values.
    Quorum and Multi-Site Clusters
    Quorum Devicesprovided full support for a separate quorum device (corosync-qnetd) to sustain more node failures, especially recommended for clusters with an even number of nodes. 
    Multi-Site Clusters (Booth)provided full support for configuring multi-site clusters using the Booth cluster ticket manager, 
    Disaster Recovery (DR) ClustersThe `pcs dr` commands allow displaying the status of both primary and disaster recovery clusters from a single node. This facilitates monitoring but does not automate resource configuration or data replication, which must be handled manually.
    Resource Behavior and Options
    shutdown-lock PropertyIntroduced the `shutdown-lock` cluster property. When set to `true`, resources on a node undergoing a clean shutdown will be locked to that node and prevented from failing over to other nodes until the node rejoins the cluster, ideal for maintenance windows.
    Safer Resource DisablingNew `pcs resource disable` options like `–simulate`, `–safe`, and `–safe –no-strict` allow administrators to assess or perform resource disabling with greater control and avoid unintended side effects.
    Resource Tagstag cluster resources using the `pcs` command. This allows enabling, disabling, managing, or unmanaging a specified set of resources with a single command.
    multiple-active optionThe `multiple-active` resource meta option gains a new value, `stop_unexpected`, which only stops unexpected active instances of a resource without requiring a full restart of all instances.
    allow-unhealthy-nodesIntroduced the `allow-unhealthy-nodes` resource meta option, which, when set to `true`, prevents a resource from being forced off a node due to degraded node health, allowing the cluster to move resources back once health recovers.
    Node Health Strategynode health strategy in Pacemaker to automatically move resources off unhealthy nodes. This works in conjunction with health resource agents like `ocf:pacemaker:HealthCPU`, `HealthIOWait`, `HealthSMART`, and `SysInfo`, which set node attributes based on system health. The strategy can be configured to `migrate-on-red`, `only-green`, `progressive`, or `custom`.
    Virtualization Integration
    pacemaker_remote DaemonBoth RHEL 7 and RHEL 8 support the `pacemaker_remote` service for integrating non-Corosync nodes (remote nodes and guest nodes) into the cluster, enabling scaling beyond the traditional node limits.

    The handling of `authkey` and the commands for adding remote/guest nodes were refined in RHEL 7.4 (`pcs cluster node add-guest` and `pcs cluster node add-remote` replaced older commands), with RHEL 8 continuing these updated commands.

    In RHEL 7.3 and later (and thus RHEL 8), if `pacemaker_remote` stops, resources are gracefully migrated off the node. In RHEL 7.2 and earlier, this would have caused fencing.
    Virtual Domain ResourcesBoth RHEL 7 and RHEL 8 support configuring `libvirt`-managed virtual domains as cluster resources. `VirtualDomain` resource options like `force_stop`, `migration_transport`, and `snapshot`. The `allow-migrate` metadata option enables live migration without state loss for VMs managed as cluster resources.

    Note that live migration for full cluster nodes (not managed as resources) is generally not supported and requires manual removal/re-addition to the cluster.