OCF_HEARTBEAT_POWERV(7)

πŸ’… OCF_HEARTBEAT_POWERV(7) β€” like, the manual manual ✨

okay bestie, so this is a page from the OCF resource agents section 7 collection, and it's all about ocf_heartbeat_powervs-subnet. yes the filename says POWERV and the agent says powervs-subnet, that's just how it is, we don't question the vibes πŸ’–


🌸 NAME 🌸

ocf_heartbeat_powervs-subnet β€” literally manages moving a Power Virtual Server subnet around. that's the whole job. πŸ’…


✨ SYNOPSIS ✨

powervs-subnet [start | stop | monitor | meta-data | validate-all]

that's it. five actions. pick your fighter πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

so this Resource Agent's whole main-character job is moving a Power Virtual Server subnet and its IP address from one virtual server instance to another. iconic, honestly.

but before you can slay, there are prerequisites β€” and no, you can't skip them, i'm sorry 😭:

  1. Red Hat Enterprise Linux 9.2 or higher β€” install it with the @server group so your NetworkManager settings are correct, okay? then verify that the NetworkManager-config-server package is installed. don't skip the verify step, i'm watching πŸ‘€
  2. A two-node cluster β€” and it's gotta be distributed across two different Power Virtual Server workspaces, sitting in two data centers, inside one region. yes, two of everything. balance. symmetry. main character energy. 🫢
  3. IBM Cloud API Key β€” create a service API key that's privileged for both Power Virtual Server workspaces. save that service API key in a file, then copy the file to both cluster nodes. use the same filename and directory location on both cluster nodes (fr fr, matching paths only), and reference the path to the key file in the resource definition. πŸ”‘
for the comprehensive documentation on implementing high availability for SAP applications on IBM Power Virtual Server, go visit https://cloud.ibm.com/docs/sap?topic=sap-ha-overview β€” it's giving required reading πŸ“š

πŸ’œ SUPPORTED PARAMETERS πŸ’œ

  • ip β€” the IP address inside the subnet. and the way this works? the IP address moves together with the subnet. they're a package deal, no separating them πŸ’« (required, string, no default)
  • cidr β€” the Classless Inter-Domain Routing (CIDR) of the subnet. yes, the whole phrase, we're being precise ✨ (required, string, no default)
  • subnet_name β€” name of the subnet. and if you don't specify one? CIDR just becomes the name. it's giving "we'll figure it out" 😌 (optional, string, no default)
  • api_type β€” how you connect to the Power Virtual Server regional endpoints: over a public or a private network (public|private). (optional, string, default "private")
  • region β€” the region representing the geographic area where the instance is located. the region is what's used to identify the Cloud API endpoint, so it's lowkey important πŸ—ΊοΈ (required, string, no default)
  • api_key β€” either the API Key itself, or @API_KEY_FILE_PATH for IBM Cloud access. so: the API key content, or the path of an API key file β€” indicated by that @ symbol. that little @ is doing so much work πŸ—οΈ (required, string, no default)
  • crn_host_map β€” maps the hostname of the Power Virtual Server instance to the CRN of the Power Virtual Server workspaces hosting that instance. separate the hostname and CRN with a colon ':', and separate different hostname-and-CRN pairs with a semicolon ';'. example: hostname01:CRN-of-Instance01;hostname02:CRN-of-Instance02 🎯 (required, string, no default)
  • vsi_host_map β€” maps the hostname of the Power Virtual Server instance to its instance id. same grammar bestie: colon ':' between hostname and instance id, semicolon ';' between pairs. example: hostname01:instance-id-01;hostname02:instance-id-02 πŸ’« (required, string, no default)
  • proxy β€” proxy server used to access IBM Cloud API endpoints. the middleman. the connector. we respect them. πŸŒ‰ (optional, string, no default)
  • jumbo β€” create a Power Virtual Server subnet with an MTU size of 9000 (true|false). big packets, big energy πŸ”₯ (optional, string, default "false")
  • route_table β€” the ID of the route table for the interface. default is 500. (optional, string, default "500")

πŸ‘‘ SUPPORTED ACTIONS πŸ‘‘

this resource agent supports the following actions (operations):

  • start β€” starts the resource. suggested minimum timeout: 900s. buckle up, it's a long one ⏳
  • stop β€” stops the resource. suggested minimum timeout: 450s. πŸ›‘
  • monitor β€” performs a detailed status check. suggested minimum timeout: 60s, suggested interval: 60s. the vibe check, basically πŸ‘€
  • validate-all β€” performs a validation of the resource configuration. suggested minimum timeout: 300s. proofread before you post πŸ“
  • meta-data β€” retrieves resource agent metadata (internal use only). suggested minimum timeout: 10s. don't touch, that's the backend's business πŸ™ˆ

🌈 EXAMPLE CRM SHELL 🌈

here's an example config for a powervs-subnet resource using the crm(8) shell β€” copy-paste worthy, verbatim, character for character:

primitive p_powervs-subnet ocf:heartbeat:powervs-subnet \
  params \
    ip=string \
    cidr=string \
    region=string \
    api_key=string \
    crn_host_map=string \
    vsi_host_map=string \
  op monitor timeout="60s" interval="60s" depth="0"

look at that depth="0". impeccable. πŸŽ€


⭐ EXAMPLE PCS ⭐

and here's the same kind of example for a powervs-subnet resource, this time using pcs(8) β€” note the OCF_CHECK_LEVEL="0" instead of depth, they're different girls, don't mix them up πŸ’…

pcs resource create p_powervs-subnet ocf:heartbeat:powervs-subnet \
  ip=string \
  cidr=string \
  region=string \
  api_key=string \
  crn_host_map=string \
  vsi_host_map=string \
  op monitor timeout="60s" interval="60s" OCF_CHECK_LEVEL="0"

🧚 SEE ALSO 🧚


πŸ“ AUTHOR πŸ“

ClusterLabs contributors β€” and if you want to know about individual authors, the resource agent source has got you (see the resource agent source for information about individual authors) 🫢


and that's the page!! πŸ¦‹ this was written by the resource-agents crew, version UNKNOWN, dated 10/01/2026 β€” so like, unknown version but a very known date, make it make sense πŸ’€ anyway ily, go move that subnet πŸ‘‹πŸ’–

πŸ“¦ where this page comes from