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.