DMEVENTD(8)
๐ DMEVENTD โ the device-mapper event daemon, bestie edition ๐
okay so real talk: this is the manual page for dmeventd, which lives in section 8 of the system manager's manual (that's the "admin commands" shelf, iykyk). she's the Device-mapper event daemon, and she's honestly carrying the whole house on her back. let's get into it ๐ซถ
โจ NAME โจ
dmeventd โ the Device-mapper event daemon. that's her. that's the girl. ๐
โจ SYNOPSIS โจ
dmeventd [-d [-d [-d]]] [-e exit_on_path] [-f] [-g seconds] [-h] [-i]
[-l] [-R] [-V] [-?]
like, that's a lot of little flags but don't panic, we're going through every single one and you're gonna know them all by the end, fr fr ๐
โจ DESCRIPTION โจ
so dmeventd is the event monitoring daemon for device-mapper devices. she just sits there, watching, keeping tabs on vibes. meanwhile, library plugins can register themselves with her and then carry out actions that get triggered whenever particular events pop off. it's giving group chat moderator energy, honestly. ๐ฆ
โจ OPTIONS โจ
okay bestie, pop the corn, this is the long part. every single one, no skips:
-dโ repeat this bad boy from 1 to 3 times (-d,-dd,-ddd) and the detail of the debug messages sent to syslog goes up. every extradstacks on more debugging information. more d's = more lore. ๐-e exit_on_pathโ hand her a file path. when the daemon catches a signal (SIGINT,SIGTERM), the presence of this file is what lets her exit even though there are still monitored devices hanging around. this is a whole lifesaver during system shutdown, when devices haven't been unmonitored properly and she'd otherwise be stuck. want to disable this behaviour? set it to the empty string"". the default value is"/run/nologin". ๐ช-fโ don't fork, run in the foreground. no background sneaky business, we're doing this in person. ๐-g secondsโ set the grace period for monitoring thread cleanup, and the range is0-300seconds, with a default of10. during this window, monitoring threads that already finished processing events will wait around for potential reuse instead of immediately terminating (rude to just leave, honestly). if the same device and plugin combination gets registered again inside the grace period, the existing thread gets reused, which significantly reduces overhead. set it to0to disable thread reuse entirely. โป๏ธ-hโ show help information. she's helpful like that. ๐-iโ query the running daemon instance for status info. important heads up though: the format is internal and unstable and it's targeted for developers. the format may change between versions โ so do NOT build your whole life on it, bestie. ๐-lโ log through stdout and stderr instead of syslog. this one works only with the-foption; otherwise it's just ignored. so like, they're a package deal. ๐ค-?โ show help information on stderr. (same energy, different stream โจ)-Rโ replace a runningdmeventdinstance. the runningdmeventdmust be version2.02.77or newer โ no cap, that's the requirement. the newdmeventdinstance will obtain a list of devices and events to monitor from the currently running daemon. passing the aux cord, basically. ๐ง-Vโ show version ofdmeventd. simple, iconic. โญ
โจ LVM PLUGINS โจ
these are the plugins that show up to the party. each one does its own little thing:
- Mirror โ attempts to handle device failure automatically. see
lvm.conf(5). ๐ช - Raid โ attempts to handle device failure automatically. see
lvm.conf(5). (yes, same energy as Mirror, they're siblings) ๐ก๏ธ - Snapshot โ monitors how full a snapshot is becoming and emits a warning to syslog when it exceeds 80% full. the warning gets repeated when 85%, 90% and 95% of the snapshot is filled. see
lvm.conf(5). โ ๏ธ and here's the scary part: a snapshot that runs out of space becomes invalid, and when it is mounted, it is unmounted if possible. so like, keep an eye on that fullness percentage, bestie, seriously. ๐ญ - Thin โ monitors how full the thin pool's data and metadata are becoming and emits a warning to syslog when either exceeds 80% full. the warning repeats when more than 85%, 90% and 95% of the thin pool is filled. see
lvm.conf(5). when a thin pool fills over 50% (data or metadata), the thin plugin calls the configureddmeventd/thin_commandwith every 5% increase. with the default setting it calls internal lvmlvextend --use-policiesto resize the thin pool when it exceeds the configured thresholdactivation/thin_pool_autoextend_threshold. if the command fails, thedmeventdthin plugin will keep retrying execution with an increasing time delay between retries, up to 42 minutes (persistent queen ๐ ). you can also configure an external command for more advanced maintenance operations of a thin pool โ for example, the external command can remove unneeded snapshots, usefstrim(8)to recover free space in a thin pool, or uselvextend --use-policiesif other actions haven't released enough space. the command is executed with the environment variableLVM_RUN_BY_DMEVENTD=1so any lvm2 command executed in this environment will not try to interact withdmeventd. to see the fullness of a thin pool, the command may check these two environment variables:DMEVENTD_THIN_POOL_DATAandDMEVENTD_THIN_POOL_METADATA. the command can also read status with tools likelvs(8). ๐ธ - Vdo โ monitors how full a VDO pool's data is becoming and emits a warning to syslog when it exceeds 80% full. the warning repeats when more than 85%, 90% and 95% of the VDO pool is filled. see
lvm.conf(5). when a VDO pool fills over 50%, the vdo plugin calls the configureddmeventd/vdo_commandwith every 5% increase. with the default setting it calls internal lvmlvextend --use-policiesto resize the VDO pool when it exceeds the configured thresholdactivation/vdo_pool_autoextend_threshold. if the command fails, thedmeventdvdo plugin will keep retrying execution with an increasing time delay between retries, up to 42 minutes. you may also configure an external command for more advanced maintenance operations of a VDO pool โ for example, the external command can free up unused space withfstrim(8), or uselvextend --use-policiesif other actions haven't released enough space. the command is executed with the environment variableLVM_RUN_BY_DMEVENTD=1so any lvm2 command executed in this environment will not try to interact withdmeventd. to see the fullness of a VDO pool, the command may check theDMEVENTD_VDO_POOLenvironment variable. the command can also read status with tools likelvs(8). ๐ง
โจ ENVIRONMENT VARIABLES โจ
the env vars, the little messengers. here's who sets what:
DMEVENTD_THIN_POOL_DATAโ variable is set by the thin plugin and is available to the executed program. the value represents actual usage of thin pool data volume. heads up: the variable is not set when an error event is processed. ๐DMEVENTD_THIN_POOL_METADATAโ variable is set by the thin plugin and is available to the executed program. the value represents actual usage of thin pool metadata volume. and again: not set when an error event is processed. ๐DMEVENTD_VDO_POOLโ variable is set by the vdo plugin and is available to the executed program. the value represents actual usage of VDO pool data volume. yep, you guessed it: not set when an error event is processed. ๐LVM_RUN_BY_DMEVENTDโ variable is set by the thin and vdo plugins to prohibit recursive interaction withdmeventdby any lvm2 command run from athin_commandorvdo_commandenvironment. protect the loop, protect the peace. ๐
โจ SEE ALSO โจ
go read these next, they're all in the family:
lowkey a reminder: -i output is internal and unstable, and that snapshot running out of space becoming invalid is not a vibe. check your pools, bestie. ๐ซถ
and that's the whole page!! brought to you by Red Hat, Inc., from DM TOOLS 2.03.44(2), dated 2026-10-27. ๐โจ๐ that's it, that's the manual, you ate, go monitor some devices, mwah ๐ ๐
๐ฆ where this page comes from
- arch rolling: device-mapper 2.03.44-1 ยท GPL-2.0-only AND LGPL-2.1-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms