.TH LVMDUMP 8 "LVM TOOLS #VERSION#" "Red Hat, Inc."
.SH NAME
lvmdump \(em create lvm2 information dumps for diagnostic purposes
.SH SYNOPSIS
.B lvmdump
.RB [ \-a ]
.RB [ \-c ]
.RB [ \-d
.IR directory ]
.RB [ \-h ]
.RB [ \-l ]
.RB [ \-m ]
.RB [ \-p ]
.RB [ \-s ]
.RB [ \-u ]
.SH DESCRIPTION
lvmdump is a tool to dump various information concerning LVM2.
By default, it creates a tarball suitable for submission along
with a problem report.
.PP
The content of the tarball is as follows:
.br
- dmsetup info
.br
- table of currently running processes
.br
- recent entries from /var/log/messages (containing system messages)
.br
- complete lvm configuration and cache (content of /etc/lvm)
.br
- list of device nodes present under /dev
.br
- list of files present /sys/block
.br
- list of files present /sys/devices/virtual/block
.br
- if enabled with \-m, metadata dump will be also included
.br
- if enabled with \-a, debug output of vgscan, pvscan and list of all available volume groups, physical volumes and logical volumes will be included
.br
- if enabled with \-c, cluster status info
.br
- if enabled with \-l, lvmetad state if running
.br
- if enabled with \-p, lvmpolld state if running
.br
- if enabled with \-s, system info and context
.br
- if enabled with \-u, udev info and context
.SH OPTIONS
.TP
.B \-a
Advanced collection.
\fBWARNING\fR: if lvm is already hung, then this script may hang as well
if \fB\-a\fR is used.
.TP
.B \-c
If clvmd is running, gather cluster data as well.
.TP
.B \-d  \fIdirectory
Dump into a directory instead of tarball
By default, lvmdump will produce a single compressed tarball containing
all the information. Using this option, it can be instructed to only
produce the raw dump tree, rooted in \fIdirectory\fP.
.TP
.B \-h
Print help message
.TP
.B \-l
Include \fBlvmetad\fP(8) daemon dump if it is running. The dump contains
cached information that is currently stored in lvmetad: VG metadata,
PV metadata and various mappings in between these metadata for quick
access.
.TP
.B \-m
Gather LVM metadata from the PVs
This option generates a 1:1 dump of the metadata area from all PVs visible
to the system, which can cause the dump to increase in size considerably.
However, the metadata dump may represent a valuable diagnostic resource.
.TP
.B \-p
Include \fBlvmpolld\fP(8) daemon dump if it is running. The dump contains
all in-progress operation currently monitored by the daemon and partial
history for all yet uncollected results of polling operations already finished
including reason.
.TP
.B \-s
Gather system info and context. Currently, this encompasses systemd info
and context only: overall state of systemd units present in the system,
more detailed status of units controlling LVM functionality and the content
of systemd journal for current boot.
.TP
.B \-u
Gather udev info and context: /etc/udev/udev.conf file, udev daemon version
(output of 'udevadm info \-\-version' command), udev rules currently used in the system
(content of /lib/udev/rules.d and /etc/udev/rules.d directory),
list of files in /lib/udev directory and dump of current udev
database content (the output of 'udevadm info \-\-export\-db' command).
.SH ENVIRONMENT VARIABLES
.TP
\fBLVM_BINARY\fP
The LVM2 binary to use.
Defaults to "lvm".
Sometimes you might need to set this to "/sbin/lvm.static", for example.
.TP
\fBDMSETUP_BINARY\fP
The dmsetup binary to use.
Defaults to "dmsetup".
.PP
.SH SEE ALSO
.BR lvm (8)
