OCF_HEARTBEAT_NVMET-PORT(7)
π
OCF_HEARTBEAT_NVMET β the nvmet-port page, but make it make sense
okay so bestie, welcome to the ocf_heartbeat_nvmet-port manual page (that's the manual name, we're keeping it, it's iconic). This is the NVMe-oF target export agent and honestly it's giving "quietly running your entire storage fabric" main character energy. Let's get into it β¨
β¨ SYNOPSIS β¨
nvmet-port [start | stop | status | monitor | meta-data | validate-all]
That's it, that's the whole vibe check. Six actions, no notes π
π¦ DESCRIPTION π¦
So this agent manages NVMe-oF ports. And like β what even is a port? π An NVMe-oF port is part of an NVMe-oF target, and the way it works is: a port must be created after the subsystem. That ordering is not a suggestion, okay, it's literally required. Then the port does the networking thing where it exposes one or multiple subsystem(s) β including the enclosed namespace(s) β to the network. It's the little extrovert that introduces your storage to the internet π«Ά
πΈ SUPPORTED PARAMETERS πΈ
These are the knobs, bestie. Turn them thoughtfully π₯
port_idβ the NVMe port number. It's a 16 bit number, so like, don't go wild with it fr fr. (unique,optional,integer, default0)typeβ the NVMe transport type. Should be one of'tcp','rdma','fc'or'loop'. Pick your fighter π (optional,string, default"tcp")addr_famβ the address family of the address. Should be'ipv4','ipv6'or'fc'. (optional,string, default"ipv4")svcidβ the transport service identifier. Basically the TCP/IP port number this target binds to, or its RDMA protocol equivalent. Yes it's an integer, yes4420is the default, no we don't argue with it β¨ (optional,integer, default4420)addrβ the transport address. The TCP/IP address this target binds to, or its RDMA protocol equivalent. This one is required, and there is no default, so you genuinely have to fill it in, no cap π¨ (required,string, no default)nqnsβ a space-separated list of NQNs that should be exported through this NVMe-oF-Target port. This list needs to have at least one entry β an empty list is not the move, bestie. Required, no default. π (required,string, no default)
β SUPPORTED ACTIONS β
This resource agent supports the following actions (operations). Timeouts are the suggested minimums β go under and you're asking for drama π
startβ starts the resource. Suggested minimum timeout:10s.stopβ stops the resource. Suggested minimum timeout:10s.statusβ performs a status check. Suggested minimum timeout:10s. Suggested interval:10s.monitorβ performs a detailed status check. Suggested minimum timeout:10s. Suggested interval:10s.meta-dataβ retrieves resource agent metadata (internal use only β hands off, that one's not for you π). Suggested minimum timeout:5s.validate-allβ performs a validation of the resource configuration. Suggested minimum timeout:10s.
π§ EXAMPLE CRM SHELL π§
Here's what a nvmet-port resource looks like using the crm(8) shell. Copy-paste responsibly, queen:
primitive p_nvmet-port ocf:heartbeat:nvmet-port \
params \
addr=string \
nqns=string \
op monitor timeout="10s" interval="10s" depth="0"
Note the depth="0" on the monitor op β that's your detail knob, lowkey important π
π EXAMPLE PCS π
And the same thing but through pcs(8), because not everyone's a crm girlie:
pcs resource create p_nvmet-port ocf:heartbeat:nvmet-port \
addr=string \
nqns=string \
op monitor timeout="10s" interval="10s" OCF_CHECK_LEVEL="0"
Same energy, different OCF_CHECK_LEVEL="0" spelling. Slay β¨
π₯ SEE ALSO π₯
- http://clusterlabs.org/ β go touch grass on the ClusterLabs site, it's where all the lore lives π«Ά
π AUTHOR π
ClusterLabs contributors β see the resource agent source for information about individual authors. (Basically: a whole squad of legends, so go read the source if you wanna know who to thank π)
periodt. that's the whole page, every flag and every timeout, none of it skipped. you're welcome bestie π
okay and finally, the cute sign-off: this page signs off as OCF_HEARTBEAT_NVMET up in the top-right corner and again at the bottom β same name, both spots, because symmetry is free and it's giving β¨balanceβ¨. That footer line is the source/version-and-date slot, so whenever you see it repeated down there, that's just the page telling you its own name one last time before it leaves the group chat. bye bestie, go create your port after your subsystem ππ¦πΈ
π¦ 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