OCF_HEARTBEAT_CRYPT(7)
π ocf_heartbeat_crypt(7) β the LUKS glow-up, bestie edition
okay so welcome to ocf_heartbeat_crypt(7), the manual page for the LUKS/crypt resource agent, brought to you by the fine people behind the OCF resource agents. sit down, hydrate, and let's talk about keeping your encrypted devices absolutely slaying β¨
πΈ SYNOPSIS πΈ
crypt [start | stop | monitor | meta-data | validate-all]
that's the whole vibe: five actions, no notes π
π DESCRIPTION π
so this is a LUKS/crypt Resource Agent, and its whole main character job is managing encrypted devices via cryptsetup(8). it's literally that girl π«Ά
but bestie, hear me out β it's picky. the agent imposes limitations on the device types it supports: only luks and luks[1..N]. so no chaotic off-brand formats, we stay in our lane π
β¨ SUPPORTED PARAMETERS β¨
encrypted_devβ the encrypted backing device, which honestly should be defined by UUID: 36 characters including-s</italic>, exactly as reported byblkid(8). like, character for character, no freestyling π
so yes, technically you can define it as a block device path (e.g. /dev/sdh), but the UUID is highkey the move over the block device path, because UUIDs let you uniquely discover the crypt backing device given the volatile nature of /dev entries. and the example is iconic: /dev/sdh on one node may be /dev/sdg on another π
only define as a block device path if you know what you are doing. i'm serious, bestie π
(unique, required, string, no default)
crypt_devβ the encrypted device name, no path. i.e. the one given incryptsetup open name .... the resulting block device path is/dev/mapper/name. that's it, that's the parameter π
(unique, required, string, no default)
key_fileβ key file path containing the encryption passphrase (aka key; seecryptsetup(8)). for LUKS, the passphrase as of thekey_fileparameter is used to decrypt a randomly selected key when the device was created. lowkey elegant tbh π₯
(optional, string, no default)
crypt_typeβ the encryption (device) type (e.g."luks"or"luks2"). this parameter affirms the encryption format as of the crypt metadata, thus allowing for safety measures when starting the encrypted resource. it's giving responsible queen behavior π
(optional, string, no default)
force_stopβ okay so if processes or kernel threads are using the crypt device, it cannot be stopped. we will try to stop processes, first by sendingTERMand then, if that doesn't help in seconds, usingKILL. thelsof(8)program is required to get the list of array users. and of course, the kernel threads cannot be stopped this way β nope, not happening π if the processes are critical for data integrity, then set this parameter tofalse.
heads up: in that case the stop operation will fail and the node will be fenced. not a drill, bestie π
(optional, boolean, default false)
use_clevisβ if the LUKS volume is set up to unlock automatically using Tang/Clevis, then set this parameter to"true". it has the side-effect of ignoring the"key_file"and"crypt_type"parameters. it's giving ~automation~, and honestly? obsessed π
(optional, boolean, default false)
π SUPPORTED ACTIONS π
this resource agent supports the following actions (operations) β collect them all, iykyk:
startβ starts the resource. suggested minimum timeout:20s. go go go πstopβ stops the resource. suggested minimum timeout:20s. bye bestie πmonitorβ performs a detailed status check. suggested minimum timeout:20s. suggested interval:10s. the vibe check, fr fr π¦meta-dataβ retrieves resource agent metadata (internal use only). suggested minimum timeout:5s.validate-allβ performs a validation of the resource configuration. suggested minimum timeout:10s. self-care for your config π
π§ EXAMPLE CRM SHELL π§
this is an example configuration for a crypt resource using the crm(8) shell β copy it exactly, no ~creative liberties~:
primitive p_crypt ocf:heartbeat:crypt \
params \
encrypted_dev=string \
crypt_dev=string \
op monitor timeout="20s" interval="10s" depth="0"
slay π
π EXAMPLE PCS π
and here's the same energy for pcs(8):
pcs resource create p_crypt ocf:heartbeat:crypt \
encrypted_dev=string \
crypt_dev=string \
op monitor timeout="20s" interval="10s" OCF_CHECK_LEVEL="0"
ate, no crumbs π
π₯ SEE ALSO π₯
http://clusterlabs.org/β go say hi, they're lovely π«Ά
π AUTHOR π
ClusterLabs contributors (see the resource agent source for information about individual authors). literal icons, every single one of them π
and that's the whole page, bestie π this was resource-agents version UNKNOWN, dated 10/01/2026 β so cute, so iconic, so encrypted. now go forth and let your devices be secure and stunning β¨ππΈ
π¦ 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