Configuring a Disaster Recovery Host and List of M3 Command Line Tools: Difference between pages

From Alteeve Wiki
(Difference between pages)
Jump to navigation Jump to search
No edit summary
 
 
Line 1: Line 1:
{{howto_header}}
{{howto_header}}


A Disaster Recovery host, aka "DR Host", is a physical server that is installed in a physically different location from the production Anvil! cluster.
The Anvil! uses a fairly naming convention. That is;


The purpose of the DR host is to provide a fall-back location to run servers should the production cluster suffer a catastrophic failure. Consider failure scenarios like;
* Tools that start with <span class="code">striker-X</span> are tools useful mainly to Striker dasboards.
* Tools that start with <span class="code">anvil-X</span> are tools that can be useful on any machine in the Anvil! cluster


* Accidental fire suppression discharge
Separately, [[Scancore]] has a collection of [[scan agents]], programs designed to collect information on hardware, software or other sources of information that can prove useful to the Scancore decision engine. These agents are core to the Anvil! system's [[Intelligent Availability]] capabilities.
* Transformer failure feeding the data-center
* Localized fire in the cluster location


In such scenarios, the facility might still be perfectly able to function, but all cluster equipment is damaged or destroyed.
= Striker-Specific Tools =


The DR host is often installed in an opposite corner of the facility, in another building on campus, or in an entirely different city. Where ever it happens to be, the DR host can be pressed into service!  
{| class="wikitable"
!style="white-space:nowrap; text-align:left;"|Command
!style="white-space:nowrap; text-align:left;"|Brief Description
|-
!style="white-space:nowrap; text-align:left;"|[[striker-auto-initialize-all]]
|Tools to autonomously configure all machines in an Anvil! IA cluster
|-
!style="white-space:nowrap; text-align:left;"|[[striker-boot-machine]]
|Tool used to boot physical machines that have IPMI configuration information.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-check-machines]]
|This program tests access and, when not reachable, checks the power state if out of band management is available.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-collect-debug]]
|This program collects data needed to help diagnose problems with an Anvil! system.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-db-status]]
|This shows the current status of striker dashboards
|-
!style="white-space:nowrap; text-align:left;"|[[striker-file-manager]]
|This manages the files available for use by servers
|-
!style="white-space:nowrap; text-align:left;"|[[striker-get-peer-data]]
|This manages peering two Striker dashboards
|-
!style="white-space:nowrap; text-align:left;"|[[striker-get-screenshots]]
|Tool used to collect screenshots from Anvil! subnodes and DR hosts
|-
!style="white-space:nowrap; text-align:left;"|[[striker-initialize-host]]
|Tool used on Striker dashboards to initialize new Nodes and DR hosts.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-manage-install-target]]
|This manages the "Install Target" feature on Striker dashboards
|-
!style="white-space:nowrap; text-align:left;"|[[striker-manage-peers]]
|This manages peering two Striker dashboards
|-
!style="white-space:nowrap; text-align:left;"|[[striker-parse-oui]]
|This parses the [[IEEE]] [[OUI]] file and parses it for storage in the Anvil database
|-
!style="white-space:nowrap; text-align:left;"|[[striker-purge-target]]
|This tool purges the target from all Anvil! databases.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-scan-network]]
|This scans accessible networks to create a map of MAC addresses to IP addresses
|-
!style="white-space:nowrap; text-align:left;"|[[striker-show-db-counts]]
|This shows the number of records in accessible databases.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-show-jobs]]
|This shows the queued, running and (recently) completed jobs.
|-
!style="white-space:nowrap; text-align:left;"|[[striker-update-cluster]]
|This program updates all physical machines in an Anvil! cluster
|-
|}


Storage replication to the DR is streaming and ordered, but it is not synchronous. This way, the latency of the remote connection does not impact day to day performance, but the data being replicated to the DR host is ordered, even across multiple virtual disks. As such, the DR host may be allowed to fall a few seconds behind production, but the data will be contiguous.
= General Tools =


What this means is that your servers will boot on the DR host, file system journals will replay, database write-ahead logs will work, and your applications will start, no different than if a machine had simply rebooted
{| class="wikitable"
 
!style="white-space:nowrap; text-align:left;"|Command
The time to get the DR site online is measured in minutes. Far faster than recovering from even onsite backups with standby hardware!
!style="white-space:nowrap; text-align:left;"|Brief Description
 
|-
= DR Host Hardware Considerations =
!style="white-space:nowrap; text-align:left;"|[[anvil-access-module]]
 
|External-facing interface to Anvil! internal functions.
In an ideal configuration, there would be a dedicate DR host to match the hardware of each Anvil! node. In such a setup, a full fail-over to the DR site would be possible without any loss in performance.
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-boot-server]]
For those with stricter budgets, a DR host's hardware can be sized such that a subset of core production servers are protected only.
|Tool used to boot servers (virtual machines) on the Anvil! IA cluster.
 
|-
Another possible configuration is to have one (or a few) much larger machines that each can provide DR hosting to 2 or more production nodes. Of course, the performance in such a configuration may be impacted. It is strongly advised to test that performance will be acceptable prior to deployment.
!style="white-space:nowrap; text-align:left;"|[[anvil-change-password]]
 
|Tool used to change / reset the main Anvil! password.
= Connecting a DR Host to an Anvil Node =
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-check-memory]]
The first step is to link a DR host to a node. Initially, a DR host is "floating", meaning it's connected to the cluster but not assigned to any node.  
|This reports the total memory used by all processes with to passed-in program name.
 
|-
{{note|1=In a future release, DR functions will be moved into the Striker UI. Until then management is done via the command line.}}
!style="white-space:nowrap; text-align:left;"|[[anvil-configure-host]]
 
|This program configures the host for use in an Anvil! cluster.
We will use the command line tool <span class="code">[[anvil-manage-dr]]</span>.
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-delete-server]]
{{note|1=The <span class="code">[[anvil-manage-dr]]</span> tool can be run from any machine in the cluster.}}
|This program deletes a server from an Anvil! sub-cluster.
 
|-
We can check the current associations using the '<span class="code">--show</span>' switch.
!style="white-space:nowrap; text-align:left;"|[[anvil-download-file]]
 
|This program downloads a file from a URL
<syntaxhighlight lang="bash">
|-
anvil-manage-dr --show
!style="white-space:nowrap; text-align:left;"|[[anvil-file-details]]
</syntaxhighlight>
|Display details of the file passed in
<syntaxhighlight lang="text">
|-
Anvil! Nodes
!style="white-space:nowrap; text-align:left;"|[[anvil-join-anvil]]
- Node Name: [an-anvil-01], Description: [Demo VM Anvil!]
|This tool assembles two subnodes into a node.
- No linked DR hosts yet.
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-maintenance-mode]]
-=] DR Hosts
|This program manages flagging a machine in an Anvil! cluster as being in maintenance mode
- Name: [an-a01dr01.alteeve.com]
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-alerts]]
-=] Servers
|This program manages alerts; Email servers, recipients, alert-override overrides, and generating test alerts.
- Server name: [srv01-bar] on Anvil! Node: [an-anvil-01]
|-
- Server name: [srv02-win2019] on Anvil! Node: [an-anvil-01]
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-daemons]]
- Server name: [srv03-el6] on Anvil! Node: [an-anvil-01]
|Tool used to monitor and manage Anvil! daemons.
- Server name: [srv04-min] on Anvil! Node: [an-anvil-01]
|-
</syntaxhighlight>
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-dr]]
 
|This program manages if a server is (and when) a server is protected by a DR host.
In this example cluster, there is one node called "<span class="code">an-anvil-01</span>", and one DR host called "<span class="code">an-a01dr01.alteeve.com</span>". There are four servers that we'll protect later.
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-files]]
== Linking a DR Host to a Node ==
|This program manages the files sync'ed across machines in the Anvil! cluster
 
|-
The first step is to "link" the DR host "<span class="code">an-a01dr01</span>" to the node "<span class="code">an-anvil-01</span>". When a DR is linked, it simply tells the cluster that the DR host is a candidate target for protecting servers.
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-firewall]]
 
|This program manages the firewall rules on the host.
<syntaxhighlight lang="bash">
|-
anvil-manage-dr --anvil an-anvil-01 --dr-host an-a01dr01 --link
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-host]]
</syntaxhighlight>
|Tool used to check or set various configuration options for a host.
<syntaxhighlight lang="text">
|-
The DR host: [an-a01dr01] has been linked to the Anvil! node: [an-anvil-01].
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-keys]]
</syntaxhighlight>
|Tool used to manage ssh keys.
 
|-
We can confirm that this link has been created by re-running "<span class="code">--show</span>".
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-power]]
 
|This program can power off, reboot, or set a flag indicating one of these actions are required.
<syntaxhighlight lang="bash">
|-
anvil-manage-dr --show
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-server]]
</syntaxhighlight>
|Tool used to manage a server, like resync'ing servers on a rebuilt host.
<syntaxhighlight lang="text">
|-
Anvil! Nodes
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-server-storage]]
- Node Name: [an-anvil-01], Description: [Demo VM Anvil!]
|This tool is used to add a disk, grow an existing disk, change the ISO (optical disk) in a virtual optical drive, and change boot devices.
- Linked: [an-a01dr01], link UUID: [daea7173-748a-4874-8126-5858d6226e5b]
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-server-system]]
-=] DR Hosts
|Tool used to manage the system configuration of a hosted server.
- Name: [an-a01dr01.alteeve.com]
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-storage-groups]]
-=] Servers
|This program manages if a server is (and when) a server is protected by a DR host.
- Server name: [srv01-bar] on Anvil! Node: [an-anvil-01]
|-
- Server name: [srv02-win2019] on Anvil! Node: [an-anvil-01]
!style="white-space:nowrap; text-align:left;"|[[anvil-manage-vnc-pipe]]
- Server name: [srv03-el6] on Anvil! Node: [an-anvil-01]
|builds or destroys &quot;VNC pipe&quot;
- Server name: [srv04-min] on Anvil! Node: [an-anvil-01]
|-
</syntaxhighlight>
!style="white-space:nowrap; text-align:left;"|[[anvil-migrate-server]]
 
|Tool to migrate servers between subnodes in an Anvil! node.
Excellent!
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-parse-fence-agents]]
== Adding a DR Host's Volume Group to a Node's Storage Group ==
|Tool to create a unified XML file with all available fence agent metadata.
 
|-
In an Anvil! cluster, [[storage group]]s are groupings of [[LVM]] [[volume groups]] across subnodes and DR hosts. These are used to know where to create the backing [[logical volumes]] for a server's virtual hard drive.
!style="white-space:nowrap; text-align:left;"|[[anvil-pcs-wrapper]]
 
|Tools to prevent parallel runs of 'pcs'.
When a server is "protected" by a DR host, a new logical volume is created on that DR host and it is then added to the server's replicated storage. In order to know which VG to use when creating these new LVs, the DR host's volume group(s) must be added to the node's storage group(s).  
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-provision-server]]
Consider this example;
|Tool to provision new servers.
 
|-
{| class="wikitable" style="margin:auto"
!style="white-space:nowrap; text-align:left;"|[[anvil-rename-server]]
|+ Server: <span class="code">srv01-database</span> on <span class="code">an-a01n01</span>.
|Tool to rename servers.
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-report-usage]]
|This program reports the current resource usage of servers and the available resources remaining on Anvil! nodes
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-safe-start]]
|This program safely joins an Anvil! subnode to a node.
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-safe-stop]]
|Tool to show IP addresses, MAC addresses and interface names in use on the system
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-show-local-ips]]
|Tool to show IP addresses, MAC addresses and interface names in use on the system
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-shutdown-server]]
|This program shuts down servers hosted on the Anvil! cluster.
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-special-operations]]
|This program is generally meant to be used by other programs.
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-sync-shared]]
|Tool to sync and manage files on the Anvil! cluster.
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-update-issue]]
|Tool to update /etc/issues with the current IP addresses on the system
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-update-system]]
|This program updates the local operting system
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-version-changes]]
|Tool to do post update changes to the Anvil! cluster
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-virsh-wrapper]]
|Tools to prevent parallel runs of 'virsh'.
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-watch-bonds]]
|Tools to monitor the state of bonded network interfaces
|-
!style="white-space:nowrap; text-align:left;"|[[anvil-watch-drbd]]
|This program displays the status of DRBD connections in a concise format.
|-
|-
!Storage Group
!style="white-space:nowrap; text-align:left;"|[[anvil-watch-power]]
!Subnode/DR Host
|Tool used to watch the status of UPSes powering an Anvil! cluster.
!Volume Group
|-
|-
|rowspan="2" class="code"|Storage Group 1
!style="white-space:nowrap; text-align:left;"|[[anvil-watch-servers]]
|class="code"|an-a01n01
|Tool used to watch the status of servers on an Anvil! node.
|class="code"|an-a01n01_vg0
|-
|-
|class="code"|an-a01n02
|class="code"|an-a01n02_vg0
|}
|}


When we use <span class="code">[[anvil-manage-storage-groups]]</span>, we can see this in detail;
= Scan Agents =


<syntaxhighlight lang="bash">
{| class="wikitable"
anvil-manage-storage-groups --anvil an-a01n01
!style="white-space:nowrap; text-align:left;"|Command
</syntaxhighlight>
!style="white-space:nowrap; text-align:left;"|Brief Description
<syntaxhighlight lang="text">
|-
Anvil Node: [an-anvil-01] - Demo VM Anvil!
!style="white-space:nowrap; text-align:left;"|[[scan-apc-pdu]]
- Subnode: [an-a01n01] volume groups;
|Scancore scan agent for APC-brand switched PDUs.
- [an-a01n01_vg0], size: [248.41 GiB], free: [62.68 GiB], internal UUID: [Lzlhon-E4gr-2PEE-IInb-JmGr-uRID-gLrtDy]
|-
- Subnode: [an-a01n02] volume groups;
!style="white-space:nowrap; text-align:left;"|[[scan-apc-ups]]
- [an-a01n02_vg0], size: [248.41 GiB], free: [62.68 GiB], internal UUID: [z2an5E-JHq9-p1Hl-ln02-17P7-ciZk-OtjDZI]
|Scancore scan agent for APC-brand network connected UPSes.
- Storage group: [Storage group 1], UUID: [c6f1b34d-052b-49e3-a4a2-b9e5b31f3280]
|-
- [an-a01n01]:[an-a01n01_vg0]
!style="white-space:nowrap; text-align:left;"|[[scan-cluster]]
- [an-a01n02]:[an-a01n02_vg0]
|Scancore scan agent for pacemaker cluster status.
 
|-
Disaster Recovery Hosts:
!style="white-space:nowrap; text-align:left;"|[[scan-drbd]]
- DR Host: [an-a01dr01] VGs:
|Scancore scan agent for LINBIT's DRBD resources.
- [an-a01dr01_vg0], size: [248.41 GiB], free: [170.53 GiB], internal UUID: [N9TvqT-IhEr-cjb0-Xs3l-2dQG-enDv-DZugyK]
|-
</syntaxhighlight>
!style="white-space:nowrap; text-align:left;"|[[scan-filesystems]]
 
|Scancore scan agent for monitoring filesystems.
This example is pretty simple, as there is only one volume group per subnode and there's only one volume group on the DR host. So adding the DR host's VG to the storage group is simple;
|-
 
!style="white-space:nowrap; text-align:left;"|[[scan-hardware]]
<syntaxhighlight lang="bash">
|Scancore scan agent for monitoring non-IPMI hardware status.
anvil-manage-storage-groups --anvil an-anvil-01 --group "Storage group 1" --add --member N9TvqT-IhEr-cjb0-Xs3l-2dQG-enDv-DZugyK
|-
</syntaxhighlight>
!style="white-space:nowrap; text-align:left;"|[[scan-hpacucli]]
<syntaxhighlight lang="text">
|Scancore scan agent for HPE brand RAID controllers
Added the volume group: [an-a01dr01_vg0] on the host: [an-a01dr01] to the storage group: [Storage group 1]. The new member UUID is: [ac276cff-982a-4b4a-8956-c3291c81ef73].
|-
</syntaxhighlight>
!style="white-space:nowrap; text-align:left;"|[[scan-ipmitool]]
 
|Scancore scan agent for IPMI BMC sensor data.
Now if we look again, the storage group now has the DR host's VG.
|-
 
!style="white-space:nowrap; text-align:left;"|[[scan-lvm]]
 
|Scancore scan agent for logival volume management.
{| class="wikitable" style="margin:auto"
|+ Server: <span class="code">srv01-database</span> on <span class="code">an-a01n01</span>.
|-
|-
!Storage Group
!style="white-space:nowrap; text-align:left;"|[[scan-network]]
!Subnode/DR Host
|Scancore scan agent for network interface states.
!Volume Group
|-
|-
|rowspan="3" class="code"|Storage Group 1
!style="white-space:nowrap; text-align:left;"|[[scan-server]]
|class="code"|an-a01n01
|Scancore scan agent for KVM/qemu virtual server states.
|class="code"|an-a01n01_vg0
|-
|-
|class="code"|an-a01n02
!style="white-space:nowrap; text-align:left;"|[[scan-storcli]]
|class="code"|an-a01n02_vg0
|Scancore scan agent for LSI based RAID controllers, including Dell 'PERC' RAID controllers.
|-
|-
|class="code"|an-a01dr01
|class="code"|an-a01dr01_vg0
|}
|}


The more detailed view;
= Specialized Tools =


<syntaxhighlight lang="bash">
These tools are designed for use primarily by other tools, and are not meant to be used by administrators directly.
anvil-manage-storage-groups --show
</syntaxhighlight>
<syntaxhighlight lang="text">
Anvil Node: [an-anvil-01] - Demo VM Anvil!
- Subnode: [an-a01n01] volume groups;
- [an-a01n01_vg0], size: [248.41 GiB], free: [62.68 GiB], internal UUID: [Lzlhon-E4gr-2PEE-IInb-JmGr-uRID-gLrtDy]
- Subnode: [an-a01n02] volume groups;
- [an-a01n02_vg0], size: [248.41 GiB], free: [62.68 GiB], internal UUID: [z2an5E-JHq9-p1Hl-ln02-17P7-ciZk-OtjDZI]
- Storage group: [Storage group 1], UUID: [c6f1b34d-052b-49e3-a4a2-b9e5b31f3280]
- [an-a01dr01]:[an-a01dr01_vg0]
- [an-a01n01]:[an-a01n01_vg0]
- [an-a01n02]:[an-a01n02_vg0]


Disaster Recovery Hosts:
{| class="wikitable"
- DR Host: [an-a01dr01] VGs:
!style="white-space:nowrap; text-align:left;"|Command
- [an-a01dr01_vg0], size: [248.41 GiB], free: [170.53 GiB], internal UUID: [N9TvqT-IhEr-cjb0-Xs3l-2dQG-enDv-DZugyK]
!style="white-space:nowrap; text-align:left;"|Brief Description
</syntaxhighlight>
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-daemon]]
We're not ready to protect servers!
|This is the main Anvil! [[daemon]]. It maintains the state of the various machines in the cluster, runs jobs as needed, etc.
 
|-
= Protecting a Server =
!style="white-space:nowrap; text-align:left;"|[[anvil-monitor-network]]
 
|This is a daemon that watches for changes to network interfaces. When changes are detected, the '<span class="code">[[scan-network]]</span>' [[scan agent]] is called. This ensures that changes are quickly reflected in the Anvil! database, which is particularly useful when mapping network interfaces.
Protecting a server is the process of configuring the cluster to allow for the server to run on a DR host. This involves copying over the server's "[[definition file]]" to the DR host, and extending the server's replicated storage to the DR host.  
|-
 
!style="white-space:nowrap; text-align:left;"|[[anvil-monitor-performance]]
== Replication Protocols ==
|This is a daemon that collects performance data and records it in the <span class="code">anvil.log</span> log file. This is designed to help diagnose performance issues by keeping track of CPU load, I/O wait times, and other metrics.  
 
|-
To extend the storage replication to the DR host, we must decide ''how'' we want the storage to replicate. The is controlled by selecting a "protocol".  
!style="white-space:nowrap; text-align:left;"|[[alteeve-repo-setup]]
 
|This tool configures the [https://www.alteeve.com/an-repo/ Alteeve repository]. Primarily it is used to setup the repository needed to access Alteeve software, and to switch between the [[community]] and [[enterprise]] repositories.
The two subnodes in an Anvil! node '''always''' replicate using the '<span class="code">sync</span>' protocol. This is fine as there is a dedicated link between the subnodes to ensure that storage replication happens very quickly and it ensures no data loss in case of a catastrophic and unexpected fault.  
|-
 
!style="white-space:nowrap; text-align:left;"|[[fence_delay]]
Over DR, the replication link could be higher latency and/or lower bandwidth. In such cases, using the '<span class="code">sync</span>' protocol would cause a performance hit, as a write to disk would not be complete until the data reaches persistent storage on the DR host. For this reason, two alternative replication protocols are supported; '<span class="code">short-throw</span>' and '<span class="code">long-throw</span>'.  
|This is a pseudo [[fence agent]] that the Anvil! uses automatically when a subnode has an [[IPMI]] [[BMC]]. It's purpose is the slow down [[Pacemaker]] to give time for the IPMI BMC to boot after a power fence device, like a switched PDU, cut and restored power to a failed node.
 
{{note|1=The '<span class="code">long-throw</span>' protocol uses a closed-source utility and, as such, requires a licence. [[Contact us]] for more information.}}
 
{| class="wikitable" style="margin:auto"
|+ DR Replication Protocols
|-
|-
!Protocol
!style="white-space:nowrap; text-align:left;"|[[fence_pacemaker]]
!Benefit
|This is a [[DRBD]] fence agent. It acts as a glue layer so that DRBD can request a resource (or node) be fenced, and passing that request on to Pacemaker.
!Drawback
|-
|-
|class="code"|sync
!style="white-space:nowrap; text-align:left;"|[[scancore (man page)|scancore]]
|Maximum data protection
|This is the [[Scancore]] daemon, which is the component of the Anvil! cluster that provides all of the Intelligent Availability / risk mitigation.
|Storage performance limited to slowest network latency/bandwidth
|-
|-
|class="code"|short-throw
!style="white-space:nowrap; text-align:left;"|[[unfence_pacemaker]]
|Minimal performance hit over DR link
|This is the DRBD "unfence" agent. It acts as a glue layer so that DRBD can request a resource be unfenced, and passing that request on to Pacemaker.
|DR host "falls behind" production
|-
|-
|class="code"|long-throw
|Supports high-latency, low bandwidth links
|DR is allowed to fall further behind. Requires a license
|}
|}
<span class="code"></span>
<syntaxhighlight lang="bash">
</syntaxhighlight>
<syntaxhighlight lang="text">
</syntaxhighlight>


{{footer}}
{{footer}}

Revision as of 15:28, 1 October 2024

 Alteeve Wiki :: How To :: List of M3 Command Line Tools

The Anvil! uses a fairly naming convention. That is;

  • Tools that start with striker-X are tools useful mainly to Striker dasboards.
  • Tools that start with anvil-X are tools that can be useful on any machine in the Anvil! cluster

Separately, Scancore has a collection of scan agents, programs designed to collect information on hardware, software or other sources of information that can prove useful to the Scancore decision engine. These agents are core to the Anvil! system's Intelligent Availability capabilities.

Striker-Specific Tools

Command Brief Description
striker-auto-initialize-all Tools to autonomously configure all machines in an Anvil! IA cluster
striker-boot-machine Tool used to boot physical machines that have IPMI configuration information.
striker-check-machines This program tests access and, when not reachable, checks the power state if out of band management is available.
striker-collect-debug This program collects data needed to help diagnose problems with an Anvil! system.
striker-db-status This shows the current status of striker dashboards
striker-file-manager This manages the files available for use by servers
striker-get-peer-data This manages peering two Striker dashboards
striker-get-screenshots Tool used to collect screenshots from Anvil! subnodes and DR hosts
striker-initialize-host Tool used on Striker dashboards to initialize new Nodes and DR hosts.
striker-manage-install-target This manages the "Install Target" feature on Striker dashboards
striker-manage-peers This manages peering two Striker dashboards
striker-parse-oui This parses the IEEE OUI file and parses it for storage in the Anvil database
striker-purge-target This tool purges the target from all Anvil! databases.
striker-scan-network This scans accessible networks to create a map of MAC addresses to IP addresses
striker-show-db-counts This shows the number of records in accessible databases.
striker-show-jobs This shows the queued, running and (recently) completed jobs.
striker-update-cluster This program updates all physical machines in an Anvil! cluster

General Tools

Command Brief Description
anvil-access-module External-facing interface to Anvil! internal functions.
anvil-boot-server Tool used to boot servers (virtual machines) on the Anvil! IA cluster.
anvil-change-password Tool used to change / reset the main Anvil! password.
anvil-check-memory This reports the total memory used by all processes with to passed-in program name.
anvil-configure-host This program configures the host for use in an Anvil! cluster.
anvil-delete-server This program deletes a server from an Anvil! sub-cluster.
anvil-download-file This program downloads a file from a URL
anvil-file-details Display details of the file passed in
anvil-join-anvil This tool assembles two subnodes into a node.
anvil-maintenance-mode This program manages flagging a machine in an Anvil! cluster as being in maintenance mode
anvil-manage-alerts This program manages alerts; Email servers, recipients, alert-override overrides, and generating test alerts.
anvil-manage-daemons Tool used to monitor and manage Anvil! daemons.
anvil-manage-dr This program manages if a server is (and when) a server is protected by a DR host.
anvil-manage-files This program manages the files sync'ed across machines in the Anvil! cluster
anvil-manage-firewall This program manages the firewall rules on the host.
anvil-manage-host Tool used to check or set various configuration options for a host.
anvil-manage-keys Tool used to manage ssh keys.
anvil-manage-power This program can power off, reboot, or set a flag indicating one of these actions are required.
anvil-manage-server Tool used to manage a server, like resync'ing servers on a rebuilt host.
anvil-manage-server-storage This tool is used to add a disk, grow an existing disk, change the ISO (optical disk) in a virtual optical drive, and change boot devices.
anvil-manage-server-system Tool used to manage the system configuration of a hosted server.
anvil-manage-storage-groups This program manages if a server is (and when) a server is protected by a DR host.
anvil-manage-vnc-pipe builds or destroys "VNC pipe"
anvil-migrate-server Tool to migrate servers between subnodes in an Anvil! node.
anvil-parse-fence-agents Tool to create a unified XML file with all available fence agent metadata.
anvil-pcs-wrapper Tools to prevent parallel runs of 'pcs'.
anvil-provision-server Tool to provision new servers.
anvil-rename-server Tool to rename servers.
anvil-report-usage This program reports the current resource usage of servers and the available resources remaining on Anvil! nodes
anvil-safe-start This program safely joins an Anvil! subnode to a node.
anvil-safe-stop Tool to show IP addresses, MAC addresses and interface names in use on the system
anvil-show-local-ips Tool to show IP addresses, MAC addresses and interface names in use on the system
anvil-shutdown-server This program shuts down servers hosted on the Anvil! cluster.
anvil-special-operations This program is generally meant to be used by other programs.
anvil-sync-shared Tool to sync and manage files on the Anvil! cluster.
anvil-update-issue Tool to update /etc/issues with the current IP addresses on the system
anvil-update-system This program updates the local operting system
anvil-version-changes Tool to do post update changes to the Anvil! cluster
anvil-virsh-wrapper Tools to prevent parallel runs of 'virsh'.
anvil-watch-bonds Tools to monitor the state of bonded network interfaces
anvil-watch-drbd This program displays the status of DRBD connections in a concise format.
anvil-watch-power Tool used to watch the status of UPSes powering an Anvil! cluster.
anvil-watch-servers Tool used to watch the status of servers on an Anvil! node.

Scan Agents

Command Brief Description
scan-apc-pdu Scancore scan agent for APC-brand switched PDUs.
scan-apc-ups Scancore scan agent for APC-brand network connected UPSes.
scan-cluster Scancore scan agent for pacemaker cluster status.
scan-drbd Scancore scan agent for LINBIT's DRBD resources.
scan-filesystems Scancore scan agent for monitoring filesystems.
scan-hardware Scancore scan agent for monitoring non-IPMI hardware status.
scan-hpacucli Scancore scan agent for HPE brand RAID controllers
scan-ipmitool Scancore scan agent for IPMI BMC sensor data.
scan-lvm Scancore scan agent for logival volume management.
scan-network Scancore scan agent for network interface states.
scan-server Scancore scan agent for KVM/qemu virtual server states.
scan-storcli Scancore scan agent for LSI based RAID controllers, including Dell 'PERC' RAID controllers.

Specialized Tools

These tools are designed for use primarily by other tools, and are not meant to be used by administrators directly.

Command Brief Description
anvil-daemon This is the main Anvil! daemon. It maintains the state of the various machines in the cluster, runs jobs as needed, etc.
anvil-monitor-network This is a daemon that watches for changes to network interfaces. When changes are detected, the 'scan-network' scan agent is called. This ensures that changes are quickly reflected in the Anvil! database, which is particularly useful when mapping network interfaces.
anvil-monitor-performance This is a daemon that collects performance data and records it in the anvil.log log file. This is designed to help diagnose performance issues by keeping track of CPU load, I/O wait times, and other metrics.
alteeve-repo-setup This tool configures the Alteeve repository. Primarily it is used to setup the repository needed to access Alteeve software, and to switch between the community and enterprise repositories.
fence_delay This is a pseudo fence agent that the Anvil! uses automatically when a subnode has an IPMI BMC. It's purpose is the slow down Pacemaker to give time for the IPMI BMC to boot after a power fence device, like a switched PDU, cut and restored power to a failed node.
fence_pacemaker This is a DRBD fence agent. It acts as a glue layer so that DRBD can request a resource (or node) be fenced, and passing that request on to Pacemaker.
scancore This is the Scancore daemon, which is the component of the Anvil! cluster that provides all of the Intelligent Availability / risk mitigation.
unfence_pacemaker This is the DRBD "unfence" agent. It acts as a glue layer so that DRBD can request a resource be unfenced, and passing that request on to Pacemaker.

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Alteeve Enterprise Support Community Support
© 2025 Alteeve. Intelligent Availability® is a registered trademark of Alteeve's Niche! Inc. 1997-2025
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.