Anvil-manage-dr

From Alteeve Wiki
Revision as of 00:52, 1 August 2024 by Digimer (talk | contribs) (Created page with "{{man_header}} = NAME = anvil-manage-dr - This program manages if a server is (and when) a server is protected by a DR host. = SYNOPSIS = '''anvil-manage-dr --server <server>''' ''<command> ''[''options''] = DESCRIPTION = This tool is used to manage the protection of servers on DR hosts. = OPTIONS = ;-?, -h, '''--help''' : Show this man page. ; '''--log-secure''' : When logging, record sensitive data, like passwords. ; -v, -vv, -vvv : Set the log leve...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

 Alteeve Wiki :: Man Pages :: Anvil-manage-dr

NAME

anvil-manage-dr - This program manages if a server is (and when) a server is protected by a DR host.

SYNOPSIS

anvil-manage-dr --server <server> <command> [options]

DESCRIPTION

This tool is used to manage the protection of servers on DR hosts.

OPTIONS

-?, -h, --help
Show this man page.
--log-secure
When logging, record sensitive data, like passwords.
-v, -vv, -vvv
Set the log level to 1, 2 or 3 respectively. Be aware that level 3 generates a significant amount of log data.

Commands:

--anvil
When linking or unlinking a DR host to an Anvil! node, this switch indicates the Anvil! being linked or unlinked to.
--connect
Connect a server already on DR to it's DR copy, update the data there if needed and begin streaming replication.
--disconnect
Disconnect a server from the DR image. This will end streaming replication.
--dr-host
This is the host name or host UUID for the DR to use. It is optional if only one DR host is connected to this Anvil! node, but required if two or more are defined. It is also use when linking or unlinking DR hosts to Anvil! nodes.
--license-file
This is the path to the license file, needed when setting up "long-throw" DR for the first time.
--link
This takes an --anvil and a --dr-host to enable using the DR host as a target for the Anvil! node.
--protect
The sets up the server to be imaged on DR, if it isn't already protected.
Notes
If the server is not running, the DRBD resource volume(s) will be brought up. Both nodes need to be online and in the cluster.
--protocol <sync,short-throw,long-throw>, default 'short-throw'
This allows the protocol used to replicate data to the DR host to be configured. By default, 'short-throw' is used.
Modes:
short-throw (default)
This tells the storage layer to consider the write to be completed once the data is on the active node's network transmit buffer. In this way, the DR host is allowed to fall behind a small amount, but the active nodes will not slow down because of higher network transit times to the DR location.

NOTE: The transmit (TX) buffer size can be checked / updated with 'ethtool -g <link_device>'. If the transmit buffer fills, storage will hold until the buffer flushes, causing periodic storage IO waits. You can increase the buffer size to a certain degree with'ethtool -G <link_device> tx <size>' (set on all storage network link devices on both nodes. For more information, see:

https://www.linuxjournal.com/content/queueing-linux-network-stack
or
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/monitoring-and-tuning-the-rx-ring-buffer_configuring-and-managing-networking
If you set the maximum transmit buffer size and still run into IO waits, consider 'long-throw'.

sync

This tells the storage layer to consider the write complete when the data has reached the DR host's storage (when the data is committed to disk on DR). This means that the DR host will never fall behind. However, if the DR's network latency is higher or the bandwidth to the DR is lower than that of the latency/bandwidth between the nodes, then total storage performance will be reduced to DR network speeds while DR is connected.
This should be tested before implemented in production.
long-throw
This is an option that requires an additional license fee to use.
This option (based on LINBIT's DRBD Proxy) and is designed for DR hosts that are connected over a wide-area network (or other cases where the connection to the DR is high-latency, low bandwidth or intermittently interrupted). It uses RAM on the host to act, effectively, as a very large transmit buffer. This requires allocating host RAM to the task, and so could reduces the available RAM assignable to assign to servers.
In this mode, the DR host is allowed to fall further behind production, but it significantly reduces (hopefully eliminates) how often node replication waits because of a full transmit buffer.
The default size is 16 MiB, with a maximum size of 16 GiB. When the size is set to over 1 GiB, the size allocated to this buffer is accounted for when calculating available RAM that can be assigned to hosted servers.
--remove
This removes the DR image from the DR host for the server, freeing up space on DR but removing the protection afforded by DR.
--show
This will show the list of available Anvil! nodes, DR hosts and servers.
--server <server name or uuid> (required)
This is the name or UUID of the server being worked on.
--unlink
This takes an --anvil and a --dr-host to disable using the DR host as a target for the Anvil! node.
--update
This tells the DR to be connected and sync, Once the volume(s) on DR are 'UpToDate', the connection is closed. This provides a point in time update of the server's image on DR.
--Yes
Note the capital 'Y'. This can be set to proceed without confirmation. Use carefully with '--protect' and '--remove'! If the '--job-uuid' is set, this is assumed and no prompt will be presented.

AUTHOR

Written by Madison Kelly, Alteeve staff and the Anvil! project contributors.

REPORTING BUGS

Report bugs to users@clusterlabs.org

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.