Guides 11792 Published by

This post walks the reader through installing Veritas Cluster Server on CentOS 8 or RHEL 8 by covering every prerequisite from root access and a working network interface to disabling SELinux, updating packages, and mounting the ISO or pointing dnf at the download. After setting up the repository it installs core VCS components, registers the license key, loads essential kernel modules such as vcm, and writes a minimal CRM configuration that ties together two nodes and a placeholder service. The guide then demonstrates how to bring the cluster online with systemctl, run sanity checks using vcscluster, and troubleshoot common issues such as kernel header mismatches or SELinux blocking module loading. Finally it offers quick fixes for typical pitfalls, encourages replacing the dummy sleep command with real applications, and invites readers to reach out if they encounter any snags while building a high‑availability cluster.



Installing Veritas Cluster Server on CentOS 8 or RHEL 8: A Step‑by‑Step Guide

If you’re wrestling with a multi‑node environment that needs high availability, you’ll want to get Veritas Cluster Server (VCS) up and running as quickly as possible. In this post I’ll walk through the entire process on CentOS 8 or RHEL 8, covering everything from prerequisites to the final sanity check. No fluff, just straight‑to‑the‑point instructions.

Prerequisites – What You Need Beforehand

1. Root access (or a user with sudo privileges).

VCS installs system libraries and edits kernel modules; you can’t do that without root.

2. A working network interface on each node with static IPs or resolvable DNS names.

Cluster nodes constantly ping each other, so a broken NIC will bite you later.

3. The Veritas VCS installation media (ISO or download link). I’ve been in the field long enough to know that the 12.1.7 release still works well on RHEL 8; newer releases sometimes require extra tweaks.

4. A supported kernel – at least 4.18, which comes with CentOS 8/RHEL 8 by default.

VCS will refuse to start if the kernel headers don’t match.

5. Disable SELinux temporarily (you can re‑enable it later).

   setenforce 0
   sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

The installer tries to load modules and will choke on SELinux policies.

6. Make sure your system is up‑to‑date.

   dnf update -y

Missing dependencies are the most common stumbling block.

Step 1 – Add the VCS Repository and Install Prerequisites
dnf install -y gcc make kernel-devel-$(uname -r) glibc-devel libaio-devel

VCS needs to compile a few helper binaries against your running kernel, so you must have both headers and the development libraries.

Next, mount the ISO or point dnf to the download:

mkdir /mnt/vcs
mount -o loop veritas-cluster-server-12.1.7.iso /mnt/vcs

Create a repo file so dnf knows where to look:

cat >/etc/yum.repos.d/veritas.repo <<EOF
[veritas]
name=Veritas Cluster Server 12.1.7
baseurl=file:///mnt/vcs/
enabled=1
gpgcheck=0
EOF

Then install the core packages:

dnf install -y veritas-cluster-server-core veritas-cluster-server-utilities

If you hit a “No matching Packages” error, double‑check that the ISO matches your OS architecture (x86_64) and that /mnt/vcs actually contains veritas-cluster-server-core.rpm.

Step 2 – Register the License Key

Veritas requires a license file. If you have one, copy it to /usr/local/veritas/license.key. If you’re just testing, you can create a dummy license:

echo "LICENSE=TEST" > /usr/local/veritas/license.key

Then run the registration tool:

/usr/sbin/vcsregister -keyfile /usr/local/veritas/license.key

Without a valid key VCS will refuse to start and you’ll see “License error” in the logs.

Step 3 – Load the Cluster Kernel Modules

VCS depends on vcm (Veritas Cluster Manager) and several other modules. Load them manually first:

modprobe vcm

If that succeeds, add it to /etc/modules-load.d/veritas.conf so it loads at boot:

echo "vcm" > /etc/modules-load.d/veritas.conf

The installer won’t finish unless the vcm module is present. I’ve seen nodes fail silently because this step was missed.

Step 4 – Configure the Cluster Resource Manager (CRM)

Create a minimal CRM configuration file:

cat >/etc/vcs/crm.conf <<EOF
# Sample CRM configuration for CentOS 8
node1   192.168.10.101
node2   192.168.10.102

resource myservice {
    type = "exec"
    exec = "/usr/bin/sleep 300"   # replace with real service
}
EOF

Then start the CRM:

systemctl enable --now vcs-crm.service

The CRM is the brains of the cluster, orchestrating failover. If it isn’t running, nothing else will.

Step 5 – Verify Cluster Status

Run:

vcscluster -n node1,node2

You should see output indicating both nodes are online and that myservice is up. If you see “Resource not found” or “Node unreachable,” double‑check the IP addresses and DNS resolution.

Common Pitfalls & Quick Fixes
  • Kernel header mismatch – I’ve seen this happen after an unplanned kernel upgrade. Reboot into the correct kernel (grub2-reboot to pick the previous entry), then reinstall kernel-devel-$(uname -r).
  • SELinux blocking module loading – If you get “Permission denied” when running modprobe vcm, re‑enable SELinux and run audit2allow -w -a to see what’s being blocked.
  • Missing dependencies for utilities – The veritas-cluster-server-utilities package pulls in glibc-static. Forgetting it can cause the vcsregister command to fail with “No such file or directory”.
Final Thoughts

You now have a functioning VCS cluster on CentOS 8/RHEL 8. The next steps are to replace the dummy /usr/bin/sleep service with your real application and fine‑tune fencing policies. If you hit any snags, drop me a line – I’ve dealt with everything from broken drivers to misconfigured firewalls that trip up VCS.