Veritas Cluster Server configuration
Veritas Cluster Server software is not provided by HCL. Customers who want to use VCS must purchase it from Symantec and install it on their own. See the Veritas Cluster Server documentation for details on installing, configuring and operating VCS, and hardware requirements for Linux.
To configure HA for HCL VersionVault, create a VCS failover service group with the following resources:
- NIC resource - to monitor the public network interface
- IP resource - to create the virtual IP address for the server. Note: Before creating the virtual IP address, assign a static IP address and hostname for the service group and add it to the local DNS server
- Mount resource - for file system mount points for shared storage. (Not needed if the shared storage is on a NAS device.)
- Application resource - to start, stop and monitor HCL VersionVault
A VCS application resource includes the StartProgram
,
StopProgram
, CleanProgram
and MonitorProcesses
attributes. The HCL
VersionVault application
resource should use these attributes. The StartProgram
,
StopProgram
and CleanProgram
attributes must be local executables
on each cluster node. They must ensure that all HCL
VersionVault processes have stopped on the master node
before starting HCL
VersionVault on the standby
node. The MonitorProcesses
attribute should be set to /opt/hcl/ccm/versionvault/etc/albd_server, in order to
monitor whether HCL
VersionVault is still
running.
The following scripts are not installed with HCL VersionVault, but are provided here as an example.
StartProgram (cconline)
#! /bin/ksh
# cconline - Start VersionVault
#
if [ ! -f /opt/hcl/ccm/versionvault/bin/cleartool ] ; then
echo "this is not a VersionVault host"
exit
fi
# Start VersionVault
/opt/hcl/ccm/versionvault/etc/VersionVault start
# Make a registry master server
# (Only needed if the registry server is part of the VCS service group.)
/opt/hcl/ccm/versionvault/bin/cleartool setrgysvrtype –master
StopProgram (ccoffline)
#! /bin/ksh
# ccoffline - Stop VersionVault cleanly, wait for all VersionVault processes to exit
#
PSOPTS="-ef"
if [ ! -f /opt/hcl/ccm/versionvault/bin/cleartool ] ; then
echo "this is not a VersionVault host"
exit
fi
# Demote the registry master to standby
# (Only needed if the registry server is part of the VCS service group.)
/opt/hcl/ccm/versionvault/bin/cleartool setrgysvrtype –standby
# Stop VersionVault
/opt/hcl/ccm/versionvault/etc/versionvault stop
# Wait for all VersionVault processes to exit
ccend="0"
while [ "$ccend" == 0 ]
do
PID=`ps $PSOPTS | egrep
'(albd_server|admin_server|ccfs_server|credmap_server|db_server|mntrpc_server
|msadm_server|promote_server|shipping_server|view_server|vob_server
|vobrpc_server)' | grep -v grep`
if [ "${PID}" == "" ] ; then
echo "VersionVault servers have exited."
ccend="1"
else
sleep 1
fi
done
CleanProgram (ccclean)
#! /bin/ksh
# cclean - Clean up all VersionVault processes after a fault.
#
PSOPTS="-ef"
if [ ! -f /opt/hcl/ccm/versionvault/bin/cleartool ] ; then
echo this is not a VersionVault host
exit
fi
# Attempt to stop VersionVault cleanly
PID=`ps $PSOPTS | grep albd_server | grep -v grep`
if [ "${PID}" != "" ] ; then
/opt/hcl/ccm/versionvault/etc/versionvault stop
fi
# Make sure all VersionVault processes have stopped
ccend="0"
while [ "$ccend" == 0 ]
do
PID=`ps $PSOPTS | egrep '(albd_server|admin_server|ccfs_server|credmap_server
|db_server|mntrpc_server|msadm_server|promote_server|shipping_server|view_server|vob_server|vobrpc_server)' | grep -v grep`
if [ "${PID}" != "" ] ; then
echo "Attempting to kill VersionVault servers."
pkill albd_server
pkill admin_server
pkill ccfs_server
pkill credmap_server
pkill db_server
pkill mntrpc_server
pkill msadm_server
pkill promote_server
pkill shipping_server
pkill view_server
pkill vob_server
pkill vobrpc_server
sleep 1
else
echo "VersionVault servers have exited."
ccend="1"
fi
done
Sample VCS configuration
The following is a sample VCS configuration file (/etc/VRTSvcs/conf/config/main.cf), which includes a HCL VersionVault service group and resources. In this example, the sample scripts in previous sections were created in the /etc/VRTSvcs directory, but could be placed in any directory that is accessible by root.
include "types.cf"
cluster vcs1 (
UserNames = { admin = annOniNhoInwMr }
ClusterAddress = "19.34.112.245"
Administrators = { admin }
CredRenewFrequency = 0
CounterInterval = 5
)
system hanode1 (
)
system hanode2 (
)
group VersionVault (
SystemList = { hanode1 = 0, hanode2 = 1 }
AutoStartList = { hanode1 }
)
Application CC (
StartProgram = "/etc/VRTSvcs/cconline"
StopProgram = "/etc/VRTSvcs/ccoffline"
CleanProgram = "/etc/VRTSvcs/ccclean"
MonitorProcesses = { "/opt/hcl/ccm/versionvault/etc/albd_server" }
)
IP CC-IP (
Device @hanode1 = hme0
Device @hanode2 = hme0
Address = "19.34.112.235"
)
NIC CC-NIC (
Device @hanode1 = hme0
Device @hanode2 = hme0
)
CC requires CC-IP
CC-IP requires CC-NIC
// resource dependency tree
//
// group VersionVault
// {
// Application CC
// {
// IP CC-IP
// {
// NIC CC-NIC
// }
// }
// }
group ClusterService (
SystemList = { hanode2 = 0, hanode1 = 1 }
UserStrGlobal = "vcs1_14141@https://19.34.112.28:8443;vcs1_14141@https://19.34.112.30:8443;"
AutoStartList = { hanode2, hanode1 }
OnlineRetryLimit = 3
OnlineRetryInterval = 120
)
IP webip (
Device = hme0
Address = "19.34.112.245"
NetMask = "255.255.252.0"
)
NIC csgnic (
Device = hme0
)
NotifierMngr ntfr (
SmtpServer = "smtp.server.com"
SmtpRecipients = { "user@address.com" = Information }
)
VRTSWebApp VCSweb (
Critical = 0
AppName = vcs
InstallDir = "/opt/VRTSweb/VERITAS"
TimeForOnline = 5
RestartLimit = 3
)
VCSweb requires webip
ntfr requires csgnic
webip requires csgnic
// resource dependency tree
//
// group ClusterService
// {
// VRTSWebApp VCSweb
// {
// IP webip
// {
// NIC csgnic
// }
// }
// NotifierMngr ntfr
// {
// NIC csgnic
// }
// }