Editing the VCS Main.cf File
Editing the VCS Main.cf File
If you're like me and work on all sorts of things in the course of your sysadmin duties,
working with Veritas Cluster Server has its pros and cons. On the one hand, it's great
once it's all set up and working correctly, and troubleshooting it is fairly easy if you're
working off of a solid foundation. On the other hand, making simple additions to the
configuration file can be a lengthy and confusing ordeal.
Here's a little trick I picked up along the way, in my experience working with VCS. It's not
exactly kosher (if you like to follow rules to the letter), but it works and it's 99% legitimate :)
Let's say, for instance, you wanted to add an NFS mount resource to your VCS cluster
configuration. For ease of example, we'll assume you either know the syntax of the main
configuration file (main.cf) or can find another cluster setup somewhere else on your
network that you can "borrow" from (always more convenient ;) and modify.
Note that this entire process will keep VCS happy and won't cause any sort of split-brain
condition that might result from your just manually editing the configuration file and
rebooting your server (If things are working correctly, VCS will probably just overwrite your
changes if you do this, anyway)
The first thing you'll want to do is to open the main.cf file for editing in memory. You can do
this with the haconf command, like so:
Now, copy off ( just in case ) and open the main.cf file (Generally located in the
/etc/VRTSvcs/conf/config directory) in your favorite editor and paste that other
configuration addition to the bottom of your config file. We'll assume it's something simple,
like this (Note that I haven't included the entire entry for brevity's sake and that you'll
also not want to include the "dependency tree" lines. The ones that start with "//" -
These will be created for you during this process):
group nfs_sg (
SystemList = { host1 = 0, host2 = 1 }
AutoStartList = { host1, host2 }
)
DiskGroup nfsdg (
DiskGroup = nfsdg
)
...
Now, you'll want to modify the parts that need modifying to suit your particular setup and
move your augmented main.cf to another directory:
host # hacf -verify /temporary/directory <--- This command will assume that there is a
main.cf file in the directory you specify
Then, and this is the part that takes the most work out of your job, use hacf to create a
commands file (These are commands you would normally have to type at the command
line. There are so many of them involved in almost any addition, that I always update this
way, just so there's no way I can forget one!):
This will create a file called main.cmd in the /temporary/directory. This is chock full of
commands that you would normally have to execute in order to augment your VCS
configuration.
Now, instead of using the "hacf -cmdtocf" command (which should copy the main.cmd file
to your configuration, but doesn't always work correctly), do this instead: Simply execute the
main.cmd file you just created:
host # sh /etc/VRTSvcs/conf/config/main.cmd
Note: You're going to get a million errors flying across the screen. These are all warning
you that you are attempting to add or modify a resource that already exists or has the
property you're attempting to change it to. Don't worry about these at all. The errors result in
the commands not being executed. Running the entire main.cmd file, and just ignoring
those errors, ensures that every "new" command you need to enter will be entered :)
Now that you're all done "running all those commands" you can close the main.cf file in
memory the proper way with haconf again, like this: