OCF_HEARTBEAT_OVSMON(7)
π OCF_HEARTBEAT_OVSMON(7) β the ocf_heartbeat_ovsmonitor page, bestie edition π
okay so this is a page from the OCF resource agents manual, and honestly? it's giving "niche but slay." let's get into it β¨
πΈ NAME πΈ
ocf_heartbeat_ovsmonitor β literally just here to monitor ovs bonding bonds. no cap. π
β¨ SYNOPSIS β¨
ovsmonitor [start | stop | status | monitor | meta-data | validate-all]
that's it. that's the whole vibe check. π
π¦ DESCRIPTION π¦
so the whole point of this icon: it monitors the vitality of a local ovs bond. that's the gig. π
you may set this RA up as a clone resource to monitor the network bonds on different nodes β with the same bond name. and listen, this is not related to the IP address or the network on which a bond is configured, okay? those are different things, don't mix them. you can use this RA to move resources away from a node that has a faulty bond, or to prevent moving resources to such a node at all. it's giving independent control of your resources, without involving cluster intercommunication. π«Ά but β and this is the catch β it requires your nodes to have more than one network bond. more than one. periodt.
the resource configuration requires a monitor operation, because the monitor is the one doing the main part of the work. main character energy, honestly. in addition to the resource configuration, you also need to configure some location constraints, based on a CIB attribute value. and the name of that attribute value is configured in the name option of this RA. iykyk π«
example constraint configuration using crmsh:
location loc_connected_node my_resource_grp rule ="rule_loc_connected_node" -INF: ovsmonitor-bond-public eq 0
example constraint configuration using pcs β only allow my_resource to run on nodes where the eth0 ethernet device is available:
pcs constraint location my_resource rule score=-INFINITY ovsmonitor-bond-public ne 1
now, the ethmonitor works in 3 different modes to test the bond vitality (yes, it says "ethmonitor" in the source, we're keeping it, faithful besties only):
- call
ovs-appctlto see if at least one of the bonding's link status is up (if link is down β error) - call
ovs-ofctland watch the RX counter (if packets come around in a certain time β success) - return error
three modes, one bond, so much drama. π₯
π SUPPORTED PARAMETERS π
bondβ the name of the network bond that should be monitored (e.g.bond-public). the whole reason we're here fr. (unique, required, string, no default)bridgeβ the name of the ovs bridge that contains the bridge. yes that's how it's worded, and no i'm not gonna "fix" it, we keep it exactly. π«‘ (unique, required, string, no default)nameβ the name of the CIB attribute to set. this is the name to be used in the constraints. defaults to"ovsmonitor-'bond_name'". it's the one your constraints point at, so don't lose it π (unique, optional, string, no default)multiplierβ multiplier for the value of the CIB attribute specified in parametername. multiply responsibly β¨ (optional, integer, default 1)repeat_countβ specify how often the bond will be monitored, before the status is set to failed. and heads up: you need to set the timeout of the monitoring operation to at leastrepeat_count * repeat_interval. do the math bestie, or your monitor op will ghost you π (optional, integer, default 5)repeat_intervalβ specify how long to wait, in seconds, between therepeat_counts. the pause between the chaos. β³ (optional, integer, default 10)pktcnt_timeoutβ timeout for the RX packet counter. stop listening for packet counter changes after the given number of seconds. it's not ghosting, it's a deadline. π (optional, integer, default 5)link_status_onlyβ only report success based on link status. do not perform RX counter related connectivity tests. short and sweet, no extra credit. π¦ (optional, boolean, default false)
π SUPPORTED ACTIONS π
this resource agent supports the following actions (operations), and yes, every single one of them has a suggested minimum timeout, so let's go:
startβ starts the resource. suggested minimum timeout:60s.stopβ stops the resource. suggested minimum timeout:20s.statusβ performs a status check. suggested minimum timeout:60s. suggested interval:10s.monitorβ performs a detailed status check. suggested minimum timeout:60s. suggested interval:10s. this is the main character, remember.meta-dataβ retrieves resource agent metadata (internal use only). suggested minimum timeout:5s. don't touch, it's for the internals πvalidate-allβ performs a validation of the resource configuration. suggested minimum timeout:20s.
π EXAMPLE CRM SHELL π
here's an example configuration for a ovsmonitor resource using the crm(8) shell β copy, paste, slay:
primitive p_ovsmonitor ocf:heartbeat:ovsmonitor \
params \
bond=string \
bridge=string \
op monitor depth="0" timeout="60s" interval="10s"
π EXAMPLE PCS π
and here's the same energy for a ovsmonitor resource using pcs(8):
pcs resource create p_ovsmonitor ocf:heartbeat:ovsmonitor \
bond=string \
bridge=string \
op monitor OCF_CHECK_LEVEL="0" timeout="60s" interval="10s"
pick your tool, both ate. π₯
β SEE ALSO β
http://clusterlabs.org/β go be nosy, bestie πΈ
π§ AUTHOR π§
ClusterLabs contributors (see the resource agent source for information about individual authors) π«Ά
okay and for the cute sign-off: this whole thing is from resource-agents, version UNKNOWN (iconic of them honestly), dated 10/01/2026. and that's the page, mwah ππ
π¦ where this page comes from
- opensuse-leap 16.0: resource-agents 4.18.0+git105.9ea1183-160000.1.1 Β· GPL-2.0-only AND LGPL-2.1-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: resource-agents 4.18.0+git105.9ea1183-160000.1.1 Β· GPL-2.0-only AND LGPL-2.1-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: resource-agents 4.18.0+git105.9ea1183-160000.1.1 Β· GPL-2.0-only AND LGPL-2.1-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: resource-agents 4.18.0+git105.9ea1183-160000.1.1 Β· GPL-2.0-only AND LGPL-2.1-or-later AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms