drbdlinks [OPTION]... [start|stop|auto|status|monitor|checklinks]
drbdlinks is a program that will manage creation and removal of symbolic links. It is primarily used with clusters of machines using either shared storage or the "DRBD" replicated block device.
While the name of the program is "drbdlinks", it can be used in any shared-storage sort of environment where the shared storage is only mounted on the active node. In cases like NFS where the shared storage is always mounted on all nodes, drbdlinks is not necessary.
The advantage over creating static symbolic links is that package updates often require that directories point at real files, so updates can often fail if you do not have the shared storage mounted.
drbdlinks also supports multiple instances of links, in the case of active/active clusters. For example, if you have MySQL running in one resource group, and Apache running in another, you can use the "-c" switch to specify a configuration file for each resource group.
A simple configuration file, "/etc/drbdlinks.conf", specifies the links. This can be used to manage links for /etc/httpd, /var/lib/pgsql, and other system directories that need to appear as if they are local to the system when running applications after a drbd shared partition has been mounted.
Optionally, configuration directives can also be written to files in "/etc/drbdlinks.d" with the suffix ".conf", which are loaded after the "/etc/drbdlinks.conf" file, in sorted order.
When run with "start" as the mode, drbdlinks will rename the existing files/directories, and then make symbolic links into the DRBD partition. "stop" does the reverse.
Mode "checklinks" will report any links that do not exist in the destination area. During initial setup and configuration, this can help check that you have the destination file-system set up with the required components.
If run with "initialize_shared_storage", destination links specified in the configuration file will be populated from the source storage. This is useful for initial setup to populate the shared storage. Preceding paths will be populated if they share the same name from source to destination.
The "monitor" and "status" modes will check the file-system against the configuration file and will report "running" (monitor mode) or "OK" (status mode) if all links appear to be up. Otherwise they report "down" or "stopped" (respectively).
By default, the rename appends .drbdlinks to the name, but this can be overridden in the configuration file.
The "list" mode just show the list of links, with each line showing the link, destination, and a 0/1 flag for bindMount status. This may be useful for user scripts without having to parse the configuration.
An init script is included which runs "stop" before heartbeat starts, and after heartbeat stops. This is done to try to ensure that when the shared partition isn't mounted, the links are in their normal state.
drbdlinks has several options, using either short or long variants.
- -h, --help
Print a short help message describing the available options and exit.
- -c, --config-file=CONFIGFILE
Specify an alternate config file. The default config file is /etc/drbdlinks.conf. Alternate config files should have a "drbdlinks-" prefix, e.g. "drbdlinks-httpd.conf".
- -s, --suffix=SUFFIX
Name to append to the local file-system name when the link is in place. The default is "drbdlinks", which would result in a renamed file like "/etc/httpd.drbdlinks".
- -v, --verbose
Increase verbosity level by 1 for every occurrence of this option.
Here are a few examples of how drbdlinks can be used.
The most straight-forward, and default, method for starting drbdlinks:
To use a suffix different from the default when linking to a file or directory, the -s option can be used, specifying the desired string:
drbdlinks -s orig start
would rename the file-system name to "name.orig".
Increase the verbosity to assist in debugging:
Use an alternate configuration file, possibly from with a DRBD mounted file-system:
drbdlinks -c /shared1/drbdlinks-httpd.conf start
This would use the specified configuration file, found on our DRBD device mounted on /shared1. This would allow us to easily keep drbdlinks configurations tied to a specific set of data on a DRBD disk in an active/active sort of HA configuration.
DRBD(8), drbdadm(8), drbdsetup(8), heartbeat(8).
drbdlinks was written by Sean Reifschneider <email@example.com>.
This manual page was written by Cyril Bouthors <firstname.lastname@example.org>, for the Debian project (but may be used by others). Sean Reifschneider modified it for status and monitor arguments, and included it in the base drbdlinks release. Mike Loseke <email@example.com> added the sections on options and examples.